コード例 #1
0
        /// <summary>
        /// 推广分享设置
        /// </summary>
        /// <param name="para"></param>
        /// <param name="bllSpreadSetting"></param>
        /// <param name="imageBll"></param>
        public void SaveSpreadSetting(SetCTWEventRP para, T_CTW_SpreadSettingBLL bllSpreadSetting, ObjectImagesBLL imageBll, WApplicationInterfaceEntity wapentity, out string QRCodeUrl)
        {
            QRCodeUrl = string.Empty;
            string QRCodeId = string.Empty;

            if (!string.IsNullOrEmpty(para.CTWEventId))
            {
                bllSpreadSetting.DeleteByCTWEventID(para.CTWEventId);
            }
            foreach (var sItem in para.SpreadSettingList)
            {
                var bgimageEntity = new ObjectImagesEntity();
                bgimageEntity.ImageURL   = sItem.BGImageUrl;
                bgimageEntity.ObjectId   = "";
                bgimageEntity.CreateBy   = loggingSessionInfo.UserID;
                bgimageEntity.IsDelete   = 0;
                bgimageEntity.CustomerId = loggingSessionInfo.ClientID;
                bgimageEntity.ImageId    = Guid.NewGuid().ToString();
                imageBll.Create(bgimageEntity);

                if (sItem.SpreadType == "Focus")
                {
                    bool IsSuccess = true;
                    CreateFocusQRCode(para, sItem.LogoUrl, wapentity, out QRCodeUrl, out QRCodeId, out IsSuccess);
                    if (!IsSuccess)
                    {
                        throw new APIException(111, "关注二维码生成失败!请重新提交");
                    }
                    //imageEntity = new ObjectImagesEntity();
                    //imageEntity.ImageURL = QRCodeUrl;
                    //imageEntity.ObjectId = "";
                    //imageEntity.CreateBy = loggingSessionInfo.UserID;
                    //imageEntity.IsDelete = 0;
                    //imageEntity.CustomerId = loggingSessionInfo.ClientID;
                    //imageEntity.ImageId = Guid.NewGuid().ToString();
                    //imageBll.Create(imageEntity);
                }

                entitySpreadSetting = new T_CTW_SpreadSettingEntity()
                {
                    SpreadType              = sItem.SpreadType,
                    Title                   = sItem.Title,
                    ImageId                 = bgimageEntity.ImageId,
                    Summary                 = sItem.Summary,
                    PromptText              = sItem.PromptText,
                    LeadPageQRCodeImageId   = QRCodeId,
                    LeadPageSharePromptText = sItem.LeadPageSharePromptText,
                    LeadPageFocusPromptText = sItem.LeadPageFocusPromptText,
                    LeadPageRegPromptText   = sItem.LeadPageRegPromptText,
                    LogoUrl                 = sItem.LogoUrl,
                    CustomerId              = loggingSessionInfo.ClientID,
                    CTWEventId              = new Guid(strCTWEventId)
                };
                bllSpreadSetting.Create(entitySpreadSetting);
            }
        }
コード例 #2
0
        /// <summary>
        /// 保存更新促销活动信息
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public void SavePanicbuyingEvent(SetCTWEventRP para, T_CTW_PanicbuyingEventKVBLL bllPanicbuyingEventKV, ObjectImagesBLL imageBll, T_CTW_LEventInteractionBLL bllCustomerInteraction, string strThemeId, out string strStartDate, out string strEndDate)
        {
            strStartDate = string.Empty;
            strEndDate   = string.Empty;

            var PanicbuyingEvent = para.PanicbuyingEventInfo;

            imageEntity            = new ObjectImagesEntity();
            imageEntity.ImageURL   = PanicbuyingEvent.ImageUrl;
            imageEntity.ObjectId   = "";
            imageEntity.CreateBy   = loggingSessionInfo.UserID;
            imageEntity.IsDelete   = 0;
            imageEntity.CustomerId = loggingSessionInfo.ClientID;
            imageEntity.ImageId    = Guid.NewGuid().ToString();
            imageBll.Create(imageEntity);
            if (!string.IsNullOrEmpty(para.CTWEventId))
            {
                bllPanicbuyingEventKV.DeleteByCTWEventID(para.CTWEventId);
            }
            entityPanicbuyingEventKV = new T_CTW_PanicbuyingEventKVEntity()
            {
                CTWEventId = new Guid(strCTWEventId),
                EventName  = PanicbuyingEvent.EventName,
                ImageId    = imageEntity.ImageId
            };
            bllPanicbuyingEventKV.Create(entityPanicbuyingEventKV);

            if (!string.IsNullOrEmpty(para.CTWEventId))
            {
                bllCustomerInteraction.DeleteByCTWEventID(para.CTWEventId);
            }
            foreach (var eventid in PanicbuyingEvent.PanicbuyingEventId)
            {
                ///互动类型与(游戏或促销)关联
                entityInteraction = new T_CTW_LEventInteractionEntity()
                {
                    CTWEventId      = new Guid(strCTWEventId),
                    ThemeId         = new Guid(strThemeId),
                    InteractionType = para.InteractionType,
                    DrawMethodCode  = para.DrawMethodCode,
                    LeventId        = eventid.ToString(),
                    CustomerId      = loggingSessionInfo.ClientID
                };
                bllCustomerInteraction.Create(entityInteraction);
            }

            DataSet ds = bllCustomerInteraction.GetPanicbuyingEventDate(strCTWEventId);

            if (ds != null && ds.Tables[0].Rows.Count > 0)
            {
                strStartDate = ds.Tables[0].Rows[0]["BeginTime"].ToString();
                strEndDate   = ds.Tables[0].Rows[0]["EndTime"].ToString();
            }
        }
コード例 #3
0
        /// <summary>
        /// 图片同步
        /// </summary>
        public IList <ObjectImagesEntity> GetClientImageList(ObjectImagesEntity entity)
        {
            IList <ObjectImagesEntity> eventsList = new List <ObjectImagesEntity>();
            DataSet ds = new DataSet();

            ds = _currentDAO.GetClientImageList(entity);
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                eventsList = DataTableToObject.ConvertToList <ObjectImagesEntity>(ds.Tables[0]);
            }
            return(eventsList);
        }
コード例 #4
0
        /// <summary>
        /// 获取房产详细url地址。
        /// </summary>
        /// <param name="customerId">客户ID。</param>
        /// <param name="objectID">房产ID。</param>
        /// <returns>房产详细页面相关信息。</returns>
        public ObjectImagesEntity GetObjectImagesByCustomerId(string customerId, string objectID)
        {
            ObjectImagesEntity entity = new ObjectImagesEntity();
            DataSet            ds     = new DataSet();

            ds = _currentDAO.GetObjectImagesByCustomerId(customerId, objectID);
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                entity = DataTableToObject.ConvertToObject <ObjectImagesEntity>(ds.Tables[0].Rows[0]);
            }
            return(entity);
        }
コード例 #5
0
        public string SellUserMainAchieve(string pRequest)
        {
            var rp = pRequest.DeserializeJSONTo <APIRequest <SellUserMainAchieveRP> >();

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

            var loggingSessionInfo = Default.GetBSLoggingSession(rp.CustomerID, "1");
            var bll = new RetailTraderBLL(loggingSessionInfo);
            var rd  = new SellUserMainAchieveRD();
            var rsp = new SuccessResponse <IAPIResponseData>(rd);
            //获取分销商的信息,loggingSessionInfo.ClientID
            var ds = bll.GetRetailTradersBySellUser("", rp.UserID, loggingSessionInfo.ClientID);   //获取

            //判断账号是否存在
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                rd.RetailTraderCount = ds.Tables[0].Rows.Count;
            }
            else
            {
                rd.RetailTraderCount = 0;
            }
            //取该账号下面的分销商的会员的数量
            int VipCount = bll.GetVipCountBySellUser(rp.UserID, loggingSessionInfo.ClientID);   //获取

            rd.VipCount = VipCount;

            //销售员头像
            ObjectImagesBLL    _ObjectImagesBLL = new ObjectImagesBLL(loggingSessionInfo);
            ObjectImagesEntity en = new ObjectImagesEntity();

            en.ObjectId = rp.UserID;
            List <ObjectImagesEntity> ImgList = _ObjectImagesBLL.QueryByEntity(en, null).OrderByDescending(p => p.CreateTime).ToList();

            if (ImgList != null && ImgList.Count != 0)
            {
                // string fileDNS = customerBasicSettingBll.GetSettingValueByCode("FileDNS"); ;//http://182.254.156.57:811
                rd.HeadImg = ImgList[0].ImageURL;
            }


            return(rsp.ToJSON());
        }
コード例 #6
0
        /// <summary>
        /// 列表获取
        /// </summary>
        public IList <ObjectImagesEntity> GetList(ObjectImagesEntity entity, int Page, int PageSize)
        {
            if (PageSize <= 0)
            {
                PageSize = 15;
            }

            IList <ObjectImagesEntity> eventsList = new List <ObjectImagesEntity>();
            DataSet ds = new DataSet();

            ds = _currentDAO.GetList(entity, Page, PageSize);
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                eventsList = DataTableToObject.ConvertToList <ObjectImagesEntity>(ds.Tables[0]);
            }
            return(eventsList);
        }
コード例 #7
0
        /// <summary>
        /// 保存经销商头像
        /// </summary>
        /// <param name="vipEntity"></param>
        /// <param name="pEntity"></param>
        internal void SaveRetailTraderHeadImg(VipEntity vipEntity, RetailTraderEntity pEntity)
        {
            ObjectImagesEntity imgEntity = new ObjectImagesEntity();

            imgEntity.ImageId        = System.Guid.NewGuid().ToString();
            imgEntity.CustomerId     = pEntity.CustomerId;
            imgEntity.ObjectId       = pEntity.RetailTraderID;
            imgEntity.ImageURL       = vipEntity.HeadImgUrl;
            imgEntity.DisplayIndex   = 0;
            imgEntity.CreateTime     = DateTime.Now;
            imgEntity.CreateBy       = "sys";
            imgEntity.LastUpdateBy   = "sys";
            imgEntity.LastUpdateTime = DateTime.Now;
            imgEntity.IsDelete       = 0;
            imgEntity.Title          = "";
            imgEntity.Description    = "";

            this._currentDAO.Create(imgEntity);
        }
コード例 #8
0
 /// <summary>
 /// 根据实体条件查询实体
 /// </summary>
 /// <param name="pQueryEntity">以实体形式传入的参数</param>
 /// <param name="pOrderBys">排序组合</param>
 /// <returns>符合条件的实体集</returns>
 public ObjectImagesEntity[] QueryByEntity(ObjectImagesEntity pQueryEntity, OrderBy[] pOrderBys)
 {
     return(_currentDAO.QueryByEntity(pQueryEntity, pOrderBys));
 }
