Ejemplo n.º 1
0
        protected override GetSetOffIsPushRD ProcessRequest(APIRequest <GetSetOffIsPushRP> pRequest)
        {
            GetSetOffIsPushRD setOffIsPushRD = new GetSetOffIsPushRD();
            SetoffToolsBLL    setOffToolsBLL = new SetoffToolsBLL(CurrentUserInfo); //集客工具业务处理
            var setoffEventBLL = new SetoffEventBLL(CurrentUserInfo);               //集客行动业务处理
            var para           = pRequest.Parameters;

            if (string.IsNullOrEmpty(para.ShareVipType))
            {
                para.ShareVipType = "2";
            }
            var setoffEventInfo = setoffEventBLL.QueryByEntity(new SetoffEventEntity()
            {
                Status = "10", SetoffType = Convert.ToInt32(para.ShareVipType != "3" ? "2" : para.ShareVipType), CustomerId = CurrentUserInfo.CurrentUser.customer_id
            }, null).FirstOrDefault();

            if (setoffEventInfo != null)
            {
                setOffIsPushRD.CTW_EventIsPush  = setOffToolsBLL.GetIsPushCount(para.ShareVipType, para.BeShareVipID, "CTW", setoffEventInfo.SetoffEventID.ToString());
                setOffIsPushRD.SetOffToolIsPush = setOffToolsBLL.GetIsPushCount(para.ShareVipType, para.BeShareVipID, "SetoffPoster", setoffEventInfo.SetoffEventID.ToString());
                setOffIsPushRD.CouponIsPush     = setOffToolsBLL.GetIsPushCount(para.ShareVipType, para.BeShareVipID, "Coupon", setoffEventInfo.SetoffEventID.ToString());
            }
            else
            {
                setOffIsPushRD.CTW_EventIsPush  = 0;
                setOffIsPushRD.SetOffToolIsPush = 0;
                setOffIsPushRD.CouponIsPush     = 0;
            }

            return(setOffIsPushRD);
        }
Ejemplo n.º 2
0
        protected override GetExtendListRD ProcessRequest(APIRequest <EmptyRequestParameter> pRequest)
        {
            //throw new NotImplementedException();
            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;

            if (loggingSessionInfo == null)
            {
                throw new APIException("用户未登录")
                      {
                          ErrorCode = ERROR_CODES.INVALID_REQUEST
                      }
            }
            ;
            SetoffEventBLL bll = new SetoffEventBLL(loggingSessionInfo);
            //return bll.GetSetoffToolList();

            //SetoffEventBLL bll = new SetoffEventBLL(loggingSessionInfo);
            var result = new GetExtendListRD();
            //超级分销主数据
            var dbResult1 = bll.QueryByEntity(new SetoffEventEntity()
            {
                Status = "10", SetoffType = 3, CustomerId = CurrentUserInfo.ClientID
            }, null).FirstOrDefault();

            if (dbResult1 == null)
            {
                return(result);
            }
            result.SetoffEventID = dbResult1.SetoffEventID;
            result.List          = new List <GetExtendInfo>();
            var dbResult2 = bll.GetSetoffToolList(dbResult1.SetoffEventID);

            if (dbResult2 != null)
            {
                result.List = DataTableToObject.ConvertToList <GetExtendInfo>(dbResult2.Tables[0]);
            }
            foreach (var m in result.List)
            {
                var tmpD1 = new DateTime();
                if (DateTime.TryParse(m.BeginData, out tmpD1))
                {
                    m.BeginData = Convert.ToDateTime(m.BeginData).ToString("yyyy-MM-dd");
                }
                if (DateTime.TryParse(m.EndData, out tmpD1))
                {
                    m.EndData = Convert.ToDateTime(m.EndData).ToString("yyyy-MM-dd");
                }
            }
            return(result);
        }
    }
