/// <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));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 更新优惠券审核状态 【工单审核成功通知MQ中调用】
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async override ValueTask <OperationResult <bool> > UpdateCouponGetRuleAuditAsync([FromBody] UpdateCouponGetRuleAuditRequest request)
        {
            #region 1.更新审核记录的状态  并 添加日志
            //1.获取优惠券审核的信息
            var couponGetRuleAuditList = await _ICouponGetRuleAuditManager.GetCouponGetRuleAuditByWorkOrderIdAsync(request.WorkOrderId, HttpContext.RequestAborted).ConfigureAwait(false);

            GetCouponRuleAuditModel couponGetRuleAuditModelBefore = couponGetRuleAuditList.Where(p => p.AuditStatus == (int)WorkOrderAuditStatusEnum.审批中).FirstOrDefault();
            if (couponGetRuleAuditModelBefore == null)
            {
                return(OperationResult.FromError <bool>("-1", $@"未查询到WorkOrderId ={request.WorkOrderId}审核记录"));
            }
            GetCouponRuleAuditModel couponGetRuleAuditModelAfter = ObjectMapper.ConvertTo <GetCouponRuleAuditModel, GetCouponRuleAuditModel>(couponGetRuleAuditModelBefore);
            couponGetRuleAuditModelAfter.Auditor = request.Auditor;
            WorkOrderAuditStatusEnum status;
            Enum.TryParse(request.AuditStatus, out status);
            couponGetRuleAuditModelAfter.AuditStatus   = (int)(status);
            couponGetRuleAuditModelAfter.AuditDateTime = request.AuditDateTime == new DateTime() ? DateTime.Now : request.AuditDateTime;
            couponGetRuleAuditModelAfter.AuditMessage  = request.AuditMessage;
            couponGetRuleAuditModelAfter.Auditor       = request.Auditor;
            //更新审核记录的审核信息
            var UpdateAudit = await _ICouponGetRuleAuditManager.UpdateCouponGetRuleAuditAsync(couponGetRuleAuditModelAfter, HttpContext.RequestAborted).ConfigureAwait(false);

            if (UpdateAudit == 0)
            {
                return(OperationResult.FromError <bool>("-1", $@"更新审核记录异常"));
            }
            //2.添加日志
            GetCouponGetRuleAuditorResponse response = new GetCouponGetRuleAuditorResponse();
            var ConfigResult = await _IConfigLogService.InsertDefaultLogQueue(GlobalConstant.LogTypeCouponGetRuleAudit, JsonConvert.SerializeObject(new
            {
                ObjectId    = couponGetRuleAuditModelBefore.PKID,
                ObjectType  = GlobalConstant.LogObjectTypeCouponGetRuleAudit,
                BeforeValue = JsonConvert.SerializeObject(couponGetRuleAuditModelBefore),
                AfterValue  = JsonConvert.SerializeObject(couponGetRuleAuditModelAfter),
                Operate     = "修改审核记录",
                Author      = couponGetRuleAuditModelAfter.Auditor
            })).ConfigureAwait(false);

            #endregion

            #region 2.将审核通过的内容更新到领取规则表 & 推送给申请人 & 添加日志

            if (couponGetRuleAuditModelAfter.AuditStatus == (int)WorkOrderAuditStatusEnum.审批通过) //审核通过
            {
                //审核成功 同步到领取规则
                var pkid = await _ICouponGetRuleManager.SaveAuditToGetRuleAsync(couponGetRuleAuditModelAfter, HttpContext.RequestAborted).ConfigureAwait(false);

                if (pkid == 0)
                {
                    return(OperationResult.FromError <bool>("-1", "审核成功,更新优惠券领取规则失败"));
                }
                else//更新优惠券领取规则 成功
                {
                    ConfigResult = await _IConfigLogService.InsertDefaultLogQueue(GlobalConstant.LogTypeCouponGetRuleAudit, JsonConvert.SerializeObject(new
                    {
                        ObjectId    = pkid,
                        ObjectType  = GlobalConstant.LogObjectTypeCouponGetRule,
                        BeforeValue = "",
                        AfterValue  = JsonConvert.SerializeObject(couponGetRuleAuditModelAfter),
                        Operate     = "审核成功同步优惠券领取规则",
                        Author      = couponGetRuleAuditModelAfter.Auditor
                    })).ConfigureAwait(false);

                    //3.更新优惠券领取规则的缓存
                    var refreshResult = await _ICreatePromotionService.RefreshGetCouponRulesCache(couponGetRuleAuditModelAfter.GetRuleGUID).ConfigureAwait(false);
                }
            }
            #endregion
            return(OperationResult.FromResult(UpdateAudit > 0));
        }