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