Ejemplo n.º 3
0
        protected override EmptyResponseData ProcessRequest(DTO.Base.APIRequest <SetOffActionRP> pRequest)
        {
            var rd   = new EmptyResponseData();
            var para = pRequest.Parameters;
            var loggingSessionInfo      = new SessionManager().CurrentUserLoginInfo;
            var SetoffEventBll          = new SetoffEventBLL(loggingSessionInfo);
            var IincentiveRuleBll       = new IincentiveRuleBLL(loggingSessionInfo);
            var ObjectImagesBll         = new ObjectImagesBLL(loggingSessionInfo);
            var SetoffToolsBll          = new SetoffToolsBLL(loggingSessionInfo);
            var SetoffPosterBll         = new SetoffPosterBLL(loggingSessionInfo);
            var CustomerBasicSettingBll = new CustomerBasicSettingBLL(loggingSessionInfo);
            //
            var    pTran       = SetoffEventBll.GetTran();
            string _CustomerId = loggingSessionInfo.ClientID;

            if (para.SetOffActionList.Count > 0)
            {
                //using (pTran.Connection)
                //{
                try
                {
                    foreach (var item in para.SetOffActionList)
                    {
                        List <CustomerBasicSettingEntity> settingList = new List <CustomerBasicSettingEntity>();  //基础配置数据

                        //获取已发布的集客行动
                        var SetoffEvenResult = SetoffEventBll.QueryByEntity(new SetoffEventEntity()
                        {
                            SetoffType = item.SetoffType, Status = "10", CustomerId = loggingSessionInfo.ClientID
                        }, null).ToList();
                        if (SetoffEvenResult.Count > 1)
                        {
                            throw new APIException("数据异常,只能有一种集客行动!")
                                  {
                                      ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                  }
                        }
                        ;

                        if (SetoffEvenResult.Count > 0)
                        {
                            var Result   = SetoffEvenResult.First();  //集客行动
                            var RuleData = IincentiveRuleBll.QueryByEntity(new IincentiveRuleEntity()
                            {
                                SetoffEventID = Result.SetoffEventID, CustomerId = loggingSessionInfo.ClientID
                            }, null).FirstOrDefault();
                            if (RuleData == null)
                            {
                                throw new APIException("数据异常,找不到奖励规则!")
                                      {
                                          ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                      }
                            }
                            ;
                            //判断奖励是否变动
                            if (item.SetoffRegAwardType != RuleData.SetoffRegAwardType ||
                                item.SetoffRegPrize != RuleData.SetoffRegPrize || item.SetoffOrderPer != RuleData.SetoffOrderPer ||
                                item.SetoffOrderTimers != RuleData.SetoffOrderTimers || item.IsEnabled != Convert.ToInt32(RuleData.Status))
                            {
                                //原集客行动状态设置为失效
                                SetoffEventBll.SetFailStatus(item.SetoffType, loggingSessionInfo.ClientID);

                                #region 规则变动,重新新建集客行动
                                //集客行动
                                //集客行动
                                var SetoffEvenData = new SetoffEventEntity();    //集客行动
                                SetoffEvenData.SetoffEventID = System.Guid.NewGuid();
                                SetoffEvenData.SetoffType    = item.SetoffType;
                                SetoffEvenData.Status        = "10";
                                SetoffEvenData.CustomerId    = _CustomerId;
                                SetoffEventBll.Create(SetoffEvenData);               //

                                var IincentiveRuleData = new IincentiveRuleEntity(); //奖励规则
                                IincentiveRuleData.IincentiveRuleID   = System.Guid.NewGuid();
                                IincentiveRuleData.SetoffEventID      = SetoffEvenData.SetoffEventID;
                                IincentiveRuleData.SetoffType         = item.SetoffType;
                                IincentiveRuleData.ApplyUnit          = 0;
                                IincentiveRuleData.SetoffRegAwardType = item.SetoffRegAwardType;
                                IincentiveRuleData.SetoffRegPrize     = item.SetoffRegPrize;
                                IincentiveRuleData.SetoffOrderPer     = item.SetoffOrderPer;
                                IincentiveRuleData.SetoffOrderTimers  = item.SetoffOrderTimers;
                                IincentiveRuleData.Status             = item.IsEnabled.ToString();
                                IincentiveRuleData.CustomerId         = _CustomerId;
                                IincentiveRuleBll.Create(IincentiveRuleData);    //

                                #region 新增集客海报、海报集客工具关系
                                foreach (var PosterItem in item.SetoffPosterList)
                                {
                                    //图片表
                                    var ObjectImageData = new ObjectImagesEntity();
                                    ObjectImageData.ImageId     = System.Guid.NewGuid().ToString("N");
                                    ObjectImageData.ImageURL    = PosterItem.ImageUrl;
                                    ObjectImageData.Description = "集客海报";
                                    ObjectImageData.CustomerId  = _CustomerId;
                                    ObjectImagesBll.Create(ObjectImageData);    //
                                    //集客海报
                                    var SetoffPosterData = new SetoffPosterEntity();
                                    SetoffPosterData.SetoffPosterID = System.Guid.NewGuid();
                                    SetoffPosterData.Name           = PosterItem.Name;
                                    SetoffPosterData.Desc           = "集客海报";
                                    SetoffPosterData.ImageId        = ObjectImageData.ImageId;
                                    SetoffPosterData.Status         = "10";
                                    SetoffPosterData.CustomerId     = _CustomerId;
                                    SetoffPosterBll.Create(SetoffPosterData);

                                    //海报工具关系
                                    var SetoffToolsData = new SetoffToolsEntity();
                                    SetoffToolsData.SetoffToolID  = System.Guid.NewGuid();
                                    SetoffToolsData.SetoffEventID = SetoffEvenData.SetoffEventID;
                                    SetoffToolsData.ToolType      = "SetoffPoster";
                                    SetoffToolsData.ObjectId      = SetoffPosterData.SetoffPosterID.ToString();
                                    SetoffToolsData.Status        = "10";
                                    SetoffToolsData.CustomerId    = _CustomerId;
                                    SetoffToolsBll.Create(SetoffToolsData);    //
                                }
                                #endregion

                                #region 新增集客工具关系
                                foreach (var ToolsItem in item.SetoffTools)
                                {
                                    //判断是否添加重复集客工具
                                    bool Flag = SetoffEventBll.IsToolsRepeat(SetoffEvenData.SetoffEventID.ToString(), ToolsItem.ObjectId);
                                    if (Flag)
                                    {
                                        throw new APIException("集客行动不能添加相同的集客工具!")
                                              {
                                                  ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                              }
                                    }
                                    ;

                                    var SetoffToolsData = new SetoffToolsEntity();
                                    SetoffToolsData.SetoffToolID  = System.Guid.NewGuid();
                                    SetoffToolsData.SetoffEventID = SetoffEvenData.SetoffEventID;
                                    SetoffToolsData.ToolType      = ToolsItem.ToolType;
                                    SetoffToolsData.ObjectId      = ToolsItem.ObjectId;
                                    SetoffToolsData.Status        = "10";
                                    SetoffToolsData.CustomerId    = _CustomerId;
                                    SetoffToolsBll.Create(SetoffToolsData);    //
                                }
                                #endregion

                                #endregion

                                #region 更新配置奖励系数
                                //集客销售订单分润配置
                                //var SettingData = CustomerBasicSettingBll.QueryByEntity(new CustomerBasicSettingEntity() { SettingCode = "GetVipUserOrderPer", CustomerID = CurrentUserInfo.ClientID, IsDelete = 0 }, null).FirstOrDefault();
                                //if (SettingData != null)
                                //{
                                //    SettingData.SettingValue = IincentiveRuleData.SetoffOrderPer.ToString();
                                //    CustomerBasicSettingBll.Update(SettingData);
                                //}
                                if (IincentiveRuleData.SetoffType == 2)
                                {
                                    settingList.Add(new CustomerBasicSettingEntity()
                                    {
                                        SettingCode  = "GetVipUserOrderPer",
                                        SettingValue = (IincentiveRuleData.SetoffOrderPer ?? 0).ToString()
                                    });
                                }
                                if (IincentiveRuleData.SetoffRegAwardType == 2)
                                {
                                    settingList.Add(new CustomerBasicSettingEntity()
                                    {
                                        SettingCode  = "InvitePartnersPoints",
                                        SettingValue = (IincentiveRuleData.SetoffRegPrize ?? 0).ToString()
                                    });
                                }
                                CustomerBasicSettingBll.SaveCustomerBasicInfo(loggingSessionInfo.ClientID, settingList);
                                //集客注册奖励配置
                                #endregion
                            }
                            else
                            {
                                #region 新增集客海报、海报集客工具关系
                                foreach (var PosterItem in item.SetoffPosterList)
                                {
                                    //图片表
                                    var ObjectImageData = new ObjectImagesEntity();
                                    ObjectImageData.ImageId     = System.Guid.NewGuid().ToString("N");
                                    ObjectImageData.ImageURL    = PosterItem.ImageUrl;
                                    ObjectImageData.Description = "集客海报";
                                    ObjectImageData.CustomerId  = _CustomerId;
                                    ObjectImagesBll.Create(ObjectImageData);    //
                                    //集客海报
                                    var SetoffPosterData = new SetoffPosterEntity();
                                    SetoffPosterData.SetoffPosterID = System.Guid.NewGuid();
                                    SetoffPosterData.Name           = PosterItem.Name;
                                    SetoffPosterData.Desc           = "集客海报";
                                    SetoffPosterData.ImageId        = ObjectImageData.ImageId;
                                    SetoffPosterData.Status         = "10";
                                    SetoffPosterData.CustomerId     = _CustomerId;
                                    SetoffPosterBll.Create(SetoffPosterData);

                                    //海报工具关系
                                    var SetoffToolsData = new SetoffToolsEntity();
                                    SetoffToolsData.SetoffToolID  = System.Guid.NewGuid();
                                    SetoffToolsData.SetoffEventID = Result.SetoffEventID;
                                    SetoffToolsData.ToolType      = "SetoffPoster";
                                    SetoffToolsData.ObjectId      = SetoffPosterData.SetoffPosterID.ToString();
                                    SetoffToolsData.Status        = "10";
                                    SetoffToolsData.CustomerId    = _CustomerId;
                                    SetoffToolsBll.Create(SetoffToolsData);    //
                                }
                                #endregion

                                #region 新增集客工具关系
                                foreach (var ToolsItem in item.SetoffTools)
                                {
                                    //
                                    if (Result == null)
                                    {
                                        throw new APIException("数据异常,未找到集客行动!")
                                              {
                                                  ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                              }
                                    }
                                    ;
                                    //判断是否添加重复集客工具
                                    bool Flag = SetoffEventBll.IsToolsRepeat(Result.SetoffEventID.ToString(), ToolsItem.ObjectId);
                                    if (Flag)
                                    {
                                        throw new APIException("集客行动不能添加相同的集客工具!")
                                              {
                                                  ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                              }
                                    }
                                    ;

                                    var SetoffToolsData = new SetoffToolsEntity();
                                    SetoffToolsData.SetoffToolID  = System.Guid.NewGuid();
                                    SetoffToolsData.SetoffEventID = Result.SetoffEventID;
                                    SetoffToolsData.ToolType      = ToolsItem.ToolType;
                                    SetoffToolsData.ObjectId      = ToolsItem.ObjectId;
                                    SetoffToolsData.Status        = "10";
                                    SetoffToolsData.CustomerId    = _CustomerId;
                                    SetoffToolsBll.Create(SetoffToolsData);    //
                                }
                                #endregion
                            }
                        }
                        else
                        {
                            //原集客行动状态设置为失效
                            SetoffEventBll.SetFailStatus(item.SetoffType, loggingSessionInfo.ClientID);

                            #region 新建集客行动
                            //集客行动
                            var SetoffEvenData = new SetoffEventEntity();    //集客行动
                            SetoffEvenData.SetoffEventID = System.Guid.NewGuid();
                            SetoffEvenData.SetoffType    = item.SetoffType;
                            SetoffEvenData.Status        = "10";
                            SetoffEvenData.CustomerId    = _CustomerId;
                            SetoffEventBll.Create(SetoffEvenData);               //

                            var IincentiveRuleData = new IincentiveRuleEntity(); //奖励规则
                            IincentiveRuleData.IincentiveRuleID   = System.Guid.NewGuid();
                            IincentiveRuleData.SetoffEventID      = SetoffEvenData.SetoffEventID;
                            IincentiveRuleData.SetoffType         = item.SetoffType;
                            IincentiveRuleData.ApplyUnit          = 0;
                            IincentiveRuleData.SetoffRegAwardType = item.SetoffRegAwardType;
                            IincentiveRuleData.SetoffRegPrize     = item.SetoffRegPrize;
                            IincentiveRuleData.SetoffOrderPer     = item.SetoffOrderPer;
                            IincentiveRuleData.SetoffOrderTimers  = item.SetoffOrderTimers;
                            IincentiveRuleData.Status             = item.IsEnabled.ToString();
                            IincentiveRuleData.CustomerId         = _CustomerId;
                            IincentiveRuleBll.Create(IincentiveRuleData);    //

                            #region 新增集客海报、海报集客工具关系
                            foreach (var PosterItem in item.SetoffPosterList)
                            {
                                //图片表
                                var ObjectImageData = new ObjectImagesEntity();
                                ObjectImageData.ImageId     = System.Guid.NewGuid().ToString("N");
                                ObjectImageData.ImageURL    = PosterItem.ImageUrl;
                                ObjectImageData.Description = "集客海报";
                                ObjectImageData.CustomerId  = _CustomerId;
                                ObjectImagesBll.Create(ObjectImageData);    //
                                //集客海报
                                var SetoffPosterData = new SetoffPosterEntity();
                                SetoffPosterData.SetoffPosterID = System.Guid.NewGuid();
                                SetoffPosterData.Name           = PosterItem.Name;
                                SetoffPosterData.Desc           = "集客海报";
                                SetoffPosterData.ImageId        = ObjectImageData.ImageId;
                                SetoffPosterData.Status         = "10";
                                SetoffPosterData.CustomerId     = _CustomerId;
                                SetoffPosterBll.Create(SetoffPosterData);

                                //海报工具关系
                                var SetoffToolsData = new SetoffToolsEntity();
                                SetoffToolsData.SetoffToolID  = System.Guid.NewGuid();
                                SetoffToolsData.SetoffEventID = SetoffEvenData.SetoffEventID;
                                SetoffToolsData.ToolType      = "SetoffPoster";
                                SetoffToolsData.ObjectId      = SetoffPosterData.SetoffPosterID.ToString();
                                SetoffToolsData.Status        = "10";
                                SetoffToolsData.CustomerId    = _CustomerId;
                                SetoffToolsBll.Create(SetoffToolsData);    //
                            }
                            #endregion

                            #region 新增集客工具关系
                            foreach (var ToolsItem in item.SetoffTools)
                            {
                                //判断是否添加重复集客工具
                                bool Flag = SetoffEventBll.IsToolsRepeat(SetoffEvenData.SetoffEventID.ToString(), ToolsItem.ObjectId);
                                if (Flag)
                                {
                                    throw new APIException("集客行动不能添加相同的集客工具!")
                                          {
                                              ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                          }
                                }
                                ;

                                var SetoffToolsData = new SetoffToolsEntity();
                                SetoffToolsData.SetoffToolID  = System.Guid.NewGuid();
                                SetoffToolsData.SetoffEventID = SetoffEvenData.SetoffEventID;
                                SetoffToolsData.ToolType      = ToolsItem.ToolType;
                                SetoffToolsData.ObjectId      = ToolsItem.ObjectId;
                                SetoffToolsData.Status        = "10";
                                SetoffToolsData.CustomerId    = _CustomerId;
                                SetoffToolsBll.Create(SetoffToolsData);    //
                            }
                            #endregion


                            #endregion


                            #region 更新配置奖励系数

                            if (IincentiveRuleData.SetoffType == 2)
                            {
                                //同步到原CustomerBasicSetting集客销售订单分润配置
                                //var SettingData = CustomerBasicSettingBll.QueryByEntity(new CustomerBasicSettingEntity() { SettingCode = "GetVipUserOrderPer", CustomerID = CurrentUserInfo.ClientID, IsDelete = 0 }, null).FirstOrDefault();
                                //if (SettingData != null)
                                //{
                                //    SettingData.SettingValue = (IincentiveRuleData.SetoffOrderPer ?? 0).ToString();
                                //    CustomerBasicSettingBll.Update(SettingData);
                                //}
                                settingList.Add(new CustomerBasicSettingEntity()
                                {
                                    SettingCode  = "GetVipUserOrderPer",
                                    SettingValue = (IincentiveRuleData.SetoffOrderPer ?? 0).ToString()
                                });
                            }
                            if (IincentiveRuleData.SetoffRegAwardType == 2)
                            {
                                //同步到原CustomerBasicSetting集客销售订单分润配置
                                //var SettingData = CustomerBasicSettingBll.QueryByEntity(new CustomerBasicSettingEntity() { SettingCode = "InvitePartnersPoints", CustomerID = CurrentUserInfo.ClientID, IsDelete = 0 }, null).FirstOrDefault();
                                //if (SettingData != null)
                                //{
                                //    SettingData.SettingValue = (IincentiveRuleData.SetoffRegPrize ?? 0).ToString();
                                //    CustomerBasicSettingBll.Update(SettingData);
                                //}
                                settingList.Add(new CustomerBasicSettingEntity()
                                {
                                    SettingCode  = "InvitePartnersPoints",
                                    SettingValue = (IincentiveRuleData.SetoffRegPrize ?? 0).ToString()
                                });
                            }
                            CustomerBasicSettingBll.SaveCustomerBasicInfo(loggingSessionInfo.ClientID, settingList);
                            #endregion
                        }
                    }
                    //
                    //pTran.Commit();
                }
                catch (APIException ex)
                {
                    //pTran.Rollback();
                    throw ex;
                }
                //}
            }
            return(rd);
        }
