public async Task <APIResultDto> ChangeActivityFormStatusWeChatAsync(ActivityFromStatusDtoss input) { using (CurrentUnitOfWork.SetTenantId(input.TenantId)) { var form = await _activityformRepository.GetAsync(input.Id); var user = await _wechatuserManager.GetWeChatUserAsync(input.OpenId, input.TenantId); //var user = await _userRepository.GetAsync(AbpSession.UserId.Value); //更新状态 form.Status = input.Status; //更新日志 var log = new ActivityFormLog(); log.ActionTime = DateTime.Now; log.ActivityFormId = form.Id; log.Opinion = string.IsNullOrEmpty(input.Opinion) ? input.Status.ToString() : input.Opinion; log.Status = input.Status; log.StatusName = input.Status.ToString(); log.UserId = user.UserId; log.UserName = user.UserName; //var roles = await UserManager.GetRolesAsync(user); //if (roles.Contains("CustomerManager")) //{ // log.UserType = UserTypeEnum.客户经理; //} //else //{ // log.UserType = UserTypeEnum.营销中心; //} log.UserType = user.UserType; await _activityformRepository.UpdateAsync(form); await _activityFormLogRepository.InsertAsync(log); return(new APIResultDto() { Code = 0, Msg = "操作成功" }); } }
public async Task <APIResultDto> ChangeActivityFormStatusAsync(ActivityFormStatusDto input) { var form = await _activityformRepository.GetAsync(input.Id); var user = await _userRepository.GetAsync(AbpSession.UserId.Value); //更新状态 form.Status = input.Status; //更新日志 var log = new ActivityFormLog(); log.ActionTime = DateTime.Now; log.ActivityFormId = form.Id; log.Opinion = input.Opinion; log.Status = input.Status; log.StatusName = input.Status.ToString(); log.UserId = user.EmployeeId; log.UserName = user.Name; var roles = await UserManager.GetRolesAsync(user); if (roles.Contains("CustomerManager")) { log.UserType = UserTypeEnum.客户经理; } else { log.UserType = UserTypeEnum.营销中心; } //log.UserType = user.EmployeeId.HasValue ? UserTypeEnum.客户经理 : UserTypeEnum.营销中心; await _activityformRepository.UpdateAsync(form); await _activityFormLogRepository.InsertAsync(log); return(new APIResultDto() { Code = 0, Msg = "操作成功" }); }
public async Task <APIResultDto> SubmitActivityBanquetWeChatAsync(ActivityBanquetWeChatDto input) { Logger.InfoFormat("ActivityBanquetWeChatDto:{0}", Newtonsoft.Json.Linq.JObject.FromObject(input).ToString()); var banquest = input.MapTo <ActivityBanquet>(); var delivery = input.MapTo <ActivityDeliveryInfo>();//收货信息 var user = await _wechatuserManager.GetWeChatUserAsync(input.OpenId, input.TenantId); if (user == null) { return(new APIResultDto() { Code = 701, Msg = "当前用户无效" }); } if (user.UserType != UserTypeEnum.零售客户 && user.UserType != UserTypeEnum.内部员工) { return(new APIResultDto() { Code = 702, Msg = "当前用户类型不支持" }); } //微信服务器下载图片 banquest.PhotoUrl = await DownloadWechatImgs(input.PhotoUrl, input.AppId); using (CurrentUnitOfWork.SetTenantId(input.TenantId)) { //1、保存宴席信息 var activityForm = await _activityFormRepository.GetAsync(input.ActivityFormId); if (user.UserType == UserTypeEnum.零售客户) { banquest.Responsible = activityForm.ManagerName; banquest.Executor = activityForm.RetailerName; } else//客户经理更新状态 { activityForm.Status = FormStatusEnum.资料回传已审核; //记录审核日志 var log = new ActivityFormLog(); log.ActionTime = DateTime.Now; log.ActivityFormId = activityForm.Id; log.Opinion = "审核通过";// activityForm.Status.ToString(); log.Status = activityForm.Status; log.StatusName = activityForm.Status.ToString(); log.UserType = user.UserType; log.UserId = user.UserId; log.UserName = user.UserName; await _activityFormRepository.UpdateAsync(activityForm); await _activityFormLogRepository.InsertAsync(log); banquest.Responsible = activityForm.ManagerName; banquest.Executor = activityForm.ManagerName; } banquest.UserName = user.UserName; banquest.CreationTime = DateTime.Now; if (input.BanquetId.HasValue) { banquest.Id = input.BanquetId.Value; await _activitybanquetRepository.UpdateAsync(banquest); } else { await _activitybanquetRepository.InsertAsync(banquest); } //2、保存推荐人信息 delivery.Type = DeliveryUserTypeEnum.推荐人; delivery.CreationTime = DateTime.Now; if (input.DeliveryId.HasValue) { //delivery.Id = input.DeliveryId.Value; var orgDelivery = await _activityDeliveryInfoRepository.GetAsync(input.DeliveryId.Value); orgDelivery.UserName = delivery.UserName; orgDelivery.Phone = delivery.Phone; orgDelivery.DeliveryRemark = delivery.DeliveryRemark; orgDelivery.Address = delivery.Address; await _activityDeliveryInfoRepository.UpdateAsync(orgDelivery); } else { await _activityDeliveryInfoRepository.InsertAsync(delivery); } } if (user.UserType == UserTypeEnum.零售客户) { return(new APIResultDto() { Code = 0, Msg = "资料提交成功,待客户经理审核" }); } else { return(new APIResultDto() { Code = 0, Msg = "资料提交成功,待营销中心审核" }); } }
public async Task <APIResultDto> SubmitActivityFormAsync(ActivityFormInputDto input) { var form = input.MapTo <ActivityForm>(); //表单信息 var delivery = input.MapTo <ActivityDeliveryInfo>(); //收货信息 var user = await _wechatuserManager.GetWeChatUserAsync(input.OpenId, input.TenantId); if (user == null) { return(new APIResultDto() { Code = 701, Msg = "当前用户无效" }); } if (user.UserType != UserTypeEnum.零售客户 && user.UserType != UserTypeEnum.内部员工) { return(new APIResultDto() { Code = 702, Msg = "当前用户类型不支持" }); } form.CreationUser = user.UserName; form.CreationId = user.UserId; using (CurrentUnitOfWork.SetTenantId(input.TenantId)) { var activity = await _activityRepository.GetAsync(input.ActivityId); if (user.UserType == UserTypeEnum.零售客户) { //单数限制 var rcount = _activityformRepository.GetAll() .Where(a => a.RetailerId == user.UserId && a.Status == FormStatusEnum.提交申请 && a.Status == FormStatusEnum.初审通过 && a.Status == FormStatusEnum.资料回传已审核 && a.CreationUser == user.UserName).Count(); if (rcount >= activity.RUnfinished) { return(new APIResultDto() { Code = 703, Msg = string.Format("零售客户未完成单数不能超过{0}单,不能再申请", activity.RUnfinished) }); } form.RetailerId = user.UserId.Value; form.RetailerName = user.UserName; var retailer = await _retailerAppService.GetRetailerByIdAsync(new EntityDto <Guid> { Id = user.UserId.Value }); form.ManagerName = retailer.Manager; form.ManagerId = retailer.EmployeeId; form.Status = FormStatusEnum.提交申请; } else if (user.UserType == UserTypeEnum.内部员工) { //单数限制 var mcount = _activityformRepository.GetAll() .Where(a => a.ManagerId == user.UserId && a.Status == FormStatusEnum.提交申请 && a.Status == FormStatusEnum.初审通过 && a.Status == FormStatusEnum.资料回传已审核 && a.CreationUser == user.UserName).Count(); if (mcount >= activity.MUnfinished) { return(new APIResultDto() { Code = 704, Msg = string.Format("客户经理未完成单数不能超过{0}单,不能再申请", activity.MUnfinished) }); } form.ManagerName = user.UserName; form.ManagerId = user.UserId; form.Status = FormStatusEnum.初审通过; } form.FormCode = GetFormCode(); form.ActivityName = activity.Name; //1、保存表单 var formId = await _activityformRepository.InsertAndGetIdAsync(form); await CurrentUnitOfWork.SaveChangesAsync();//获取保存的Form ID delivery.ActivityFormId = formId; delivery.CreationTime = DateTime.Now; delivery.Type = DeliveryUserTypeEnum.消费者; //2、保存邮寄信息 await _activitydeliveryinfoRepository.InsertAsync(delivery); //3、保存记录日志 var log = new ActivityFormLog(); log.ActionTime = DateTime.Now; log.ActivityFormId = formId; log.Opinion = "提交申请"; log.Status = FormStatusEnum.提交申请; log.StatusName = log.Status.ToString(); log.UserId = user.UserId.Value; log.UserName = user.UserName; log.UserType = user.UserType; await _activityFormLogRepository.InsertAsync(log); //如果是客户经理提交 为初审通过 2018-4-10 if (form.Status == FormStatusEnum.初审通过) { var log2 = new ActivityFormLog(); log2.ActionTime = DateTime.Now.AddSeconds(5); log2.ActivityFormId = formId; log2.Opinion = "初审通过"; log2.Status = FormStatusEnum.初审通过; log2.StatusName = log2.Status.ToString(); log2.UserId = user.UserId.Value; log2.UserName = user.UserName; log2.UserType = user.UserType; await _activityFormLogRepository.InsertAsync(log2); } if (user.UserType == UserTypeEnum.零售客户) { return(new APIResultDto() { Code = 0, Msg = "活动申请成功,待客户经理审核" }); } else { return(new APIResultDto() { Code = 0, Msg = "活动申请成功" }); } } }