| | |
| | | */
|
| | | @RequestMapping(value = "query")
|
| | | public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer sex, PrintWriter out) {
|
| | |
|
| | | if (pageIndex == null || pageIndex < 1) {
|
| | | pageIndex = 1;
|
| | | }
|
| | |
| | |
|
| | | try {
|
| | | List<HomeNavbar> list = homeNavbarService.listQuery((pageIndex - 1) * pageSize, pageSize, key, sex);
|
| | |
|
| | | if (list == null || list.size() == 0) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
|
| | | return;
|
| | | }
|
| | |
|
| | | long count = homeNavbarService.countlistQuery(key, sex);
|
| | | |
| | | int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
|
| | | PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
|
| | |
|
| | |
| | | data.put("result_list", gson.toJson(list));
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
| | | */
|
| | | @RequestMapping(value = "delete")
|
| | | public void delete(String callback, String idArray, PrintWriter out) {
|
| | |
|
| | | try {
|
| | | if (StringUtil.isNullOrEmpty(idArray)) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择操作的数据"));
|
| | |
| | | }
|
| | |
|
| | | int count = homeNavbarService.deleteBatchByPrimaryKey(list);
|
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("成功删除["+ count +"]条数据"));
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("删除失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | /**
|
| | | * 修改状态
|
| | | * @param callback
|
| | | * @param id
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "switchState")
|
| | | public void switchState(String callback, Long id, PrintWriter out) {
|
| | | try {
|
| | | homeNavbarService.switchState(id);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("操作成功"));
|
| | | } catch (HomeNavbarException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | import com.yeshi.fanli.entity.bus.homemodule.AdActivityVersionControl.AdActivityType;
|
| | | import com.yeshi.fanli.entity.bus.homemodule.Special;
|
| | | import com.yeshi.fanli.entity.bus.homemodule.SpecialCard;
|
| | | import com.yeshi.fanli.exception.homemodule.FloatADException;
|
| | | import com.yeshi.fanli.exception.homemodule.SpecialCardException;
|
| | | import com.yeshi.fanli.exception.homemodule.SpecialException;
|
| | | import com.yeshi.fanli.service.inter.config.AppVersionService;
|
| | | import com.yeshi.fanli.service.inter.homemodule.AdActivityVersionControlService;
|
| | |
| | | } else {
|
| | | specialCardService.saveObject(null, specialCard);
|
| | | }
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("保存成功"));
|
| | | } catch (FloatADException e) {
|
| | | } catch (SpecialCardException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("保存失败"));
|
| | |
| | | JSONObject data = new JSONObject();
|
| | | data.put("pe", pe);
|
| | | data.put("result_list", gson.toJson(list));
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作异常"));
|
| | | e.printStackTrace();
|
| | |
| | | */
|
| | | @RequestMapping(value = "delete")
|
| | | public void delete(String callback, String idArray, PrintWriter out) {
|
| | |
|
| | | try {
|
| | | if (StringUtil.isNullOrEmpty(idArray)) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择操作的数据"));
|
| | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未检测到删除的数据"));
|
| | | return;
|
| | | }
|
| | |
|
| | | int count = specialCardService.deleteBatchByPrimaryKey(list);
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("成功删除[" + count + "]条数据"));
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("删除失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | }
|
| | |
|
| | | int count = specialService.deleteBatchByPrimaryKey(list);
|
| | |
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("成功删除[" + count + "]条数据"));
|
| | |
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("删除失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | * @param id
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "switchStateCard")
|
| | | public void switchStateCard(String callback, Long id, PrintWriter out) {
|
| | | try {
|
| | | specialCardService.switchState(id);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("操作成功"));
|
| | | } catch (SpecialCardException e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMsg()));
|
| | | } catch (Exception e) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | /**
|
| | | * 修改状态
|
| | | * @param callback
|
| | | * @param id
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "switchState")
|
| | | public void switchState(String callback, Long id, PrintWriter out) {
|
| | | try {
|
| | |
| | | data.put("moneyLastMonth", "---");
|
| | | } else {
|
| | | // 我的队员
|
| | | long myFirstTeamCount = threeSaleSerivce.getFirstUsersCount(Long.parseLong(uid));
|
| | | long mySecondTeamCount = threeSaleSerivce.getSecondUsersCount(Long.parseLong(uid));
|
| | | long myFirstTeamCount = threeSaleSerivce.countFirstTeam(Long.parseLong(uid));
|
| | | long mySecondTeamCount = threeSaleSerivce.countSecondTeam(Long.parseLong(uid));
|
| | | long myTeamCount = myFirstTeamCount + mySecondTeamCount;
|
| | | data.put("myTeam", myTeamCount);
|
| | | // 1.5.0后已经不使用此字段
|
| | |
| | |
|
| | | JSONObject resultData = new JSONObject();
|
| | | if (type == 1) {
|
| | | resultData = threeSaleSerivce.getMyFirstTeam((page - 1) * pageSize, pageSize, uid, null);
|
| | | resultData = threeSaleSerivce.getMyFirstTeam((page - 1) * pageSize, pageSize, uid);
|
| | | } else if (type == 2) {
|
| | | resultData = threeSaleSerivce.getMySecondTeam((page - 1) * pageSize, pageSize, uid, null);
|
| | | resultData = threeSaleSerivce.getMySecondTeam((page - 1) * pageSize, pageSize, uid);
|
| | | }
|
| | |
|
| | | // 安卓系统返回所有数据
|
| | | String platform = acceptData.getPlatform();
|
| | | if ("android".equalsIgnoreCase(platform)) {
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1);
|
| | | long firstTeamTotal = threeSaleSerivce.countFirstTeam(uid, null);
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(uid);
|
| | |
|
| | | long secondTeam = threeSaleSerivce.countSecondTeam(uid, 1);
|
| | | long secondTeamTotal = threeSaleSerivce.countSecondTeam(uid, null);
|
| | | long secondTeam = threeSaleSerivce.countSecondTeam(uid);
|
| | |
|
| | | JSONObject bossData = null;
|
| | | ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
|
| | |
| | |
|
| | | resultData.put("helpLink", helpLink);
|
| | | resultData.put("firstTeam", firstTeam);
|
| | | resultData.put("firstTeamTotal", firstTeamTotal);
|
| | | resultData.put("firstTeamTotal", firstTeam);
|
| | | resultData.put("secondTeam", secondTeam);
|
| | | resultData.put("secondTeamTotal", secondTeamTotal);
|
| | | resultData.put("secondTeamTotal", secondTeam);
|
| | | resultData.put("boss", bossData);
|
| | | }
|
| | | out.print(JsonUtil.loadTrueResult(resultData));
|
| | |
| | |
|
| | | JSONObject resultData = new JSONObject();
|
| | | if (type == 1) {
|
| | | resultData = threeSaleSerivce.getMyFirstTeam((page - 1) * pageSize, pageSize, uid, 1);
|
| | | resultData = threeSaleSerivce.getMyFirstTeam((page - 1) * pageSize, pageSize, uid);
|
| | | } else if (type == 2) {
|
| | | resultData = threeSaleSerivce.getMySecondTeam((page - 1) * pageSize, pageSize, uid, 1);
|
| | | resultData = threeSaleSerivce.getMySecondTeam((page - 1) * pageSize, pageSize, uid);
|
| | | }
|
| | |
|
| | | // 安卓系统返回所有数据
|
| | | String platform = acceptData.getPlatform();
|
| | | if ("android".equalsIgnoreCase(platform)) {
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1);
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(uid);
|
| | |
|
| | | long secondTeam = threeSaleSerivce.countSecondTeam(uid, 1);
|
| | | long secondTeam = threeSaleSerivce.countSecondTeam(uid);
|
| | |
|
| | | JSONObject bossData = null;
|
| | | ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
|
| | |
| | | @RequestMapping(value = "countMyTeam", method = RequestMethod.POST)
|
| | | public void countMyTeam(AcceptData acceptData, long uid, PrintWriter out) {
|
| | | try {
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1);
|
| | | long firstTeamTotal = threeSaleSerivce.countFirstTeam(uid, null);
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(uid);
|
| | |
|
| | | long secondTeam = threeSaleSerivce.countSecondTeam(uid, 1);
|
| | | long secondTeamTotal = threeSaleSerivce.countSecondTeam(uid, null);
|
| | | long secondTeam = threeSaleSerivce.countSecondTeam(uid);
|
| | | JSONObject bossData = new JSONObject();
|
| | | ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
|
| | | if (threeSale != null) {
|
| | |
| | | }
|
| | | resultData.put("helpLink", helpLink);
|
| | | resultData.put("firstTeam", firstTeam);
|
| | | resultData.put("firstTeamTotal", firstTeamTotal);
|
| | | resultData.put("firstTeamTotal", firstTeam);
|
| | | resultData.put("secondTeam", secondTeam);
|
| | | resultData.put("secondTeamTotal", secondTeamTotal);
|
| | | resultData.put("secondTeamTotal", secondTeam);
|
| | | resultData.put("boss", bossData);
|
| | |
|
| | | boolean hasCode = false;
|
| | |
| | | out.print(JsonUtil.loadTrueResult("保存成功"));
|
| | | }
|
| | |
|
| | | /**
|
| | | * 删除队员关系
|
| | | * |
| | | * @param acceptData
|
| | | * @param uid
|
| | | * @param inviteId
|
| | | * 邀请id
|
| | | * @param out
|
| | | */
|
| | | @RequestMapping(value = "removethreesale", method = RequestMethod.POST)
|
| | | public void removethreesale(AcceptData acceptData, long uid, long inviteId, PrintWriter out) {
|
| | | try {
|
| | | List<ThreeSale> listThreeSale = threeSaleSerivce.listbyIdAndBossId(inviteId, uid, 1);
|
| | | if (listThreeSale == null || listThreeSale.size() == 0) {
|
| | | out.print(JsonUtil.loadFalseResult("操作数据无效"));
|
| | | return;
|
| | | }
|
| | |
|
| | | UserInfo worker = listThreeSale.get(0).getWorker();
|
| | | if (worker == null) {
|
| | | out.print(JsonUtil.loadFalseResult("操作数据无效"));
|
| | | return;
|
| | | }
|
| | |
|
| | | // 删除关系
|
| | | threeSaleSerivce.deleteByPrimaryKey(inviteId);
|
| | | // 删除备注
|
| | | threeSaleExtraInfoSerivce.deleteByBossIdAndWorkerId(uid, worker.getId());
|
| | |
|
| | | out.print(JsonUtil.loadTrueResult("删除成功"));
|
| | | } catch (Exception e) {
|
| | | out.print(JsonUtil.loadFalseResult("删除失败"));
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | /**
|
| | | * 设置界面开关状态
|
| | |
| | | import org.springframework.stereotype.Controller;
|
| | | import org.springframework.web.bind.annotation.RequestMapping;
|
| | | import org.springframework.web.bind.annotation.RequestMethod;
|
| | | import org.yeshi.utils.DateUtil;
|
| | | import org.yeshi.utils.JsonUtil;
|
| | |
|
| | | import com.yeshi.fanli.dto.vip.UserVIPLevel;
|
| | |
| | | import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInviteSeparate;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInviteValidNum;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInviteValidRecord;
|
| | | import com.yeshi.fanli.entity.bus.user.WeiXinUser;
|
| | |
| | | import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInviteSeparateService;
|
| | | import com.yeshi.fanli.service.inter.user.invite.ThreeSaleExtraInfoSerivce;
|
| | | import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
|
| | | import com.yeshi.fanli.service.inter.user.invite.UserInviteService;
|
| | |
| | | import com.yeshi.fanli.util.RedisKeyEnum;
|
| | | import com.yeshi.fanli.util.RedisManager;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.TimeUtil;
|
| | | import com.yeshi.fanli.util.VersionUtil;
|
| | | import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
|
| | | import com.yeshi.fanli.util.user.UserLevelUtil;
|
| | |
| | |
|
| | | @Resource
|
| | | private UserVIPInfoService userVIPInfoService;
|
| | | |
| | | @Resource
|
| | | private UserInviteSeparateService userInviteSeparateService;
|
| | |
|
| | | @Resource
|
| | | private SpreadImgService spreadImgService;
|
| | |
| | | long count = 0;
|
| | | List<ThreeSale> listTeam = null;
|
| | | if (type == 1) {
|
| | | listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, 1);
|
| | | count = threeSaleSerivce.countFirstTeam(uid, 1);
|
| | | listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
|
| | | count = threeSaleSerivce.countFirstTeam(uid);
|
| | | } else if (type == 2) {
|
| | | listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, 1);
|
| | | count = threeSaleSerivce.countSecondTeam(uid, 1);
|
| | | listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
|
| | | count = threeSaleSerivce.countSecondTeam(uid);
|
| | | }
|
| | |
|
| | | boolean needVIPInfo = false;
|
| | |
| | | // 添加是否为VIP
|
| | | if (vipMap != null && vipMap.get(worker.getId()) != null) {
|
| | | object.put("vip", vipMap.get(worker.getId()));
|
| | | if (vipMap.get(worker.getId())) {
|
| | | UserInviteSeparate separate = userInviteSeparateService.selectByWorkerIdAndBossId(worker.getId(), uid);
|
| | | if (separate != null && separate.getEndTime() != null) {
|
| | | try {
|
| | | JSONObject contentJson1 = new JSONObject();
|
| | | contentJson1.put("color", "#888888");
|
| | | contentJson1.put("content", "将于");
|
| | |
|
| | | JSONObject contentJson2 = new JSONObject();
|
| | | contentJson2.put("color", "#F14242");
|
| | | contentJson2.put("content", DateUtil.dateDiff4(new Date(), separate.getEndTime()));
|
| | |
|
| | | JSONObject contentJson3 = new JSONObject();
|
| | | contentJson3.put("color", "#888888");
|
| | | contentJson3.put("content", "后脱离邀请关系");
|
| | | |
| | | JSONArray array = new JSONArray();
|
| | | array.add(contentJson1);
|
| | | array.add(contentJson2);
|
| | | array.add(contentJson3);
|
| | | object.put("vipBreakTime",array);
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | String fontColor1 = "#888888";
|
| | | JSONArray array = new JSONArray();
|
| | |
| | | long count = 0;
|
| | | List<ThreeSale> listTeam = null;
|
| | | if (type == 1) {
|
| | | listTeam = threeSaleSerivce.listFirstTeamByUndeleted((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
|
| | | count = threeSaleSerivce.countFirstTeamByUndeleted(uid);
|
| | | listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
|
| | | count = threeSaleSerivce.countFirstTeam(uid);
|
| | | } else if (type == 2) {
|
| | | listTeam = threeSaleSerivce.listSecondTeamByUndeleted((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
|
| | | count = threeSaleSerivce.countSecondTeamByUndeleted(uid);
|
| | | listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
|
| | | count = threeSaleSerivce.countSecondTeam(uid);
|
| | | }
|
| | |
|
| | | |
| | | JSONObject result = new JSONObject();
|
| | | result.put("count", count);
|
| | | result.put("list", organizeTeamNew(count, listTeam, uid, type, true));
|
| | |
| | | if (type == 1) {
|
| | | validType = UserInviteValidRecord.TYPE_ONE;
|
| | | }
|
| | | |
| | | List<Long> listVid = userInviteValidRecordService.getValidWorkerIdsByUid(uid, listWid, validType);
|
| | |
|
| | | for (ThreeSale threeSale : list) {
|
| | | UserInfo worker = threeSale.getWorker();
|
| | | Long workerId = worker.getId();
|
| | |
|
| | | // 邀请状态
|
| | | Boolean state = threeSale.getState();
|
| | | if (type == 2) {
|
| | | if (state && threeSale.getStateSuper()) {
|
| | | state = true;
|
| | | } else {
|
| | | state = false;
|
| | | }
|
| | | }
|
| | | |
| | | // 邀请成功时间
|
| | | Long succeedTime = threeSale.getSucceedTime();
|
| | | if (succeedTime == null) {
|
| | |
| | |
|
| | | // 有效粉丝
|
| | | boolean validFans = false;
|
| | | if (state && listVid != null && listVid.size() > 0 && listVid.contains(workerId)) {
|
| | | if (listVid != null && listVid.size() > 0 && listVid.contains(workerId)) {
|
| | | validFans = true;
|
| | | }
|
| | |
|
| | |
| | | object.put("portrait", worker.getPortrait());
|
| | | object.put("inviteId", threeSale.getId());
|
| | | object.put("inviteTime", format.format(new Date(succeedTime)) + " 加入");
|
| | | object.put("state", state? 1 : 2);
|
| | | object.put("state", 1);
|
| | | object.put("recentMsg", array);
|
| | | object.put("level", level.name());
|
| | | object.put("validFans", validFans);
|
| | |
|
| | | |
| | | // 判断是否存在脱离关系队员
|
| | | if (vipLevel != null && state) {
|
| | | Long bossId = threeSale.getBoss().getId();
|
| | | UserInviteSeparate separate = userInviteSeparateService.selectByWorkerIdAndBossId(workerId, bossId);
|
| | | if (separate != null && separate.getEndTime() != null) {
|
| | | try {
|
| | | JSONObject contentJson1 = new JSONObject();
|
| | | contentJson1.put("color", "#888888");
|
| | | contentJson1.put("content", "将于");
|
| | |
|
| | | String dateDiff = DateUtil.dateDiff4(new Date(), separate.getEndTime());
|
| | | JSONObject contentJson2 = new JSONObject();
|
| | | contentJson2.put("color", "#F14242");
|
| | | contentJson2.put("content", dateDiff);
|
| | |
|
| | | JSONObject contentJson3 = new JSONObject();
|
| | | contentJson3.put("color", "#888888");
|
| | | contentJson3.put("content", "后脱离邀请关系");
|
| | | |
| | | JSONArray vipBreak = new JSONArray();
|
| | | vipBreak.add(contentJson1);
|
| | | vipBreak.add(contentJson2);
|
| | | vipBreak.add(contentJson3);
|
| | | object.put("vipBreakTime",vipBreak);
|
| | | |
| | | List<String> tips = new ArrayList<String>();
|
| | | tips.add("于"+ TimeUtil.formatDateDot(vipLevel.getSuccessTime()) + "升级为" + level.getName());
|
| | | if (type == 1) {
|
| | | tips.add("你需要在"+ dateDiff +"内升级为会员,否则按照邀请规则TA将与你脱离邀请关系。");
|
| | | tips.add("赶快加油升级为会员吧!");
|
| | | } else {
|
| | | tips.add("你需要辅助TA的邀请人"+ threeSale.getBoss().getNickName()+ "在"+dateDiff+"内升级为会员,否则这位间接粉丝" +worker.getNickName()+"将与你脱离邀请关系。");
|
| | | tips.add("赶快帮助TA升级为会员吧!");
|
| | | }
|
| | | object.put("vipBreakTip",tips);
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | if (wxtip && type == 1 && threeSale.getState() != null && threeSale.getState()) {
|
| | | // 一级队员 查询昵称备注
|
| | | String memoName = null;
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | |
| | | resultArray.add(object);
|
| | | }
|
| | | return resultArray;
|
| | |
| | | return;
|
| | | }
|
| | |
|
| | | List<ThreeSale> listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, tid, 1);
|
| | | long count = threeSaleSerivce.countFirstTeam(tid, 1);
|
| | | List<ThreeSale> listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, tid);
|
| | | long count = threeSaleSerivce.countFirstTeam(tid);
|
| | |
|
| | | JSONObject result = new JSONObject();
|
| | | result.put("count", count);
|
| | |
| | | JSONObject bossData = getBossInfo(uid, threeSaleSerivce.getMyBoss(uid));
|
| | | JSONObject resultData = new JSONObject();
|
| | |
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1);
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(uid);
|
| | | long countSecond = threeSaleSerivce.countSecondTeam(uid);
|
| | | resultData.put("boss", bossData);
|
| | | resultData.put("helpLink", configService.get(ConfigKeyEnum.teamHelpUrl.getKey()));
|
| | | resultData.put("firstTeam", firstTeam);
|
| | | resultData.put("firstTeamTotal", threeSaleSerivce.countFirstTeam(uid, null));
|
| | | resultData.put("secondTeam", threeSaleSerivce.countSecondTeam(uid, 1));
|
| | | resultData.put("secondTeamTotal", threeSaleSerivce.countSecondTeam(uid, null));
|
| | | resultData.put("firstTeamTotal", firstTeam);
|
| | | resultData.put("secondTeam", countSecond);
|
| | | resultData.put("secondTeamTotal", countSecond);
|
| | | resultData.put("helpLink", configService.get(ConfigKeyEnum.teamHelpUrl.getKey()));
|
| | |
|
| | | boolean hasTeam = true;
|
| | | if (firstTeam <= 0) {
|
| | |
| | | data.put("num", doneFirst);
|
| | | data.put("limit", Constant.INVITE_CODRE_TAILOR_LIMIT);
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
|
| | | }
|
| | | |
| | | |
| | | |
| | | @RequestMapping(value = "remvoeBreak")
|
| | | public void remvoeBreak(String callback, AcceptData acceptData,Long inviteId, Long uid, Long tid, PrintWriter out) {
|
| | | if (uid == null || inviteId == null || tid == null) {
|
| | | JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("传输参数不完整"));
|
| | | return;
|
| | | }
|
| | | threeSaleSerivce.remvoeBreak(inviteId, uid, tid);
|
| | | |
| | | JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("操作成功"));
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | import com.google.gson.JsonSerializer;
|
| | | import com.yeshi.fanli.dto.user.UserInviteLevelEnum;
|
| | | import com.yeshi.fanli.entity.accept.AcceptData;
|
| | | import com.yeshi.fanli.entity.bus.user.HongBaoV2;
|
| | | import com.yeshi.fanli.entity.bus.user.SMSHistory;
|
| | | import com.yeshi.fanli.entity.bus.user.ThreeSale;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | |
| | | UserInviteLevelEnum level = userInviteService.getUserInviteLevelNew(uid);
|
| | |
|
| | | // 达人
|
| | | long limitZiGou = 0;
|
| | | long limitShare = 0;
|
| | | long limitOrder = 0;
|
| | | long limitFirst = 0;
|
| | | long limitSecond = 0;
|
| | | if (level == UserInviteLevelEnum.actived || level == UserInviteLevelEnum.noActive) {
|
| | | String zigou = userVipConfigService.getValueByKey("vip_pre_3_zigou_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(zigou)) {
|
| | | limitZiGou = Long.parseLong(zigou);
|
| | | }
|
| | | String share = userVipConfigService.getValueByKey("vip_pre_3_share_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(share)) {
|
| | | limitShare = Long.parseLong(share);
|
| | | }
|
| | | String first = userVipConfigService.getValueByKey("vip_pre_3_first_level_team_count");
|
| | | if (!StringUtil.isNullOrEmpty(first)) {
|
| | | limitFirst = Long.parseLong(first);
|
| | | }
|
| | | String second = userVipConfigService.getValueByKey("vip_pre_3_second_level_team_count");
|
| | | if (!StringUtil.isNullOrEmpty(second)) {
|
| | | limitSecond = Long.parseLong(second);
|
| | | }
|
| | | } else if (level == UserInviteLevelEnum.normalVIP) {
|
| | | String zigou = userVipConfigService.getValueByKey("vip_pre_7_zigou_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(zigou)) {
|
| | | limitZiGou = Long.parseLong(zigou);
|
| | | }
|
| | | String share = userVipConfigService.getValueByKey("vip_pre_7_share_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(share)) {
|
| | | limitShare = Long.parseLong(share);
|
| | | String orderCount = userVipConfigService.getValueByKey("vip_pre_7_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(orderCount)) {
|
| | | limitOrder = Long.parseLong(orderCount);
|
| | | }
|
| | | String first = userVipConfigService.getValueByKey("vip_pre_7_first_level_team_count");
|
| | | if (!StringUtil.isNullOrEmpty(first)) {
|
| | |
| | | limitSecond = Long.parseLong(second);
|
| | | }
|
| | | } else if (level == UserInviteLevelEnum.highVIP || level == UserInviteLevelEnum.vipApply) {
|
| | | String zigou = userVipConfigService.getValueByKey("vip_pre_10_zigou_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(zigou)) {
|
| | | limitZiGou = Long.parseLong(zigou);
|
| | | }
|
| | | String share = userVipConfigService.getValueByKey("vip_pre_10_share_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(share)) {
|
| | | limitShare = Long.parseLong(share);
|
| | | String orderCount = userVipConfigService.getValueByKey("vip_pre_10_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(orderCount)) {
|
| | | limitOrder = Long.parseLong(orderCount);
|
| | | }
|
| | | String first = userVipConfigService.getValueByKey("vip_pre_10_first_level_team_count");
|
| | | if (!StringUtil.isNullOrEmpty(first)) {
|
| | |
| | | }
|
| | |
|
| | | // 自购订单
|
| | | long doneZiGou = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY,
|
| | | HongBaoV2.TYPE_ZIGOU);
|
| | | // 分享订单
|
| | | long doneShare = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY,
|
| | | HongBaoV2.TYPE_SHARE_GOODS);
|
| | | |
| | | |
| | | Date now = new Date();
|
| | | Date start = new Date(0);
|
| | | |
| | | long doneOrder = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY);
|
| | | // 有效粉丝
|
| | | int doneFirst = 0;
|
| | | int doneSecond = 0;
|
| | |
| | | doneSecond = userInviteValidNum.getNumSecond() == null ? 0 : userInviteValidNum.getNumSecond();
|
| | | }
|
| | |
|
| | | Date now = new Date();
|
| | | Date start = new Date(0);
|
| | | // 省钱: ---返利订单、奖励券提成
|
| | | List<UserMoneyDetailTypeEnum> typeFanli = new ArrayList<>();
|
| | | typeFanli.add(UserMoneyDetailTypeEnum.fanli);
|
| | |
| | | }
|
| | |
|
| | | String shareRate = "可享佣金的<label style=\"color:#E5005C;\">%s</label>";
|
| | | String fansRate = "最高佣金的<label style=\"color:#E5005C;\">%s</label>";
|
| | | String fansIndirect = "最高佣金的<label style=\"color:#E5005C;\">%s</label>";
|
| | | String teamBonus = "团队分红池<label style=\"color:#E5005C;\">%s</label>";
|
| | | String teamRate = "最高佣金的<label style=\"color:#E5005C;\">%s</label>";
|
| | | // 达人版
|
| | | JSONObject jsonrRed1 = new JSONObject();
|
| | | jsonrRed1.put("shareRate", String.format(shareRate, "152%"));
|
| | | jsonrRed1.put("fansRate", String.format(fansRate, "22.5%"));
|
| | | jsonrRed1.put("fansIndirect", String.format(fansIndirect, "5%"));
|
| | | jsonrRed1.put("teamBonus", "高级会员以上专属");
|
| | | jsonrRed1.put("enjoyRate", String.format(shareRate, "145%"));
|
| | | jsonrRed1.put("teamRate", String.format(teamRate, "25%"));
|
| | | jsonrRed1.put("teamIncome", "高级会员以上专属");
|
| | |
|
| | | // 高级会员
|
| | | JSONObject jsonrRed2 = new JSONObject();
|
| | | jsonrRed2.put("shareRate", String.format(shareRate, "162.5%"));
|
| | | jsonrRed2.put("fansRate", String.format(fansRate, "27.5%"));
|
| | | jsonrRed2.put("fansIndirect", String.format(fansIndirect, "7.5%"));
|
| | | jsonrRed2.put("teamBonus", "高级会员以上专属");
|
| | |
|
| | | jsonrRed2.put("enjoyRate", String.format(shareRate, "195%"));
|
| | | jsonrRed2.put("teamRate", String.format(teamRate, "50%"));
|
| | | jsonrRed2.put("teamIncome", "享高级团队收益");
|
| | | |
| | | // 超级会员
|
| | | JSONObject jsonrRed3 = new JSONObject();
|
| | | jsonrRed3.put("shareRate", String.format(shareRate, "170%"));
|
| | | jsonrRed3.put("fansRate", String.format(fansRate, "32.5%"));
|
| | | jsonrRed3.put("fansIndirect", String.format(fansIndirect, "10%"));
|
| | | jsonrRed3.put("teamBonus", String.format(teamBonus, "40%"));
|
| | |
|
| | | JSONObject jsonrRed4 = new JSONObject();
|
| | | jsonrRed4.put("shareRate", String.format(shareRate, "225%"));
|
| | | jsonrRed4.put("fansRate", String.format(fansRate, "37.5%"));
|
| | | jsonrRed4.put("fansIndirect", String.format(fansIndirect, "12.5%"));
|
| | | jsonrRed4.put("teamBonus", String.format(teamBonus, "80%"));
|
| | | jsonrRed3.put("enjoyRate", String.format(shareRate, "210%"));
|
| | | jsonrRed3.put("teamRate", String.format(teamRate, "110%"));
|
| | | jsonrRed3.put("teamIncome", "享超级团队收益");
|
| | |
|
| | |
|
| | | JSONObject json = new JSONObject();
|
| | |
| | | json.put("newerGongLue", configService.get(ConfigKeyEnum.newerGonglue.getKey()));
|
| | |
|
| | | // 已完成
|
| | | json.put("doneZiGou", doneZiGou);
|
| | | json.put("doneShare", doneShare);
|
| | | json.put("doneOrder", doneOrder);
|
| | | json.put("doneFirst", doneFirst);
|
| | | json.put("doneSecond", doneSecond);
|
| | |
|
| | | // 标准
|
| | | json.put("limitZiGou", limitZiGou);
|
| | | json.put("limitShare", limitShare);
|
| | | json.put("limitOrder", limitOrder);
|
| | | json.put("limitFirst", limitFirst);
|
| | | json.put("limitSecond", limitSecond);
|
| | |
|
| | | // 已完成
|
| | | json.put("master", jsonrRed1);
|
| | | json.put("vip1", jsonrRed2);
|
| | | json.put("vip2", jsonrRed3);
|
| | | json.put("vip3", jsonrRed4);
|
| | | json.put("daRen", jsonrRed1);
|
| | | json.put("highVIP", jsonrRed2);
|
| | | json.put("superVIP", jsonrRed3);
|
| | |
|
| | | // 人工客服链接
|
| | | json.put("csdLink", configService.get(ConfigKeyEnum.customerServiceLink.getKey()));
|
| | |
| | | import org.springframework.stereotype.Controller;
|
| | | import org.springframework.web.bind.annotation.RequestMapping;
|
| | | import org.springframework.web.bind.annotation.RequestMethod;
|
| | | import org.yeshi.utils.DateUtil;
|
| | | import org.yeshi.utils.JsonUtil;
|
| | |
|
| | | import com.yeshi.fanli.dto.WXMPAcceptData;
|
| | |
| | | import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInviteSeparate;
|
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.msg.UserSystemMsgService;
|
| | | import com.yeshi.fanli.service.inter.push.PushService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInviteSeparateService;
|
| | | import com.yeshi.fanli.service.inter.user.invite.ThreeSaleExtraInfoSerivce;
|
| | | import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
|
| | | import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
|
| | |
| | |
|
| | | @Resource
|
| | | private UserVIPInfoService userVIPInfoService;
|
| | |
|
| | | @Resource
|
| | | private UserInviteSeparateService userInviteSeparateService;
|
| | |
|
| | | @Resource
|
| | | private ThreeSaleExtraInfoSerivce threeSaleExtraInfoSerivce;
|
| | |
| | |
|
| | | JSONObject data = new JSONObject();
|
| | | data.put("desc", array);
|
| | | data.put("num", threeSaleSerivce.countFirstTeam(uid, 1));
|
| | | data.put("num", threeSaleSerivce.countFirstTeam(uid));
|
| | | data.put("limit", Constant.INVITE_CODRE_TAILOR_LIMIT);
|
| | |
|
| | | out.print(JsonUtil.loadTrueResult(data));
|
| | |
| | | @RequestMapping(value = "countMyTeam", method = RequestMethod.POST)
|
| | | public void countMyTeam(WXMPAcceptData acceptData, long uid, PrintWriter out) {
|
| | | try {
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1);
|
| | | long firstTeamTotal = threeSaleSerivce.countFirstTeam(uid, null);
|
| | |
|
| | | long secondTeam = threeSaleSerivce.countSecondTeam(uid, 1);
|
| | | long secondTeamTotal = threeSaleSerivce.countSecondTeam(uid, null);
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(uid);
|
| | | long secondTeam = threeSaleSerivce.countSecondTeam(uid);
|
| | | JSONObject bossData = new JSONObject();
|
| | | ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
|
| | | if (threeSale != null) {
|
| | |
| | | }
|
| | | resultData.put("helpLink", helpLink);
|
| | | resultData.put("firstTeam", firstTeam);
|
| | | resultData.put("firstTeamTotal", firstTeamTotal);
|
| | | resultData.put("firstTeamTotal", firstTeam);
|
| | | resultData.put("secondTeam", secondTeam);
|
| | | resultData.put("secondTeamTotal", secondTeamTotal);
|
| | | resultData.put("secondTeamTotal", secondTeam);
|
| | | resultData.put("boss", bossData);
|
| | |
|
| | | boolean hasCode = false;
|
| | |
| | | long count = 0;
|
| | | List<ThreeSale> listTeam = null;
|
| | | if (type == 1) {
|
| | | listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, 1);
|
| | | count = threeSaleSerivce.countFirstTeam(uid, 1);
|
| | | listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
|
| | | count = threeSaleSerivce.countFirstTeam(uid);
|
| | | } else if (type == 2) {
|
| | | listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, 1);
|
| | | count = threeSaleSerivce.countSecondTeam(uid, 1);
|
| | | listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
|
| | | count = threeSaleSerivce.countSecondTeam(uid);
|
| | | }
|
| | |
|
| | | boolean needVIPInfo = true;
|
| | |
| | | // 添加是否为VIP
|
| | | if (vipMap != null && vipMap.get(worker.getId()) != null) {
|
| | | object.put("vip", vipMap.get(worker.getId()));
|
| | | if (vipMap.get(worker.getId())) {
|
| | | UserInviteSeparate separate = userInviteSeparateService.selectByWorkerIdAndBossId(worker.getId(),
|
| | | uid);
|
| | | if (separate != null && separate.getEndTime() != null) {
|
| | | try {
|
| | |
|
| | | JSONObject contentJson1 = new JSONObject();
|
| | | contentJson1.put("color", "#888888");
|
| | | contentJson1.put("content", "将于");
|
| | |
|
| | | JSONObject contentJson2 = new JSONObject();
|
| | | contentJson2.put("color", "#F14242");
|
| | | contentJson2.put("content", DateUtil.dateDiff4(new Date(), separate.getEndTime()));
|
| | |
|
| | | JSONObject contentJson3 = new JSONObject();
|
| | | contentJson3.put("color", "#888888");
|
| | | contentJson3.put("content", "后脱离邀请关系");
|
| | |
|
| | | JSONArray array = new JSONArray();
|
| | | array.add(contentJson1);
|
| | | array.add(contentJson2);
|
| | | array.add(contentJson3);
|
| | | object.put("vipBreakTime", array);
|
| | |
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | String fontColor1 = "#888888";
|
| | | JSONArray array = new JSONArray();
|
| | |
| | | /**
|
| | | * 注:1笔且付款总金额不小于 payment 元(退款为失效
|
| | | * @param uid
|
| | | * @param list 类型
|
| | | * @param payment
|
| | | * @return
|
| | | */
|
| | | Long counOrderByUidAndOrderType(@Param("uid") Long uid, @Param("payment") BigDecimal payment,
|
| | | @Param("type") int type);
|
| | | Long countMyDirectOrderByCashArrival(@Param("uid") Long uid, @Param("payment") BigDecimal payment);
|
| | |
|
| | |
|
| | |
|
| | |
| | |
|
| | | int insertSelective(ThreeSale record);
|
| | |
|
| | | ThreeSale selectByPrimaryKey(Long id);
|
| | |
|
| | | UserInfo selectBoss(Long uid);
|
| | |
|
| | | List<ThreeSale> selectByUid(Long uid);
|
| | |
|
| | | int updateByPrimaryKey(ThreeSale record);
|
| | | |
| | | int updateByPrimaryKeySelective(ThreeSale record);
|
| | |
|
| | | int updateByPrimaryKey(ThreeSale record);
|
| | |
|
| | | int effectThreeSale(Long workerUid);
|
| | | ThreeSale selectByPrimaryKey(Long id);
|
| | | |
| | | |
| | | UserInfo selectBoss(Long uid);
|
| | |
|
| | | /**
|
| | | * 删除失效
|
| | | * @param bossId
|
| | | * 根据被邀请者ID查询
|
| | | * |
| | | * @param workerId
|
| | | * @return
|
| | | */
|
| | | int deleteExpireRecord(@Param("bossId")Long bossId, @Param("workerId")Long workerId);
|
| | | ThreeSale getByWorkerId(Long workerId);
|
| | |
|
| | |
|
| | | /**
|
| | | * 失效
|
| | | * @param bossId
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | ThreeSale getMyBoss(@Param("uid") Long uid);
|
| | | |
| | |
|
| | | /**
|
| | | * 根据下级查询成功的邀请关系
|
| | | * @param workerId
|
| | | * @return
|
| | | */
|
| | | List<ThreeSale> getExpireRecord(@Param("bossId")Long bossId, @Param("workerId")Long workerId);
|
| | | ThreeSale selectSuccessByWorkerId(Long workerId);
|
| | |
|
| | | |
| | | /**
|
| | | * 根据邀请者ID查询关系
|
| | | * |
| | | * @param workerId
|
| | | * @return
|
| | | */
|
| | | List<ThreeSale> listByWorkerId(Long workerId);
|
| | | |
| | |
|
| | |
|
| | |
|
| | | /**
|
| | | * 一级查询
|
| | | * 一级查询-后台查询
|
| | | *
|
| | | * @param start
|
| | | * @param count
|
| | |
| | | @Param("endTime") String endTime, @Param("validState") Integer validState);
|
| | |
|
| | | /**
|
| | | * 二级查询
|
| | | * 二级查询 -后台查询
|
| | | *
|
| | | * @param start
|
| | | * @param count
|
| | |
| | | @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("validState") Integer validState);
|
| | |
|
| | | /**
|
| | | * 上级查询
|
| | | * 上级查询 -后台查询
|
| | | *
|
| | | * @param start
|
| | | * @param count
|
| | |
| | |
|
| | | long countSuperiorQuery(@Param("state") Integer state, @Param("uid") Long uid);
|
| | |
|
| | | |
| | | |
| | | /**
|
| | | * 查询一级队员
|
| | | * |
| | | * @param paramLong
|
| | | * @param paramInt
|
| | | * @param paramLong1
|
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | List<ThreeSale> listFirstTeam(@Param("start") long start, @Param("count") int count, |
| | | @Param("uid") Long uid, @Param("state") Integer state);
|
| | | List<ThreeSale> listFirstTeam(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid);
|
| | |
|
| | | /**
|
| | | * 查询二级队员
|
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | List<ThreeSale> listSecondTeam(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid);
|
| | | |
| | | /**
|
| | | * 统计一级队员
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * @return
|
| | | */
|
| | | long countFirstTeam(@Param("uid") Long uid, @Param("state") Integer state);
|
| | | |
| | | |
| | | /**
|
| | | * 查询一级队员-未删除版
|
| | | * |
| | | * @param paramLong
|
| | | * @param paramInt
|
| | | * @param paramLong1
|
| | | * @return
|
| | | */
|
| | | List<ThreeSale> listFirstTeamByUndeleted(@Param("start") long start, @Param("count") int count, @Param("uid") Long uid);
|
| | |
|
| | | /**
|
| | | * 统计一级队员 -未删除版
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * @return
|
| | | */
|
| | | long countFirstTeamByUndeleted(@Param("uid") Long uid);
|
| | |
|
| | | |
| | | |
| | | /**
|
| | | * 查询二级队员
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | List<ThreeSale> listSecondTeamByUndeleted(@Param("start") long start, @Param("count") int count,
|
| | | @Param("uid") Long uid);
|
| | |
|
| | | long countFirstTeam(@Param("uid") Long uid);
|
| | | |
| | | /**
|
| | | * 统计二级队员
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * @return
|
| | | */
|
| | | long countSecondTeamByUndeleted(@Param("uid") Long uid);
|
| | | |
| | | |
| | | |
| | | long countSecondTeam(@Param("uid") Long uid);
|
| | |
|
| | | /**
|
| | | * 查询二级队员
|
| | | * |
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | List<ThreeSale> listSecondTeam(@Param("start") long start, @Param("count") int count,
|
| | | @Param("uid") Long uid,@Param("state") Integer state);
|
| | |
|
| | | /**
|
| | | * 统计二级队员
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * @return
|
| | | */
|
| | | long countSecondTeam(@Param("uid") Long uid, @Param("state") Integer state);
|
| | |
|
| | | /**
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | ThreeSale getMyBoss(@Param("uid") Long uid);
|
| | |
|
| | | /**
|
| | | * 根据id、uid查询
|
| | |
| | | */
|
| | | List<ThreeSale> listbyIdAndBossId(@Param("id") Long id, @Param("uid") Long uid, @Param("expire") Integer expire);
|
| | |
|
| | | /**
|
| | | * 根据邀请者ID查询关系
|
| | | * |
| | | * @param workerId
|
| | | * @return
|
| | | */
|
| | | List<ThreeSale> listByWorkerId(Long workerId);
|
| | | |
| | |
|
| | | /**
|
| | | * 获取成功邀请关系数量
|
| | |
| | | */
|
| | | ThreeSale getNearRelationByBossIdAndWorkerId(@Param("bossId") Long bossId, @Param("workerId") Long workerId);
|
| | |
|
| | | |
| | | |
| | | /**
|
| | | * 根据下级查询成功的邀请关系
|
| | | * @param workerId
|
| | | * @return
|
| | | */
|
| | | ThreeSale selectSuccessByWorkerId(Long workerId);
|
| | | |
| | |
|
| | | /**
|
| | | * 根据邀请者ID查询未失效关系
|
| | | * |
| | | * @param workerId
|
| | | * @return
|
| | | */
|
| | | ThreeSale getByWorkerId(Long workerId);
|
| | |
|
| | |
|
| | | /**
|
| | |
| | | public enum UserInviteLevelEnum {
|
| | | noActive(0,"未激活", ""),
|
| | | actived(0, "已经激活", ""),
|
| | | normalVIP(3,"普通会员", ""), |
| | | highVIP(7,"高级会员", ""),
|
| | | vipApply(7,"超级会员申请中", ""),
|
| | | vip(10, "超级会员", ""),
|
| | |
| | | @Column(name = "br_params")
|
| | | private String params;
|
| | |
|
| | | // 是否定时
|
| | | private boolean timeTask;
|
| | | // 起始时间
|
| | | private String startTime_str;
|
| | | // 结束时间
|
| | |
| | |
|
| | | public void setState(Integer state) {
|
| | | this.state = state;
|
| | | }
|
| | |
|
| | | public boolean isTimeTask() {
|
| | | return timeTask;
|
| | | }
|
| | |
|
| | | public void setTimeTask(boolean timeTask) {
|
| | | this.timeTask = timeTask;
|
| | | }
|
| | |
|
| | | public String getStartTime_str() {
|
| | |
| | | // 上上级关系状态
|
| | | @Transient
|
| | | private Boolean stateSuper;
|
| | | // 有效关系
|
| | | @Transient
|
| | | private Integer validState;
|
| | | |
| | |
|
| | | public Long getId() {
|
| | | return id;
|
| | |
| | | this.stateSuper = stateSuper;
|
| | | }
|
| | |
|
| | | public Integer getValidState() {
|
| | | return validState;
|
| | | }
|
| | |
|
| | | public void setValidState(Integer validState) {
|
| | | this.validState = validState;
|
| | | }
|
| | |
|
| | | }
|
| | |
| | | <result column="createTime" property="createTime" jdbcType="BIGINT" />
|
| | | <result column="updateTime" property="updateTime" jdbcType="BIGINT" />
|
| | | <result column="expire" property="expire" jdbcType="INTEGER" />
|
| | | <result column="stateSuper" property="stateSuper" jdbcType="BOOLEAN" />
|
| | |
|
| | |
|
| | | <association property="boss" column="boss_id"
|
| | | select="com.yeshi.fanli.dao.mybatis.UserInfoMapper.selectByPrimaryKey" />
|
| | |
| | | select
|
| | | <include refid="Base_Column_List" />
|
| | | from yeshi_ec_threeSale where id = #{id,jdbcType=BIGINT}
|
| | | </select>
|
| | |
|
| | |
|
| | | <select id="selectByUid" resultMap="BaseResultMap"
|
| | | parameterType="java.lang.Long">
|
| | | select
|
| | | <include refid="Base_Column_List" />
|
| | | from yeshi_ec_threeSale where boss_id = #{0} or worker_id=#{0}
|
| | | </select>
|
| | |
|
| | |
|
| | |
| | | <!-- 根据邀请者ID查询关系 -->
|
| | | <select id="getByWorkerId" resultMap="BaseResultMap" parameterType="java.lang.Long">
|
| | | select <include refid="Base_Column_List" /> from yeshi_ec_threeSale
|
| | | where worker_id = #{0} AND state = 1
|
| | | where worker_id = #{0}
|
| | | </select>
|
| | |
|
| | | <select id="selectLatestByWorkerIdAndState" resultMap="BaseResultMap">
|
| | |
| | | where id = #{id,jdbcType=BIGINT}
|
| | | </update>
|
| | |
|
| | |
|
| | | <update id="effectThreeSale" parameterType="java.lang.Long">
|
| | | update yeshi_ec_threeSale t set t.state=1,
|
| | | t.succeedTime = <![CDATA[UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) * 1000]]>,
|
| | | t.updateTime = <![CDATA[UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) * 1000]]>
|
| | | where t.state=0 and t.worker_id=#{0} AND (t.expire = 0 OR t.expire IS
|
| | | NULL)
|
| | | </update>
|
| | |
|
| | | <update id="inviteSeparate">
|
| | | update yeshi_ec_threeSale t set t.state = 0,t.expire = 2,
|
| | | t.updateTime = <![CDATA[UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) * 1000]]>
|
| | | where t.worker_id=#{workerId} AND t.boss_id = #{bossId}
|
| | | </update>
|
| | |
|
| | | <delete id="deleteExpireRecord" parameterType="java.lang.Long">
|
| | | DELETE FROM
|
| | | yeshi_ec_threesale
|
| | | WHERE expire = 1 AND boss_id = #{bossId} AND
|
| | | worker_id = #{workerId}
|
| | | </delete>
|
| | |
|
| | |
|
| | | <select id="listFirstTeamQuery" resultMap="BaseResultMap">
|
| | |
| | |
|
| | | <select id="listFirstTeam" resultMap="AllResultMap">
|
| | | SELECT * FROM `yeshi_ec_threesale` ts
|
| | | LEFT JOIN `yeshi_ec_threesale_extra_info` ff
|
| | | ON
|
| | | ts.`boss_id` = ff.`tf_boss_id` AND ts.`worker_id`=ff.`tf_worker_id`
|
| | | LEFT JOIN `yeshi_ec_threesale_extra_info` ff ON (ts.`boss_id` = ff.`tf_boss_id` AND ts.`worker_id`=ff.`tf_worker_id`)
|
| | | WHERE ts.`boss_id` = #{uid}
|
| | | <if test="state != null">
|
| | | AND ts.`state` = #{state}
|
| | | </if>
|
| | | ORDER BY ts.state DESC, ts.expire, ts.createTime DESC
|
| | | ORDER BY ts.createTime DESC
|
| | | LIMIT ${start},${count}
|
| | | </select>
|
| | |
|
| | | <select id="countFirstTeam" resultType="java.lang.Long">
|
| | | SELECT IFNULL(count(id),0) FROM `yeshi_ec_threesale`
|
| | | WHERE `boss_id` = #{uid}
|
| | | <if test="state != null">
|
| | | AND `state` = #{state}
|
| | | </if>
|
| | | </select>
|
| | |
|
| | |
|
| | | <select id="listSecondTeam" resultMap="AllResultMap">
|
| | | SELECT yet.* FROM (
|
| | | SELECT DISTINCT(ts.`id`) AS id FROM `yeshi_ec_threesale` ts
|
| | | LEFT JOIN yeshi_ec_threesale tf ON ts.`boss_id`=tf.`worker_id`
|
| | | WHERE tf.`boss_id` = #{uid} AND tf.`state` = 1)A
|
| | | LEFT JOIN yeshi_ec_threesale tf ON ts.`boss_id`= tf.`worker_id`
|
| | | WHERE tf.`boss_id` = #{uid})A
|
| | | LEFT JOIN yeshi_ec_threesale yet ON yet.id = A.id
|
| | | WHERE 1=1
|
| | | <if test="state != null">
|
| | | AND yet.`state` = #{state}
|
| | | </if>
|
| | | ORDER BY
|
| | | yet.state DESC,
|
| | | yet.expire, yet.createTime DESC
|
| | | ORDER BY yet.createTime DESC
|
| | | LIMIT ${start},${count}
|
| | | </select>
|
| | |
|
| | |
| | | SELECT COUNT(A.id) FROM (
|
| | | SELECT DISTINCT(ts.`id`) AS id FROM `yeshi_ec_threesale` ts
|
| | | LEFT JOIN yeshi_ec_threesale tf ON ts.`boss_id`=tf.`worker_id`
|
| | | WHERE tf.`boss_id` = #{uid} AND tf.`state` = 1
|
| | | <if test="state != null">
|
| | | AND ts.`state` = #{state}
|
| | | </if>
|
| | | WHERE tf.`boss_id` = #{uid}
|
| | | )A
|
| | | </select>
|
| | |
|
| | | |
| | | <select id="listFirstTeamByUndeleted" resultMap="AllResultMap">
|
| | | SELECT * FROM `yeshi_ec_threesale` ts
|
| | | LEFT JOIN `yeshi_ec_threesale_extra_info` ff ON (ts.`boss_id` = ff.`tf_boss_id` AND ts.`worker_id`=ff.`tf_worker_id`)
|
| | | WHERE ts.`boss_id` = #{uid} AND (ts.`expire` = 0 OR ts.`expire` = 2 OR ts.`expire` = 4)
|
| | | ORDER BY ts.state DESC, ts.createTime DESC
|
| | | LIMIT ${start},${count}
|
| | | </select>
|
| | |
|
| | | <select id="countFirstTeamByUndeleted" resultType="java.lang.Long">
|
| | | SELECT IFNULL(count(ts.id),0) FROM `yeshi_ec_threesale` ts
|
| | | WHERE ts.`boss_id` = #{uid} AND (ts.`expire` = 0 OR ts.`expire` = 2 OR ts.`expire` = 4)
|
| | | </select>
|
| | | |
| | | |
| | | <select id="listSecondTeamByUndeleted" resultMap="AllResultMap">
|
| | | SELECT yet.*,stateSuper FROM (
|
| | | SELECT DISTINCT(ts.`id`) AS id, tf.state AS stateSuper FROM `yeshi_ec_threesale` ts
|
| | | LEFT JOIN yeshi_ec_threesale tf ON ts.`boss_id`=tf.`worker_id`
|
| | | WHERE tf.`boss_id` = #{uid} AND (tf.`expire` = 0 OR tf.`expire` = 2))A
|
| | | LEFT JOIN yeshi_ec_threesale yet ON yet.id = A.id
|
| | | WHERE yet.`expire` = 0 OR yet.`expire` = 2 OR yet.`expire` = 3
|
| | | ORDER BY yet.state DESC, yet.createTime DESC
|
| | | LIMIT ${start},${count}
|
| | | </select>
|
| | |
|
| | | <select id="countSecondTeamByUndeleted" resultType="java.lang.Long">
|
| | | SELECT COUNT(DISTINCT yet.id) FROM (SELECT DISTINCT(ts.`id`) AS id FROM `yeshi_ec_threesale` ts
|
| | | LEFT JOIN yeshi_ec_threesale tf ON ts.`boss_id`=tf.`worker_id`
|
| | | WHERE tf.`boss_id` = #{uid} AND (tf.`expire` = 0 OR tf.`expire` = 2))A
|
| | | LEFT JOIN yeshi_ec_threesale yet ON yet.id = A.id
|
| | | WHERE yet.`expire` = 0 OR yet.`expire` = 2 OR yet.`expire` = 3
|
| | | </select>
|
| | | |
| | | |
| | |
|
| | | <select id="getMyBoss" resultMap="AllResultMap">
|
| | | select
|
| | | <include refid="Base_Column_List" />
|
| | |
| | | LIMIT 1
|
| | | </select>
|
| | |
|
| | | <select id="getExpireRecord" resultMap="BaseResultMap">
|
| | | SELECT * FROM
|
| | | `yeshi_ec_threesale`
|
| | | WHERE expire = 1 AND boss_id = #{bossId} AND
|
| | | worker_id = #{workerId}
|
| | | </select>
|
| | |
|
| | | <select id="selectSuccessByWorkerId" resultMap="BaseResultMap" parameterType="java.lang.Long">
|
| | | SELECT * FROM `yeshi_ec_threesale`
|
| | |
| | | </select>
|
| | |
|
| | |
|
| | | <select id="counOrderByUidAndOrderType" resultType="Long">
|
| | | <select id="countMyDirectOrderByCashArrival" resultType="Long">
|
| | | SELECT COUNT(0) FROM (SELECT co.`co_order_no` FROM yeshi_ec_hongbao_v2 v2
|
| | | LEFT JOIN yeshi_ec_hongbao_order h ON v2.`hb_id` = h.`ho_hongbao_id`
|
| | | LEFT JOIN yeshi_ec_common_order co ON h.`ho_order_id` = co.`co_id`
|
| | | WHERE v2.`hb_uid` = #{uid} AND v2.`hb_state` = 3 AND co.`co_payment` >= #{payment} AND v2.`hb_type` = #{type}
|
| | | WHERE v2.`hb_state` = 3 AND (v2.`hb_type` = 1 OR v2.`hb_type` = 20) |
| | | AND v2.`hb_uid` = #{uid} AND co.`co_payment` >= #{payment} |
| | | GROUP BY co.`co_order_no`,co.`co_source_type`)A
|
| | | </select>
|
| | |
|
| | |
| | | import org.springframework.stereotype.Service;
|
| | |
|
| | | import com.yeshi.fanli.dao.mybatis.HongBaoV2CountMapper;
|
| | | import com.yeshi.fanli.dto.ChartTDO;
|
| | | import com.yeshi.fanli.entity.bus.user.HongBaoV2;
|
| | | import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
|
| | | import com.yeshi.fanli.vo.order.HongBaoV2VO;
|
| | |
| | |
|
| | |
|
| | | @Override
|
| | | public long counOrderByUidAndOrderType(Long uid, BigDecimal payment,int type) {
|
| | | Long count = hongBaoV2CountMapper.counOrderByUidAndOrderType(uid, payment, type);
|
| | | public long countMyDirectOrderByCashArrival(Long uid, BigDecimal payment) {
|
| | | Long count = hongBaoV2CountMapper.countMyDirectOrderByCashArrival(uid, payment);
|
| | | if (count == null) {
|
| | | count = 0L;
|
| | | }
|
| | |
| | | import com.yeshi.fanli.entity.bus.homemodule.HomeNavbar.NavbarTypeEnum;
|
| | | import com.yeshi.fanli.entity.bus.homemodule.SwiperBanner;
|
| | | import com.yeshi.fanli.exception.homemodule.HomeNavbarException;
|
| | | import com.yeshi.fanli.exception.homemodule.SpecialException;
|
| | | import com.yeshi.fanli.service.inter.goods.GoodsClassService;
|
| | | import com.yeshi.fanli.service.inter.homemodule.HomeNavbarService;
|
| | | import com.yeshi.fanli.service.inter.homemodule.SwiperBannerService;
|
| | |
| | | throw new HomeNavbarException(1, "导航名称不能为空");
|
| | | }
|
| | |
|
| | | String startTime_str = record.getStartTime_str();
|
| | | if (record.isTimeTask() && (startTime_str == null || startTime_str.length() == 0)) {
|
| | | throw new HomeNavbarException(1, "控制时间不能为空");
|
| | | }
|
| | | |
| | | |
| | | Integer sex = null;
|
| | | NavbarTypeEnum type = record.getType();
|
| | | if (NavbarTypeEnum.category.equals(type)) {
|
| | |
| | | }
|
| | |
|
| | | // 时间转换
|
| | | conversionTime(record);
|
| | | handleTime(record);
|
| | |
|
| | | // 图片上传
|
| | | String picture = null;
|
| | |
| | | }
|
| | | }
|
| | |
|
| | |
|
| | | |
| | | /**
|
| | | * web段时间转换
|
| | | * |
| | | * @param record
|
| | | */
|
| | | public void conversionTime(HomeNavbar record) throws HomeNavbarException, Exception {
|
| | | // 是否时间控制
|
| | | if(!record.isTimeTask()) {
|
| | | record.setStartTime(null);
|
| | | record.setEndTime(null);
|
| | | } else {
|
| | | String startTime_str = record.getStartTime_str();
|
| | | String endTime_str = record.getEndTime_str();
|
| | | |
| | | if ((startTime_str == null|| startTime_str.trim().length() == 0) |
| | | && (endTime_str == null || endTime_str.trim().length() == 0)) {
|
| | | throw new HomeNavbarException(1, "请输入控制时间");
|
| | | } else {
|
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
| | | if (startTime_str != null && startTime_str.trim().length() > 0) {
|
| | | startTime_str = startTime_str.replaceAll("T", " ");
|
| | | record.setStartTime(format.parse(startTime_str));
|
| | | }
|
| | | |
| | | if (endTime_str != null && endTime_str.trim().length() > 0) {
|
| | | endTime_str = endTime_str.replaceAll("T", " ");
|
| | | record.setEndTime(format.parse(endTime_str));
|
| | | }
|
| | | }
|
| | | private void handleTime(HomeNavbar record) throws SpecialException, Exception {
|
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
| | | |
| | | String startTime_str = record.getStartTime_str();
|
| | | if (!StringUtil.isNullOrEmpty(startTime_str)) {
|
| | | startTime_str = startTime_str.replaceAll("T", " ");
|
| | | record.setStartTime(format.parse(startTime_str));
|
| | | }
|
| | | |
| | | String endTime_str = record.getEndTime_str();
|
| | | if (!StringUtil.isNullOrEmpty(endTime_str)) {
|
| | | endTime_str = endTime_str.replaceAll("T", " ");
|
| | | record.setEndTime(format.parse(endTime_str));
|
| | | }
|
| | | |
| | | if (record.getEndTime() != null && record.getStartTime() != null
|
| | | && record.getStartTime().getTime() > record.getEndTime().getTime()) {
|
| | | throw new SpecialException(1, "起始时间不能小于结束时间");
|
| | | }
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public void updateOrder(Long id, Integer moveType, Integer sex) throws HomeNavbarException, Exception{
|
| | |
| | | return null;
|
| | | }
|
| | |
|
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
|
| | | |
| | | for (HomeNavbar homeNavbar: listObj) {
|
| | | |
| | | Date startTime = homeNavbar.getStartTime();
|
| | | Date endTime = homeNavbar.getEndTime();
|
| | | |
| | | if (startTime == null && endTime == null) {
|
| | | homeNavbar.setTimeTask(false);
|
| | | if (startTime == null) {
|
| | | homeNavbar.setStartTime_str("");
|
| | | } else {
|
| | | homeNavbar.setStartTime_str(sdf.format(startTime));
|
| | | }
|
| | | |
| | | Date endTime = homeNavbar.getEndTime();
|
| | | if (endTime == null) {
|
| | | homeNavbar.setEndTime_str("");
|
| | | } else {
|
| | | homeNavbar.setTimeTask(true);
|
| | | |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");
|
| | | if (startTime == null) {
|
| | | homeNavbar.setStartTime_str("");
|
| | | } else {
|
| | | homeNavbar.setStartTime_str(sdf.format(startTime));
|
| | | }
|
| | | |
| | | if (endTime == null) {
|
| | | homeNavbar.setEndTime_str("");
|
| | | } else {
|
| | | homeNavbar.setEndTime_str(sdf.format(endTime));
|
| | | }
|
| | | homeNavbar.setEndTime_str(sdf.format(endTime));
|
| | | }
|
| | |
|
| | | Long classId = homeNavbar.getClassId();
|
| | |
| | | return homeNavbarMapper.getEffectiveByClassId(classId);
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | public void switchState(Long id) throws HomeNavbarException {
|
| | | if (id == null) {
|
| | | throw new HomeNavbarException(1, "请传递正确参数");
|
| | | }
|
| | | |
| | | HomeNavbar resultObj = homeNavbarMapper.selectByPrimaryKey(id);
|
| | | if (resultObj == null) {
|
| | | throw new HomeNavbarException(1, "此内容已不存在");
|
| | | }
|
| | | |
| | | Integer state = resultObj.getState();
|
| | | if (state == null || state == 0) {
|
| | | state = 1;
|
| | | } else {
|
| | | state = 0;
|
| | | }
|
| | | |
| | | HomeNavbar updateObj = new HomeNavbar();
|
| | | updateObj.setId(id);
|
| | | updateObj.setState(state);
|
| | | homeNavbarMapper.updateByPrimaryKeySelective(updateObj);
|
| | | }
|
| | | |
| | | }
|
| | |
| | | long totalSpecial= specialService.countlistQueryByCard(specialCard.getId(), null, null);
|
| | | specialCard.setTotalSpecial(totalSpecial);
|
| | |
|
| | | // 将状态变化
|
| | | if (specialCard.getState() != null && specialCard.getState() == 0) {
|
| | | specialCard.setState(1);
|
| | | } else {
|
| | | specialCard.setState(0);
|
| | | }
|
| | | |
| | | |
| | | Date startTime = specialCard.getStartTime();
|
| | | Date endTime = specialCard.getEndTime();
|
| | | if (startTime == null && endTime == null) {
|
| | |
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public void switchState(Long id) throws SpecialCardException {
|
| | | if (id == null) {
|
| | | throw new SpecialCardException(1, "请传递正确参数");
|
| | | }
|
| | | |
| | | SpecialCard resultObj = specialCardMapper.selectByPrimaryKey(id);
|
| | | if (resultObj == null) {
|
| | | throw new SpecialCardException(1, "此内容已不存在");
|
| | | }
|
| | | |
| | | Integer state = resultObj.getState();
|
| | | if (state == null || state == 0) {
|
| | | state = 1;
|
| | | } else {
|
| | | state = 0;
|
| | | }
|
| | | |
| | | SpecialCard updateObj = new SpecialCard();
|
| | | updateObj.setId(id);
|
| | | updateObj.setState(state);
|
| | | specialCardMapper.updateByPrimaryKeySelective(updateObj);
|
| | | }
|
| | |
|
| | |
|
| | | }
|
| | |
| | |
|
| | | // 跳转链接
|
| | | for (Special special : list) {
|
| | |
|
| | | if (special.getState() != null && special.getState().longValue() == 0) {
|
| | | special.setState(1L);
|
| | | } else {
|
| | | special.setState(0L);
|
| | | }
|
| | | |
| | | Date startTime = special.getStartTime();
|
| | | Date endTime = special.getEndTime();
|
| | |
|
| | | if (startTime == null && endTime == null) {
|
| | | special.setStartTime_str("");
|
| | | special.setEndTime_str("");
|
| | |
| | | Special updateObj = new Special();
|
| | | updateObj.setId(id);
|
| | | updateObj.setState(state);
|
| | | updateObj.setJumpLogin(resultObj.isJumpLogin());
|
| | | specialMapper.updateByPrimaryKeySelective(updateObj);
|
| | | }
|
| | |
|
| | |
| | | if (couponType == CouponTypeEnum.freeCoupon.name()) {
|
| | | stateActivated = 0; //
|
| | | } else if (couponType == CouponTypeEnum.welfareFreeCoupon.name()
|
| | | && threeSaleSerivce.countSuccessFirstTeam(uid) <= 0) {
|
| | | && threeSaleSerivce.countFirstTeam(uid) <= 0) {
|
| | | stateActivated = 0; // 无下级队员 --待激活
|
| | | }
|
| | |
|
| | |
| | |
|
| | | UserInfo user = userInfoService.selectByPKey(codePublishRecord.getUid());
|
| | |
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(codePublishRecord.getUid(), 1);
|
| | | long secondTeam = threeSaleSerivce.countSecondTeam(codePublishRecord.getUid(), 1);
|
| | | long firstTeam = threeSaleSerivce.countFirstTeam(codePublishRecord.getUid());
|
| | | long secondTeam = threeSaleSerivce.countSecondTeam(codePublishRecord.getUid());
|
| | | codePublishRecord.setTeam(firstTeam + secondTeam);
|
| | | if (user != null && user.getType() == 1) {// 假用户
|
| | | long s = Integer
|
| | |
| | | threeSale.setWorker(inviteeUser);
|
| | | threeSaleMapper.insertSelective(threeSale);
|
| | |
|
| | | List<ThreeSale> listExpire = threeSaleMapper.getExpireRecord(inviter.getId(), inviteeUser.getId());
|
| | | if (listExpire != null && listExpire.size() > 0) {
|
| | | // 删除失效
|
| | | for (ThreeSale saleExpire : listExpire) {
|
| | | msgInviteDetailService.deleteByThreeSale(saleExpire);
|
| | | }
|
| | | // 删除已失效关系
|
| | | threeSaleMapper.deleteExpireRecord(inviter.getId(), inviteeUser.getId());
|
| | | }
|
| | |
|
| | | } else {// 是已经存在的用户
|
| | | if (worker.getId().longValue() == inviter.getId())
|
| | | throw new ThreeSaleException(4, "不能绑定自己");
|
| | |
| | | threeSale.setUpdateTime(java.lang.System.currentTimeMillis());
|
| | | threeSale.setWorker(worker);
|
| | | threeSaleMapper.insertSelective(threeSale);
|
| | |
|
| | | // 删除已失效关系
|
| | | threeSaleMapper.deleteExpireRecord(inviter.getId(), worker.getId());
|
| | |
|
| | | List<ThreeSale> listExpire = threeSaleMapper.getExpireRecord(inviter.getId(), worker.getId());
|
| | | if (listExpire != null && listExpire.size() > 0) {
|
| | | // 删除历史通知
|
| | | for (ThreeSale saleExpire : listExpire) {
|
| | | msgInviteDetailService.deleteByThreeSale(saleExpire);
|
| | | }
|
| | | // 删除已失效关系
|
| | | threeSaleMapper.deleteExpireRecord(inviter.getId(), worker.getId());
|
| | | }
|
| | |
|
| | | } else {
|
| | | // 还存在有效的邀请,则不做处理
|
| | | }
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long getFirstUsersCount(Long uid) {
|
| | | return threeSaleMapper.countFirstTeam(uid, null);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long getSecondUsersCount(Long uid) {
|
| | | return threeSaleMapper.countSecondTeam(uid, null);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public int deleteByPrimaryKey(Long id) {
|
| | | return threeSaleMapper.deleteByPrimaryKey(id);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public List<ThreeSale> listFirstTeamQuery(long start, int count, Long uid, Integer state, String startTime,
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public long countFirstTeam(Long uid, Integer state) {
|
| | | return threeSaleMapper.countFirstTeam(uid, state);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countSecondTeam(Long uid, Integer state) {
|
| | | return threeSaleMapper.countSecondTeam(uid, state);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public ThreeSale getMyBoss(Long uid) {
|
| | | return threeSaleMapper.getMyBoss(uid);
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public JSONObject getMyFirstTeam(long start, int count, Long uid, Integer state) {
|
| | |
|
| | | List<ThreeSale> list = threeSaleMapper.listFirstTeam(start, count, uid, state);
|
| | | public JSONObject getMyFirstTeam(long start, int count, Long uid) {
|
| | | List<ThreeSale> list = threeSaleMapper.listFirstTeam(start, count, uid);
|
| | | if (list == null) {
|
| | | list = new ArrayList<ThreeSale>();
|
| | | }
|
| | |
|
| | | long countTotal = threeSaleMapper.countFirstTeam(uid, state);
|
| | |
|
| | | long countTotal = threeSaleMapper.countFirstTeam(uid);
|
| | | return organizeTeam(countTotal, list);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public JSONObject getMySecondTeam(long start, int count, Long uid, Integer state) {
|
| | | List<ThreeSale> list = threeSaleMapper.listSecondTeam(start, count, uid, state);
|
| | | public JSONObject getMySecondTeam(long start, int count, Long uid) {
|
| | | List<ThreeSale> list = threeSaleMapper.listSecondTeam(start, count, uid);
|
| | | if (list == null) {
|
| | | list = new ArrayList<ThreeSale>();
|
| | | }
|
| | |
|
| | | long countTotal = threeSaleMapper.countSecondTeam(uid, state);
|
| | |
|
| | | long countTotal = threeSaleMapper.countSecondTeam(uid);
|
| | | return organizeTeam(countTotal, list);
|
| | | }
|
| | |
|
| | |
| | | return threeSaleMapper.getByWorkerId(workerId);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countSuccessFirstTeam(Long uid) {
|
| | | return threeSaleMapper.countFirstTeam(uid, 1);
|
| | | }
|
| | |
|
| | | |
| | | @Override
|
| | | public ThreeSale selectByWorkerId(Long workerId) {
|
| | | return threeSaleMapper.selectSuccessByWorkerId(workerId);
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public List<ThreeSale> listFirstTeam(long start, int count, Long uid, Integer state) {
|
| | | return threeSaleMapper.listFirstTeam(start, count, uid, state);
|
| | | public List<ThreeSale> listFirstTeam(long start, int count, Long uid) {
|
| | | return threeSaleMapper.listFirstTeam(start, count, uid);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<ThreeSale> listFirstTeamByUndeleted(long start, int count, Long uid) {
|
| | | return threeSaleMapper.listFirstTeamByUndeleted(start, count, uid);
|
| | | public List<ThreeSale> listSecondTeam(long start, int count, Long uid) {
|
| | | return threeSaleMapper.listSecondTeam(start, count, uid);
|
| | | }
|
| | | |
| | | @Override
|
| | | public long countFirstTeam(Long uid) {
|
| | | return threeSaleMapper.countFirstTeam(uid);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countFirstTeamByUndeleted(Long uid) {
|
| | | return threeSaleMapper.countFirstTeamByUndeleted(uid);
|
| | | public long countSecondTeam(Long uid) {
|
| | | return threeSaleMapper.countSecondTeam(uid);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<ThreeSale> listSecondTeamByUndeleted(long start, int count, Long uid) {
|
| | | return threeSaleMapper.listSecondTeamByUndeleted(start, count, uid);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public long countSecondTeamByUndeleted(Long uid) {
|
| | | return threeSaleMapper.countSecondTeamByUndeleted(uid);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public List<ThreeSale> listSecondTeam(long start, int count, Long uid, Integer state) {
|
| | | return threeSaleMapper.listSecondTeam(start, count, uid, state);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public ThreeSale selectLatestByWorkerIdAndState(Long workerId, int state) {
|
| | |
| | | public List<ThreeSale> getMyBossDeepList(Long uid) {
|
| | | //TODO 需要更加简便的方式处理
|
| | | return getMyBossDeepList(uid, 100);
|
| | | }
|
| | |
|
| | | @Override
|
| | | public void remvoeBreak(Long id, Long uid, Long tid) {
|
| | | ThreeSale threeSale = threeSaleMapper.selectByPrimaryKey(id);
|
| | | if (threeSale == null) {
|
| | | return;
|
| | | }
|
| | |
|
| | | Long workerId = threeSale.getWorker().getId();
|
| | | if (tid.longValue() != workerId.longValue()) {
|
| | | return;
|
| | | }
|
| | |
|
| | | Integer expire = threeSale.getExpire();
|
| | | if (expire == ThreeSale.EXPIRE_NORMAL) {
|
| | | return;
|
| | | }
|
| | |
|
| | | int upExpire = expire;
|
| | | Long bossId = threeSale.getBoss().getId();
|
| | | if (bossId.longValue() == uid.longValue()) { // 直接粉丝
|
| | | if (expire == ThreeSale.EXPIRE_BREAK_VIP_DEL4) {
|
| | | upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL34;
|
| | | } else {
|
| | | upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL3;
|
| | | }
|
| | | } else { // 间接粉丝
|
| | | if (expire == ThreeSale.EXPIRE_BREAK_VIP_DEL3) {
|
| | | upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL34;
|
| | | } else {
|
| | | upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL4;
|
| | | }
|
| | | }
|
| | |
|
| | | ThreeSale update = new ThreeSale();
|
| | | update.setId(id);
|
| | | update.setExpire(upExpire);
|
| | | update.setUpdateTime(java.lang.System.currentTimeMillis());
|
| | | threeSaleMapper.updateByPrimaryKeySelective(update);
|
| | | }
|
| | |
|
| | | }
|
| | |
| | |
|
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void fansUpgrade(Long uid, String relation, String rankName, String nickName, String item, Date time) {
|
| | | saveMsgDetail(MsgInviteDetailFactory.fansUpgrade(uid, relation, rankName, nickName, item, time));
|
| | | public void fansUpgrade(Long uid, String rankName, String nickName, String item, Date time) {
|
| | | saveMsgDetail(MsgInviteDetailFactory.fansUpgrade(uid, rankName, nickName, item, time));
|
| | | }
|
| | |
|
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void fansPreDivorced(Long uid, String rankName, String nickName, Date time) {
|
| | | saveMsgDetail(MsgInviteDetailFactory.fansPreDivorced(uid, rankName, nickName, time));
|
| | | }
|
| | | |
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void fansPredivorcedIndirect(Long uid, String rankName, String nickName, String fansName, Date time) {
|
| | | saveMsgDetail(MsgInviteDetailFactory.fansPredivorcedIndirect(uid, rankName, nickName, fansName, time));
|
| | | }
|
| | | |
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void fansDivorced(Long uid, String nickName, Date time) {
|
| | | saveMsgDetail(MsgInviteDetailFactory.fansDivorced(uid, nickName, time));
|
| | | }
|
| | | |
| | | |
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void fansDivorcedIndirect(Long uid, String nickName, String fansName, Date time) {
|
| | | saveMsgDetail(MsgInviteDetailFactory.fansDivorcedIndirect(uid, nickName, fansName, time));
|
| | | }
|
| | | |
| | | |
| | | }
|
| | |
| | | import com.yeshi.fanli.dao.mybatis.user.vip.UserVIPLevelMapper;
|
| | | import com.yeshi.fanli.dto.user.UserInviteLevelEnum;
|
| | | import com.yeshi.fanli.dto.vip.UserVIPLevel;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
| | |
| | | if (info == null) {
|
| | | UserVIPPreInfo userVIPPreInfo = userVIPPreInfoService.getLatestProcessInfo(uid);
|
| | | if (userVIPPreInfo != null) {
|
| | | if (userVIPPreInfo.getProcess() == UserVIPPreInfo.PROCESS_1) {
|
| | | return UserInviteLevelEnum.normalVIP;
|
| | | } else if (userVIPPreInfo.getProcess() == UserVIPPreInfo.PROCESS_2) {
|
| | | return UserInviteLevelEnum.highVIP;
|
| | | }
|
| | | return UserInviteLevelEnum.highVIP;
|
| | | }
|
| | | } else if (info.getState() == UserVIPInfo.STATE_VERIFING) {
|
| | | return UserInviteLevelEnum.vipApply;
|
| | |
| | | }
|
| | |
|
| | | @Override
|
| | | public void vipPreUpgrade(Long uid, String originalName, String upName, int days, long targetNum1, Long targetNum2,Integer type) {
|
| | | saveDetail( MsgAccountDetailFactory.vipPreUpgrade(uid, originalName, upName, days, targetNum1,
|
| | | targetNum2, type, null));
|
| | | public void vipPreUpgrade(Long uid, String originalName, String upName, int days, long targetNum1, Long targetNum2) {
|
| | | saveDetail( MsgAccountDetailFactory.vipPreUpgrade(uid, originalName, upName, days, targetNum1,targetNum2));
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | | import com.yeshi.fanli.dao.mybatis.user.vip.UserVIPInfoMapper;
|
| | | import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
|
| | | import com.yeshi.fanli.dto.mq.user.body.UserLevelChangedMQMsg;
|
| | | import com.yeshi.fanli.entity.bus.user.HongBaoV2;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.ThreeSale;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInviteValidNum;
|
| | | import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserLevelUpgradedNotify;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo;
|
| | | import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
|
| | | import com.yeshi.fanli.exception.user.vip.UserVIPInfoException;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
|
| | | import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
|
| | | import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInviteSeparateService;
|
| | | import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.IntegralDetailService;
|
| | | import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
|
| | | import com.yeshi.fanli.service.inter.user.invite.UserInviteMsgNotificationService;
|
| | | import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService;
|
| | | import com.yeshi.fanli.service.inter.user.msg.UserAccountMsgNotificationService;
|
| | | import com.yeshi.fanli.service.inter.user.vip.UserLevelUpgradedNotifyService;
|
| | |
| | | private UserInfoService userInfoService;
|
| | |
|
| | | @Resource
|
| | | private UserInfoExtraService userInfoExtraService;
|
| | |
|
| | | @Resource
|
| | | private UserVipConfigService userVipConfigService;
|
| | |
|
| | | @Lazy
|
| | | @Resource
|
| | | private HongBaoV2CountService hongBaoV2CountService;
|
| | |
|
| | | @Resource
|
| | | private IntegralDetailService integralDetailService;
|
| | |
|
| | | @Resource
|
| | | private BanLiShopOrderService banLiShopOrderService;
|
| | |
|
| | | @Resource
|
| | | private UserOtherMsgNotificationService userOtherMsgNotificationService;
|
| | |
|
| | | @Resource
|
| | | private ThreeSaleSerivce threeSaleSerivce;
|
| | |
|
| | | @Resource
|
| | | private UserInviteSeparateService userInviteSeparateService;
|
| | |
|
| | | @Resource
|
| | | private ConfigService configService;
|
| | |
|
| | | @Lazy
|
| | | @Resource
|
| | | private UserSystemCouponService userSystemCouponService;
|
| | |
|
| | | @Resource
|
| | | private UserVIPPreInfoService userVIPPreInfoService;
|
| | |
| | | @Resource
|
| | | private UserLevelUpgradedNotifyService userLevelUpgradedNotifyService;
|
| | |
|
| | | @Resource
|
| | | private UserInviteMsgNotificationService userInviteMsgNotificationService;
|
| | |
|
| | | @Resource(name = "producer")
|
| | | private Producer producer;
|
| | |
| | |
|
| | | if (!verifyVip(uid))
|
| | | throw new UserVIPInfoException(1, "系统验证:不满足升级条件");
|
| | |
|
| | | // 额外信息
|
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getByUidForUpdate(uid);
|
| | | if (userInfoExtra == null)
|
| | | throw new UserVIPInfoException(1, "用户信息不存在");
|
| | |
|
| | | |
| | | Date upgradeTime = new Date();
|
| | | // 通过超级会员
|
| | | UserVIPInfo info = new UserVIPInfo();
|
| | |
| | | userLevelUpgradedNotifyService.addUserLevelUpgradedNotify(notify);
|
| | |
|
| | | try {
|
| | | // 赠送免单券
|
| | | String giveCoupon = userVipConfigService.getValueByKey("vip_pre_10_gift_givefree_coupon");
|
| | | if (!StringUtil.isNullOrEmpty(giveCoupon)) {
|
| | | int num = Integer.parseInt(giveCoupon);
|
| | | userSystemCouponService.freeCouponWin(uid, CouponTypeEnum.freeCouponGive,
|
| | | UserSystemCoupon.SOURCE_SYSTEM_PUSH, num, true);
|
| | | }
|
| | | } catch (Exception e) {
|
| | | throw new UserVIPInfoException(1, "券赠送失败");
|
| | | }
|
| | | |
| | | try {
|
| | | // 升级消息
|
| | | UserVIPPreInfo pre1 = userVIPPreInfoService.getVipByProcess(uid, UserVIPPreInfo.PROCESS_2);
|
| | | userAccountMsgNotificationService.vipUpgradeSuccess(uid, TimeUtil.getDayDifferenceCount(pre1.getCreateTime(), new Date()));
|
| | |
|
| | | // 升级提醒上级
|
| | | userVIPPreInfoService.remindBoss(uid, "超级会员", getPassItem(uid), upgradeTime, false);
|
| | | // 直接粉丝升级提醒
|
| | | ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
|
| | | if (threeSale != null) {
|
| | | Long bossId = threeSale.getBoss().getId();
|
| | | UserInfo userInfo = userInfoService.selectByPKey(uid);
|
| | | userInviteMsgNotificationService.fansUpgrade(bossId, "超级会员", userInfo.getNickName(), getPassItem(uid), upgradeTime);
|
| | | }
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
| | | * @return
|
| | | */
|
| | | private String getPassItem(Long uid) {
|
| | | // 自购订单
|
| | | long doneZiGou = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY,
|
| | | HongBaoV2.TYPE_ZIGOU);
|
| | | // 分享订单
|
| | | long doneShare = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY,
|
| | | HongBaoV2.TYPE_SHARE_GOODS);
|
| | | |
| | | // 自购 + 分享订单
|
| | | long doneOrder = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY);
|
| | | // 有效粉丝
|
| | | int doneFirst = 0;
|
| | | int doneSecond = 0;
|
| | |
| | | doneSecond = userInviteValidNum.getNumSecond() == null ? 0 : userInviteValidNum.getNumSecond();
|
| | | }
|
| | |
|
| | | long limitZiGou = 0;
|
| | | String zigou = userVipConfigService.getValueByKey("vip_pre_10_zigou_order_count");
|
| | | long limitOrder = 0;
|
| | | String zigou = userVipConfigService.getValueByKey("vip_pre_10_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(zigou)) {
|
| | | limitZiGou = Long.parseLong(zigou);
|
| | | }
|
| | | |
| | | long limitShare = 0;
|
| | | String share = userVipConfigService.getValueByKey("vip_pre_10_share_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(share)) {
|
| | | limitShare = Long.parseLong(share);
|
| | | limitOrder = Long.parseLong(zigou);
|
| | | }
|
| | |
|
| | | long limitFirst = 0;
|
| | |
| | | }
|
| | |
|
| | | String item = "";
|
| | | if (doneZiGou >= limitZiGou) {
|
| | | item = "返利订单";
|
| | | } else if (doneShare >= limitShare) {
|
| | | item = "分享订单";
|
| | | if (doneOrder >= limitOrder) {
|
| | | item = "返利+分享订单";
|
| | | } else if (doneFirst >= limitFirst && doneSecond >= limitSecond) {
|
| | | item = "邀请粉丝";
|
| | | item = "直接+间接粉丝";
|
| | | }
|
| | | return item;
|
| | | }
|
| | |
| | | * @return
|
| | | */
|
| | | private boolean verifyVip(Long uid) {
|
| | | // 自购订单
|
| | | long doneZiGou = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY,
|
| | | HongBaoV2.TYPE_ZIGOU);
|
| | | // 分享订单
|
| | | long doneShare = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY,
|
| | | HongBaoV2.TYPE_SHARE_GOODS);
|
| | | |
| | | // 自购 + 分享订单
|
| | | long doneOrder = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY);
|
| | | // 有效粉丝
|
| | | int doneFirst = 0;
|
| | | int doneSecond = 0;
|
| | |
| | | doneFirst = userInviteValidNum.getNumFirst() == null ? 0 : userInviteValidNum.getNumFirst();
|
| | | doneSecond = userInviteValidNum.getNumSecond() == null ? 0 : userInviteValidNum.getNumSecond();
|
| | | }
|
| | |
|
| | | long limitZiGou = 0;
|
| | | String zigou = userVipConfigService.getValueByKey("vip_pre_10_zigou_order_count");
|
| | | long limitOrder = 0;
|
| | | String zigou = userVipConfigService.getValueByKey("vip_pre_10_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(zigou)) {
|
| | | limitZiGou = Long.parseLong(zigou);
|
| | | }
|
| | | |
| | | long limitShare = 0;
|
| | | String share = userVipConfigService.getValueByKey("vip_pre_10_share_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(share)) {
|
| | | limitShare = Long.parseLong(share);
|
| | | limitOrder = Long.parseLong(zigou);
|
| | | }
|
| | |
|
| | | long limitFirst = 0;
|
| | |
| | | limitSecond = Long.parseLong(second);
|
| | | }
|
| | |
|
| | | if (doneZiGou >= limitZiGou || doneShare >= limitShare || (doneFirst >= limitFirst && doneSecond >= limitSecond)) {
|
| | | if (doneOrder >= limitOrder || (doneFirst >= limitFirst && doneSecond >= limitSecond)) {
|
| | | return true;
|
| | | }
|
| | | return false;
|
| | |
| | | info.setState(UserVIPInfo.STATE_INVALID);
|
| | | info.setUpdateTime(new Date());
|
| | | userVIPInfoMapper.updateByPrimaryKeySelective(info);
|
| | |
|
| | | // 消息
|
| | | userAccountMsgNotificationService.vipUpgradeFail(uid, reason);
|
| | | }
|
| | |
| | | package com.yeshi.fanli.service.impl.user.vip;
|
| | |
|
| | | import java.math.BigDecimal;
|
| | | import java.util.Collections;
|
| | | import java.util.Comparator;
|
| | | import java.util.Date;
|
| | |
| | |
|
| | | import javax.annotation.Resource;
|
| | |
|
| | | import org.springframework.context.annotation.Lazy;
|
| | | import org.springframework.core.task.TaskExecutor;
|
| | | import org.springframework.stereotype.Service;
|
| | | import org.springframework.transaction.annotation.Transactional;
|
| | | import org.yeshi.utils.DateUtil;
|
| | |
|
| | | import com.aliyun.openservices.ons.api.Message;
|
| | | import com.aliyun.openservices.ons.api.Producer;
|
| | | import com.yeshi.fanli.dao.mybatis.user.vip.UserVIPPreInfoMapper;
|
| | | import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
|
| | | import com.yeshi.fanli.dto.mq.user.body.UserLevelChangedMQMsg;
|
| | | import com.yeshi.fanli.entity.bus.user.HongBaoV2;
|
| | | import com.yeshi.fanli.entity.bus.user.ThreeSale;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfoRegister;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInviteValidNum;
|
| | | import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserLevelUpgradedNotify;
|
| | | import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo;
|
| | | import com.yeshi.fanli.entity.integral.IntegralDetail;
|
| | | import com.yeshi.fanli.entity.system.ConfigKeyEnum;
|
| | | import com.yeshi.fanli.exception.user.vip.UserVIPPreInfoException;
|
| | | import com.yeshi.fanli.log.LogHelper;
|
| | | import com.yeshi.fanli.service.inter.config.ConfigService;
|
| | | import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
|
| | | import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoRegisterService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInfoService;
|
| | | import com.yeshi.fanli.service.inter.user.UserInviteSeparateService;
|
| | | import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
|
| | | import com.yeshi.fanli.service.inter.user.integral.IntegralDetailService;
|
| | | import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
|
| | | import com.yeshi.fanli.service.inter.user.invite.UserInviteMsgNotificationService;
|
| | | import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService;
|
| | |
| | |
|
| | | @Resource
|
| | | private UserVipConfigService userVipConfigService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserInviteValidNumService userInviteValidNumService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserInfoExtraService userInfoExtraService;
|
| | | |
| | | @Resource
|
| | | private IntegralDetailService integralDetailService;
|
| | | |
| | | @Resource
|
| | | private ConfigService configService;
|
| | | |
| | | @Lazy
|
| | | @Resource
|
| | | private UserSystemCouponService userSystemCouponService;
|
| | | |
| | | @Resource
|
| | | private UserInviteSeparateService userInviteSeparateService;
|
| | | |
| | |
|
| | |
|
| | | @Resource
|
| | | private UserInfoService userInfoService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserOtherMsgNotificationService userOtherMsgNotificationService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserAccountMsgNotificationService userAccountMsgNotificationService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserInfoRegisterService userInfoRegisterService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserInviteMsgNotificationService userInviteMsgNotificationService;
|
| | | |
| | |
|
| | | @Resource
|
| | | private UserLevelUpgradedNotifyService userLevelUpgradedNotifyService;
|
| | | |
| | |
|
| | | @Resource(name = "taskExecutor")
|
| | | private TaskExecutor executor;
|
| | | |
| | |
|
| | | @Resource(name = "producer")
|
| | | private Producer producer;
|
| | | |
| | |
|
| | | @Override
|
| | | public void addUserVIPPreInfo(UserVIPPreInfo info) throws UserVIPPreInfoException {
|
| | |
| | | return null;
|
| | |
|
| | | Comparator<UserVIPPreInfo> cm = new Comparator<UserVIPPreInfo>() {
|
| | |
|
| | | @Override
|
| | | public int compare(UserVIPPreInfo o1, UserVIPPreInfo o2) {
|
| | | return o2.getProcess() - o1.getProcess();
|
| | |
| | | Collections.sort(infoList, cm);
|
| | | return infoList.get(0);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public UserVIPPreInfo getVipByProcess(Long uid, int process){
|
| | | public UserVIPPreInfo getVipByProcess(Long uid, int process) {
|
| | | return userVIPPreInfoMapper.selectByUidAndProcess(uid, process);
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public UserVIPPreInfo getProcessInfo(Long uid, Date time) {
|
| | |
| | | if (infoList == null || infoList.size() == 0)
|
| | | return null;
|
| | | Comparator<UserVIPPreInfo> cm = new Comparator<UserVIPPreInfo>() {
|
| | |
|
| | | @Override
|
| | | public int compare(UserVIPPreInfo o1, UserVIPPreInfo o2) {
|
| | | return o2.getProcess() - o1.getProcess();
|
| | |
| | | return null;
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | @RequestSerializableByKeyService(key = "#uid")
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void upgradeVipByFanLiOrder(Long uid) {
|
| | | public void upgradeVipByMyOrder(Long uid) {
|
| | | UserVIPPreInfo latest = getLatestProcessInfo(uid);
|
| | | if (latest != null && latest.getProcess() == UserVIPPreInfo.PROCESS_2) {
|
| | | return;
|
| | | }
|
| | | |
| | |
|
| | | if (latest == null) {
|
| | | String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
|
| | | if (StringUtil.isNullOrEmpty(inviteCode)) {
|
| | | return; //未激活邀请码
|
| | | return; // 未激活邀请码
|
| | | }
|
| | | } |
| | | |
| | | // 自购订单到账
|
| | | long doneZiGou = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY, HongBaoV2.TYPE_ZIGOU);
|
| | | }
|
| | |
|
| | | // 自购+ 分享订单到账
|
| | | long doneZiGou = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY);
|
| | | // 高级会员限制条件
|
| | | long limitZiGou7 = 0;
|
| | | String zigou7 = userVipConfigService.getValueByKey("vip_pre_7_zigou_order_count");
|
| | | String zigou7 = userVipConfigService.getValueByKey("vip_pre_7_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(zigou7)) {
|
| | | limitZiGou7 = Long.parseLong(zigou7);
|
| | | }
|
| | | |
| | | // 验证是否满足升级高级会员
|
| | | if (doneZiGou >= limitZiGou7) {
|
| | | twoProcess(uid, limitZiGou7, null, Constant.TYPE_REBATE);
|
| | | return;
|
| | | } |
| | | |
| | | // 已经成为普通会员
|
| | | if (latest != null && latest.getProcess() == UserVIPPreInfo.PROCESS_1) {
|
| | | return;
|
| | | }
|
| | | |
| | | // 普通会员条件
|
| | | long limitZiGou3 = 0;
|
| | | String zigou3 = userVipConfigService.getValueByKey("vip_pre_3_zigou_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(zigou3)) {
|
| | | limitZiGou3 = Long.parseLong(zigou3);
|
| | | }
|
| | | if (doneZiGou >= limitZiGou3) {
|
| | | oneProcess(uid, limitZiGou3, null, Constant.TYPE_REBATE);
|
| | | } |
| | | }
|
| | | |
| | | |
| | | @Override
|
| | | @RequestSerializableByKeyService(key = "#uid")
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public void upgradeVipByShareOrder(Long uid) {
|
| | | UserVIPPreInfo latest = getLatestProcessInfo(uid);
|
| | | if (latest != null && latest.getProcess() == UserVIPPreInfo.PROCESS_2) {
|
| | | return;
|
| | | }
|
| | | |
| | | if (latest == null) {
|
| | | String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
|
| | | if (StringUtil.isNullOrEmpty(inviteCode)) {
|
| | | return; //未激活邀请码
|
| | | try {
|
| | | twoProcess(uid, limitZiGou7, null);
|
| | | } catch (UserVIPPreInfoException e) {
|
| | | |
| | | }
|
| | | } |
| | | |
| | | // 分享订单已到账
|
| | | long doneShare = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY,
|
| | | HongBaoV2.TYPE_SHARE_GOODS);
|
| | | // 高级会员限制条件
|
| | | long limitShare7 = 0;
|
| | | String share7 = userVipConfigService.getValueByKey("vip_pre_7_share_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(share7)) {
|
| | | limitShare7 = Long.parseLong(share7);
|
| | | }
|
| | | |
| | | // 验证是否满足升级高级会员
|
| | | if (doneShare >= limitShare7) {
|
| | | twoProcess(uid, limitShare7, null, Constant.TYPE_SHAER);
|
| | | return;
|
| | | } |
| | | |
| | | // 已经成为普通会员
|
| | | if (latest != null && latest.getProcess() == UserVIPPreInfo.PROCESS_1) {
|
| | | return;
|
| | | }
|
| | | |
| | | // 普通会员条件
|
| | | long limitShare3 = 0;
|
| | | String share3 = userVipConfigService.getValueByKey("vip_pre_3_share_order_count");
|
| | | if (!StringUtil.isNullOrEmpty(share3)) {
|
| | | limitShare3 = Long.parseLong(share3);
|
| | | }
|
| | | if (doneShare >= limitShare3) {
|
| | | oneProcess(uid, limitShare3, null, Constant.TYPE_SHAER);
|
| | | } |
| | | }
|
| | | |
| | | |
| | |
|
| | | @Override
|
| | | @RequestSerializableByKeyService(key = "#tid")
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | |
| | | return;
|
| | | }
|
| | | Long bossId = boss.getId();
|
| | | |
| | |
|
| | | // 验证上上级 -间接粉丝是否满足
|
| | | executor.execute(new Runnable() {
|
| | | @Override
|
| | |
| | | upgradeVipByTeamNum(bossId);
|
| | | }
|
| | | });
|
| | | |
| | |
|
| | | UserVIPPreInfo latest = getLatestProcessInfo(bossId);
|
| | | if (latest != null && latest.getProcess() == UserVIPPreInfo.PROCESS_2) {
|
| | | return;
|
| | | }
|
| | | |
| | |
|
| | | // 有效粉丝
|
| | | int doneFirst = 0;
|
| | | int doneSecond = 0;
|
| | |
| | | doneFirst = userInviteValidNum.getNumFirst() == null ? 0 : userInviteValidNum.getNumFirst();
|
| | | doneSecond = userInviteValidNum.getNumSecond() == null ? 0 : userInviteValidNum.getNumSecond();
|
| | | }
|
| | | |
| | |
|
| | | long limitFirst7 = 0;
|
| | | String first7 = userVipConfigService.getValueByKey("vip_pre_7_first_level_team_count");
|
| | | if (!StringUtil.isNullOrEmpty(first7)) {
|
| | |
| | | if (!StringUtil.isNullOrEmpty(second7)) {
|
| | | limitSecond7 = Long.parseLong(second7);
|
| | | }
|
| | | |
| | |
|
| | | // 验证是否满足升级高级会员
|
| | | if (doneFirst >= limitFirst7 && doneSecond >= limitSecond7) {
|
| | | twoProcess(bossId, limitFirst7, limitSecond7, null);
|
| | | return;
|
| | | }
|
| | |
|
| | | // 已经成为普通会员
|
| | | if (latest != null && latest.getProcess() == UserVIPPreInfo.PROCESS_1) {
|
| | | return;
|
| | | }
|
| | | |
| | | // 普通会员 条件
|
| | | long limitFirst3 = 0;
|
| | | String first = userVipConfigService.getValueByKey("vip_pre_3_first_level_team_count");
|
| | | if (!StringUtil.isNullOrEmpty(first)) {
|
| | | limitFirst3 = Long.parseLong(first);
|
| | | }
|
| | | |
| | | long limitSecond3 = 0;
|
| | | String second = userVipConfigService.getValueByKey("vip_pre_3_second_level_team_count");
|
| | | if (!StringUtil.isNullOrEmpty(second)) {
|
| | | limitSecond3 = Long.parseLong(second);
|
| | | }
|
| | | |
| | | if (doneFirst >= limitFirst3 && doneSecond >= limitSecond3) {
|
| | | oneProcess(bossId, limitFirst3, limitSecond3, null);
|
| | | try {
|
| | | twoProcess(bossId, limitFirst7, limitSecond7);
|
| | | } catch (UserVIPPreInfoException e) {
|
| | | |
| | | }
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | |
| | | |
| | | /**
|
| | | * 一阶段
|
| | | * |
| | | * @param uid
|
| | | * @param countZiGou
|
| | | * @param countShare
|
| | | * @param firstTeam
|
| | | * @param secondTeam
|
| | | */
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | private void oneProcess(Long uid, long limit1, Long limit2, Integer type) {
|
| | | try {
|
| | | String item = null;
|
| | | if (type == null) {
|
| | | item = "邀请粉丝";
|
| | | } else if (type == Constant.TYPE_REBATE) {
|
| | | item = "返利订单";
|
| | | } else {
|
| | | item = "分享订单";
|
| | | }
|
| | |
|
| | | Date upgradeTime = new Date();
|
| | | UserVIPPreInfo info = new UserVIPPreInfo();
|
| | | info.setUid(uid);
|
| | | info.setProcess(UserVIPPreInfo.PROCESS_1);
|
| | | info.setCreateTime(upgradeTime);
|
| | | info.setUpdateTime(upgradeTime);
|
| | | addUserVIPPreInfo(info);
|
| | |
|
| | | // 升级消息
|
| | | Date registerTime = new Date(1577836800000L);
|
| | | UserInfoRegister userInfoRegister = userInfoRegisterService.selectByPrimaryKey(uid);
|
| | | if (userInfoRegister != null && userInfoRegister.getCreateTime() != null) {
|
| | | registerTime = userInfoRegister.getCreateTime();
|
| | | }
|
| | | int daysBetween = TimeUtil.getDayDifferenceCount(registerTime, new Date());
|
| | | userAccountMsgNotificationService.vipPreUpgrade(uid, "快省达人", "普通会员", daysBetween, limit1, limit2, type);
|
| | | |
| | | // 升级弹框提示
|
| | | UserLevelUpgradedNotify notify = new UserLevelUpgradedNotify();
|
| | | notify.setUid(uid);
|
| | | notify.setFromLevel(UserLevelEnum.daRen);
|
| | | // notify.setToLevel(UserLevelEnum.normalVIP);
|
| | | notify.setValid(true);
|
| | | notify.setCreateTime(new Date());
|
| | | userLevelUpgradedNotifyService.addUserLevelUpgradedNotify(notify);
|
| | | |
| | | // 金币奖励
|
| | | goldcoinReward(uid);
|
| | | |
| | | // 是否存在下级脱离期限 -更新不脱离
|
| | | userInviteSeparateService.updateInvalidByBossId(uid);
|
| | | // 提醒上级
|
| | | remindBoss(uid, "普通会员", item, upgradeTime, true);
|
| | | |
| | | // if (!Constant.IS_TEST) {
|
| | | // UserLevelChangedMQMsg msg = new UserLevelChangedMQMsg(uid, UserLevelEnum.daRen,UserLevelEnum.normalVIP, new Date());
|
| | | // Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.userLevelChanged, msg);
|
| | | // producer.send(message);
|
| | | // }
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | |
| | | /**
|
| | | * 二阶段
|
| | | *
|
| | |
| | | * @param secondTeam
|
| | | */
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | private void twoProcess(Long uid, long limit1, Long limit2, Integer type) {
|
| | | private void twoProcess(Long uid, long limit1, Long limit2) throws UserVIPPreInfoException{
|
| | | String item = null;
|
| | | if (limit2 == null) {
|
| | | item = "返利+分享订单";
|
| | | } else {
|
| | | item = "直接+间接粉丝";
|
| | | }
|
| | |
|
| | | Date upgradeTime = new Date();
|
| | | UserVIPPreInfo info = new UserVIPPreInfo();
|
| | | info.setUid(uid);
|
| | | info.setProcess(UserVIPPreInfo.PROCESS_2);
|
| | | info.setCreateTime(upgradeTime);
|
| | | info.setUpdateTime(upgradeTime);
|
| | | addUserVIPPreInfo(info);
|
| | |
|
| | | // 升级弹框提示
|
| | | UserLevelUpgradedNotify notify = new UserLevelUpgradedNotify();
|
| | | notify.setUid(uid);
|
| | | notify.setFromLevel(UserLevelEnum.daRen);
|
| | | notify.setToLevel(UserLevelEnum.highVIP);
|
| | | notify.setValid(true);
|
| | | notify.setCreateTime(new Date());
|
| | | userLevelUpgradedNotifyService.addUserLevelUpgradedNotify(notify);
|
| | |
|
| | | try {
|
| | | String item = null;
|
| | | if (type == null) {
|
| | | item = "邀请粉丝";
|
| | | } else if (type == Constant.TYPE_REBATE) {
|
| | | item = "返利订单";
|
| | | } else {
|
| | | item = "分享订单";
|
| | | }
|
| | |
|
| | | Date upgradeTime = new Date();
|
| | | UserVIPPreInfo info = new UserVIPPreInfo();
|
| | | info.setUid(uid);
|
| | | info.setProcess(UserVIPPreInfo.PROCESS_2);
|
| | | info.setCreateTime(upgradeTime);
|
| | | info.setUpdateTime(upgradeTime);
|
| | | addUserVIPPreInfo(info);
|
| | |
|
| | | // 升级弹框提示
|
| | | UserLevelUpgradedNotify notify = new UserLevelUpgradedNotify();
|
| | | notify.setUid(uid);
|
| | | // notify.setFromLevel(UserLevelEnum.normalVIP);
|
| | | notify.setToLevel(UserLevelEnum.highVIP);
|
| | | notify.setValid(true);
|
| | | notify.setCreateTime(new Date());
|
| | | userLevelUpgradedNotifyService.addUserLevelUpgradedNotify(notify);
|
| | |
|
| | | // 升级福利-赠送奖励券
|
| | | String rewardCoupon = userVipConfigService.getValueByKey("vip_pre_7_gift_reward_coupon");
|
| | | if (!StringUtil.isNullOrEmpty(rewardCoupon)) {
|
| | | int num = Integer.parseInt(rewardCoupon);
|
| | | BigDecimal percent = new BigDecimal(configService.get(ConfigKeyEnum.exchangeRebatePercent.getKey()));
|
| | | userSystemCouponService.rewardCouponWin(uid, UserSystemCoupon.SOURCE_SYSTEM_PUSH, num, true, percent);
|
| | | }
|
| | | |
| | | // 升级消息
|
| | | // UserLevelEnum fromLevel = UserLevelEnum.normalVIP;
|
| | | int daysBetween = 0;
|
| | | boolean divorced = false;
|
| | | String beforeName = "快省达人";
|
| | | UserVIPPreInfo pre1 = userVIPPreInfoMapper.selectByUidAndProcess(uid, UserVIPPreInfo.PROCESS_1);
|
| | | if (pre1 != null) {
|
| | | beforeName = "普通会员";
|
| | | daysBetween = DateUtil.daysBetween(pre1.getCreateTime(), upgradeTime);
|
| | | } else {
|
| | | Date registerTime = new Date(1577836800000L);
|
| | | UserInfoRegister userInfoRegister = userInfoRegisterService.selectByPrimaryKey(uid);
|
| | | if (userInfoRegister != null && userInfoRegister.getCreateTime() != null) {
|
| | | registerTime = userInfoRegister.getCreateTime();
|
| | | }
|
| | | daysBetween = TimeUtil.getDayDifferenceCount(registerTime, upgradeTime);
|
| | | |
| | | // 金币奖励 (直接升级高级会员补齐一级奖励)
|
| | | goldcoinReward(uid);
|
| | | // 需要发送脱离信息
|
| | | divorced = true;
|
| | | // fromLevel = UserLevelEnum.daRen;
|
| | | Date registerTime = new Date(1577836800000L);
|
| | | UserInfoRegister userInfoRegister = userInfoRegisterService.selectByPrimaryKey(uid);
|
| | | if (userInfoRegister != null && userInfoRegister.getCreateTime() != null) {
|
| | | registerTime = userInfoRegister.getCreateTime();
|
| | | }
|
| | | userAccountMsgNotificationService.vipPreUpgrade(uid, beforeName, "高级会员", daysBetween, limit1, limit2, type);
|
| | | int daysBetween = TimeUtil.getDayDifferenceCount(registerTime, upgradeTime);
|
| | | userAccountMsgNotificationService.vipPreUpgrade(uid, "快省达人", "高级会员", daysBetween, limit1, limit2);
|
| | |
|
| | | // 提醒上级
|
| | | remindBoss(uid, "高级会员", item, upgradeTime, divorced);
|
| | | |
| | | |
| | | // if (!Constant.IS_TEST) {
|
| | | // UserLevelChangedMQMsg msg = new UserLevelChangedMQMsg(uid, fromLevel,UserLevelEnum.highVIP, new Date());
|
| | | // Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.userLevelChanged, msg);
|
| | | // producer.send(message);
|
| | | // }
|
| | | // 直接粉丝升级提醒
|
| | | ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
|
| | | if (threeSale != null) {
|
| | | Long bossId = threeSale.getBoss().getId();
|
| | | UserInfo userInfo = userInfoService.selectByPKey(uid);
|
| | | userInviteMsgNotificationService.fansUpgrade(bossId, "高级会员", userInfo.getNickName(), item, upgradeTime);
|
| | | }
|
| | | } catch (Exception e) {
|
| | | e.printStackTrace();
|
| | | LogHelper.error(e);
|
| | | }
|
| | | }
|
| | | |
| | | /**
|
| | | * 升级奖励金币
|
| | | * @param uid
|
| | | */
|
| | | private void goldcoinReward(Long uid) {
|
| | | String goldcoin = userVipConfigService.getValueByKey("vip_pre_3_gift_goldcoin");
|
| | | if (!StringUtil.isNullOrEmpty(goldcoin)) {
|
| | | int goldcoinNum = Integer.parseInt(goldcoin);
|
| | | // 添加金币明细
|
| | | IntegralDetail detail = new IntegralDetail();
|
| | | detail.setTitle("升级VIP福利");
|
| | | detail.setUid(uid);
|
| | | detail.setMoney(Integer.parseInt(goldcoin));
|
| | | detail.setCreateTime(new Date());
|
| | | detail.setUniqueKey("VIP-3-" + uid);
|
| | | integralDetailService.insertSelective(detail);
|
| | | // 添加金币
|
| | | userInfoExtraService.addGoldCoinByUid(uid, Integer.parseInt(goldcoin));
|
| | | // 消息
|
| | | UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
|
| | | userOtherMsgNotificationService.goldCoinSystemGiveMsg(uid, goldcoinNum, userInfoExtra.getGoldCoin());
|
| | |
|
| | | if (!Constant.IS_TEST) {
|
| | | UserLevelChangedMQMsg msg = new UserLevelChangedMQMsg(uid, UserLevelEnum.daRen, UserLevelEnum.highVIP,
|
| | | new Date());
|
| | | Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.userLevelChanged, msg);
|
| | | producer.send(message);
|
| | | }
|
| | | }
|
| | | |
| | | |
| | | @Override
|
| | | public void remindBoss(Long uid, String rankName, String item, Date time, boolean divorced) {
|
| | | // 是否存在上级
|
| | | ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
|
| | | if (threeSale == null)
|
| | | return;
|
| | | Long bossId = threeSale.getBoss().getId();
|
| | | UserInfo userInfo = userInfoService.selectByPKey(uid);
|
| | | |
| | | // 粉丝升级提醒
|
| | | userInviteMsgNotificationService.fansUpgrade(bossId, "直接粉丝", rankName, userInfo.getNickName(), item, time);
|
| | | |
| | | // 是否存在上上级
|
| | | ThreeSale threeSaleSuper = threeSaleSerivce.getMyBoss(bossId);
|
| | | if (threeSaleSuper != null) { // 粉丝升级提醒
|
| | | Long bossIdSuper = threeSaleSuper.getBoss().getId();
|
| | | userInviteMsgNotificationService.fansUpgrade(bossIdSuper, "间接粉丝", rankName, userInfo.getNickName(), item, time);
|
| | | }
|
| | | |
| | | // 是否升级脱离
|
| | | if (!divorced) {
|
| | | return;
|
| | | }
|
| | | |
| | | UserVIPPreInfo latestInfo = getLatestProcessInfo(bossId);
|
| | | if (latestInfo == null) {
|
| | | // 添加脱离关系倒计时
|
| | | userInviteSeparateService.addPreSeparateRecord(uid, bossId);
|
| | | |
| | | // 直接粉丝脱离-开始脱离提醒
|
| | | userInviteMsgNotificationService.fansPreDivorced(bossId, rankName, userInfo.getNickName(), time);
|
| | | |
| | | //间接粉丝脱离-开始脱离提醒
|
| | | if (threeSaleSuper != null) { |
| | | UserInfo boss = userInfoService.selectByPKey(bossId);
|
| | | Long bossIdSuper = threeSaleSuper.getBoss().getId();
|
| | | userInviteMsgNotificationService.fansPredivorcedIndirect(bossIdSuper, rankName, userInfo.getNickName(),
|
| | | boss.getNickName(), time);
|
| | | } |
| | | }
|
| | | }
|
| | | |
| | |
|
| | | @Override
|
| | | public UserVIPPreInfo selectByUidAndProcess(Long uid, int process) {
|
| | | return userVIPPreInfoMapper.selectByUidAndProcess(uid, process);
|
| | |
| | | * @param type 订单类型
|
| | | * @return
|
| | | */
|
| | | public long counOrderByUidAndOrderType(Long uid, BigDecimal payment, int type);
|
| | | public long countMyDirectOrderByCashArrival(Long uid, BigDecimal payment);
|
| | |
|
| | | /**
|
| | | * 统计已结算
|
| | |
| | | * @return
|
| | | */
|
| | | public List<HomeNavbar> listQueryFixedNavbar();
|
| | |
|
| | | /**
|
| | | * 改变状态
|
| | | * @param id
|
| | | * @throws HomeNavbarException
|
| | | */
|
| | | public void switchState(Long id) throws HomeNavbarException;
|
| | |
|
| | | }
|
| | |
| | | */
|
| | | public String getbottomPicture(String placeKey);
|
| | |
|
| | | |
| | | /**
|
| | | * 状态切换
|
| | | * @param id
|
| | | * @throws SpecialCardException
|
| | | */
|
| | | public void switchState(Long id) throws SpecialCardException;
|
| | |
|
| | | }
|
| | |
| | | */
|
| | | void effective(UserInfo worker);
|
| | |
|
| | | // 获取一级用户数量
|
| | | long getFirstUsersCount(Long uid);
|
| | |
|
| | | // 获取二级用户数量
|
| | | long getSecondUsersCount(Long uid);
|
| | |
|
| | |
|
| | |
|
| | | /**
|
| | | * 删除邀请关系id
|
| | | * |
| | | * @param id
|
| | | * @return
|
| | | */
|
| | | public int deleteByPrimaryKey(Long id);
|
| | |
|
| | |
|
| | |
|
| | | /**
|
| | | * 一级查询
|
| | |
| | | public long countSuperiorQuery(Integer state, Long uid);
|
| | |
|
| | |
|
| | | /**
|
| | | * 统计所有一级队员
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * 状态,值 为空时则统计所有
|
| | | * @return
|
| | | */
|
| | | public long countFirstTeam(Long uid, Integer state);
|
| | |
|
| | | /**
|
| | | * 统计二级队员
|
| | | * |
| | | * @param uid
|
| | | * @param state
|
| | | * 状态,值 为空时则统计所有
|
| | | * @return
|
| | | */
|
| | | public long countSecondTeam(Long uid, Integer state);
|
| | |
|
| | | /**
|
| | | * 前端查询一级队员
|
| | |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public JSONObject getMyFirstTeam(long start, int count, Long uid, Integer state);
|
| | | public JSONObject getMyFirstTeam(long start, int count, Long uid);
|
| | |
|
| | | /**
|
| | | * 前端查询二级队员
|
| | |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public JSONObject getMySecondTeam(long start, int count, Long uid, Integer state);
|
| | | public JSONObject getMySecondTeam(long start, int count, Long uid);
|
| | |
|
| | | /**
|
| | | * 获取上级
|
| | |
| | | */
|
| | | public int getSuccessRelationshipNum(Long uid);
|
| | |
|
| | |
|
| | | /**
|
| | | * 统计邀请成功队员数量
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public long countSuccessFirstTeam(Long uid);
|
| | |
|
| | | /**
|
| | | * 根据邀请者查询关系
|
| | |
| | | * @param state
|
| | | * @return
|
| | | */
|
| | | public List<ThreeSale> listFirstTeam(long start, int count, Long uid, Integer state);
|
| | | public List<ThreeSale> listFirstTeam(long start, int count, Long uid);
|
| | |
|
| | | /**
|
| | | * 二级队员
|
| | |
| | | * @param state
|
| | | * @return
|
| | | */
|
| | | public List<ThreeSale> listSecondTeam(long start, int count, Long uid, Integer state);
|
| | | public List<ThreeSale> listSecondTeam(long start, int count, Long uid);
|
| | |
|
| | | |
| | | /**
|
| | | * 统计直接粉丝数量
|
| | | * |
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public long countFirstTeam(Long uid);
|
| | |
|
| | | /**
|
| | | * 统计间接粉丝数量
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public long countSecondTeam(Long uid);
|
| | | |
| | | /**
|
| | | * 查询邀请关系 时间筛选
|
| | | * @param workerId 下级id
|
| | |
| | | * @throws
|
| | | */
|
| | | public List<ThreeSale> getMyBossDeepList(Long uid);
|
| | |
|
| | | /**
|
| | | * 查询未删除版-粉丝一级
|
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public List<ThreeSale> listFirstTeamByUndeleted(long start, int count, Long uid);
|
| | |
|
| | | /**
|
| | | * 统计粉丝一级
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public long countFirstTeamByUndeleted(Long uid);
|
| | |
|
| | | /**
|
| | | * 查询未删除版-粉丝二级
|
| | | * @param start
|
| | | * @param count
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public List<ThreeSale> listSecondTeamByUndeleted(long start, int count, Long uid);
|
| | |
|
| | | /**
|
| | | * 统计粉丝二级
|
| | | * @param uid
|
| | | * @return
|
| | | */
|
| | | public long countSecondTeamByUndeleted(Long uid);
|
| | |
|
| | | |
| | | /**
|
| | | * 删除脱离队员
|
| | | * @param id
|
| | | * @param uid
|
| | | * @param tid
|
| | | */
|
| | | public void remvoeBreak(Long id, Long uid, Long tid);
|
| | |
|
| | | }
|
| | |
| | |
|
| | |
|
| | | /**
|
| | | * 粉丝升级提醒
|
| | | * 直接粉丝升级提醒
|
| | | * @param uid
|
| | | * @param relation 直接粉丝 、 间接粉丝
|
| | | * @param rankName 等级名称
|
| | | * @param nickName 昵称
|
| | | * @param item 满足条件项名称
|
| | | * @param time 升级时间
|
| | | */
|
| | | public void fansUpgrade(Long uid, String relation, String rankName, String nickName, String item, Date time);
|
| | | public void fansUpgrade(Long uid, String rankName, String nickName, String item, Date time);
|
| | |
|
| | |
|
| | | /**
|
| | | * 直接粉丝脱离-开始脱离提醒
|
| | | * @param uid
|
| | | * @param rankName
|
| | | * @param nickName
|
| | | * @param item
|
| | | * @param time
|
| | | */
|
| | | public void fansPreDivorced(Long uid, String rankName, String nickName, Date time);
|
| | |
|
| | |
|
| | | /**
|
| | | * 间接粉丝脱离-开始脱离提醒
|
| | | * @param uid
|
| | | * @param rankName
|
| | | * @param nickName
|
| | | * @param fansName 直接粉丝昵称
|
| | | * @param item
|
| | | * @param time
|
| | | */
|
| | | public void fansPredivorcedIndirect(Long uid, String rankName, String nickName, String fansName, Date time);
|
| | |
|
| | |
|
| | | /**
|
| | | * 直接粉丝脱离-已经脱离提醒
|
| | | * @param uid
|
| | | * @param nickName
|
| | | * @param time
|
| | | */
|
| | | public void fansDivorced(Long uid, String nickName, Date time);
|
| | |
|
| | | /**
|
| | | * 间接粉丝脱离-已经脱离提醒
|
| | | * @param uid
|
| | | * @param nickName
|
| | | * @param fansName 直接粉丝昵称
|
| | | * @param time
|
| | | */
|
| | | public void fansDivorcedIndirect(Long uid, String nickName, String fansName, Date time);
|
| | | }
|
| | |
| | | * @param days
|
| | | * @param targetNum1
|
| | | * @param targetNum2
|
| | | * @param type
|
| | | */
|
| | | public void vipPreUpgrade(Long uid, String originalName, String upName, int days, long targetNum1, Long targetNum2,
|
| | | Integer type);
|
| | | public void vipPreUpgrade(Long uid, String originalName, String upName, int days, long targetNum1, Long targetNum2);
|
| | |
|
| | | /**
|
| | | * 超级会员升级成功
|
| | |
| | | public UserVIPPreInfo getVipByProcess(Long uid, int process);
|
| | |
|
| | |
|
| | | /**
|
| | | * 升级提醒上级
|
| | | * @param uid
|
| | | * @param rankName
|
| | | * @param item
|
| | | * @param time
|
| | | * @param divorced
|
| | | */
|
| | | public void remindBoss(Long uid, String rankName, String item, Date time, boolean divorced);
|
| | |
|
| | | /**
|
| | | * 自购订单到账 满足升级验证
|
| | | * 自购+ 分享订单到账 满足升级验证
|
| | | * @param uid
|
| | | */
|
| | | public void upgradeVipByFanLiOrder(Long uid);
|
| | | public void upgradeVipByMyOrder(Long uid);
|
| | |
|
| | | /**
|
| | | * 分享订单到账 -满足升级验证
|
| | | * @param uid
|
| | | */
|
| | | public void upgradeVipByShareOrder(Long uid);
|
| | |
|
| | | /**
|
| | | * 粉丝完成收货-验证直接-间接粉丝
|
| | |
| | | import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail;
|
| | | import com.yeshi.fanli.entity.bus.msg.MsgAccountDetail.MsgTypeAccountTypeEnum;
|
| | | import com.yeshi.fanli.entity.bus.user.UserInfo;
|
| | | import com.yeshi.fanli.util.Constant;
|
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
|
| | | import com.yeshi.fanli.vo.msg.CommonMsgItemVO;
|
| | |
| | | * @return
|
| | | */
|
| | | public static MsgAccountDetail vipPreUpgrade(Long uid, String originalName, String upName, int days, long targetNum1,
|
| | | Long targetNum2, Integer type, String beizu) {
|
| | | Long targetNum2) {
|
| | | if (uid == null || originalName == null || upName == null)
|
| | | return null;
|
| | |
|
| | | List<CommonMsgItemVO> listMsg = new ArrayList<>();
|
| | | List<ClientTextStyleVO> contentList = new ArrayList<>();
|
| | | contentList.add(new ClientTextStyleVO("恭喜你!有效", ClientTextStyleVO.COLOR_CONTENT));
|
| | | if (type == null) {
|
| | | if (targetNum2 == null) {
|
| | | contentList.add(new ClientTextStyleVO("直接粉丝已达", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO(targetNum1+"", ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO("人,有效间接粉丝已达", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO(targetNum2+"", ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO("人", ClientTextStyleVO.COLOR_CONTENT));
|
| | | } else if (type == Constant.TYPE_REBATE) {
|
| | | contentList.add(new ClientTextStyleVO("返利订单已达", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO(targetNum1+"", ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO("笔", ClientTextStyleVO.COLOR_CONTENT));
|
| | | } else if (type == Constant.TYPE_SHAER) {
|
| | | contentList.add(new ClientTextStyleVO("分享订单已达", ClientTextStyleVO.COLOR_CONTENT));
|
| | | } else {
|
| | | contentList.add(new ClientTextStyleVO("返利+分享订单已达", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO(targetNum1+"", ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO("笔", ClientTextStyleVO.COLOR_CONTENT));
|
| | | }
|
| | |
| | | new ClientTextStyleVO("从收到本消息起,你将获得该账户等级对应的全部权益", ClientTextStyleVO.COLOR_CONTENT)));
|
| | |
|
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("备注", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO(StringUtil.isNullOrEmpty(beizu)?"无":beizu, ClientTextStyleVO.COLOR_CONTENT)));
|
| | | new ClientTextStyleVO("无", ClientTextStyleVO.COLOR_CONTENT)));
|
| | |
|
| | | MsgAccountDetail detail = new MsgAccountDetail();
|
| | | detail.setBeiZhu(beizu);
|
| | | detail.setTitle("等级成长");
|
| | | detail.setType(MsgTypeAccountTypeEnum.vipPgrade);
|
| | | detail.setUser(new UserInfo(uid));
|
| | |
| | | * @param time
|
| | | * @return
|
| | | */
|
| | | public static MsgInviteDetail fansUpgrade(Long uid, String relation, String rankName, String nickName, String item, Date time) {
|
| | | public static MsgInviteDetail fansUpgrade(Long uid, String rankName, String nickName, String item, Date time) {
|
| | | if (nickName == null || uid == null || item == null || time == null)
|
| | | return null;
|
| | | List<CommonMsgItemVO> listMsg = new ArrayList<>();
|
| | | List<ClientTextStyleVO> contentList = new ArrayList<>();
|
| | | contentList.add(new ClientTextStyleVO("恭喜你!你的" + relation + ":", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO("恭喜你!你的直接粉丝:", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO(nickName ,ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO("已升级为", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO(rankName, ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
|
| | |
| | | MsgInviteDetail detail = new MsgInviteDetail();
|
| | | detail.setCreateTime(new Date());
|
| | | detail.setMsgType(MsgTypeInviteTypeEnum.fansUpgrade);
|
| | | detail.setRead(false);
|
| | | detail.setUser(new UserInfo(uid));
|
| | | detail.setExtraInfo(new Gson().toJson(listMsg));
|
| | | return detail;
|
| | | }
|
| | | |
| | | |
| | | /**
|
| | | * 直接粉丝脱离-开始脱离提醒
|
| | | * @param uid
|
| | | * @param rankName
|
| | | * @param nickName
|
| | | * @param item
|
| | | * @param time
|
| | | * @return
|
| | | */
|
| | | public static MsgInviteDetail fansPreDivorced(Long uid, String rankName, String nickName, Date time) {
|
| | | if (nickName == null || uid == null || time == null)
|
| | | return null;
|
| | | List<CommonMsgItemVO> listMsg = new ArrayList<>();
|
| | | List<ClientTextStyleVO> contentList = new ArrayList<>();
|
| | | contentList.add(new ClientTextStyleVO("很抱歉!你的直接粉丝:", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO(nickName ,ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO("已升级为", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO(rankName, ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
|
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("脱离粉丝", ClientTextStyleVO.COLOR_TITLE),contentList));
|
| | | |
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("升级时间", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO(TimeUtil.formatDate(time), ClientTextStyleVO.COLOR_CONTENT)));
|
| | | |
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("脱离原因", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO("你还不是会员,即日起你需要在60天内升级为任意会员", ClientTextStyleVO.COLOR_CONTENT)));
|
| | | |
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("备注", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO("可在【\"我的-我的粉丝\"】中查看脱离剩余时间", ClientTextStyleVO.COLOR_CONTENT)));
|
| | | |
| | | MsgInviteDetail detail = new MsgInviteDetail();
|
| | | detail.setCreateTime(new Date());
|
| | | detail.setMsgType(MsgTypeInviteTypeEnum.fansDivorced);
|
| | | detail.setRead(false);
|
| | | detail.setUser(new UserInfo(uid));
|
| | | detail.setExtraInfo(new Gson().toJson(listMsg));
|
| | | return detail;
|
| | | }
|
| | | |
| | | /**
|
| | | * 间接粉丝脱离-开始脱离提醒
|
| | | * @param uid
|
| | | * @param rankName
|
| | | * @param nickName
|
| | | * @param fansName
|
| | | * @param item
|
| | | * @param time
|
| | | * @return
|
| | | */
|
| | | public static MsgInviteDetail fansPredivorcedIndirect(Long uid, String rankName, String nickName, String fansName, Date time) {
|
| | | if (nickName == null || uid == null || time == null)
|
| | | return null;
|
| | | |
| | | List<CommonMsgItemVO> listMsg = new ArrayList<>();
|
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("脱离粉丝", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO(String.format("很抱歉!你的间接粉丝:%s已升级为%s", nickName, rankName), ClientTextStyleVO.COLOR_CONTENT)));
|
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("升级时间", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO(TimeUtil.formatDate(time), ClientTextStyleVO.COLOR_CONTENT)));
|
| | | |
| | | List<ClientTextStyleVO> contentList = new ArrayList<>();
|
| | | contentList.add(new ClientTextStyleVO("你的直接粉丝", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO(fansName,ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO("还不是会员,即日起你需要在60天内助力他成长为任意会员", ClientTextStyleVO.COLOR_CONTENT));
|
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("脱离原因", ClientTextStyleVO.COLOR_TITLE),contentList));
|
| | | |
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("备注", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO("可在【\"我的-我的粉丝\"】中查看脱离剩余时间", ClientTextStyleVO.COLOR_CONTENT)));
|
| | | |
| | | MsgInviteDetail detail = new MsgInviteDetail();
|
| | | detail.setCreateTime(new Date());
|
| | | detail.setMsgType(MsgTypeInviteTypeEnum.fansDivorced);
|
| | | detail.setRead(false);
|
| | | detail.setUser(new UserInfo(uid));
|
| | | detail.setExtraInfo(new Gson().toJson(listMsg));
|
| | | return detail;
|
| | | }
|
| | |
|
| | | /**
|
| | | * 直接粉丝脱离-已经脱离提醒
|
| | | * @param uid
|
| | | * @param rankName
|
| | | * @param nickName
|
| | | * @param item
|
| | | * @param time
|
| | | * @return
|
| | | */
|
| | | public static MsgInviteDetail fansDivorced(Long uid, String nickName, Date time) {
|
| | | if (nickName == null || uid == null || time == null)
|
| | | return null;
|
| | | List<CommonMsgItemVO> listMsg = new ArrayList<>();
|
| | | List<ClientTextStyleVO> contentList = new ArrayList<>();
|
| | | contentList.add(new ClientTextStyleVO("很抱歉!你的直接粉丝:", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO(nickName ,ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO("已经脱离了你", ClientTextStyleVO.COLOR_CONTENT));
|
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("脱离粉丝", ClientTextStyleVO.COLOR_TITLE),contentList));
|
| | | |
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("脱离时间", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO(TimeUtil.formatDate(time), ClientTextStyleVO.COLOR_CONTENT)));
|
| | | |
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("脱离原因", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO("你未能在60天内升级为任意会员", ClientTextStyleVO.COLOR_CONTENT)));
|
| | | |
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("备注", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO("如有疑问请联系人工客服", ClientTextStyleVO.COLOR_CONTENT)));
|
| | | |
| | | MsgInviteDetail detail = new MsgInviteDetail();
|
| | | detail.setCreateTime(new Date());
|
| | | detail.setMsgType(MsgTypeInviteTypeEnum.fansDivorced);
|
| | | detail.setRead(false);
|
| | | detail.setUser(new UserInfo(uid));
|
| | | detail.setExtraInfo(new Gson().toJson(listMsg));
|
| | | return detail;
|
| | | }
|
| | |
|
| | |
|
| | | /**
|
| | | * 直接粉丝脱离-已经脱离提醒
|
| | | * @param uid
|
| | | * @param rankName
|
| | | * @param nickName
|
| | | * @param item
|
| | | * @param time
|
| | | * @return
|
| | | */
|
| | | public static MsgInviteDetail fansDivorcedIndirect(Long uid, String nickName, String fansName, Date time) {
|
| | | if (nickName == null || uid == null || time == null)
|
| | | return null;
|
| | | List<CommonMsgItemVO> listMsg = new ArrayList<>();
|
| | | List<ClientTextStyleVO> contentList = new ArrayList<>();
|
| | | contentList.add(new ClientTextStyleVO("很抱歉!你的间接粉丝:", ClientTextStyleVO.COLOR_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO(nickName ,ClientTextStyleVO.COLOR_HIGHLIGHT_CONTENT));
|
| | | contentList.add(new ClientTextStyleVO("已经脱离了你", ClientTextStyleVO.COLOR_CONTENT));
|
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("脱离粉丝", ClientTextStyleVO.COLOR_TITLE),contentList));
|
| | | |
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("脱离时间", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO(TimeUtil.formatDate(time), ClientTextStyleVO.COLOR_CONTENT)));
|
| | | |
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("脱离原因", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO(String.format("你的直接粉丝%s未能在60天内升级为任意会员", fansName), ClientTextStyleVO.COLOR_CONTENT)));
|
| | | |
| | | listMsg.add(CommonMsgItemVOFactory.createMsgItemVO(new ClientTextStyleVO("备注", ClientTextStyleVO.COLOR_TITLE),
|
| | | new ClientTextStyleVO("如有疑问请联系人工客服", ClientTextStyleVO.COLOR_CONTENT)));
|
| | | |
| | | MsgInviteDetail detail = new MsgInviteDetail();
|
| | | detail.setCreateTime(new Date());
|
| | | detail.setMsgType(MsgTypeInviteTypeEnum.fansDivorced);
|
| | | detail.setRead(false);
|
| | | detail.setUser(new UserInfo(uid));
|
| | | detail.setExtraInfo(new Gson().toJson(listMsg));
|
| | |
| | | if (dto != null) {
|
| | | if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_ZIGOU) {// 自购到账
|
| | | // 会员升级-自购订单数量验证
|
| | | userVIPPreInfoService.upgradeVipByFanLiOrder(dto.getUid());
|
| | | userVIPPreInfoService.upgradeVipByMyOrder(dto.getUid());
|
| | | } else if (dto.getType() == OrderMoneyRecievedMQMsg.TYPE_SHARE) {// 分享到账
|
| | | // 会员升级-分享订单数量验证
|
| | | userVIPPreInfoService.upgradeVipByShareOrder(dto.getUid());
|
| | | userVIPPreInfoService.upgradeVipByMyOrder(dto.getUid());
|
| | | }
|
| | | }
|
| | | } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderConfirm.name())) {
|