/// <summary> /// 更新用户为推广主 /// </summary> /// <param name="spreaderDto">推广者dto</param> /// <returns></returns> public ResultDTO UpdateToSpreaderExt(SpreaderAndBuyerWxDTO spreaderDto) { ResultDTO result = new ResultDTO { Message = "Success" }; if (spreaderDto == null || spreaderDto.SpreaderId == Guid.Empty || spreaderDto.SpreadCode == Guid.Empty) { return(new ResultDTO { ResultCode = 1, Message = "id为空或推广码为空" }); } try { ContextSession contextSession = ContextFactory.CurrentThreadContext; //插入SpreadInfo数据库表 var oldSpreadInfo = SpreadInfo.ObjectSet().FirstOrDefault(c => c.SpreadId == spreaderDto.SpreaderId && c.SpreadCode == spreaderDto.SpreadCode && c.IsDel == 0); if (oldSpreadInfo == null) { SpreadInfo newSpreadInfo = SpreadInfo.CreateSpreadInfo(); newSpreadInfo.SpreadId = spreaderDto.SpreaderId; newSpreadInfo.SpreadCode = spreaderDto.SpreadCode; newSpreadInfo.IsDel = 0; newSpreadInfo.SpreadType = 0; contextSession.SaveObject(newSpreadInfo); contextSession.SaveChanges(); } var createUser = EBCSV.GetOrgCreateUser(spreaderDto.SpreaderId); var oldUserSpreader = UserSpreader.ObjectSet().FirstOrDefault(c => c.UserId == createUser); if (oldUserSpreader != null) { var createUsers = EBCSV.GetMyCreateAccountList(createUser); if (createUsers != null && createUsers.Contains(oldUserSpreader.SpreaderId)) { return(result); } oldUserSpreader.EntityState = EntityState.Deleted; } UserSpreader newUserSpreader = UserSpreader.CreateUserSpreader(); newUserSpreader.SpreaderId = spreaderDto.SpreaderId; newUserSpreader.UserId = createUser; newUserSpreader.SpreadCode = spreaderDto.SpreadCode; contextSession.SaveObject(newUserSpreader); contextSession.SaveChanges(); } catch (Exception ex) { LogHelper.Error(string.Format("UserSpreaderSV.UpdateToSpreaderExt异常:spreaderDto:{0}", JsonHelper.JsonSerializer(spreaderDto)), ex); return(result); } return(result); }
private void updateRalationUserSpread(ContextSession contextSession, SpreadInfo spreadInfo) { var createOrgUserId = EBCSV.GetOrgCreateUser(spreadInfo.SpreadId); var userSpreader = UserSpreader.ObjectSet().FirstOrDefault(c => c.UserId == createOrgUserId); if (userSpreader == null) { UserSpreader uSpreaderNew = UserSpreader.CreateUserSpreader(); uSpreaderNew.UserId = createOrgUserId; uSpreaderNew.SpreaderId = spreadInfo.SpreadId; uSpreaderNew.SpreadCode = spreadInfo.SpreadCode; uSpreaderNew.CreateOrderId = new Guid("00000000-0000-0000-0000-000000000000"); contextSession.SaveObject(uSpreaderNew); } }
/// <summary> /// 保存推广信息 /// </summary> /// <param name="dto"></param> /// <returns></returns> public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO SaveSpreadInfoExt(Jinher.AMP.BTP.Deploy.CustomDTO.SpreadSaveDTO dto) { if (dto == null || dto.SpreadAppId == Guid.Empty || dto.HotshopId == Guid.Empty) { return new ResultDTO { ResultCode = 1, Message = "参数为空" } } ; Guid userId = Guid.Empty; Guid iwId = Guid.Empty; // 一级代理 if (dto.SpreadType == 5) { if (dto.SubSpreadCount < 0 || dto.SubSpreadCount > 999) { return(new ResultDTO { ResultCode = 1, Message = "子代理数量仅允许输入0~999" }); } if (dto.IWCode == null) { return new ResultDTO { ResultCode = 1, Message = "参数为空" } } ; iwId = EBCSV.GetOrgIdByIwCode(dto.IWCode); if (iwId == Guid.Empty) { return new ResultDTO { ResultCode = 2, Message = "该组织不存在" } } ; // 同一个推广主或推广组织,同一个推广App,同一个旺铺仅能生成一个推广码;已存在则提示:已存在相同的推广码; var spreadInfoCount = SpreadInfo.ObjectSet().Count(c => c.IsDel != 1 && c.SpreadType == 5 && c.IWId == iwId && c.SpreadAppId == dto.SpreadAppId && c.HotshopId == dto.HotshopId); if (spreadInfoCount > 0) { return(new ResultDTO { ResultCode = 2, Message = "已存在相同的推广码" }); } } // 二级代理 else if (dto.SpreadType == 6) { if (dto.UserCode == null || dto.IWId == Guid.Empty || string.IsNullOrEmpty(dto.IWCode)) { return new ResultDTO { ResultCode = 1, Message = "参数为空" } } ; iwId = dto.IWId; userId = CBCSV.GetUserIdByAccount(dto.UserCode); if (userId == Guid.Empty) { return new ResultDTO { ResultCode = 2, Message = "该用户未注册" } } ; // 同一个推广主,同一个推广App,同一个旺铺仅能生成一个推广码;已存在则提示:已存在相同的推广码; var spreadUserCount = SpreadInfo.ObjectSet().Count(c => c.IsDel != 1 && c.SpreadType == 6 && c.SpreadId == userId && c.SpreadAppId == dto.SpreadAppId && c.HotshopId == dto.HotshopId); if (spreadUserCount > 0) { return(new ResultDTO { ResultCode = 2, Message = "已存在相同的推广码" }); } // 查询一级代理 var lv1Spread = SpreadInfo.ObjectSet().FirstOrDefault(s => s.IsDel != 1 && s.SpreadType == 5 && s.IWId == iwId && s.SpreadAppId == dto.SpreadAppId && s.HotshopId == dto.HotshopId); if (lv1Spread == null) { return(new ResultDTO { ResultCode = 2, Message = "未创建一级代理" }); } // 同一组织、同一个推广App,同一个旺铺的子代理数量限制 var lv2SpreadCount = SpreadInfo.ObjectSet().Count(c => c.IsDel != 1 && c.SpreadType == 6 && c.IWId == iwId && c.SpreadAppId == dto.SpreadAppId && c.HotshopId == dto.HotshopId); if (lv2SpreadCount >= lv1Spread.SubSpreadCount) { return(new ResultDTO { ResultCode = 2, Message = "生成的推广码已经达到限制数量" }); } } else { if (dto.UserCode == null) { return new ResultDTO { ResultCode = 1, Message = "参数为空" } } ; userId = CBCSV.GetUserIdByAccount(dto.UserCode); if (userId == Guid.Empty) { return new ResultDTO { ResultCode = 2, Message = "该用户未注册" } } ; } try { ContextSession contextSession = ContextFactory.CurrentThreadContext; Guid spreadCode = Guid.NewGuid(); string spreadUrl = getSpreadUrl(dto.SpreadAppId, dto.HotshopId, spreadCode); var qrCodeUrl = BaseAppToolsSV.GenerateQrCode(spreadUrl, dto.QrCodeFileImg); if (string.IsNullOrEmpty(qrCodeUrl)) { return(new ResultDTO { ResultCode = 2, Message = "生成二维码失败" }); } SpreadInfo spreadInfo = new SpreadInfo { Id = Guid.NewGuid(), SpreadId = userId, SpreadUrl = ShortUrlSV.Instance.GenShortUrl(spreadUrl), SpreadCode = spreadCode, SpreadDesc = dto.SpreadDesc, SpreadType = dto.SpreadType, QrCodeUrl = qrCodeUrl, SpreadAppId = dto.SpreadAppId, HotshopId = dto.HotshopId, UserCode = dto.UserCode, Name = dto.Name ?? "", IWId = iwId, IWCode = dto.IWCode, SubSpreadCount = dto.SubSpreadCount, DividendPercent = dto.DividendPercent, EntityState = EntityState.Added }; contextSession.SaveObject(spreadInfo); updateRalationUserSpread(contextSession, spreadInfo); contextSession.SaveChanges(); return(new ResultDTO { isSuccess = true, ResultCode = 0, Message = "Success" }); } catch (Exception ex) { LogHelper.Error(string.Format("SpreadInfoBP.SaveSpreadInfoExt异常,dto={0}", JsonHelper.JsonSerializer(dto)), ex); return(new ResultDTO { ResultCode = 1, Message = "Error" }); } }