public SysRetailRewardRuleEntity[] GetSysRetailRewardRule(SysRetailRewardRuleEntity en)
 {
     return(DataTableToObject.ConvertToList <SysRetailRewardRuleEntity>(this._currentDAO.GetSysRetailRewardRule(en).Tables[0]).ToArray());
 }
Пример #2
0
        public string GetRetailTraderByID(string pRequest)
        {
            var rp = pRequest.DeserializeJSONTo <APIRequest <RetailTraderLoginRP> >();

            if (rp.Parameters.RetailTraderID == null)
            {
                throw new APIException("缺少参数【RetailTraderID】或参数值为空")
                      {
                          ErrorCode = 135
                      };
            }

            var loggingSessionInfo = Default.GetBSLoggingSession(rp.CustomerID, "1");
            var bll = new RetailTraderBLL(loggingSessionInfo);
            var rd  = new SaveRetailTraderRD();

            var rsp = new SuccessResponse <IAPIResponseData>(rd);
            //获取分销商的信息,包括头像等loggingSessionInfo.ClientID
            var ds = bll.getRetailTraderInfoByLogin("", rp.Parameters.RetailTraderID, loggingSessionInfo.ClientID);
            var retailTraderInfo = new RetailTraderInfo();

            //判断账号是否存在
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                var tempDt = ds.Tables[0];
                retailTraderInfo = DataTableToObject.ConvertToObject <RetailTraderInfo>(tempDt.Rows[0]);//直接根据所需要的字段反序列化
            }



            //正确时返回分销商数据
            rd.RetailTraderInfo = retailTraderInfo;//分销商

            //获取奖励规则
            SysRetailRewardRuleEntity[] ruleList = null;
            SysRetailRewardRuleBLL      _SysRetailRewardRuleBLL = new SysRetailRewardRuleBLL(loggingSessionInfo);
            //先看该分销商自己是否有奖励规则
            SysRetailRewardRuleEntity en = new SysRetailRewardRuleEntity();

            en.IsTemplate     = 0;
            en.CooperateType  = retailTraderInfo.CooperateType;
            en.RetailTraderID = rp.Parameters.RetailTraderID;
            en.CustomerId     = rp.CustomerID;
            en.IsDelete       = 0;
            //获取奖励模板
            ruleList = _SysRetailRewardRuleBLL.QueryByEntity(en, null);


            //  SysRetailRewardRuleEntity en = new SysRetailRewardRuleEntity();
            if (ruleList == null || ruleList.Count() == 0)
            {
                SysRetailRewardRuleEntity en2 = new SysRetailRewardRuleEntity();
                en2.IsTemplate    = 1;
                en2.CooperateType = retailTraderInfo.CooperateType;
                en2.IsDelete      = 0;
                en2.CustomerId    = rp.CustomerID;                           //加上这个,否则多个客户的奖励规则一起取了
                //获取奖励模板
                ruleList = _SysRetailRewardRuleBLL.QueryByEntity(en2, null); //这里不能用en了,用en会包含之前的RetailTraderID属性了
            }

            StringBuilder sb = new StringBuilder("");

            if (ruleList != null || ruleList.Count() != 0)
            {
                for (int i = 0; i < ruleList.Count(); i++)
                {
                    if (ruleList[i].RetailTraderReward > 0)
                    {
                        sb.Append(ruleList[i].RewardTypeName);
                        int temp = (int)ruleList[i].RetailTraderReward;//判断一下小数点后面是不是0,如果是0,就不要了
                        if (ruleList[i].RetailTraderReward > temp)
                        {
                            sb.Append(ruleList[i].RetailTraderReward);
                        }
                        else
                        {
                            sb.Append(temp);
                        }
                        if (ruleList[i].AmountOrPercent == 1)
                        {
                            sb.Append("元");
                        }
                        else
                        {
                            sb.Append("%");
                        }
                        if (ruleList[i].RewardTypeCode == "AttentThreeMonth")
                        {
                            sb.Append("(不包含首笔交易)");
                        }
                        sb.Append(",");
                    }
                }
                if (sb.ToString() != "")
                {
                    sb.Replace(',', '。', sb.Length - 1, 1);
                }
            }
            else
            {
                if (retailTraderInfo.CooperateType == "TwoWay")
                {
                    sb.Append(retailTraderInfo.UnitName).Append("门店帮您发放优惠券,也可向您的门店带来潜在的顾客。 ");
                }
            }



            rd.RewardNotic = sb.ToString();//奖励规则说明



            return(rsp.ToJSON());
        }
        public string GetSysRetailRewardRule(string pRequest)
        {
            var rp = pRequest.DeserializeJSONTo <APIRequest <SaveRetailRewardRuleRP> >();

            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;
            var bll = new SysRetailRewardRuleBLL(loggingSessionInfo);
            var rd  = new SaveRetailRewardRuleRD();
            var rsp = new SuccessResponse <IAPIResponseData>(rd);

            if (rp.Parameters.IsTemplate != 0 && rp.Parameters.IsTemplate != 1)
            {
                throw new APIException("缺少参数【IsTemplate】或参数值为空")
                      {
                          ErrorCode = 135
                      };
            }
            //if ( string.IsNullOrEmpty(  rp.Parameters.CooperateType))
            //{
            //    throw new APIException("缺少参数【CooperateType】或参数值为空") { ErrorCode = 135 };
            //}
            if (rp.Parameters.IsTemplate == 0 && string.IsNullOrEmpty(rp.Parameters.RetailTraderID))
            {
                throw new APIException("缺少参数【RetailTraderID】或参数值为空")
                      {
                          ErrorCode = 135
                      };
            }


            SysRetailRewardRuleEntity[] ds = null;

            //如果是分销商,需要改变分销商的相关数据
            if (rp.Parameters.IsTemplate == 1)
            {
                SysRetailRewardRuleEntity en = new SysRetailRewardRuleEntity();
                en.IsTemplate    = 1;
                en.CooperateType = rp.Parameters.CooperateType;
                en.IsDelete      = 0;
                en.CustomerId    = loggingSessionInfo.ClientID;//不要少写了CustomerId
                //获取奖励模板
                ds = bll.GetSysRetailRewardRule(en);
                //ds=bll.QueryByEntity(en, null);
            }
            else
            {
                SysRetailRewardRuleEntity en = new SysRetailRewardRuleEntity();
                en.IsTemplate = 0;
                //en.CooperateType=rp.Parameters.CooperateType;
                en.RetailTraderID = rp.Parameters.RetailTraderID;
                en.IsDelete       = 0;
                en.CustomerId     = loggingSessionInfo.ClientID;//不要少写了CustomerId
                //获取奖励模板
                ds = bll.GetSysRetailRewardRule(en);
                //如果该分销商没有奖励规则,就取他所属的合作类型的奖励模板的数据
                //if (ds == null || ds.Count() <= 0)
                //{
                //    SysRetailRewardRuleEntity en2 = new SysRetailRewardRuleEntity();
                //    en2.IsTemplate = 1;
                //    en2.CooperateType = rp.Parameters.CooperateType;
                //    en2.IsDelete = 0;
                //    en2.CustomerId = loggingSessionInfo.ClientID;//不要少写了CustomerId
                //    //获取奖励模板
                //    ds = bll.GetSysRetailRewardRule(en2);
                //}
            }



            rd.SysRetailRewardRuleList = ds;


            return(rsp.ToJSON());
        }
        public string SaveRetailRewardRule(string pRequest)
        {
            var rp = pRequest.DeserializeJSONTo <APIRequest <SaveRetailRewardRuleRP> >();

            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;
            var bll = new SysRetailRewardRuleBLL(loggingSessionInfo);
            var rd  = new SaveRetailRewardRuleRD();
            var rsp = new SuccessResponse <IAPIResponseData>(rd);

            if (rp.Parameters.IsTemplate == null)
            {
                throw new APIException("缺少参数【IsTemplate】或参数值为空")
                      {
                          ErrorCode = 135
                      };
            }
            //if (string.IsNullOrEmpty(rp.Parameters.CooperateType))
            //{
            //    throw new APIException("缺少参数【CooperateType】或参数值为空") { ErrorCode = 135 };
            //}
            if (rp.Parameters.IsTemplate == 0 && string.IsNullOrEmpty(rp.Parameters.RetailTraderID))
            {
                throw new APIException("缺少参数【RetailTraderID】或参数值为空")
                      {
                          ErrorCode = 135
                      };
            }
            if (rp.Parameters.SysRetailRewardRuleList == null)
            {
                throw new APIException("缺少参数【SysRetailRewardRuleList】或参数值为空")
                      {
                          ErrorCode = 135
                      };
            }

            //如果是分销商,需要改变分销商的相关数据
            RetailTraderBLL _RetailTraderBLL = new RetailTraderBLL(loggingSessionInfo);

            //先要删除相关的数据
            //如果是模板的就设置该合作方式下的分销商的上次使用的相关数据为已经被删除isdelete=0
            //如果是分销商,就删除该分销商下上次使用的相关数据。
            //bll.UpdateSysRetailRewardRule(rp.Parameters.IsTemplate, rp.Parameters.CooperateType, rp.Parameters.RetailTraderID, loggingSessionInfo.ClientID);
            if (rp.Parameters.IsTemplate == 0)//非模板时
            {
                bll.UpdateSysRetailRewardRule(rp.Parameters.IsTemplate, "", "", rp.Parameters.RetailTraderID, loggingSessionInfo.ClientID);

                RetailTraderEntity enRT = new RetailTraderEntity();
                enRT.RetailTraderID = rp.Parameters.RetailTraderID;
                enRT.CooperateType  = "";                   //修改合作方式
                enRT.SalesType      = "";                   //修改销售方式
                _RetailTraderBLL.Update(enRT, null, false); //不更新空的
            }
            else
            {
                bll.UpdateSysRetailRewardRule(rp.Parameters.IsTemplate, "", "", rp.Parameters.RetailTraderID, loggingSessionInfo.ClientID);
            }



            //获取分销商的信息,loggingSessionInfo.ClientID
            foreach (var item in rp.Parameters.SysRetailRewardRuleList)
            {
                if (rp.Parameters.IsTemplate == 0 && !string.IsNullOrEmpty(rp.Parameters.RetailTraderID))//
                {
                    if (item.CooperateType != "Sales")
                    {
                        RetailTraderEntity enRT = new RetailTraderEntity();
                        enRT.RetailTraderID = rp.Parameters.RetailTraderID;
                        enRT.CooperateType  = item.CooperateType;   //修改合作方式
                        _RetailTraderBLL.Update(enRT, null, false); //不更新空的
                    }
                    else
                    {
                        RetailTraderEntity enRT = new RetailTraderEntity();
                        enRT.RetailTraderID = rp.Parameters.RetailTraderID;
                        enRT.SalesType      = item.CooperateType;   //修改销售方式
                        _RetailTraderBLL.Update(enRT, null, false); //不更新空的
                    }
                }

                SysRetailRewardRuleEntity en = new SysRetailRewardRuleEntity();
                en.RetailRewardRuleID = Guid.NewGuid().ToString(); //每次都创建新的
                en.CooperateType      = item.CooperateType;        //合作方式

                en.RewardTypeName     = item.RewardTypeName;
                en.RewardTypeCode     = item.RewardTypeCode;
                en.IsTemplate         = rp.Parameters.IsTemplate;//是否模板
                en.SellUserReward     = item.SellUserReward;
                en.RetailTraderReward = item.RetailTraderReward;
                en.ItemSalesPriceRate = (item.ItemSalesPriceRate == null ? 0 : item.ItemSalesPriceRate);//销售设置
                en.AmountOrPercent    = item.AmountOrPercent;

                en.CreateTime     = DateTime.Now;
                en.CreateBy       = loggingSessionInfo.UserID;
                en.LastUpdateTime = DateTime.Now;
                en.LastUpdateBy   = loggingSessionInfo.UserID;
                if (item.CooperateType == "Sales" && item.ItemSalesPriceRate == 0)
                {
                    en.Status = "0";
                }
                else
                {
                    en.Status = "1";
                }
                en.IsDelete   = 0;
                en.CustomerId = loggingSessionInfo.ClientID;

                en.BeginTime = DateTime.Now;//开始时间
                en.EndTime   = null;

                en.RetailTraderID = rp.Parameters.RetailTraderID; //如果是模板的就不要加
                bll.Create(en);                                   //保存奖励规则
            }



            return(rsp.ToJSON());
        }
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param>
 public void Update(SysRetailRewardRuleEntity pEntity, IDbTransaction pTran)
 {
     _currentDAO.Update(pEntity, pTran);
 }
 /// <summary>
 /// 创建一个新实例
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 public void Create(SysRetailRewardRuleEntity pEntity)
 {
     _currentDAO.Create(pEntity);
 }
 /// <summary>
 /// 分页根据实体条件查询实体
 /// </summary>
 /// <param name="pQueryEntity">以实体形式传入的参数</param>
 /// <param name="pOrderBys">排序组合</param>
 /// <returns>符合条件的实体集</returns>
 public PagedQueryResult <SysRetailRewardRuleEntity> PagedQueryByEntity(SysRetailRewardRuleEntity pQueryEntity, OrderBy[] pOrderBys, int pPageSize, int pCurrentPageIndex)
 {
     return(_currentDAO.PagedQueryByEntity(pQueryEntity, pOrderBys, pPageSize, pCurrentPageIndex));
 }
 /// <summary>
 /// 根据实体条件查询实体
 /// </summary>
 /// <param name="pQueryEntity">以实体形式传入的参数</param>
 /// <param name="pOrderBys">排序组合</param>
 /// <returns>符合条件的实体集</returns>
 public SysRetailRewardRuleEntity[] QueryByEntity(SysRetailRewardRuleEntity pQueryEntity, OrderBy[] pOrderBys)
 {
     return(_currentDAO.QueryByEntity(pQueryEntity, pOrderBys));
 }
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="pEntity"></param>
 public void Delete(SysRetailRewardRuleEntity pEntity)
 {
     _currentDAO.Delete(pEntity);
 }