Ejemplo n.º 4
0
        protected override EmptyResponseData ProcessRequest(APIRequest <SetExtendRP> pRequest)
        {
            //SessionManager.GetLoggingSessionByCustomerId(pRequest.CustomerID);
            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;

            if (loggingSessionInfo == null)
            {
                throw new APIException("用户未登录")
                      {
                          ErrorCode = ERROR_CODES.INVALID_REQUEST
                      }
            }
            ;
            var bll             = new SetoffEventBLL(this.CurrentUserInfo);
            var objectImagesBll = new ObjectImagesBLL(this.CurrentUserInfo);
            var setoffToolsBll  = new SetoffToolsBLL(this.CurrentUserInfo);
            var setoffPosterBll = new SetoffPosterBLL(this.CurrentUserInfo);
            var setoffEventBll  = new SetoffEventBLL(this.CurrentUserInfo);
            var pTran           = bll.GetTran();

            //获取已发布的集客行动
            var SetoffEvenResult = bll.QueryByEntity(new SetoffEventEntity()
            {
                SetoffType = 3, Status = "10"
            }, null).ToList();

            if (SetoffEvenResult.Count > 1)
            {
                throw new APIException("数据异常,只能一条分销拓展!")
                      {
                          ErrorCode = ERROR_CODES.INVALID_BUSINESS
                      }
            }
            ;
            else if (SetoffEvenResult.Count == 1)
            {
                var Result = SetoffEvenResult.First();

                #region 新增招募海报、海报集客工具关系
                foreach (var PosterItem in pRequest.Parameters.PosterList)
                {
                    //图片表
                    var ObjectImageData = new ObjectImagesEntity();
                    ObjectImageData.ImageId     = System.Guid.NewGuid().ToString("N");
                    ObjectImageData.ImageURL    = PosterItem.ImageUrl;
                    ObjectImageData.Description = "招募海报";
                    ObjectImageData.CustomerId  = loggingSessionInfo.ClientID;

                    objectImagesBll.Create(ObjectImageData);//
                    //招募海报
                    var SetoffPosterData = new SetoffPosterEntity();
                    SetoffPosterData.SetoffPosterID = System.Guid.NewGuid();
                    SetoffPosterData.Name           = PosterItem.Name;
                    SetoffPosterData.Desc           = "招募海报";
                    SetoffPosterData.ImageId        = ObjectImageData.ImageId;
                    SetoffPosterData.Status         = "10";
                    SetoffPosterData.CustomerId     = loggingSessionInfo.ClientID;

                    setoffPosterBll.Create(SetoffPosterData);

                    //海报工具关系
                    var SetoffToolsData = new SetoffToolsEntity();
                    SetoffToolsData.SetoffToolID  = System.Guid.NewGuid();
                    SetoffToolsData.SetoffEventID = Result.SetoffEventID;
                    SetoffToolsData.ToolType      = "SetoffPoster";
                    SetoffToolsData.ObjectId      = SetoffPosterData.SetoffPosterID.ToString();
                    SetoffToolsData.Status        = "10";
                    SetoffToolsData.CustomerId    = loggingSessionInfo.ClientID;

                    setoffToolsBll.Create(SetoffToolsData);//
                }
                #endregion

                #region 新增集客工具关系
                foreach (var ToolsItem in pRequest.Parameters.CommonList)
                {
                    if (Result == null)
                    {
                        throw new APIException("数据异常,未找到集客行动!")
                              {
                                  ErrorCode = ERROR_CODES.INVALID_BUSINESS
                              }
                    }
                    ;
                    //判断是否添加重复集客工具
                    bool Flag = setoffEventBll.IsToolsRepeat(Result.SetoffEventID.ToString(), ToolsItem.ObjectId);
                    if (Flag)
                    {
                        throw new APIException("集客行动不能添加项同的集客工具!")
                              {
                                  ErrorCode = ERROR_CODES.INVALID_BUSINESS
                              }
                    }
                    ;

                    var SetoffToolsData = new SetoffToolsEntity();
                    SetoffToolsData.SetoffToolID  = System.Guid.NewGuid();
                    SetoffToolsData.SetoffEventID = Result.SetoffEventID;
                    SetoffToolsData.ToolType      = ToolsItem.ToolType;
                    SetoffToolsData.ObjectId      = ToolsItem.ObjectId;
                    SetoffToolsData.Status        = "10";
                    SetoffToolsData.CustomerId    = loggingSessionInfo.ClientID;
                    setoffToolsBll.Create(SetoffToolsData);//
                }
                #endregion
            }
            else
            {
                //原集客行动状态设置为失效
                setoffEventBll.SetFailStatus(3);

                #region 新建集客行动
                //集客行动
                var SetoffEvenData = new SetoffEventEntity();//集客行动
                SetoffEvenData.SetoffEventID = System.Guid.NewGuid();
                SetoffEvenData.SetoffType    = 3;
                SetoffEvenData.Status        = "10";
                SetoffEvenData.CustomerId    = loggingSessionInfo.ClientID;
                setoffEventBll.Create(SetoffEvenData);//

                #region 新增集客海报、海报集客工具关系
                foreach (var PosterItem in pRequest.Parameters.PosterList)
                {
                    //图片表
                    var ObjectImageData = new ObjectImagesEntity();
                    ObjectImageData.ImageId     = System.Guid.NewGuid().ToString("N");
                    ObjectImageData.ImageURL    = PosterItem.ImageUrl;
                    ObjectImageData.Description = "招募海报";
                    ObjectImageData.CustomerId  = loggingSessionInfo.ClientID;
                    objectImagesBll.Create(ObjectImageData);//
                    //集客海报
                    var SetoffPosterData = new SetoffPosterEntity();
                    SetoffPosterData.SetoffPosterID = System.Guid.NewGuid();
                    SetoffPosterData.Name           = PosterItem.Name;
                    SetoffPosterData.Desc           = "招募海报";
                    SetoffPosterData.ImageId        = ObjectImageData.ImageId;
                    SetoffPosterData.Status         = "10";
                    SetoffPosterData.CustomerId     = loggingSessionInfo.ClientID;
                    setoffPosterBll.Create(SetoffPosterData);

                    //海报工具关系
                    var SetoffToolsData = new SetoffToolsEntity();
                    SetoffToolsData.SetoffToolID  = System.Guid.NewGuid();
                    SetoffToolsData.SetoffEventID = SetoffEvenData.SetoffEventID;
                    SetoffToolsData.ToolType      = "SetoffPoster";
                    SetoffToolsData.ObjectId      = SetoffPosterData.SetoffPosterID.ToString();
                    SetoffToolsData.Status        = "10";
                    SetoffToolsData.CustomerId    = loggingSessionInfo.ClientID;
                    setoffToolsBll.Create(SetoffToolsData);//
                }
                #endregion

                #region 新增集客工具关系
                foreach (var ToolsItem in pRequest.Parameters.CommonList)
                {
                    //判断是否添加重复集客工具
                    bool Flag = setoffEventBll.IsToolsRepeat(SetoffEvenData.SetoffEventID.ToString(), ToolsItem.ObjectId);
                    if (Flag)
                    {
                        throw new APIException("集客行动不能添加相同的集客工具!")
                              {
                                  ErrorCode = ERROR_CODES.INVALID_BUSINESS
                              }
                    }
                    ;

                    var SetoffToolsData = new SetoffToolsEntity();
                    SetoffToolsData.SetoffToolID  = System.Guid.NewGuid();
                    SetoffToolsData.SetoffEventID = SetoffEvenData.SetoffEventID;
                    SetoffToolsData.ToolType      = ToolsItem.ToolType;
                    SetoffToolsData.ObjectId      = ToolsItem.ObjectId;
                    SetoffToolsData.Status        = "10";
                    SetoffToolsData.CustomerId    = loggingSessionInfo.ClientID;
                    setoffToolsBll.Create(SetoffToolsData);//
                }
                #endregion


                #endregion
            }
            return(new EmptyResponseData());
        }
    }
}
Ejemplo n.º 5
0
        protected override GetSetOffActionRD ProcessRequest(DTO.Base.APIRequest <GetSetOffActionRP> pRequest)
        {
            var rd   = new GetSetOffActionRD();
            var para = pRequest.Parameters;
            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;
            var SetoffEventBll     = new SetoffEventBLL(loggingSessionInfo);
            var SetoffToolsBll     = new SetoffToolsBLL(loggingSessionInfo);
            var SetoffPosterBll    = new SetoffPosterBLL(loggingSessionInfo);
            var IincentiveRuleBll  = new IincentiveRuleBLL(loggingSessionInfo);
            //集客行动主数据
            var SetoffEventResult = SetoffEventBll.QueryByEntity(new SetoffEventEntity()
            {
                Status = "10", CustomerId = loggingSessionInfo.ClientID
            }, null).ToList();

            //
            rd.GetSetOffActionInfoList = new List <GetSetOffActionInfo>();
            foreach (var item in SetoffEventResult)
            {
                //规则
                var RuleData = IincentiveRuleBll.QueryByEntity(new IincentiveRuleEntity()
                {
                    SetoffEventID = item.SetoffEventID, CustomerId = loggingSessionInfo.ClientID
                }, null).FirstOrDefault();

                var DataInfo = new GetSetOffActionInfo();
                DataInfo.SetoffEventID = item.SetoffEventID.ToString();
                DataInfo.SetoffType    = Convert.ToInt32(item.SetoffType);
                if (RuleData != null)
                {
                    DataInfo.SetoffRegAwardType   = RuleData.SetoffRegAwardType.Value;
                    DataInfo.SetoffRegPrize       = RuleData.SetoffRegPrize ?? 0;
                    DataInfo.SetoffOrderPer       = RuleData.SetoffOrderPer ?? 0;
                    DataInfo.SetoffOrderTimers    = RuleData.SetoffOrderTimers ?? 0;
                    DataInfo.IincentiveRuleStatus = Convert.ToInt32(RuleData.Status);
                }
                //集客工具关系
                var ToolsData = SetoffToolsBll.QueryByEntity(new SetoffToolsEntity()
                {
                    SetoffEventID = item.SetoffEventID, Status = "10", CustomerId = loggingSessionInfo.ClientID
                }, null).ToList();
                if (ToolsData != null)
                {
                    var ds = SetoffToolsBll.GetToolsDetails(item.SetoffEventID.ToString());
                    if (ds != null && ds.Tables[0].Rows.Count > 0)
                    {
                        DataInfo.GetSetoffToolsInfoList = new List <GetSetoffToolsInfo>();
                        var dt = ds.Tables[0];
                        foreach (DataRow dr in dt.Rows)
                        {
                            #region 过滤
                            if (dr["ToolType"].ToString().Equals("Coupon"))
                            {
                                if (string.IsNullOrWhiteSpace(dr["Name"].ToString()))
                                {
                                    continue;
                                }

                                if (dr["BeginData"] == DBNull.Value && dr["EndData"] == DBNull.Value)
                                {
                                    if (dr["ServiceLife"] != DBNull.Value)
                                    {
                                        if (Convert.ToInt32(dr["ServiceLife"]) <= 0)
                                        {
                                            continue;
                                        }
                                    }
                                }

                                //if (dr["SurplusCount"] != DBNull.Value)
                                //{
                                //    if (Convert.ToInt32(dr["SurplusCount"]) <= 0)
                                //        continue;
                                //}
                            }
                            #endregion

                            var Data = new GetSetoffToolsInfo();
                            Data.SetoffToolID = dr["SetoffToolID"].ToString();
                            Data.ToolType     = dr["ToolType"].ToString();
                            Data.Name         = dr["Name"].ToString();
                            Data.SurplusCount = Convert.ToInt32(dr["SurplusCount"]);
                            if (dr["ServiceLife"] != DBNull.Value)
                            {
                                Data.ServiceLife = Convert.ToInt32(dr["ServiceLife"]);
                            }
                            if (dr["BeginData"] != DBNull.Value)
                            {
                                Data.BeginData = Convert.ToDateTime(dr["BeginData"]).ToString("yyyy年MM月dd日");
                            }
                            if (dr["EndData"] != DBNull.Value)
                            {
                                Data.EndData = Convert.ToDateTime(dr["EndData"]).ToString("yyyy年MM月dd日");
                            }
                            if (dr["SetoffPosterUrl"] != DBNull.Value)
                            {
                                Data.SetoffPosterUrl = dr["SetoffPosterUrl"].ToString();
                            }
                            if (dr["ObjectId"] != DBNull.Value)
                            {
                                Data.ObjectId = dr["ObjectId"].ToString();
                            }

                            DataInfo.GetSetoffToolsInfoList.Add(Data);//
                        }
                    }
                }
                //
                rd.GetSetOffActionInfoList.Add(DataInfo);
            }


            return(rd);
        }
