Ejemplo n.º 1
0
        /// <summary>
        /// 获取优惠券领取规则审核人
        /// </summary>
        /// <param name="Step"></param>
        /// <param name="WorkOrderId"></param>
        /// <returns></returns>
        public async override ValueTask <OperationResult <GetCouponGetRuleAuditorResponse> > GetCouponGetRuleAuditorAsync([FromQuery(Name = "Step")] int Step, [FromQuery(Name = "WorkOrderId")] int WorkOrderId)
        {
            GetCouponGetRuleAuditorRequest request = new GetCouponGetRuleAuditorRequest()
            {
                Step        = Step,
                WorkOrderId = WorkOrderId,
            };

            return(await _ICouponGetRuleAuditManager.GetCouponGetRuleAuditorAsync(request, HttpContext.RequestAborted).ConfigureAwait(false));
        }
        /// <summary>
        /// 获取优惠券领取规则审核人
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <OperationResult <GetCouponGetRuleAuditorResponse> > GetCouponGetRuleAuditorAsync(GetCouponGetRuleAuditorRequest request, CancellationToken cancellationToken)
        {
            GetCouponGetRuleAuditorResponse response = new GetCouponGetRuleAuditorResponse()
            {
            };

            if (request.Step == 1)//审核第一步
            {
                //1.获取成本归属 的 审核人
                var business = await _ICouponGetRuleRepository.GetPromotionBusinessLineConfigByPKIDAsync(request.BusinessLineId, cancellationToken).ConfigureAwait(false);

                if (string.IsNullOrWhiteSpace(business?.Auditor))
                {
                    //2.如审核人为空, 则 获取 所属部门的审核人
                    var department = await _ICouponGetRuleRepository.GetCouponDepartmentUseSettingByPKIDAsync(request.DepartmentId, cancellationToken).ConfigureAwait(false);

                    if (string.IsNullOrWhiteSpace(department?.Auditor))
                    {
                        return(OperationResult.FromError <GetCouponGetRuleAuditorResponse>("-3", "未获取到审核人关系"));
                    }
                    else
                    {
                        response.Auditors = department.Auditor;
                    }
                }
                else
                {
                    response.Auditors = business.Auditor;
                }
            }
            else if (request.Step == 2)//审核第二步
            {
                //1.根据工单号获取 申请人
                var CouponGetRuleAuditList = await _ICouponGetRuleAuditRepository.GetEntityByWorkOrderIdAsync(request.WorkOrderId, cancellationToken).ConfigureAwait(false);

                var CouponGetRuleAudit = CouponGetRuleAuditList.Where(p => p.AuditStatus == 1).FirstOrDefault();
                if (CouponGetRuleAudit == null || CouponGetRuleAudit.PKID == 0)
                {
                    return(OperationResult.FromError <GetCouponGetRuleAuditorResponse>("-4", "未获取 审核记录"));
                }
                else
                {
                    //2.获取部门关系的负责人
                    var ConfigResult = await _IConfigBaseService.GetBaseConfigListAsync(GlobalConstant.CouponGetRuleAudit2ndDepartmentRelation, cancellationToken).ConfigureAwait(false);

                    response.Auditors = ConfigResult.Result.Where(p => p.Key == CouponGetRuleAudit.Applicant)?.FirstOrDefault().Value;
                    if (string.IsNullOrWhiteSpace(response.Auditors))
                    {
                        return(OperationResult.FromError <GetCouponGetRuleAuditorResponse>("-2", "未获取到审核人关系"));
                    }
                }
            }
            else
            {
                return(OperationResult.FromError <GetCouponGetRuleAuditorResponse>("-1", "Step只支持1&2"));
            }
            return(OperationResult.FromResult(response));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 创建优惠券审核记录
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async override ValueTask <OperationResult <int> > CreateCouponGetRuleAuditAsync([FromBody] CreateCouponGetRuleAuditRequest request)
        {
            if (request.Applicant == "*****@*****.**")
            {
                request.Applicant = "*****@*****.**";
            }
            //1.获取审核第一步的 审核人
            GetCouponGetRuleAuditorRequest getCouponGetRuleAuditorRequest = new GetCouponGetRuleAuditorRequest()
            {
                Step           = 1,
                Applicant      = request.Applicant,
                BusinessLineId = request.BusinessLineId,
                DepartmentId   = request.DepartmentId,
            };

            if (request.GetCouponRulePKID > 0)//修改
            {
                //判断是否存在 审核中的 记录
                var list = await _ICouponGetRuleAuditManager.GetListByGetCouponRulePKIDAsync(request.GetCouponRulePKID, HttpContext.RequestAborted).ConfigureAwait(false);

                if (list.Where(p => p.AuditStatus == 1).Any())
                {
                    return(OperationResult.FromError <int>("-1", "此优惠券正在审核中不支持编辑,请前往【审核列表】查看审核信息"));
                }
                //获取 原领取规则信息
                var originalGetRule = await _ICouponGetRuleManager.GetByPKIDAsync(request.GetCouponRulePKID, HttpContext.RequestAborted).ConfigureAwait(false);

                request.GetRuleGUID = originalGetRule.GetRuleGUID;
            }

            var GetCouponGetRuleAuditorResult = await _ICouponGetRuleAuditManager.GetCouponGetRuleAuditorAsync(getCouponGetRuleAuditorRequest, HttpContext.RequestAborted).ConfigureAwait(false);

            if (GetCouponGetRuleAuditorResult.Success || GetCouponGetRuleAuditorResult.Result != null)
            {
                request.Auditor = GetCouponGetRuleAuditorResult.Result.Auditors;
            }
            else
            {
                return(OperationResult.FromError <int>(GetCouponGetRuleAuditorResult.ErrorCode, GetCouponGetRuleAuditorResult.ErrorMessage));
            }

            //2.提交到工单系统
            var workOrderId = await _ICouponGetRuleAuditManager.CommitWorkOrderForCouponGetRuleAuditAsync(request, HttpContext.RequestAborted).ConfigureAwait(false);

            request.AuditStatus = (int)WorkOrderAuditStatusEnum.审批中;
            if (workOrderId == 0)
            {
                return(OperationResult.FromError <int>("-1", "提交到工单失败,请重试"));
            }
            request.WorkOrderId = workOrderId;
            //3.添加审核记录
            var pkid = await _ICouponGetRuleAuditManager.CreateCouponGetRuleAuditAsync(request, HttpContext.RequestAborted).ConfigureAwait(false);

            if (pkid > 0)
            {
                //4.添加审核的提交日志
                var ConfigResult = await _IConfigLogService.InsertDefaultLogQueue(GlobalConstant.LogTypeCouponGetRuleAudit, JsonConvert.SerializeObject(new
                {
                    ObjectId    = pkid,
                    ObjectType  = GlobalConstant.LogObjectTypeCouponGetRuleAudit,
                    BeforeValue = "",
                    AfterValue  = JsonConvert.SerializeObject(request),
                    Operate     = "添加审核记录",
                    Author      = request.Applicant
                })).ConfigureAwait(false);

                return(OperationResult.FromResult(pkid));
            }
            else
            {
                return(OperationResult.FromError <int>("-2", "CreateCouponGetRuleAuditAsync Exception"));
            }
        }