コード例 #9
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="pEntity"></param>
 public void Delete(ObjectImagesEntity pEntity)
 {
     _currentDAO.Delete(pEntity);
 }
コード例 #10
0
 public void Update(ObjectImagesEntity pEntity, bool pIsUpdateNullField)
 {
     _currentDAO.Update(pEntity, pIsUpdateNullField);
 }
コード例 #11
0
        protected override EmptyResponseData ProcessRequest(APIRequest <SetVipIntegralRP> pRequest)
        {
            var rd   = new EmptyResponseData();
            var para = pRequest.Parameters;
            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;    //登录状态信息
            var vipIntegralDetail  = new VipIntegralDetailBLL(loggingSessionInfo); //积分变更业务对象实例化
            var objectImagesBLL    = new ObjectImagesBLL(loggingSessionInfo);      //图片表业务对象实例化
            var unitBLL            = new t_unitBLL(loggingSessionInfo);
            var vipIntegralBLL     = new VipIntegralBLL(loggingSessionInfo);
            var vipBLL             = new VipBLL(loggingSessionInfo);

            var vipInfo     = vipBLL.GetByID(para.VipID);
            var unitInfo    = unitBLL.GetByID(loggingSessionInfo.CurrentUserRole.UnitId);
            var pTran       = vipIntegralDetail.GetTran(); //事务
            var vipIntegral = vipIntegralBLL.GetByID(para.VipID);

            using (pTran.Connection)
            {
                try
                {
                    var IntegralDetail = new VipIntegralDetailEntity()
                    {
                        Integral         = para.Qty,
                        IntegralSourceID = para.IntegralSourceID,
                        ObjectId         = "",
                        Reason           = para.Reason,
                        Remark           = para.Remark
                    };
                    if (IntegralDetail.Integral != 0)
                    {
                        //变动前积分
                        string OldIntegral = string.Empty;
                        if (vipIntegral != null)
                        {
                            OldIntegral = (vipIntegral.ValidIntegral ?? 0).ToString();
                        }
                        else
                        {
                            OldIntegral = "0";
                        }

                        //变动积分
                        string ChangeIntegral      = (IntegralDetail.Integral ?? 0).ToString();
                        string vipIntegralDetailId = vipIntegralBLL.AddIntegral(ref vipInfo, unitInfo, IntegralDetail, pTran, loggingSessionInfo);
                        //发送微信积分变动通知模板消息
                        if (!string.IsNullOrWhiteSpace(vipIntegralDetailId))
                        {
                            var CommonBLL = new CommonBLL();
                            CommonBLL.PointsChangeMessage(OldIntegral, vipInfo, ChangeIntegral, vipInfo.WeiXinUserId, loggingSessionInfo);
                        }
                        //增加图片上传
                        if (!string.IsNullOrEmpty(para.ImageUrl))
                        {
                            var objectImagesEntity = new ObjectImagesEntity()
                            {
                                ImageId  = Guid.NewGuid().ToString(),
                                ObjectId = vipIntegralDetailId,
                                ImageURL = para.ImageUrl
                            };
                            objectImagesBLL.Create(objectImagesEntity);
                        }
                    }
                    pTran.Commit();  //提交事物
                }
                catch (APIException apiEx)
                {
                    pTran.Rollback();//回滚事物
                    throw new APIException(apiEx.ErrorCode, apiEx.Message);
                }
                catch (Exception ex)
                {
                    pTran.Rollback();//回滚事物
                    throw new Exception(ex.Message);
                }
            }
            return(rd);
        }
コード例 #12
0
        protected override EmptyResponseData ProcessRequest(APIRequest <SetVipAmountRP> pRequest)
        {
            var rd   = new EmptyResponseData();
            var para = pRequest.Parameters;
            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo; //登录状态信息
            var vipAmountBLL       = new VipAmountBLL(loggingSessionInfo);
            var vipAmountDetailBLL = new VipAmountDetailBLL(loggingSessionInfo);
            var objectImagesBLL    = new ObjectImagesBLL(loggingSessionInfo);    //图片表业务对象实例化
            var unitBLL            = new t_unitBLL(loggingSessionInfo);

            var vipBLL = new VipBLL(loggingSessionInfo);

            var vipInfo  = vipBLL.GetByID(para.VipID);
            var unitInfo = unitBLL.GetByID(loggingSessionInfo.CurrentUserRole.UnitId);
            var pTran    = vipAmountBLL.GetTran(); //事务

            var vipAmountEntity = vipAmountBLL.QueryByEntity(new VipAmountEntity()
            {
                VipId = vipInfo.VIPID, VipCardCode = vipInfo.VipCode
            }, null).FirstOrDefault();

            using (pTran.Connection)
            {
                try
                {
                    var amountDetail = new VipAmountDetailEntity()
                    {
                        Amount         = para.Amount,
                        AmountSourceId = para.AmountSourceID,
                        ObjectId       = "",
                        Reason         = para.Reason,
                        Remark         = para.Remark
                    };
                    string vipAmountDetailId = string.Empty;
                    if (para.AmountSourceID == "23")
                    {      //人工调整余额
                        vipAmountDetailId = vipAmountBLL.AddVipAmount(vipInfo, unitInfo, ref vipAmountEntity, amountDetail, pTran, loggingSessionInfo);

                        if (!string.IsNullOrWhiteSpace(vipAmountDetailId))
                        {//发送微信账户余额变动模板消息
                            var CommonBLL = new CommonBLL();
                            CommonBLL.BalanceChangedMessage("人工调整", vipAmountEntity, amountDetail, vipInfo.WeiXinUserId, vipInfo.VIPID, loggingSessionInfo);
                        }
                    }
                    else if (para.AmountSourceID == "24")
                    {  //人工调整返现
                        vipAmountDetailId = vipAmountBLL.AddReturnAmount(vipInfo, unitInfo, vipAmountEntity, ref amountDetail, pTran, loggingSessionInfo);
                        if (!string.IsNullOrWhiteSpace(vipAmountDetailId))
                        {//发送返现到账通知微信模板消息
                            var CommonBLL = new CommonBLL();
                            CommonBLL.CashBackMessage("人工调整", amountDetail.Amount, vipInfo.WeiXinUserId, vipInfo.VIPID, loggingSessionInfo);
                        }
                    }
                    //增加图片上传
                    if (!string.IsNullOrEmpty(para.ImageUrl))
                    {
                        var objectImagesEntity = new ObjectImagesEntity()
                        {
                            ImageId  = Guid.NewGuid().ToString(),
                            ObjectId = vipAmountDetailId,
                            ImageURL = para.ImageUrl
                        };
                        objectImagesBLL.Create(objectImagesEntity);
                    }
                    pTran.Commit();  //提交事物
                }
                catch (APIException apiEx)
                {
                    pTran.Rollback();//回滚事物
                    throw new APIException(apiEx.ErrorCode, apiEx.Message);
                }
                catch (Exception ex)
                {
                    pTran.Rollback();//回滚事物
                    throw new Exception(ex.Message);
                }
            }
            return(rd);
        }
コード例 #13
0
 /// <summary>
 /// 在事务内创建一个新实例
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param>
 public void Create(ObjectImagesEntity pEntity, IDbTransaction pTran)
 {
     _currentDAO.Create(pEntity, pTran);
 }
コード例 #14
0
        /// <summary>
        /// 保存更新游戏信息
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public void SaveGameEvent(SetCTWEventRP para, LPrizesBLL bllPrize, T_CTW_LEventInteractionBLL bllCustomerInteraction, string strThemeId, out string strStartDate, out string strEndDate, out string strGameEventGuid)
        {
            strGameEventGuid = string.Empty;

            var imageBll = new ObjectImagesBLL(loggingSessionInfo);

            LEventsBLL bllGameEvent = new LEventsBLL(loggingSessionInfo);

            var eventEntity = new LEventsEntity();

            strStartDate = para.GameEventInfo.BeginTime;
            strEndDate   = para.GameEventInfo.EndTime + " 23:59:59";
            if (string.IsNullOrEmpty(para.GameEventInfo.LeventId))
            {
                strGameEventGuid          = Guid.NewGuid().ToString();
                eventEntity.EventID       = strGameEventGuid;
                eventEntity.Title         = para.GameEventInfo.Title;
                eventEntity.BeginTime     = para.GameEventInfo.BeginTime;
                eventEntity.EndTime       = para.GameEventInfo.EndTime;
                eventEntity.DrawMethodId  = GetDrawMethodIdByDrawMethodCode(para.DrawMethodCode);
                eventEntity.PersonCount   = para.GameEventInfo.PersonCount;
                eventEntity.PointsLottery = para.GameEventInfo.PointsLottery;
                eventEntity.LotteryNum    = para.GameEventInfo.LotteryNum;
                eventEntity.IsDelete      = 0;

                if (DateTime.Compare(Convert.ToDateTime(para.GameEventInfo.BeginTime), Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) <= 0 && DateTime.Compare(Convert.ToDateTime(para.GameEventInfo.EndTime), Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) >= 0)
                {
                    eventEntity.EventStatus = 20;    //10=未开始,20=运行中,30=暂停,40=结束
                }
                else if (DateTime.Compare(Convert.ToDateTime(para.GameEventInfo.BeginTime), Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) > 0)
                {
                    eventEntity.EventStatus = 10;    //10=未开始,20=运行中,30=暂停,40=结束
                }
                eventEntity.IsCTW      = 1;
                eventEntity.CustomerId = loggingSessionInfo.ClientID;
                bllGameEvent.Create(eventEntity);
            }
            else
            {
                strGameEventGuid          = para.GameEventInfo.LeventId;
                eventEntity               = bllGameEvent.GetByID(strGameEventGuid);
                eventEntity.Title         = para.GameEventInfo.Title;
                eventEntity.BeginTime     = para.GameEventInfo.BeginTime;
                eventEntity.EndTime       = para.GameEventInfo.EndTime;
                eventEntity.DrawMethodId  = GetDrawMethodIdByDrawMethodCode(para.DrawMethodCode);
                eventEntity.PersonCount   = para.GameEventInfo.PersonCount;
                eventEntity.PointsLottery = para.GameEventInfo.PointsLottery;
                eventEntity.LotteryNum    = para.GameEventInfo.LotteryNum;

                bllGameEvent.Update(eventEntity);
            }

            ///图片
            if (para.GameEventInfo.ImageList.Count > 0)
            {
                imageBll.DeleteByObjectID(strGameEventGuid);

                foreach (var i in para.GameEventInfo.ImageList)
                {
                    imageEntity             = new ObjectImagesEntity();
                    imageEntity.ImageURL    = i.ImageURL;
                    imageEntity.ObjectId    = strGameEventGuid;
                    imageEntity.CreateBy    = loggingSessionInfo.UserID;
                    imageEntity.ImageId     = Guid.NewGuid().ToString();
                    imageEntity.BatId       = i.BatId;
                    imageEntity.RuleId      = para.GameEventInfo.RuleId ?? 1;
                    imageEntity.RuleContent = para.GameEventInfo.RuleContent;
                    imageEntity.IsDelete    = 0;
                    imageEntity.CustomerId  = loggingSessionInfo.ClientID;
                    imageBll.Create(imageEntity);
                }
            }
            //奖品信息
            var entityPrize        = new LPrizesEntity();
            var redisPrizePoolsBLL = new JIT.CPOS.BS.BLL.RedisOperationBLL.PrizePools.RedisPrizePoolsBLL();

            if (!string.IsNullOrEmpty(para.GameEventInfo.LeventId))
            {
                //bllPrize.Delete(new LPrizesEntity() { EventId = para.GameEventInfo.LeventId });
                bllPrize.DeletePrizesByEventId(para.GameEventInfo.LeventId);

                CC_PrizePool prizePool = new CC_PrizePool();
                prizePool.CustomerId = loggingSessionInfo.ClientID;
                prizePool.EventId    = para.GameEventInfo.LeventId;
                redisPrizePoolsBLL.DeletePrizePoolsList(prizePool);
            }
            if (para.GameEventInfo.PrizeList.Count > 0)
            {
                foreach (var i in para.GameEventInfo.PrizeList)
                {
                    entityPrize.EventId      = strGameEventGuid;
                    entityPrize.PrizeTypeId  = i.PrizeTypeId;
                    entityPrize.Point        = i.Point;
                    entityPrize.CouponTypeID = i.CouponTypeID;
                    entityPrize.PrizeName    = i.PrizeName;
                    entityPrize.CountTotal   = i.PrizeCount;
                    entityPrize.CreateBy     = loggingSessionInfo.UserID;
                    entityPrize.PrizesID     = Guid.NewGuid().ToString();

                    bllPrize.SavePrize(entityPrize);
                }

                //入奖品池队列
                LPrizePoolsBLL bllPools = new LPrizePoolsBLL(loggingSessionInfo);
                DataSet        dsPools  = bllPools.GetPrizePoolsByEvent(loggingSessionInfo.ClientID, strGameEventGuid);
                if (dsPools != null && dsPools.Tables.Count > 0 && dsPools.Tables[0].Rows.Count > 0)
                {
                    var poolTemp  = DataTableToObject.ConvertToList <CC_PrizePool>(dsPools.Tables[0]);
                    var poolsList = Utils.GetRandomList <CC_PrizePool>(poolTemp);   //随机列表
                    if (poolsList != null && poolsList.Count > 0)
                    {
                        CC_PrizePool prizePool = new CC_PrizePool();
                        prizePool.CustomerId = loggingSessionInfo.ClientID;
                        prizePool.EventId    = strGameEventGuid;

                        redisPrizePoolsBLL.DeletePrizePoolsList(prizePool);
                        redisPrizePoolsBLL.SetPrizePoolsToRedis(poolsList);
                    }
                }
            }
            if (!string.IsNullOrEmpty(para.CTWEventId))
            {
                bllCustomerInteraction.DeleteByCTWEventID(para.CTWEventId);
            }
            ///互动类型与(游戏或促销)关联
            entityInteraction = new T_CTW_LEventInteractionEntity()
            {
                CTWEventId       = new Guid(strCTWEventId),
                ThemeId          = new Guid(strThemeId),
                InteractionType  = para.InteractionType,
                DrawMethodCode   = para.DrawMethodCode,
                LeventId         = strGameEventGuid,
                OriginalLeventId = new Guid(para.OriginalLeventId),
                CustomerId       = loggingSessionInfo.ClientID
            };
            bllCustomerInteraction.Create(entityInteraction);
        }