Ejemplo n.º 6
0
        protected override GetSetoffToolsRD ProcessRequest(APIRequest <GetSetoffToolsRP> pRequest)
        {
            SetoffToolsBLL    setOffToolsBLL   = new SetoffToolsBLL(CurrentUserInfo);
            IincentiveRuleBLL incentiveRuleBLL = new IincentiveRuleBLL(CurrentUserInfo);
            var para = pRequest.Parameters;
            var setoffToolsEntity = new SetoffToolsEntity();

            if (para.ToolsType != null)
            {
                setoffToolsEntity.ToolType = para.ToolsType.ToString();
            }
            GetSetoffToolsRD setoffToolsRD = new GetSetoffToolsRD();
            var setoffEventBLL             = new SetoffEventBLL(CurrentUserInfo);
            //获取集客活动信息
            string NoticePlatType = string.Empty;

            if (string.IsNullOrEmpty(para.ApplicationType))
            {
                para.ApplicationType = "0";
            }
            else
            {
                switch (para.ApplicationType)
                {
                case "1":
                    NoticePlatType = "1";
                    break;

                case "2":
                    NoticePlatType = "2";
                    break;

                case "3":
                    NoticePlatType = "2";    //传3需要进行平台类型处理 等于3时获取员工集客行动平台
                    break;

                case "4":
                    NoticePlatType = "3";    //传4需要进行平台类型处理 等于4时获取超级分销商推广行动平台
                    break;
                }
            }
            var setOffEventInfo = setoffEventBLL.QueryByEntity(new SetoffEventEntity()
            {
                Status = "10", IsDelete = 0, SetoffType = Convert.ToInt32(NoticePlatType), CustomerId = CurrentUserInfo.CurrentUser.customer_id
            }, null);
            int     SetoffToolsTotalCount = 0;
            DataSet SetoffToolsList       = null;

            if (setOffEventInfo.Length != 0)
            {
                //获取集客活动工具数量
                SetoffToolsTotalCount = setOffToolsBLL.GeSetoffToolsListCount(setoffToolsEntity, para.ApplicationType, para.BeShareVipID, setOffEventInfo[0].SetoffEventID.ToString());
                //获取集客活动工具列表
                SetoffToolsList = setOffToolsBLL.GetSetoffToolsList(setoffToolsEntity, para.ApplicationType, para.BeShareVipID, para.PageIndex, para.PageSize, setOffEventInfo[0].SetoffEventID.ToString());
            }

            //获取集客奖励信息
            var IncentiveRule = incentiveRuleBLL.GetIncentiveRule(para.ApplicationType);

            setoffToolsRD.TotalCount = SetoffToolsTotalCount;
            int remainder = 0;

            if (para.PageSize == 0)
            {
                para.PageSize = 10;
            }
            setoffToolsRD.TotalPageCount = Math.DivRem(SetoffToolsTotalCount, para.PageSize, out remainder);
            if (remainder > 0)
            {
                setoffToolsRD.TotalPageCount++;
            }
            string strHost = ConfigurationManager.AppSettings["website_url"].Trim();

            if (SetoffToolsList != null && SetoffToolsList.Tables[0].Rows.Count > 0)
            {
                //为优惠券和海报添加图片路径
                SetoffToolsList.Tables[0].Columns.Add("ImageUrl", typeof(string));
                var CustomerBasicSettingBLL = new CustomerBasicSettingBLL(CurrentUserInfo);
                var CustomerBasicInfo       = CustomerBasicSettingBLL.QueryByEntity(new CustomerBasicSettingEntity()
                {
                    CustomerID = CurrentUserInfo.CurrentUser.customer_id, SettingCode = "SetoffPosterWeChatDefaultPhoto"
                }, null).FirstOrDefault();
                var    setOffPosterBLL  = new SetoffPosterBLL(CurrentUserInfo);
                var    ObjectImagesBLL  = new ObjectImagesBLL(CurrentUserInfo);
                var    T_CTW_LEventBLL  = new T_CTW_LEventBLL(CurrentUserInfo);
                var    wMaterialTextBLL = new WMaterialTextBLL(CurrentUserInfo);
                string SourceId         = string.Empty;
                if (!string.IsNullOrEmpty(para.ApplicationType))
                {
                    switch (para.ApplicationType)
                    {
                    case "1":
                        SourceId = "3";    //会员集客
                        break;

                    case "2":
                        SourceId = "1";    //APP会员服务;
                        break;

                    case "3":
                        SourceId = "3";    //APP会员服务;
                        break;

                    case "4":
                        SourceId = "4";    //超级分销商;
                        break;
                    }
                }
                string goUrl       = string.Empty;
                string goCouponUrl = strHost + "/HtmlApps/html/common/GatheringClient/Coupon.html?customerId=";                           //拼优惠券详细页面
                string goPosterUrl = strHost + "/HtmlApps/html/common/GatheringClient/poster.html?customerId=";                           //拼海报详细页面
                string strOAuthUrl = strHost + "/WXOAuth/AuthUniversal.aspx?scope=snsapi_userinfo&SourceId=" + SourceId + "&customerId="; //拼OAuth认证
                foreach (DataRow dr in SetoffToolsList.Tables[0].Rows)
                {
                    if (dr["ToolType"].ToString() == "Coupon")
                    {
                        if (CustomerBasicInfo != null)
                        {
                            dr["ImageUrl"] = CustomerBasicInfo.SettingValue;
                        }
                        if (para.ApplicationType == "4")
                        {
                            goUrl     = goCouponUrl + CurrentUserInfo.CurrentUser.customer_id + "&pushType=IsSuperRetail&ShareVipId=" + CurrentUserInfo.UserID + "&couponId=" + dr["ObjectId"] + "&version=";
                            dr["URL"] = strOAuthUrl + CurrentUserInfo.CurrentUser.customer_id + "&objectType=Coupon&ObjectID=" + dr["ObjectId"] + "&ShareVipID=" + CurrentUserInfo.UserID + "&goUrl=" + System.Web.HttpUtility.UrlEncode(goUrl);
                        }
                        else
                        {
                            //Oauth认证加商品详情页
                            goUrl     = goCouponUrl + CurrentUserInfo.CurrentUser.customer_id + "&ShareVipId=" + CurrentUserInfo.UserID + "&couponId=" + dr["ObjectId"] + "&version=";
                            dr["URL"] = strOAuthUrl + CurrentUserInfo.CurrentUser.customer_id + "&ShareVipID=" + CurrentUserInfo.UserID + "&goUrl=" + System.Web.HttpUtility.UrlEncode(goUrl);
                        }
                    }
                    if (dr["ToolType"].ToString() == "SetoffPoster")
                    {
                        var setOffPosterInfo = setOffPosterBLL.QueryByEntity(new SetoffPosterEntity()
                        {
                            SetoffPosterID = new Guid(dr["ObjectId"].ToString())
                        }, null).FirstOrDefault();
                        if (setOffPosterInfo != null)
                        {
                            var ObjectImgsInfo = ObjectImagesBLL.QueryByEntity(new ObjectImagesEntity()
                            {
                                ImageId = setOffPosterInfo.ImageId
                            }, null).FirstOrDefault();
                            if (ObjectImgsInfo != null)
                            {
                                dr["ImageUrl"] = ObjectImgsInfo.ImageURL;
                            }
                        }
                        if (para.ApplicationType == "4")
                        {
                            goUrl     = goPosterUrl + CurrentUserInfo.CurrentUser.customer_id + "&pushType=IsSuperRetail&ShareVipId=" + CurrentUserInfo.UserID + "&ObjectId=" + dr["ObjectId"] + "&version=";
                            dr["URL"] = strOAuthUrl + CurrentUserInfo.CurrentUser.customer_id + "&objectType=SetoffPoster&ObjectID=" + dr["ObjectId"] + "&ShareVipID=" + CurrentUserInfo.UserID + "&goUrl=" + System.Web.HttpUtility.UrlEncode(goUrl);
                        }
                        else
                        {
                            //Oauth认证加海报详情页
                            goUrl     = goPosterUrl + CurrentUserInfo.CurrentUser.customer_id + "&ShareVipId=" + CurrentUserInfo.UserID + "&ObjectId=" + dr["ObjectId"] + "&version=";
                            dr["URL"] = strOAuthUrl + CurrentUserInfo.CurrentUser.customer_id + "&ShareVipID=" + CurrentUserInfo.UserID + "&goUrl=" + System.Web.HttpUtility.UrlEncode(goUrl);
                        }
                    }
                    if (dr["ToolType"].ToString() == "CTW")
                    {
                        var T_CTW_LEventInfo = T_CTW_LEventBLL.QueryByEntity(new T_CTW_LEventEntity()
                        {
                            CTWEventId = new Guid(dr["ObjectId"].ToString())
                        }, null).FirstOrDefault();
                        if (T_CTW_LEventInfo != null)
                        {
                            dr["ImageUrl"] = T_CTW_LEventInfo.ImageURL;
                        }
                        if (para.ApplicationType == "4")
                        {
                            goUrl     = dr["URL"].ToString() + "&pushType=IsSuperRetail&ShareVipId=" + CurrentUserInfo.UserID + "&ObjectId=" + dr["ObjectId"] + "&version=";
                            dr["URL"] = strOAuthUrl + CurrentUserInfo.CurrentUser.customer_id + "&objectType=CTW&ObjectID=" + dr["ObjectId"] + "&ShareVipID=" + CurrentUserInfo.UserID + "&goUrl=" + System.Web.HttpUtility.UrlEncode(goUrl);
                        }
                        else
                        {
                            goUrl     = dr["URL"].ToString() + "&ShareVipId=" + CurrentUserInfo.UserID + "&ObjectId=" + dr["ObjectId"] + "&version=";
                            dr["URL"] = strOAuthUrl + CurrentUserInfo.CurrentUser.customer_id + "&ShareVipID=" + CurrentUserInfo.UserID + "&goUrl=" + System.Web.HttpUtility.UrlEncode(goUrl);
                        }
                    }
                    if (dr["ToolType"].ToString() == "Material")//如果是图文素材
                    {
                        var wMaterialTextInfo = wMaterialTextBLL.QueryByEntity(new WMaterialTextEntity()
                        {
                            TextId = dr["ObjectId"].ToString()
                        }, null).FirstOrDefault();
                        if (wMaterialTextInfo != null)
                        {
                            dr["ImageUrl"] = wMaterialTextInfo.CoverImageUrl;
                        }
                        goUrl     = dr["URL"].ToString();
                        dr["URL"] = strOAuthUrl + CurrentUserInfo.CurrentUser.customer_id + "&objectType=Material&ObjectID=" + dr["ObjectId"] + "&ShareVipID=" + CurrentUserInfo.UserID + "&goUrl=" + System.Web.HttpUtility.UrlEncode(goUrl);
                    }
                }
                setoffToolsRD.SetOffToolsList = DataTableToObject.ConvertToList <SetOffToolsInfo>(SetoffToolsList.Tables[0]);
            }
            if (IncentiveRule != null && IncentiveRule.Tables[0].Rows.Count > 0)
            {
                setoffToolsRD.SetoffRegAwardType = Convert.ToInt32(IncentiveRule.Tables[0].Rows[0]["SetoffRegAwardType"].ToString()); //激励类型
                setoffToolsRD.SetoffRegPrize     = IncentiveRule.Tables[0].Rows[0]["SetoffRegPrize"].ToString();                      //激励值
                setoffToolsRD.SetoffOrderPer     = Convert.ToDecimal(IncentiveRule.Tables[0].Rows[0]["SetoffOrderPer"].ToString());   //订单成交提成比例
            }
            return(setoffToolsRD);
        }
