Exemplo n.º 1
0
        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 = "操作成功"
                });
            }
        }
Exemplo n.º 2
0
        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 = "操作成功"
            });
        }
Exemplo n.º 3
0
        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 = "资料提交成功,待营销中心审核"
                });
            }
        }
Exemplo n.º 4
0
        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 = "活动申请成功"
                    });
                }
            }
        }