コード例 #15
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            try
            {
                string xmlStr = string.Empty;
                using (var stream = context.Request.InputStream)
                {
                    using (var rd = new StreamReader(stream, System.Text.Encoding.UTF8))
                    {
                        xmlStr = rd.ReadToEnd();
                        JIT.Utility.Log.Loggers.Debug(new Utility.Log.DebugLogInfo()
                        {
                            Message = string.Format("用户维权:收到的通知信息:{0}", xmlStr)
                        });
                    }
                }
                var doc = new XmlDocument();
                doc.LoadXml(xmlStr);
                var dic = new Dictionary <string, string>();

                var ds = new DataSet();

                //遍历参数节点
                var list = doc.SelectNodes("xml/*");
                foreach (XmlNode item in list)
                {
                    if (item.Name != "PicInfo")
                    {
                        dic[item.Name] = item.InnerText;
                    }
                    else
                    {
                        //将图片读取到DS中
                        var stream = new StringReader("<PicInfo>" + item.InnerXml + "</PicInfo>");
                        var reader = new XmlTextReader(stream);
                        ds.ReadXml(reader);
                    }
                }

                #region 维权对象,不带图片

                #endregion

                #region 图片对象

                //遍历ds,向图片表插入数据

                #endregion

                var notify = dic.ToJSON().DeserializeJSONTo <WXRightOrdersEntity>();

                var customerWxMappingBll = new TCustomerWeiXinMappingBLL(Default.GetAPLoggingSession(""));


                var customerId = customerWxMappingBll.GetCustomerIdByAppId(notify.AppId);
                if (customerId == "")
                {
                    throw new APIException("客户ID为空")
                          {
                              ErrorCode = 121
                          };
                }


                var currentUserInfo = Default.GetBSLoggingSession(customerId, "1");

                var bll = new WXRightOrdersBLL(currentUserInfo);
                //根据维权单号,查询是否有数据
                var entity = bll.QueryByEntity(new WXRightOrdersEntity()
                {
                    FeedBackId = notify.FeedBackId
                }, null);


                #region 验签

                ////支付中心URL
                //var url = System.Configuration.ConfigurationManager.AppSettings["paymentcenterUrl"];
                //url = "http://121.199.42.125:6002/DevPayTest.ashx";//测试,正式需删除此行
                //var customerID = "e703dbedadd943abacf864531decdac1";//先写死测试

                //var paraSign = new Dictionary<string, string>();
                //paraSign["openid"] = notify.OpenId;
                //paraSign["timestamp"] = notify.TimeStamp;

                //var request = new
                //{
                //    AppID = notify.AppId,
                //    ClientID = customerID,
                //    UserID = notify.OpenId,
                //    Parameters = paraSign
                //};
                //string content = string.Format("action=WXGetSign&request={0}", request.ToJSON());
                //string resStr = string.Empty;
                //try
                //{
                //    resStr = JIT.Utility.Web.HttpClient.PostQueryString(url, content);
                //}
                //catch (Exception ex)
                //{
                //    JIT.Utility.Log.Loggers.Exception(new Utility.Log.ExceptionLogInfo(ex));
                //    throw ex;
                //}
                //var dicGetSign = resStr.DeserializeJSONTo<Dictionary<string, object>>();
                //if (Convert.ToInt32(dicGetSign["ResultCode"]) < 100)
                //{
                //    var dicData = dicGetSign["Datas"].ToJSON().DeserializeJSONTo<Dictionary<string, string>>();
                //    var sign = dicData["Sign"].ToString();
                //    if (sign != notify.AppSignature)
                //        throw new Exception(string.Format("验签失败,原:{0}\t新:{1}", notify.AppSignature, sign));
                //}
                //else
                //{
                //    throw new Exception(string.Format("错误信息:{0}", dicGetSign["Message"]));
                //}

                #endregion


                var conEntity = bll.QueryByEntity(new WXRightOrdersEntity()
                {
                    FeedBackId = notify.FeedBackId
                }, null).FirstOrDefault();

                switch (notify.MsgType)
                {
                case "request":     //新的维权
                    //TODO:新增记录
                    JIT.Utility.Log.Loggers.Debug(new Utility.Log.DebugLogInfo()
                    {
                        Message = string.Format("新增一条用户维权:{0}", notify.ToJSON())
                    });

                    if (entity != null)
                    {
                        //删除原有的维权单
                        bll.Delete(entity);
                    }
                    notify.Status = 10;
                    var rightOrderId = Guid.NewGuid();
                    notify.RightOrdersId = rightOrderId;
                    notify.CustomerId    = customerId;
                    bll.Create(notify);
                    var objectImages    = new ObjectImagesEntity();
                    var objectImageList = new List <ObjectImagesEntity>();
                    var imageBll        = new ObjectImagesBLL(currentUserInfo);
                    int i = 0;
                    foreach (DataRow row in ds.Tables[0].Rows)
                    {
                        i++;
                        objectImages.ImageURL     = row[0].ToString();
                        objectImages.ObjectId     = Convert.ToString(rightOrderId);
                        objectImages.ImageId      = Convert.ToString(Guid.NewGuid());
                        objectImages.DisplayIndex = i;
                        objectImages.CustomerId   = customerId;
                        //将维权单的url插入到图片表中
                        imageBll.Create(objectImages);
                    }

                    //var feedBackPara = new
                    //{
                    //    PayChannelID = 9,
                    //    FeedBackID = notify.FeedBackId,
                    //    OpenID = notify.OpenId
                    //};
                    //var feedBackRequest = new
                    //{
                    //    AppID = notify.AppId,
                    //    ClientID = customerID,
                    //    UserID = notify.OpenId,
                    //    Parameters = paraSign
                    //};
                    //content = string.Format("action=WXGetUpdateFeedBackUrl&request={0}", feedBackRequest.ToJSON());
                    //resStr = string.Empty;
                    //try
                    //{
                    //    resStr = JIT.Utility.Web.HttpClient.PostQueryString(url, content);
                    //}
                    //catch (Exception ex)
                    //{
                    //    throw ex;
                    //}

                    //var dicFeedBack = resStr.DeserializeJSONTo<Dictionary<string, object>>();
                    //if (Convert.ToInt32(dicFeedBack["ResultCode"]) < 100)
                    //{
                    //    var dicData = dicFeedBack["Datas"].ToJSON().DeserializeJSONTo<Dictionary<string, string>>();
                    //    var feedBackUrl = dicData["Url"].ToString();
                    //    string resStrFeedBack = string.Empty;
                    //    try
                    //    {
                    //        resStrFeedBack = JIT.Utility.Web.HttpClient.GetQueryString(feedBackUrl);
                    //        dicFeedBack = resStrFeedBack.DeserializeJSONTo<Dictionary<string, object>>();
                    //    }
                    //    catch (Exception ex)
                    //    {
                    //        throw ex;
                    //    }
                    //}
                    //else
                    //{
                    //    throw new Exception(string.Format("错误信息:{0}", dicGetSign["Message"]));
                    //}
                    break;

                case "confirm":     //客户同意解决
                    //TODO:对已有的记录Update
                    JIT.Utility.Log.Loggers.Debug(new Utility.Log.DebugLogInfo()
                    {
                        Message = string.Format("客户同意维权解决:{0}", notify.ToJSON())
                    });


                    if (conEntity != null)
                    {
                        conEntity.Status    = 50;
                        conEntity.MsgType   = "confirm";
                        conEntity.Reason    = notify.Reason;
                        conEntity.TimeStamp = notify.TimeStamp;

                        bll.Update(conEntity);
                    }
                    break;

                case "reject":     //客户拒绝解决
                    //TODO:对已有的记录Update,同时如何处理??
                    JIT.Utility.Log.Loggers.Debug(new Utility.Log.DebugLogInfo()
                    {
                        Message = string.Format("客户拒绝维权解决:{0}", notify.ToJSON())
                    });

                    if (conEntity != null)
                    {
                        conEntity.Status    = 60;
                        conEntity.MsgType   = "reject";
                        conEntity.Reason    = notify.Reason;
                        conEntity.TimeStamp = notify.TimeStamp;

                        bll.Update(conEntity);
                    }
                    break;

                default:
                    break;
                }

                #region 向表中记录调用的微信接口

                var wxInterfaceLogBll    = new WXInterfaceLogBLL(currentUserInfo);
                var wxInterfaceLogEntity = new WXInterfaceLogEntity();
                wxInterfaceLogEntity.LogId        = Guid.NewGuid();
                wxInterfaceLogEntity.InterfaceUrl = "微信公众号配置的维权URL";
                wxInterfaceLogEntity.AppId        = notify.AppId;
                wxInterfaceLogEntity.OpenId       = notify.OpenId;
                wxInterfaceLogEntity.RequestParam = notify.ToJSON();
                wxInterfaceLogEntity.IsSuccess    = 1;
                wxInterfaceLogBll.Create(wxInterfaceLogEntity);

                #endregion
            }
            catch (Exception ex)
            {
                JIT.Utility.Log.Loggers.Exception(new Utility.Log.ExceptionLogInfo(ex));
                context.Response.Write(ex);
            }
        }