Ejemplo n.º 7
0
        const int ERROR_LOAD_WRONG  = 302; //打开出错
        protected override GetSetoffToolDetailRD ProcessRequest(APIRequest <GetSetoffToolDetailRP> pRequest)
        {
            string content    = string.Empty;
            string customerId = string.Empty;
            GetSetoffToolDetailRD setoffToolDetailRD = new GetSetoffToolDetailRD();
            var para = pRequest.Parameters;

            customerId = CurrentUserInfo.CurrentUser.customer_id;
            try
            {
                var    imageUrl              = string.Empty;
                Random ro                    = new Random();
                var    iUp                   = 100000000;
                var    iDown                 = 50000000;
                var    rpVipDCode            = 0;                   //临时二维码
                var    iResult               = ro.Next(iDown, iUp); //随机数
                var    userQrCodeBll         = new WQRCodeManagerBLL(CurrentUserInfo);
                var    imgBll                = new ObjectImagesBLL(CurrentUserInfo);
                var    setOffPosterBLL       = new SetoffPosterBLL(CurrentUserInfo);
                var    SetoffToolUserViewBLL = new SetoffToolUserViewBLL(CurrentUserInfo);
                var    SetoffToolsBll        = new SetoffToolsBLL(CurrentUserInfo);
                var    SetOffPosterInfo      = setOffPosterBLL.QueryByEntity(new SetoffPosterEntity()
                {
                    SetoffPosterID = new Guid(para.ObjectId)
                }, null);                                                                                                                         //获取集客海报信息
                var setoffEventBLL  = new SetoffEventBLL(CurrentUserInfo);
                var setoffEventInfo = setoffEventBLL.QueryByEntity(new SetoffEventEntity()
                {
                    Status = "10", SetoffType = 1, CustomerId = customerId
                }, null);
                //var SetoffToolsInfo = SetoffToolsBll.QueryByEntity(new SetoffToolsEntity() { ObjectId = para.ObjectId, Status = "10", ToolType = para.ToolType, SetoffEventID = setoffEventInfo[0].SetoffEventID }, null);//获取工具信息
                //VipDcode=9生成永久二维码
                if (para.VipDCode == 9)
                {
                    //根据分享人ID和对象ID获取永久二维码信息
                    var userQrCode = userQrCodeBll.QueryByEntity(new WQRCodeManagerEntity()
                    {
                        ObjectId = para.ObjectId
                    }, null);
                    if (userQrCode != null && userQrCode.Length > 0)
                    {
                        if (para.ToolType == "Coupon")//如果类型为优惠券则返回二维码
                        {
                            setoffToolDetailRD.ToolType = para.ToolType;
                        }
                        if (para.ToolType == "SetoffPoster")//如果为集客海报则返回背景图和二维码
                        {
                            if (SetOffPosterInfo != null)
                            {
                                var backImgInfo = imgBll.QueryByEntity(new ObjectImagesEntity()
                                {
                                    ObjectId = SetOffPosterInfo[0].ImageId
                                }, null);
                                setoffToolDetailRD.ToolType   = para.ToolType;
                                setoffToolDetailRD.imageUrl   = userQrCode[0].ImageUrl;
                                setoffToolDetailRD.paraTemp   = userQrCode[0].QRCode;
                                setoffToolDetailRD.backImgUrl = backImgInfo[0].ImageURL;
                            }
                        }
                        setoffToolDetailRD.imageUrl = userQrCode[0].ImageUrl;
                        setoffToolDetailRD.paraTemp = userQrCode[0].QRCode;
                        return(setoffToolDetailRD);
                    }
                    //获取当前二维码 最大值
                    iResult    = new WQRCodeManagerBLL(CurrentUserInfo).GetMaxWQRCod() + 1;
                    rpVipDCode = 1;
                }

                #region 获取微信帐号
                var server = new WApplicationInterfaceBLL(CurrentUserInfo);
                var wxObj  = new WApplicationInterfaceEntity();
                wxObj = server.QueryByEntity(new WApplicationInterfaceEntity {
                    CustomerId = customerId
                }, null).FirstOrDefault();
                if (wxObj == null)
                {
                    throw new APIException("不存在对应的微信帐号.")
                          {
                              ErrorCode = ERROR_NULL_WXOBJ
                          };
                }
                else
                {
                    var commonServer = new CommonBLL();
                    //rpVipDCode 二维码类型  0: 临时二维码  1:永久二维码
                    imageUrl = commonServer.GetQrcodeUrl(wxObj.AppID, wxObj.AppSecret, rpVipDCode.ToString(""), iResult, CurrentUserInfo);//iResult作为场景值ID,临时二维码时为32位整型,永久二维码时只支持1--100000
                    //供本地测试时使用  "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQGN7zoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL1dreENCS1htX0xxQk94SEJ6MktIAAIEUk88VwMECAcAAA==";
                }
                #endregion

                if (para.VipDCode == 9 && !string.IsNullOrEmpty(imageUrl))    //永久二维码
                {
                    #region 创建店员永久二维码匹配表
                    var    userQrTypeBll = new WQRCodeTypeBLL(CurrentUserInfo);
                    string pTypeCode     = string.Empty;
                    if (para.ToolType.ToLower() == "coupon")
                    {
                        pTypeCode = "CouponQrCode";
                    }
                    if (para.ToolType.ToLower() == "setoffposter")
                    {
                        pTypeCode = "SetoffPosterQrCode";
                    }
                    if (para.ToolType.ToLower() == "superretail")
                    {
                        pTypeCode = "SuperRetailQrCode";
                    }
                    var userQrType = userQrTypeBll.QueryByEntity(new WQRCodeTypeEntity()
                    {
                        TypeCode = pTypeCode
                    }, null);                                                                                            //"SuperRetailQrCode=超级分销商二维码"
                    if (userQrType != null && userQrType.Length > 0)
                    {
                        var userQrcodeBll = new WQRCodeManagerBLL(CurrentUserInfo);
                        var userQrCode    = new WQRCodeManagerEntity();
                        userQrCode.QRCode        = iResult.ToString();//记录传过去的二维码场景值
                        userQrCode.QRCodeTypeId  = userQrType[0].QRCodeTypeId;
                        userQrCode.IsUse         = 1;
                        userQrCode.CustomerId    = customerId;
                        userQrCode.ImageUrl      = imageUrl;
                        userQrCode.ApplicationId = wxObj.ApplicationId;
                        //objectId 为集客海报ID或者优惠券ID
                        userQrCode.ObjectId = para.ObjectId;
                        userQrcodeBll.Create(userQrCode);
                    }
                    #endregion
                }
                else
                {
                    #region 创建临时匹配表
                    VipDCodeBLL    vipDCodeServer = new VipDCodeBLL(CurrentUserInfo);
                    VipDCodeEntity info           = new VipDCodeEntity();
                    info.DCodeId    = iResult.ToString();//记录传过去的二维码场景值****(保存到数据库时没加空格)
                    info.CustomerId = customerId;
                    VipBLL vipBll = new VipBLL(CurrentUserInfo);
                    info.UnitId      = "";
                    info.Status      = "0";
                    info.IsReturn    = 0;
                    info.DCodeType   = para.VipDCode;
                    info.CreateBy    = CurrentUserInfo.UserID;
                    info.ImageUrl    = imageUrl;
                    info.VipId       = "";
                    info.ObjectId    = para.ObjectId;   //工具对象ID(优惠券或集客海报对象ID)
                    info.OwnerUserId = para.ShareVipId; //分享人ID
                    vipDCodeServer.Create(info);
                    #endregion
                }
                int flag         = 0;//定义是否需要新增打开数据,0=不需要新增,1=需要新增
                var UserViewData = SetoffToolUserViewBLL.QueryByEntity(new SetoffToolUserViewEntity()
                {
                    ObjectId = para.ObjectId, UserID = CurrentUserInfo.UserID
                }, null);
                if (!string.IsNullOrEmpty(para.SetoffToolID))
                {
                    UserViewData = SetoffToolUserViewBLL.QueryByEntity(new SetoffToolUserViewEntity()
                    {
                        ObjectId = para.ObjectId, UserID = CurrentUserInfo.UserID, SetoffToolID = new Guid(para.SetoffToolID)
                    }, null);
                }
                if (UserViewData.Length == 0 && !string.IsNullOrEmpty(para.SetoffToolID) && para.PlatformType != "3")
                {
                    flag = 1;                  //当为1时进行增加打开工具记录
                }
                if (para.ToolType == "Coupon") //如果类型为优惠券则返回二维码
                {
                    #region 用户领优惠券过程
                    var CouponTypeBLL       = new CouponTypeBLL(CurrentUserInfo);
                    var couponBLL           = new CouponBLL(CurrentUserInfo);
                    var CouponSourceBLL     = new CouponSourceBLL(CurrentUserInfo);
                    var VipCouponMappingBLL = new VipCouponMappingBLL(CurrentUserInfo);

                    int?SurplusCount   = 0; //先获得剩余张数
                    int hasCouponCount = 0; //已领张数 如果>0表示已领取过就不让他领,=0就领取
                    var couponTypeInfo = CouponTypeBLL.QueryByEntity(new CouponTypeEntity()
                    {
                        CouponTypeID = new Guid(para.ObjectId)
                    }, null);

                    if (couponTypeInfo != null)
                    {
                        string couponIsVocher = string.Empty;
                        if (couponTypeInfo[0].IsVoucher == null)
                        {
                            SurplusCount = couponTypeInfo[0].IssuedQty - 0;
                        }
                        else
                        {
                            SurplusCount = couponTypeInfo[0].IssuedQty - couponTypeInfo[0].IsVoucher;
                        }
                        if (SurplusCount != 0 && para.ShareVipId != null && para.ShareVipId != "")// 通过列表进详细自己不能领券
                        {
                            //当剩余数量不为0时,进行下一步判断是否存在已领券的信息
                            hasCouponCount = VipCouponMappingBLL.GetReceiveCouponCount(CurrentUserInfo.UserID, para.ObjectId, "Share");
                            if (hasCouponCount == 0)//如果等于零,开始领券流程
                            {
                                //关联优惠券让用户领券
                                var redisVipMappingCouponBLL = new JIT.CPOS.BS.BLL.RedisOperationBLL.Coupon.RedisVipMappingCouponBLL();
                                try
                                {
                                    //执行领取操作
                                    redisVipMappingCouponBLL.InsertDataBase(CurrentUserInfo.CurrentUser.customer_id, CurrentUserInfo.UserID, para.SetoffToolID, "Share", new CC_Coupon()
                                    {
                                        CustomerId   = CurrentUserInfo.CurrentUser.customer_id,
                                        CouponTypeId = para.ObjectId
                                    });
                                    setoffToolDetailRD.Name = couponTypeInfo[0].CouponTypeName + ",已飞入您的账户";
                                }
                                catch (Exception ex)
                                {
                                    setoffToolDetailRD.Name = "很遗憾此次优惠券" + couponTypeInfo[0].CouponTypeName + "的分享已失效,下次请及时领取.";
                                }
                            }
                        }
                        else
                        {
                            //如果剩余数量为0时,给出已领完提示
                            if (para.ShareVipId != null && para.ShareVipId != "")
                            {
                                setoffToolDetailRD.Name = "很遗憾您来迟一步优惠券" + couponTypeInfo[0].CouponTypeName + "已被领完.";
                                //throw new APIException("很遗憾您来迟一步券已被领完.") { ErrorCode = ERROR_LOAD_WRONG };
                            }
                        }
                        if (setoffToolDetailRD.Name == null || setoffToolDetailRD.Name == "")
                        {
                            setoffToolDetailRD.Name = couponTypeInfo[0].CouponTypeName;
                        }
                        setoffToolDetailRD.StartTime = couponTypeInfo[0].BeginTime == null?Convert.ToDateTime(couponTypeInfo[0].CreateTime).ToString("yyyy-MM-dd") : Convert.ToDateTime(couponTypeInfo[0].BeginTime).ToString("yyyy-MM-dd");

                        setoffToolDetailRD.EndTime     = couponTypeInfo[0].EndTime == null ? "" : Convert.ToDateTime(couponTypeInfo[0].EndTime).ToString("yyyy-MM-dd");
                        setoffToolDetailRD.ServiceLife = couponTypeInfo[0].ServiceLife.ToString();
                    }
                    #endregion
                    setoffToolDetailRD.ToolType = para.ToolType;                     //返回工具类别
                    setoffToolDetailRD.imageUrl = imageUrl;                          //返回临时二维码
                    setoffToolDetailRD.paraTemp = iResult.ToString().Insert(4, " "); //加空格,加空格有什么作用?
                }
                if (para.ToolType == "SetoffPoster")                                 //如果为集客海报则返回背景图和二维码
                {
                    if (SetOffPosterInfo != null && SetOffPosterInfo.Length > 0)
                    {
                        var backImgInfo = imgBll.QueryByEntity(new ObjectImagesEntity()
                        {
                            ImageId = SetOffPosterInfo[0].ImageId
                        }, null);
                        setoffToolDetailRD.ToolType   = para.ToolType;
                        setoffToolDetailRD.imageUrl   = imageUrl;
                        setoffToolDetailRD.paraTemp   = iResult.ToString().Insert(4, " "); //加空格,加空格有什么作用?
                        setoffToolDetailRD.backImgUrl = backImgInfo[0].ImageURL;
                        setoffToolDetailRD.Name       = SetOffPosterInfo[0].Name;
                    }
                }
                if (flag == 1)//当为1是需进行打开工具的记录
                {
                    var SetoffToolUserView = new SetoffToolUserViewEntity();
                    SetoffToolUserView.SetoffToolUserViewID = Guid.NewGuid();
                    SetoffToolUserView.SetoffEventID        = setoffEventInfo[0].SetoffEventID;
                    SetoffToolUserView.SetoffToolID         = new Guid(para.SetoffToolID);
                    SetoffToolUserView.ToolType             = para.ToolType;
                    SetoffToolUserView.ObjectId             = para.ObjectId;
                    SetoffToolUserView.NoticePlatformType   = 1;
                    SetoffToolUserView.UserID         = CurrentUserInfo.UserID;
                    SetoffToolUserView.IsOpen         = 1;
                    SetoffToolUserView.OpenTime       = System.DateTime.Now;
                    SetoffToolUserView.CustomerId     = customerId;
                    SetoffToolUserView.CreateTime     = System.DateTime.Now;
                    SetoffToolUserView.CreateBy       = CurrentUserInfo.UserID;
                    SetoffToolUserView.LastUpdateTime = System.DateTime.Now;
                    SetoffToolUserView.LastUpdateBy   = CurrentUserInfo.UserID;
                    SetoffToolUserView.IsDelete       = 0;
                    SetoffToolUserViewBLL.Create(SetoffToolUserView);
                }
            }
            catch (Exception ex)
            {
                throw new APIException(ex.Message)
                      {
                          ErrorCode = ERROR_CODES.DEFAULT_ERROR
                      };
            }
            return(setoffToolDetailRD);
        }
