/// <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)); }
/// <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)); }