コード例 #16
0
 /// <summary>
 /// 列表数量获取
 /// </summary>
 public int GetListCount(ObjectImagesEntity entity)
 {
     return(_currentDAO.GetListCount(entity));
 }
コード例 #17
0
 /// <summary>
 /// 分页根据实体条件查询实体
 /// </summary>
 /// <param name="pQueryEntity">以实体形式传入的参数</param>
 /// <param name="pOrderBys">排序组合</param>
 /// <returns>符合条件的实体集</returns>
 public PagedQueryResult <ObjectImagesEntity> PagedQueryByEntity(ObjectImagesEntity pQueryEntity, OrderBy[] pOrderBys, int pPageSize, int pCurrentPageIndex)
 {
     return(_currentDAO.PagedQueryByEntity(pQueryEntity, pOrderBys, pPageSize, pCurrentPageIndex));
 }
コード例 #18
0
 /// <summary>
 /// 创建一个新实例
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 public void Create(ObjectImagesEntity pEntity)
 {
     _currentDAO.Create(pEntity);
 }
コード例 #19
0
 public void Update(ObjectImagesEntity pEntity, bool pIsUpdateNullField, IDbTransaction pTran)
 {
     _currentDAO.Update(pEntity, pIsUpdateNullField, pTran);
 }
コード例 #20
0
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param>
 public void Update(ObjectImagesEntity pEntity, IDbTransaction pTran)
 {
     Update(pEntity, true, pTran);
 }
コード例 #21
0
        public void CreateQRCode(SetCTWEventRP para, WApplicationInterfaceEntity wapentity, string strPageParamJson, out string strQRCode, out string QRCodeUrl, out string RedirectUrl)
        {
            #region 获取Page信息
            var pageBll = new SysPageBLL(loggingSessionInfo);

            //根据活动的抽奖方式获取:“HB” “BigDial“
            string strPageKey = string.Empty;
            switch (para.DrawMethodCode)
            {
            case "HB":
                strPageKey = "RedPacket";
                break;

            case "DZP":
                strPageKey = "BigDial";
                break;

            case "QN":
                strPageKey = "Questionnaire";
                break;

            default:
                strPageKey = "NewsActivityList";
                break;
            }
            #endregion
            #region 生成URL
            var    Domain  = ConfigurationManager.AppSettings["interfacehost"].Replace("http://", "");
            var    Domain1 = ConfigurationManager.AppSettings["interfacehost1"].Replace("http://", "");
            string URL     = string.Empty;

            #region 系统模块
            var page = pageBll.GetPageByCustomerIdAndPageKey(loggingSessionInfo.ClientID, strPageKey).SingleOrDefault();
            if (page == null)
            {
                throw new APIException("未找到Page信息")
                      {
                          ErrorCode = 341
                      }
            }
            ;
            string path        = string.Empty;                                                                           //要替换的路径
            string urlTemplate = page.URLTemplate;                                                                       //模板URL
            string json        = page.JsonValue;                                                                         // JSON体
            var    jsonDic     = json.DeserializeJSONTo <Dictionary <string, object> >();                                //转换后的字典
            var    htmls       = jsonDic["htmls"].ToJSON().DeserializeJSONTo <Dictionary <string, object>[]>().ToList(); //htmls是一个数组,里面有他的很多属性
            Dictionary <string, object> html = null;                                                                     //选择的html信息
            var defaultHtmlId = jsonDic["defaultHtml"].ToString();
            html = htmls.Find(t => t["id"].ToString() == defaultHtmlId);                                                 //默认的htmlid*****
            if (html != null)
            {
                path = html["path"].ToString();
            }
            //判断高级oauth认证
            var scope = "snsapi_userinfo";
            //if (jsonDic.ContainsKey("scope"))//必须要判断key里是否包含scope
            //{
            //    scope = (jsonDic["scope"] == null || jsonDic["scope"].ToString() == "") ? "snsapi_base" : "snsapi_userinfo";
            //}

            //判断是否有定制,没有则取JSON体中的默认
            //找出订制内容
            if (page != null)
            {
                //看是否有htmls的定制(Node值=2)
                if (page.Node == "2")
                {
                    var nodeValue = page.NodeValue;
                    //在Json解析后的集合中找到path
                    html = htmls.Find(t => t["id"].ToString() == nodeValue);
                    if (html != null)
                    {
                        path = html["path"].ToString();
                    }
                }
            }

            //读取配置信息域名,检查不用http://开头,如果有则去除
            var IsAuth = false;
            //TODO:判断页面是否需要Auth认证,如果页面需要证则再判断这个客户有没有Auth认证,Type=3
            if (page.IsAuth == 1)
            {
                //判断这个客户是否是认证客户,type=3
                var applicationBll = new WApplicationInterfaceBLL(loggingSessionInfo);
                var application    = applicationBll.GetByID(wapentity.ApplicationId);//取默认的第一个
                if (application.WeiXinTypeId == "3")
                {
                    IsAuth = true;
                }
            }

            //替换URL模板
            #region 替换URL模板
            urlTemplate = urlTemplate.Replace("_pageName_", path); //用path替换掉_pageName_***(可以查看红包或者客服的path信息即可以知道)
            var paraDic = strPageParamJson.DeserializeJSONTo <Dictionary <string, object>[]>();
            foreach (var item in paraDic)                          //这里key和value对于活动来说,其实就是活动的eventId,和eventId的值
            {
                if (item.ContainsKey("key") && item.ContainsKey("value"))
                {
                    urlTemplate = urlTemplate.Replace("{" + item["key"] + "}", item["value"].ToString());
                }
            }

            #endregion

            //根据规则组织URL
            #region 组织URL
            //读取配置文件中的域名

            if (string.IsNullOrEmpty(Domain))
            {
                throw new APIException("微信管理:未配置域名,请在web.config中添加<add key='host' value=''/>")
                      {
                          ErrorCode = 342
                      }
            }
            ;
            if (IsAuth)
            {
                //需要认证(传参数时,需要传递applicationId,对于一个商户有多个微信服务号的,不能取默认的第一个,而是精确地取固定的微信服务号)
                //通过urlTemplate(用path替换了_pageName_),生成了goUrl
                URL = string.Format("http://{0}/WXOAuth/AuthUniversal.aspx?customerId={1}&applicationId={2}&goUrl={3}&scope={4}", Domain.Trim('/'), loggingSessionInfo.ClientID, wapentity.ApplicationId, HttpUtility.UrlEncode(string.Format("{0}{1}", Domain.Trim('/'), urlTemplate)), scope);
            }
            else
            {
                //不需要认证
                URL = string.Format("http://{0}/WXOAuth/NoAuthGoto.aspx?customerId={1}&goUrl={2}", Domain.Trim('/'), loggingSessionInfo.ClientID, HttpUtility.UrlEncode(string.Format("{0}{1}", Domain.Trim('/'), urlTemplate.Trim('/'))));
            }
            RedirectUrl = URL;
            #endregion
            #endregion

            #endregion
            string sourcePath    = HttpContext.Current.Server.MapPath("/QRCodeImage/qrcode.jpg");
            string targetPath    = HttpContext.Current.Server.MapPath("/QRCodeImage/");
            string currentDomain = "http://" + HttpContext.Current.Request.Url.Host;//当前项目域名

            QRCodeUrl = Utils.GenerateQRCode(URL, currentDomain, sourcePath, targetPath);

            ObjectImagesBLL    bllObjectImages    = new ObjectImagesBLL(loggingSessionInfo);
            ObjectImagesEntity entityObjectImages = new ObjectImagesEntity();

            entityObjectImages = new ObjectImagesEntity()
            {
                ImageId     = Utils.NewGuid(),
                CustomerId  = loggingSessionInfo.ClientID,
                ImageURL    = QRCodeUrl,
                ObjectId    = strCTWEventId,
                Title       = "",
                Description = "创意仓库活动二维码"
            };
            //把下载下来的图片的地址存到ObjectImages
            bllObjectImages.Create(entityObjectImages);
            strQRCode = entityObjectImages.ImageId.ToString();
        }