Ejemplo n.º 8
0
        protected override EmptyResponseData ProcessRequest(DTO.Base.APIRequest <SetSalesSettingRP> pRequest)
        {
            var rd   = new EmptyResponseData();
            var para = pRequest.Parameters;
            var loggingSessionInfo      = new SessionManager().CurrentUserLoginInfo;
            var customerBasicSettingBLL = new CustomerBasicSettingBLL(loggingSessionInfo);

            var setoffEventBLL    = new SetoffEventBLL(loggingSessionInfo);    //集客行动业务层
            var iincentiveRuleBLL = new IincentiveRuleBLL(loggingSessionInfo); //集客奖励业务层

            ResponseData res = new ResponseData();
            List <CustomerBasicSettingEntity> list = new List <CustomerBasicSettingEntity>();

            //获取集客行动信息
            var setoffEventList = setoffEventBLL.QueryByEntity(new SetoffEventEntity()
            {
                CustomerId = loggingSessionInfo.ClientID, Status = "10"
            }, null);
            SetoffEventEntity setoffEventUser = setoffEventList.Where(t => t.SetoffType == 2).FirstOrDefault(); //员工集客活动设置
            SetoffEventEntity setoffEventVip  = setoffEventList.Where(t => t.SetoffType == 1).FirstOrDefault(); //会员集客活动设置

            var iincentiveRuleList = iincentiveRuleBLL.QueryByEntity(new IincentiveRuleEntity()
            {
                CustomerId = loggingSessionInfo.ClientID, Status = "10"
            }, null);
            IincentiveRuleEntity iincentiveRuleUser = null; //员工奖励
            IincentiveRuleEntity iincentiveRuleVip  = null; //会员奖励

            //获取员工奖励规则
            if (setoffEventUser != null)
            {
                iincentiveRuleUser = iincentiveRuleList.Where(t => t.SetoffEventID == setoffEventUser.SetoffEventID && t.SetoffType == 2).FirstOrDefault();
            }
            //获取会员奖励规则
            if (setoffEventVip != null)
            {
                iincentiveRuleVip = iincentiveRuleList.Where(t => t.SetoffEventID == setoffEventVip.SetoffEventID && t.SetoffType == 1).FirstOrDefault();
            }

            if (!string.IsNullOrEmpty(para.SocialSalesType.ToString()))
            {
                list.Add(new CustomerBasicSettingEntity()
                {
                    SettingCode  = "SocialSalesType",
                    SettingValue = para.SocialSalesType.ToString()
                });
            }
            if (!string.IsNullOrEmpty(para.EnableEmployeeSales.ToString()))
            {
                list.Add(new CustomerBasicSettingEntity()
                {
                    SettingCode  = "EnableEmployeeSales",
                    SettingValue = para.EnableEmployeeSales.ToString()
                });
            }
            if (!string.IsNullOrEmpty(para.EDistributionPricePer.ToString()))
            {
                list.Add(new CustomerBasicSettingEntity()
                {
                    SettingCode  = "EDistributionPricePer",
                    SettingValue = para.EDistributionPricePer.ToString()
                });
            }
            if (!string.IsNullOrEmpty(para.EOrderCommissionPer.ToString()))
            {
                list.Add(new CustomerBasicSettingEntity()
                {
                    SettingCode  = "EOrderCommissionPer",
                    SettingValue = para.EOrderCommissionPer.ToString()
                });
            }
            if (!string.IsNullOrEmpty(para.EnableVipSales.ToString()))
            {
                list.Add(new CustomerBasicSettingEntity()
                {
                    SettingCode  = "EnableVipSales",
                    SettingValue = para.EnableVipSales.ToString()
                });
            }
            if (!string.IsNullOrEmpty(para.VDistributionPricePer.ToString()))
            {
                list.Add(new CustomerBasicSettingEntity()
                {
                    SettingCode  = "VDistributionPricePer",
                    SettingValue = para.VDistributionPricePer.ToString()
                });
            }
            if (!string.IsNullOrEmpty(para.VOrderCommissionPer.ToString()))
            {
                list.Add(new CustomerBasicSettingEntity()
                {
                    SettingCode  = "VOrderCommissionPer",
                    SettingValue = para.VOrderCommissionPer.ToString()
                });
            }
            if (!string.IsNullOrEmpty(para.GetVipUserOrderPer.ToString()))
            {
                list.Add(new CustomerBasicSettingEntity()
                {
                    SettingCode  = "GetVipUserOrderPer",
                    SettingValue = para.GetVipUserOrderPer.ToString()
                });
                //同步到集客行动奖励设置(集客销售提成)
                if (iincentiveRuleUser != null)
                {
                    iincentiveRuleUser.SetoffOrderPer = Convert.ToDecimal(para.GetVipUserOrderPer);
                    iincentiveRuleBLL.Update(iincentiveRuleUser);
                }
            }
            if (!string.IsNullOrEmpty(para.InvitePartnersPoints.ToString()))
            {
                list.Add(new CustomerBasicSettingEntity()
                {
                    SettingCode  = "InvitePartnersPoints",
                    SettingValue = para.InvitePartnersPoints.ToString()
                });
                //同步到集客行动奖励设置(分享获得积分)
                if (iincentiveRuleVip != null)
                {
                    iincentiveRuleVip.SetoffRegPrize = Convert.ToDecimal(para.InvitePartnersPoints);
                    iincentiveRuleBLL.Update(iincentiveRuleVip);
                }
            }
            int i = customerBasicSettingBLL.SaveCustomerBasicInfo(loggingSessionInfo.ClientID, list);

            return(rd);
        }