コード例 #22
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());
        }
    }
}
コード例 #23
0
ファイル: SetVipCardAH.cs プロジェクト: radtek/CustomerManage
        protected override SetVipCardRD ProcessRequest(DTO.Base.APIRequest <SetVipCardRP> pRequest)
        {
            var rd   = new SetVipCardRD();
            var para = pRequest.Parameters;
            var loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;

            #region 业务对象
            //会员卡
            var VipCardBLL = new VipCardBLL(loggingSessionInfo);
            //余额变动记录
            var VipCardBalanceChangeBLL = new VipCardBalanceChangeBLL(loggingSessionInfo);
            //卡状态变更记录
            var VipCardStatusChangeLogBLL = new VipCardStatusChangeLogBLL(loggingSessionInfo);
            //卡关系
            var VipCardVipMappingBLL = new VipCardVipMappingBLL(loggingSessionInfo);
            //图片
            var objectImagesBLL = new ObjectImagesBLL(loggingSessionInfo);
            //会员
            var VipBLL = new VipBLL(loggingSessionInfo);

            var vipCardTransLogBLL = new VipCardTransLogBLL(loggingSessionInfo); //丰收日交易记录对象示例化
            var unitBLL            = new TUnitBLL(loggingSessionInfo);           //门店业务对象
            //事务
            var pTran = VipCardBLL.GetTran();
            #endregion



            using (pTran.Connection)
            {
                try
                {
                    if (string.IsNullOrWhiteSpace(para.VipCardID) || para.OperationType <= 0)
                    {
                        throw new APIException("卡ID或者操作类型参数不合法!")
                              {
                                  ErrorCode = ERROR_CODES.INVALID_REQUEST_LACK_REQUEST_PARAMETER
                              };
                    }

                    //定位当前卡业务对象
                    VipCardEntity changeEntity = VipCardBLL.GetByID(para.VipCardID);

                    if (changeEntity == null)
                    {
                        throw new APIException("当前卡信息对象为NULL!")
                              {
                                  ErrorCode = ERROR_CODES.INVALID_BUSINESS
                              };
                    }
                    #region 返回卡ID
                    rd.VipCardID = changeEntity.VipCardID;
                    #endregion
                    changeEntity.RechargeTotalAmount = changeEntity.RechargeTotalAmount ?? 0;
                    changeEntity.BalanceAmount       = changeEntity.BalanceAmount ?? 0;
                    string  OldVipCardCode = changeEntity.VipCardCode ?? "";                       //原卡号
                    string  NewVipCardCode = "";                                                   //新卡号,获取新卡赋值
                    decimal OldMoney       = changeEntity.BalanceAmount.Value;                     //原卡当前余额
                    decimal NewMoney       = changeEntity.BalanceAmount.Value + para.BalanceMoney; //原卡当余额+调整金额

                    //原卡会员映射关系
                    VipCardVipMappingEntity OldVipCardVipMappingData = VipCardVipMappingBLL.QueryByEntity(new VipCardVipMappingEntity()
                    {
                        VipCardID = para.VipCardID
                    }, null).FirstOrDefault();
                    if (OldVipCardVipMappingData == null)
                    {
                        throw new APIException("原卡会员关系映射对象为NULL!")
                              {
                                  ErrorCode = ERROR_CODES.INVALID_BUSINESS
                              };
                    }

                    //门店Entity
                    var UnitData = unitBLL.GetByID(loggingSessionInfo.CurrentUserRole.UnitId);
                    //会员
                    VipEntity VipData = VipBLL.GetByID(OldVipCardVipMappingData.VIPID);

                    #region 卡状态记录对象
                    VipCardStatusChangeLogEntity AddVCStatusEntity = new VipCardStatusChangeLogEntity();
                    AddVCStatusEntity.LogID       = System.Guid.NewGuid().ToString();
                    AddVCStatusEntity.VipCardID   = para.VipCardID;
                    AddVCStatusEntity.Reason      = para.ChangeReason;
                    AddVCStatusEntity.OldStatusID = changeEntity.VipCardStatusId;
                    AddVCStatusEntity.CustomerID  = loggingSessionInfo.ClientID;
                    AddVCStatusEntity.Remark      = para.Remark;
                    AddVCStatusEntity.UnitID      = loggingSessionInfo.CurrentUserRole.UnitId;
                    #endregion



                    #region 新卡
                    VipCardEntity NewChangeVipCardData = new VipCardEntity();
                    if (!string.IsNullOrWhiteSpace(para.NewCardCode))
                    {
                        //查询参数
                        List <IWhereCondition> complexCondition = new List <IWhereCondition> {
                        };
                        if (!string.IsNullOrEmpty(para.NewCardCode))
                        {
                            complexCondition.Add(new DirectCondition("VipCardCode='" + para.NewCardCode + "' or VipCardISN='" + para.NewCardCode.ToString() + "' "));
                        }
                        //新卡对象
                        NewChangeVipCardData = VipCardBLL.Query(complexCondition.ToArray(), null).FirstOrDefault();
                        if (NewChangeVipCardData == null)
                        {
                            throw new APIException("新卡不存在!")
                                  {
                                      ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                  };
                        }
                        //新卡号赋值
                        NewVipCardCode = NewChangeVipCardData.VipCardCode ?? "";
                        //新卡数据赋值
                        NewChangeVipCardData.VipCardGradeID      = changeEntity.VipCardGradeID;
                        NewChangeVipCardData.BatchNo             = changeEntity.BatchNo;
                        NewChangeVipCardData.BeginDate           = changeEntity.BeginDate;
                        NewChangeVipCardData.EndDate             = changeEntity.EndDate;
                        NewChangeVipCardData.TotalAmount         = changeEntity.TotalAmount == null ? 0 : changeEntity.TotalAmount.Value;
                        NewChangeVipCardData.BalanceAmount       = changeEntity.BalanceAmount == null ? 0 : changeEntity.BalanceAmount.Value;
                        NewChangeVipCardData.BalancePoints       = changeEntity.BalancePoints == null ? 0 : changeEntity.BalancePoints.Value;
                        NewChangeVipCardData.BalanceBonus        = changeEntity.BalanceBonus == null ? 0 : changeEntity.BalanceBonus.Value;
                        NewChangeVipCardData.CumulativeBonus     = changeEntity.CumulativeBonus == null ? 0 : changeEntity.CumulativeBonus.Value;
                        NewChangeVipCardData.PurchaseTotalAmount = changeEntity.PurchaseTotalAmount == null ? 0 : changeEntity.PurchaseTotalAmount.Value;
                        NewChangeVipCardData.PurchaseTotalCount  = changeEntity.PurchaseTotalCount == null ? 0 : changeEntity.PurchaseTotalCount.Value;
                        NewChangeVipCardData.CheckCode           = changeEntity.CheckCode;
                        NewChangeVipCardData.SingleTransLimit    = changeEntity.SingleTransLimit == null ? 0 : changeEntity.SingleTransLimit.Value;
                        NewChangeVipCardData.IsOverrunValid      = changeEntity.IsOverrunValid == null ? 0 : changeEntity.IsOverrunValid.Value;
                        NewChangeVipCardData.RechargeTotalAmount = changeEntity.RechargeTotalAmount == null ? 0 : changeEntity.RechargeTotalAmount.Value;
                        NewChangeVipCardData.LastSalesTime       = changeEntity.LastSalesTime;
                        NewChangeVipCardData.IsGift         = changeEntity.IsGift == null ? 0 : changeEntity.IsGift.Value;
                        NewChangeVipCardData.SalesAmount    = changeEntity.SalesAmount;
                        NewChangeVipCardData.SalesUserId    = changeEntity.SalesUserId;
                        NewChangeVipCardData.CustomerID     = changeEntity.CustomerID;
                        NewChangeVipCardData.MembershipTime = changeEntity.MembershipTime;
                        NewChangeVipCardData.SalesUserName  = changeEntity.SalesUserName == null ? "" : changeEntity.SalesUserName;
                        NewChangeVipCardData.CreateBy       = changeEntity.CreateBy;
                    }
                    #endregion


                    switch (para.OperationType)
                    {
                    case 1:
                        #region 调整卡余额
                        //卡更新

                        //卡内总金额
                        if (para.BalanceMoney > 0)
                        {
                            changeEntity.RechargeTotalAmount += para.BalanceMoney;
                            if (changeEntity.RechargeTotalAmount < 0)
                            {
                                throw new APIException("调整后的余额小于0!")
                                      {
                                          ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                      };
                            }
                        }
                        //changeEntity.BalanceAmount = changeEntity.BalanceAmount ?? 0;
                        //
                        changeEntity.BalanceAmount = NewMoney;
                        //执行更新
                        VipCardBLL.Update(changeEntity, pTran);

                        //新增余额变动记录
                        VipCardBalanceChangeEntity AddEntity = new VipCardBalanceChangeEntity();
                        AddEntity.ChangeID     = System.Guid.NewGuid().ToString();
                        AddEntity.VipCardCode  = changeEntity.VipCardCode;
                        AddEntity.ChangeAmount = para.BalanceMoney;
                        //变动前卡内余额
                        AddEntity.ChangeBeforeBalance = OldMoney;
                        //变动后卡内余额
                        AddEntity.ChangeAfterBalance = NewMoney;
                        AddEntity.ChangeReason       = para.ChangeReason;
                        AddEntity.Status             = 1;
                        AddEntity.Remark             = para.Remark;
                        AddEntity.CustomerID         = loggingSessionInfo.ClientID;
                        AddEntity.UnitID             = loggingSessionInfo.CurrentUserRole.UnitId;
                        //执行新增
                        VipCardBalanceChangeBLL.Create(AddEntity, pTran);

                        //增加图片上传
                        if (!string.IsNullOrEmpty(para.ImageUrl))
                        {
                            var objectImagesEntity = new ObjectImagesEntity()
                            {
                                ImageId  = Guid.NewGuid().ToString(),
                                ObjectId = AddEntity.ChangeID,
                                ImageURL = para.ImageUrl
                            };
                            objectImagesBLL.Create(objectImagesEntity, pTran);
                        }
                        #region 充值记录
                        //读取最近一次积分变更记录
                        List <OrderBy> lstOrder = new List <OrderBy> {
                        };                                                   //排序参数
                        lstOrder.Add(new OrderBy()
                        {
                            FieldName = "TransTime", Direction = OrderByDirections.Desc
                        });
                        var transLogInfo = vipCardTransLogBLL.QueryByEntity(new VipCardTransLogEntity()
                        {
                            VipCardCode = changeEntity.VipCardCode, TransType = "C"
                        }, lstOrder.ToArray()).FirstOrDefault();
                        //期末积分
                        int newValue = transLogInfo != null ? (transLogInfo.NewValue ?? 0) : 0;
                        var vipCardTransLogEntity = new VipCardTransLogEntity()
                        {
                            VipCardCode  = VipData == null ? "" : VipData.VipCode,
                            UnitCode     = UnitData == null ? "" : UnitData.UnitCode,
                            TransContent = "余额",
                            TransType    = "C",
                            TransTime    = DateTime.Now,
                            TransAmount  = para.BalanceMoney,
                            LastValue    = newValue,                                      //期初金额
                            NewValue     = Convert.ToInt32(para.BalanceMoney) + newValue, //期末金额
                            CustomerID   = loggingSessionInfo.ClientID
                        };
                        vipCardTransLogBLL.Create(vipCardTransLogEntity, pTran);

                        #endregion


                        #endregion
                        break;

                    case 2:
                        #region 卡升级

                        //卡类型升级
                        if (para.VipCardTypeId != 0)
                        {
                            VipCardVipMappingBLL.updateVipCardByType(VipData.VIPID, para.VipCardTypeId, para.ChangeReason, para.Remark, VipData.VipCode, pTran);
                        }
                        //卡号升级
                        else
                        {
                            #region 原卡

                            #region 更新原卡
                            changeEntity.VipCardStatusId = 3;
                            //当前月,累计金额清0
                            //changeEntity.BalanceAmount = 0;
                            //changeEntity.TotalAmount = 0;
                            VipCardBLL.Update(changeEntity, pTran);    //执行
                            #endregion

                            #region 新增原卡状态记录
                            AddVCStatusEntity.VipCardStatusID = 3;
                            AddVCStatusEntity.Action          = "卡升级";
                            AddVCStatusEntity.Remark         += "已升级为:" + NewChangeVipCardData.VipCardCode;
                            VipCardStatusChangeLogBLL.Create(AddVCStatusEntity, pTran);    //执行
                            #endregion

                            #region 新增原卡余额变动记录
                            //if (OldMoney > 0)
                            //{
                            //    VipCardBalanceChangeEntity AddOldCardBalanceData = new VipCardBalanceChangeEntity();
                            //    AddOldCardBalanceData.ChangeID = System.Guid.NewGuid().ToString();
                            //    AddOldCardBalanceData.VipCardCode = changeEntity.VipCardCode;
                            //    AddOldCardBalanceData.ChangeAmount = -OldMoney;
                            //    //变动前卡内余额
                            //    AddOldCardBalanceData.ChangeBeforeBalance = OldMoney;
                            //    //变动后卡内余额
                            //    AddOldCardBalanceData.ChangeAfterBalance = 0;
                            //    AddOldCardBalanceData.ChangeReason = para.ChangeReason;
                            //    AddOldCardBalanceData.Status = 1;
                            //    AddOldCardBalanceData.Remark = para.Remark;
                            //    AddOldCardBalanceData.CustomerID = loggingSessionInfo.ClientID;
                            //    AddOldCardBalanceData.UnitID = loggingSessionInfo.CurrentUserRole.UnitId;
                            //    VipCardBalanceChangeBLL.Create(AddOldCardBalanceData, pTran);//执行
                            //    //增加图片上传
                            //    if (!string.IsNullOrEmpty(para.ImageUrl))
                            //    {
                            //        var objectImagesEntity = new ObjectImagesEntity()
                            //        {
                            //            ImageId = Guid.NewGuid().ToString(),
                            //            ObjectId = AddOldCardBalanceData.ChangeID,
                            //            ImageURL = para.ImageUrl
                            //        };
                            //        objectImagesBLL.Create(objectImagesEntity, pTran);
                            //    }
                            //}
                            #endregion

                            #endregion

                            #region 新卡

                            VipData.VipCode = para.NewCardCode;
                            VipBLL.Update(VipData, pTran);

                            #region 更新新卡
                            if (!string.IsNullOrEmpty(NewChangeVipCardData.MembershipUnit))
                            {
                                throw new APIException("该会员卡已绑定会员!")
                                      {
                                          ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                      }
                            }
                            ;
                            if (NewChangeVipCardData.VipCardStatusId != 0)
                            {
                                throw new APIException("该会员卡已激活!")
                                      {
                                          ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                      }
                            }
                            ;
                            if (NewChangeVipCardData.VipCardTypeID.Value == changeEntity.VipCardTypeID.Value)
                            {
                                throw new APIException("该卡号与原卡等级相同,请更换卡号后重新尝试!")
                                      {
                                          ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                      }
                            }
                            ;

                            #region 返回新卡卡ID
                            rd.VipCardID = NewChangeVipCardData.VipCardID;
                            #endregion
                            NewChangeVipCardData.MembershipUnit  = changeEntity.MembershipUnit;
                            NewChangeVipCardData.VipCardStatusId = 1;
                            VipCardBLL.Update(NewChangeVipCardData, pTran);    //执行
                            #endregion

                            #region 新增新卡卡关系
                            VipCardVipMappingEntity AddVipCardVipMappingData = new VipCardVipMappingEntity();
                            AddVipCardVipMappingData.MappingID  = System.Guid.NewGuid().ToString();
                            AddVipCardVipMappingData.VIPID      = OldVipCardVipMappingData.VIPID;
                            AddVipCardVipMappingData.VipCardID  = NewChangeVipCardData.VipCardID;
                            AddVipCardVipMappingData.CustomerID = loggingSessionInfo.ClientID;
                            VipCardVipMappingBLL.Create(AddVipCardVipMappingData, pTran);    //执行
                            #endregion

                            #region 更新会员编号
                            //VipEntity SJ_VipData = VipBLL.GetByID(OldVipCardVipMappingData.VIPID);
                            //if (VipData == null)
                            //    throw new APIException("会员不存在!") { ErrorCode = ERROR_CODES.INVALID_BUSINESS };

                            //VipData.VipCode = NewChangeVipCardData.VipCardCode;
                            //VipBLL.Update(VipData, pTran);//执行
                            #endregion

                            #region 新增新卡状态记录
                            //新增新卡状态记录

                            VipCardStatusChangeLogEntity AddNewVCStatusEntity = new VipCardStatusChangeLogEntity();
                            AddNewVCStatusEntity.LogID           = System.Guid.NewGuid().ToString();
                            AddNewVCStatusEntity.VipCardID       = NewChangeVipCardData.VipCardID;
                            AddNewVCStatusEntity.VipCardStatusID = 1;
                            AddNewVCStatusEntity.Reason          = para.ChangeReason;
                            AddNewVCStatusEntity.OldStatusID     = 0;
                            AddNewVCStatusEntity.CustomerID      = loggingSessionInfo.ClientID;
                            AddNewVCStatusEntity.Action          = "卡升级";
                            AddNewVCStatusEntity.Remark          = para.Remark + "由旧卡:" + changeEntity.VipCardCode + "升级";
                            AddNewVCStatusEntity.UnitID          = loggingSessionInfo.CurrentUserRole.UnitId;
                            VipCardStatusChangeLogBLL.Create(AddNewVCStatusEntity, pTran);    //执行

                            #endregion

                            #region 新增新卡余额记录
                            //新增余额记录
                            //if (OldMoney > 0)
                            //{
                            //    VipCardBalanceChangeEntity AddNewCardBalanceData = new VipCardBalanceChangeEntity();
                            //    AddNewCardBalanceData.ChangeID = System.Guid.NewGuid().ToString();
                            //    AddNewCardBalanceData.VipCardCode = NewChangeVipCardData.VipCardCode;
                            //    AddNewCardBalanceData.ChangeAmount = OldMoney;
                            //    //变动前卡内余额
                            //    AddNewCardBalanceData.ChangeBeforeBalance = 0;
                            //    //变动后卡内余额
                            //    AddNewCardBalanceData.ChangeAfterBalance = NewChangeVipCardData.BalanceAmount == null ? 0 : NewChangeVipCardData.BalanceAmount.Value;
                            //    AddNewCardBalanceData.ChangeReason = para.ChangeReason;
                            //    AddNewCardBalanceData.Status = 1;
                            //    AddNewCardBalanceData.Remark = para.Remark;
                            //    AddNewCardBalanceData.CustomerID = loggingSessionInfo.ClientID;
                            //    VipCardBalanceChangeBLL.Create(AddNewCardBalanceData, pTran);//执行
                            //    //增加图片上传
                            //    if (!string.IsNullOrEmpty(para.ImageUrl))
                            //    {
                            //        var objectImagesEntity = new ObjectImagesEntity()
                            //        {
                            //            ImageId = Guid.NewGuid().ToString(),
                            //            ObjectId = AddNewCardBalanceData.ChangeID,
                            //            ImageURL = para.ImageUrl
                            //        };
                            //        objectImagesBLL.Create(objectImagesEntity, pTran);
                            //    }
                            //}
                            #endregion

                            #endregion
                        }
                        #endregion

                        break;

                    case 3:
                        #region 挂失
                        changeEntity.VipCardStatusId = 4;
                        //执行更新
                        VipCardBLL.Update(changeEntity, pTran);
                        //执行
                        AddVCStatusEntity.VipCardStatusID = 4;
                        AddVCStatusEntity.PicUrl          = para.ImageUrl;
                        AddVCStatusEntity.Action          = "挂失";
                        VipCardStatusChangeLogBLL.Create(AddVCStatusEntity, pTran);
                        #endregion

                        break;

                    case 4:

                        #region 冻结
                        changeEntity.VipCardStatusId = 2;
                        //执行更新
                        VipCardBLL.Update(changeEntity, pTran);
                        //执行新增
                        AddVCStatusEntity.VipCardStatusID = 2;
                        AddVCStatusEntity.Action          = "冻结";
                        VipCardStatusChangeLogBLL.Create(AddVCStatusEntity, pTran);
                        #endregion
                        break;

                    case 5:
                        #region 转卡
                        #region 原卡
                        #region 更新原卡
                        changeEntity.VipCardStatusId = 3;
                        //当前月,累计金额清0
                        changeEntity.BalanceAmount = 0;
                        changeEntity.TotalAmount   = 0;
                        VipCardBLL.Update(changeEntity, pTran);    //执行
                        #endregion

                        #region 新增原卡状态记录
                        AddVCStatusEntity.VipCardStatusID = 3;
                        AddVCStatusEntity.Action          = "转卡";
                        AddVCStatusEntity.Remark         += "已转移为:" + NewChangeVipCardData.VipCardCode;
                        VipCardStatusChangeLogBLL.Create(AddVCStatusEntity, pTran);    //执行
                        #endregion


                        #region 新增原卡余额变动记录
                        if (OldMoney > 0)
                        {
                            VipCardBalanceChangeEntity AddOldZKCardBalanceData = new VipCardBalanceChangeEntity();
                            AddOldZKCardBalanceData.ChangeID     = System.Guid.NewGuid().ToString();
                            AddOldZKCardBalanceData.VipCardCode  = changeEntity.VipCardCode;
                            AddOldZKCardBalanceData.ChangeAmount = -OldMoney;
                            //变动前卡内余额
                            AddOldZKCardBalanceData.ChangeBeforeBalance = OldMoney;
                            //变动后卡内余额
                            AddOldZKCardBalanceData.ChangeAfterBalance = 0;
                            AddOldZKCardBalanceData.ChangeReason       = para.ChangeReason;
                            AddOldZKCardBalanceData.Status             = 1;
                            AddOldZKCardBalanceData.Remark             = para.Remark;
                            AddOldZKCardBalanceData.CustomerID         = loggingSessionInfo.ClientID;
                            AddOldZKCardBalanceData.UnitID             = loggingSessionInfo.CurrentUserRole.UnitId;
                            VipCardBalanceChangeBLL.Create(AddOldZKCardBalanceData, pTran);     //执行
                            //增加图片上传
                            if (!string.IsNullOrEmpty(para.ImageUrl))
                            {
                                var objectImagesEntity = new ObjectImagesEntity()
                                {
                                    ImageId  = Guid.NewGuid().ToString(),
                                    ObjectId = AddOldZKCardBalanceData.ChangeID,
                                    ImageURL = para.ImageUrl
                                };
                                objectImagesBLL.Create(objectImagesEntity, pTran);
                            }
                        }
                        #endregion

                        #endregion
                        #region 新卡

                        #region 更新新卡
                        if (!string.IsNullOrEmpty(NewChangeVipCardData.MembershipUnit))
                        {
                            throw new APIException("该会员卡已绑定会员!")
                                  {
                                      ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                  }
                        }
                        ;
                        if (NewChangeVipCardData.VipCardStatusId != 0)
                        {
                            throw new APIException("该会员卡已激活!")
                                  {
                                      ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                  }
                        }
                        ;
                        if (NewChangeVipCardData.VipCardTypeID.Value != changeEntity.VipCardTypeID.Value)
                        {
                            throw new APIException("该卡号与原卡等级不同,请更换卡号后重新尝试!")
                                  {
                                      ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                  }
                        }
                        ;

                        #region 返回新卡卡ID
                        rd.VipCardID = NewChangeVipCardData.VipCardID;
                        #endregion
                        NewChangeVipCardData.MembershipUnit  = changeEntity.MembershipUnit;
                        NewChangeVipCardData.VipCardStatusId = 1;
                        VipCardBLL.Update(NewChangeVipCardData, pTran);    //执行
                        #endregion



                        #region 新增新卡卡关系
                        VipCardVipMappingEntity AddZKVipCardVipMappingData = new VipCardVipMappingEntity();
                        AddZKVipCardVipMappingData.MappingID  = System.Guid.NewGuid().ToString();
                        AddZKVipCardVipMappingData.VIPID      = OldVipCardVipMappingData.VIPID;
                        AddZKVipCardVipMappingData.VipCardID  = NewChangeVipCardData.VipCardID;
                        AddZKVipCardVipMappingData.CustomerID = loggingSessionInfo.ClientID;
                        VipCardVipMappingBLL.Create(AddZKVipCardVipMappingData, pTran);    //执行
                        #endregion

                        #region 更新会员编号
                        //VipEntity ZK_VipData = VipBLL.GetByID(OldVipCardVipMappingData.VIPID);
                        if (VipData == null)
                        {
                            throw new APIException("会员不存在!")
                                  {
                                      ErrorCode = ERROR_CODES.INVALID_BUSINESS
                                  }
                        }
                        ;

                        VipData.VipCode = NewChangeVipCardData.VipCardCode;
                        VipBLL.Update(VipData, pTran);    //执行
                        #endregion

                        #region 新增新卡状态记录
                        VipCardStatusChangeLogEntity AddNewZKVCStatusEntity = new VipCardStatusChangeLogEntity();
                        AddNewZKVCStatusEntity.LogID           = System.Guid.NewGuid().ToString();
                        AddNewZKVCStatusEntity.VipCardID       = NewChangeVipCardData.VipCardID;
                        AddNewZKVCStatusEntity.VipCardStatusID = 1;
                        AddNewZKVCStatusEntity.Reason          = para.ChangeReason;
                        AddNewZKVCStatusEntity.OldStatusID     = 0;
                        AddNewZKVCStatusEntity.CustomerID      = loggingSessionInfo.ClientID;
                        AddNewZKVCStatusEntity.Action          = "转卡";
                        AddNewZKVCStatusEntity.Remark          = para.Remark + para.Remark + "由旧卡:" + changeEntity.VipCardCode + "转移";
                        AddNewZKVCStatusEntity.UnitID          = loggingSessionInfo.CurrentUserRole.UnitId;
                        VipCardStatusChangeLogBLL.Create(AddNewZKVCStatusEntity, pTran);    //执行
                        #endregion

                        #region 新增新卡余额记录
                        if (OldMoney > 0)
                        {
                            VipCardBalanceChangeEntity AddNewZKCardBalanceData = new VipCardBalanceChangeEntity();
                            AddNewZKCardBalanceData.ChangeID     = System.Guid.NewGuid().ToString();
                            AddNewZKCardBalanceData.VipCardCode  = NewChangeVipCardData.VipCardCode;
                            AddNewZKCardBalanceData.ChangeAmount = OldMoney;
                            //变动前卡内余额
                            AddNewZKCardBalanceData.ChangeBeforeBalance = 0;
                            //变动后卡内余额
                            AddNewZKCardBalanceData.ChangeAfterBalance = NewChangeVipCardData.BalanceAmount == null ? 0 : NewChangeVipCardData.BalanceAmount.Value;
                            AddNewZKCardBalanceData.ChangeReason       = para.ChangeReason;
                            AddNewZKCardBalanceData.Status             = 1;
                            AddNewZKCardBalanceData.Remark             = para.Remark;
                            AddNewZKCardBalanceData.CustomerID         = loggingSessionInfo.ClientID;
                            AddNewZKCardBalanceData.UnitID             = loggingSessionInfo.CurrentUserRole.UnitId;
                            VipCardBalanceChangeBLL.Create(AddNewZKCardBalanceData, pTran);    //执行
                            //增加图片上传
                            if (!string.IsNullOrEmpty(para.ImageUrl))
                            {
                                var objectImagesEntity = new ObjectImagesEntity()
                                {
                                    ImageId  = Guid.NewGuid().ToString(),
                                    ObjectId = AddNewZKCardBalanceData.ChangeID,
                                    ImageURL = para.ImageUrl
                                };
                                objectImagesBLL.Create(objectImagesEntity, pTran);
                            }
                        }
                        #endregion



                        #endregion
                        #endregion
                        break;

                    case 6:

                        #region 解挂
                        changeEntity.VipCardStatusId = 1;
                        //执行更新
                        VipCardBLL.Update(changeEntity, pTran);
                        //执行新增
                        AddVCStatusEntity.VipCardStatusID = 1;
                        AddVCStatusEntity.Action          = "解挂";
                        VipCardStatusChangeLogBLL.Create(AddVCStatusEntity, pTran);
                        #endregion
                        break;

                    case 7:

                        #region 解冻
                        changeEntity.VipCardStatusId = 1;
                        //执行更新
                        VipCardBLL.Update(changeEntity, pTran);
                        //执行新增
                        AddVCStatusEntity.VipCardStatusID = 1;
                        AddVCStatusEntity.Action          = "解冻";
                        VipCardStatusChangeLogBLL.Create(AddVCStatusEntity, pTran);
                        #endregion
                        break;

                    case 8:
                        #region 作废
                        changeEntity.VipCardStatusId = 3;
                        //执行更新
                        VipCardBLL.Update(changeEntity, pTran);


                        //执行新增
                        AddVCStatusEntity.VipCardStatusID = 3;
                        AddVCStatusEntity.Action          = "作废";
                        VipCardStatusChangeLogBLL.Create(AddVCStatusEntity, pTran);
                        #endregion
                        break;

                    case 9:
                        #region 唤醒
                        changeEntity.VipCardStatusId = 1;
                        //执行更新
                        VipCardBLL.Update(changeEntity, pTran);
                        //执行新增
                        AddVCStatusEntity.VipCardStatusID = 1;
                        AddVCStatusEntity.Action          = "唤醒";
                        VipCardStatusChangeLogBLL.Create(AddVCStatusEntity, pTran);
                        #endregion
                        break;

                    case 10:
                        #region 激活
                        changeEntity.VipCardStatusId = 1;
                        //执行更新
                        VipCardBLL.Update(changeEntity, pTran);
                        //执行新增
                        AddVCStatusEntity.VipCardStatusID = 1;
                        AddVCStatusEntity.Action          = "激活";
                        VipCardStatusChangeLogBLL.Create(AddVCStatusEntity, pTran);
                        #endregion
                        break;

                    default:
                        throw new APIException("当前操作类型不匹配!")
                              {
                                  ErrorCode = ERROR_CODES.INVALID_REQUEST_LACK_REQUEST_PARAMETER
                              };
                        break;
                    }
                    ;
                    pTran.Commit();
                    #region 卡升级,转卡操作转移消费记录表
                    if ((para.OperationType == 2 || para.OperationType == 5) && string.IsNullOrEmpty(para.VipCardTypeId.ToString())) //卡类型升级不执行此操作
                    {
                        string StrSql = string.Format("update VipCardTransLog set VipCardCode='{0}',OldVipCardCode='{1}' where VipCardCode='{1}'", NewVipCardCode, OldVipCardCode);
                        vipCardTransLogBLL.UpdateVipCardTransLog(StrSql);//执行
                    }
                    #endregion

                    var eventService = new EventService();
                    var vipMsg       = new EventContract
                    {
                        Operation  = OptEnum.Update,
                        EntityType = EntityTypeEnum.Vip,
                        Id         = VipData.VIPID
                    };
                    eventService.PublishMsg(vipMsg);
                }
                catch (APIException apiEx)
                {
                    pTran.Rollback();//回滚事物
                    throw new APIException(apiEx.ErrorCode, apiEx.Message);
                }
                catch (Exception ex)
                {
                    pTran.Rollback();//回滚事务
                    throw new APIException(ex.Message);
                }
            }
            return(rd);
        }
コード例 #24
0
        public string SaveRetailTrader(string pRequest)
        {
            var rp = pRequest.DeserializeJSONTo <APIRequest <SaveRetailTraderRP> >();

            if (rp.Parameters.RetailTraderInfo == null)
            {
                throw new APIException("缺少参数【RetailTraderInfo】或参数值为空")
                      {
                          ErrorCode = 135
                      };
            }
            if (rp.Parameters.IsNewHeadImg == null)
            {
                throw new APIException("缺少参数【IsNewHeadImg】或参数值为空")
                      {
                          ErrorCode = 135
                      };
            }
            var loggingSessionInfo = Default.GetBSLoggingSession(rp.CustomerID, "1");
            var bll = new RetailTraderBLL(loggingSessionInfo);
            var rd  = new SaveRetailTraderRD();
            var rsp = new SuccessResponse <IAPIResponseData>(rd);
            //判断登陆名是否有重复的,要从ap库里取
            var ds = bll.getRetailTraderInfoByLogin2(rp.Parameters.RetailTraderInfo.RetailTraderLogin, "", 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]); //直接根据所需要的字段反序列化
                if (retailTraderInfo.RetailTraderID != rp.Parameters.RetailTraderInfo.RetailTraderID)    //如果取出来的实体的id和传过来的参数的id不一样,说明不是同一个实体
                {
                    rsp.Message    = "该登陆账号已经存在,不能重复使用";
                    rsp.ResultCode = 137;
                    return(rsp.ToJSON());//这里要返回
                }
            }


            //从RetailTraderInfo转到RetailTraderEntity
            RetailTraderEntity en = new RetailTraderEntity();

            en.RetailTraderID = rp.Parameters.RetailTraderInfo.RetailTraderID;
            if (rp.Parameters.RetailTraderInfo.RetailTraderID == null || rp.Parameters.RetailTraderInfo.RetailTraderID.ToString() == "")
            {
                en.RetailTraderID = Guid.NewGuid().ToString();
                //获取当前最大的
                //如果是新增,则取本客户下的最大编号作为分销商编号
                en.RetailTraderCode = bll.getMaxRetailTraderCode(rp.CustomerID) + 1;

                en.CreateTime = DateTime.Now;
                en.CreateBy   = rp.UserID;
            }
            en.RetailTraderName  = rp.Parameters.RetailTraderInfo.RetailTraderName;
            en.RetailTraderLogin = rp.Parameters.RetailTraderInfo.RetailTraderLogin;
            if (!string.IsNullOrEmpty(rp.Parameters.RetailTraderInfo.RetailTraderPass))
            {
                en.RetailTraderPass = MD5Helper.Encryption(rp.Parameters.RetailTraderInfo.RetailTraderPass);
            }
            en.RetailTraderMan     = rp.Parameters.RetailTraderInfo.RetailTraderMan;
            en.RetailTraderPhone   = rp.Parameters.RetailTraderInfo.RetailTraderPhone;
            en.RetailTraderAddress = rp.Parameters.RetailTraderInfo.RetailTraderAddress;
            en.CooperateType       = rp.Parameters.RetailTraderInfo.CooperateType;
            en.SalesType           = rp.Parameters.RetailTraderInfo.SalesType;
            en.SellUserID          = rp.Parameters.RetailTraderInfo.SellUserID;
            en.UnitID = rp.Parameters.RetailTraderInfo.UnitID;
            en.Status = "1";//启用状态

            en.LastUpdateTime = DateTime.Now;
            en.LastUpdateBy   = rp.UserID;
            en.IsDelete       = 0;
            en.CustomerId     = rp.CustomerID;
            if (rp.Parameters.RetailTraderInfo.RetailTraderID == null || rp.Parameters.RetailTraderInfo.RetailTraderID.ToString() == "")
            {
                bll.Create(en);
                //  rp.Parameters.RetailTraderInfo.RetailTraderID = en.RetailTraderID;//为了返回数据时使用
            }
            else
            {
                bll.Update(en, null, false);//不更新空值的字段
            }
            //另外要保存到ap库里,这样才能登陆时从ap库里统一取出分销商信息,和对应的customerid
            if (rp.Parameters.RetailTraderInfo.RetailTraderID == null || rp.Parameters.RetailTraderInfo.RetailTraderID.ToString() == "")
            {
                bll.Create2Ap(en);                                                 //ap库里的RetailTraderID和商户里的RetailTraderID是一样的
                rp.Parameters.RetailTraderInfo.RetailTraderID = en.RetailTraderID; //为了返回数据时使用,到这里才赋值***
            }
            else
            {
                bll.Update2Ap(en, null, false);//不更新空值的字段
            }

            //如果IsNewHeadImg为1时,即上传图片时,则删除之前的关联图片(逻辑删除)
            if (rp.Parameters.IsNewHeadImg == 1)
            {
                ObjectImagesBLL    _ObjectImagesBLL = new ObjectImagesBLL(loggingSessionInfo);
                ObjectImagesEntity ObjectImagesEn   = new ObjectImagesEntity();

                _ObjectImagesBLL.DeleteByObjectID(en.RetailTraderID.ToString());
            }

            rd.RetailTraderInfo = rp.Parameters.RetailTraderInfo;


            return(rsp.ToJSON());
        }
コード例 #25
0
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 public void Update(ObjectImagesEntity pEntity)
 {
     Update(pEntity, true);
 }
コード例 #26
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);
        }
コード例 #27
0
        protected override SetSignInRD ProcessRequest(DTO.Base.APIRequest <SetSignInRP> pRequest)
        {
            SetSignInRD rd = new SetSignInRD();

            string customerCode = pRequest.Parameters.CustomerCode;

            string phone = pRequest.Parameters.LoginName;

            string password = pRequest.Parameters.Password;

            if (string.IsNullOrEmpty(customerCode))
            {
                throw new APIException("客户代码不能为空")
                      {
                          ErrorCode = Error_CustomerCode_NotNull
                      };
            }

            WMenuBLL menuServer = new WMenuBLL(Default.GetAPLoggingSession(""));
            string   customerId = menuServer.GetCustomerIDByCustomerCode(customerCode);

            if (string.IsNullOrEmpty(customerId))
            {
                throw new APIException("客户代码对应的客户不存在")
                      {
                          ErrorCode = Error_CustomerCode_NotExist
                      };
            }
            var currentUserInfo = Default.GetBSLoggingSession(customerId, "1");

            VipBLL vipBll = new VipBLL(currentUserInfo);

            #region 判断用户是否存在
            if (!vipBll.JudgeUserExist(phone, customerId))
            {
                throw new APIException("用户名无效")
                      {
                          ErrorCode = Error_UserName_InValid
                      };
            }

            #endregion

            #region 判断密码是否正确
            if (!vipBll.JudgeUserPasswordExist(phone, customerId, password))
            {
                throw new APIException("登录密码错误")
                      {
                          ErrorCode = Error_Password_InValid
                      };
            }

            #endregion
            #region 判断是否有登录连锁掌柜App权限
            var  userRolesDs = vipBll.GetUserRoles(phone, customerId, password);
            bool flag        = false;
            foreach (DataRow row in userRolesDs.Tables[0].Rows)
            {
                if (row["Def_App_Code"].ToString().ToUpper() == "APP")
                {
                    flag = true;
                    break;
                }
            }
            if (!flag)
            {
                throw new APIException("该账号无权登录本系统")
                      {
                          ErrorCode = Error_Password_InValid
                      };
            }
            #endregion
            #region 判断该客服人员是否有客服或操作订单的权限
            //if (!vipBll.JudgeUserRoleExist(phone, customerId, password))
            //{
            //    throw new APIException("该账号无权登录本系统") { ErrorCode = Error_Password_InValid };
            //}
            #endregion

            #region 获取UserId
            var ds = vipBll.GetUserIdByUserNameAndPassword(phone, customerId, password);
            rd.UserId     = ds.Tables[0].Rows[0]["user_id"].ToString();
            rd.UserName   = ds.Tables[0].Rows[0]["user_name"].ToString();
            rd.Status     = int.Parse(ds.Tables[0].Rows[0]["user_status"].ToString());
            rd.CustomerId = customerId;
            var T_SuperRetailTraderbll  = new T_SuperRetailTraderBLL(currentUserInfo);
            var T_SuperRetailTraderInfo = T_SuperRetailTraderbll.QueryByEntity(new T_SuperRetailTraderEntity()
            {
                CustomerId = customerId, SuperRetailTraderFromId = rd.UserId, SuperRetailTraderFrom = "User"
            }, new OrderBy[] { new OrderBy()
                               {
                                   FieldName = "CreateTime", Direction = OrderByDirections.Desc
                               } }).FirstOrDefault();
            if (T_SuperRetailTraderInfo != null)
            {
                rd.SuperRetailTraderID = T_SuperRetailTraderInfo.SuperRetailTraderID.ToString();
            }
            #endregion
            //如果状态不等于1,就说明已经停用,
            if (rd.Status != 1)
            {
                throw new APIException("该员工已经被停用,请联系管理员")
                      {
                          ErrorCode = Error_Password_InValid
                      };
            }


            #region 获取角色列表
            var roleCodeDs = vipBll.GetRoleCodeByUserId(rd.UserId, customerId);

            var tmp = roleCodeDs.Tables[0].AsEnumerable().Select(t => new RoleCodeInfo()
            {
                RoleCode = t["role_code"].ToString()
            });

            #endregion
            rd.UnitId = vipBll.GetUnitByUserId(rd.UserId);//获取会集店
            TUnitBLL tUnitBLL = new TUnitBLL(currentUserInfo);
            if (!string.IsNullOrEmpty(rd.UnitId))
            {
                rd.UnitName = tUnitBLL.GetByID(rd.UnitId).UnitName;
            }
            else
            {
                rd.UnitName = "";
            }


            //app登陆用户权限 add by henry 2015-3-26
            var roleCodeList = vipBll.GetAppMenuByUserId(rd.UserId);


            //app登陆用户权限 add by henry 2015-3-26
            List <string> lst = new List <string>();
            if (roleCodeDs.Tables[0] != null && roleCodeDs.Tables[0].Rows.Count > 0)
            {
                foreach (DataRow item in roleCodeDs.Tables[0].Rows)
                {
                    var menuList = new JIT.CPOS.BS.DataAccess.AppSysService(currentUserInfo).GetRoleMenus(currentUserInfo.ClientID, item["role_id"] + "");
                    if (menuList != null)
                    {
                        lst.AddRange(menuList.Select(m => m.Menu_Code).Distinct().ToList());
                    }
                }
            }

            rd.MenuCodeList = new List <Menu>();
            foreach (var item in lst.Distinct().ToList())
            {
                rd.MenuCodeList.Add(new Menu()
                {
                    MenuCode = item
                });
            }

            //if (roleCodeList != null)
            //{
            //    rd.MenuCodeList = DataTableToObject.ConvertToList<Menu>(roleCodeList.Tables[0]);
            //}

            rd.RoleCodeList = tmp.ToArray();
            rd.CustomerName = currentUserInfo.ClientName;


            //销售员头像
            ObjectImagesBLL    _ObjectImagesBLL = new ObjectImagesBLL(currentUserInfo);
            ObjectImagesEntity en = new ObjectImagesEntity();
            en.ObjectId = rd.UserId;//根据获取的用户ID
            List <ObjectImagesEntity> ImgList = _ObjectImagesBLL.QueryByEntity(en, null).OrderByDescending(p => p.CreateTime).ToList();
            if (ImgList != null && ImgList.Count != 0)
            {
                // string fileDNS = customerBasicSettingBll.GetSettingValueByCode("FileDNS"); ;//http://182.254.156.57:811
                rd.HeadImg = ImgList[0].ImageURL;
            }


            #region 获取appLogo
            //基础数据初始化
            CustomerBasicSettingBLL      customerBasicSettingBLL = new CustomerBasicSettingBLL(currentUserInfo);
            List <CustomerBasicCodeInfo> customerBasicCodeList   = new List <CustomerBasicCodeInfo>();
            //查询条件
            CustomerBasicSettingEntity customerBasicSettingEntity = new CustomerBasicSettingEntity()
            {
                CustomerID  = currentUserInfo.ClientID,
                SettingCode = "WebLogo"
            };
            //执行查询
            List <CustomerBasicSettingEntity> customerBasicSettingEntityList = customerBasicSettingBLL.QueryByEntity(customerBasicSettingEntity, null).ToList();

            foreach (var a in customerBasicSettingEntityList)
            {
                CustomerBasicCodeInfo customerBasicCodeInfo = new CustomerBasicCodeInfo();

                if (a.SettingCode.Equals("WebLogo"))
                {
                    customerBasicCodeInfo.WebLogo = a.SettingValue.ToString();
                }
                customerBasicCodeList.Add(customerBasicCodeInfo);
            }

            rd.CustomerBasicCodeList = customerBasicCodeList;


            #endregion
            return(rd);
        }