From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 20 五月 2020 17:25:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java | 969 ++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 726 insertions(+), 243 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java index e44029a..c1bcd66 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java @@ -3,6 +3,7 @@ import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.Map; @@ -16,19 +17,26 @@ import org.yeshi.utils.DateUtil; import org.yeshi.utils.JsonUtil; -import com.yeshi.fanli.dto.user.UserInviteLevelEnum; +import com.yeshi.fanli.dto.user.ThreeSaleFocusDTO; import com.yeshi.fanli.dto.vip.UserVIPLevel; import com.yeshi.fanli.dto.wx.WXAccountInfoDTO; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.msg.UserSystemMsg; import com.yeshi.fanli.entity.bus.msg.UserSystemMsgTypeEnum; +import com.yeshi.fanli.entity.bus.user.TeamFansInfo; import com.yeshi.fanli.entity.bus.user.ThreeSale; import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo; +import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; 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.entity.bus.user.invite.TeamDailyRecord; +import com.yeshi.fanli.entity.bus.user.vip.TeamUserLevelStatistic; +import com.yeshi.fanli.entity.bus.user.vip.TearcherInfo; +import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; +import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo; import com.yeshi.fanli.entity.system.BusinessSystem; import com.yeshi.fanli.entity.system.ConfigKeyEnum; import com.yeshi.fanli.entity.system.SystemClientParams; @@ -39,16 +47,24 @@ import com.yeshi.fanli.service.inter.config.SpreadImgService; import com.yeshi.fanli.service.inter.config.SystemClientParamsService; import com.yeshi.fanli.service.inter.msg.UserSystemMsgService; +import com.yeshi.fanli.service.inter.order.CommonOrderCountService; import com.yeshi.fanli.service.inter.push.PushService; import com.yeshi.fanli.service.inter.user.SpreadUserImgService; +import com.yeshi.fanli.service.inter.user.UserCustomSettingsService; 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.TeamDailyRecordService; +import com.yeshi.fanli.service.inter.user.invite.TeamFansInfoService; 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.service.inter.user.invite.UserInviteValidNumService; import com.yeshi.fanli.service.inter.user.invite.UserInviteValidRecordService; +import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; +import com.yeshi.fanli.service.inter.user.vip.TeamUserLevelStatisticService; +import com.yeshi.fanli.service.inter.user.vip.TearcherService; import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; +import com.yeshi.fanli.service.inter.user.vip.UserVIPPreInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.RedisKeyEnum; import com.yeshi.fanli.util.RedisManager; @@ -56,7 +72,9 @@ 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; import com.yeshi.fanli.util.wx.WXLoginUtil; +import com.yeshi.fanli.vo.order.OrderRankingVO; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -91,27 +109,51 @@ @Resource private UserVIPInfoService userVIPInfoService; - - @Resource - private UserInviteSeparateService userInviteSeparateService; @Resource private SpreadImgService spreadImgService; - + @Resource private SpreadUserImgService spreadUserImgService; - + @Resource private SystemClientParamsService systemClientParamsService; - + @Resource private UserInviteService userInviteService; - + @Resource private UserInviteValidRecordService userInviteValidRecordService; + + @Resource + private UserInviteValidNumService userInviteValidNumService; + + @Resource + private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService; + + @Resource + private CommonOrderCountService commonOrderCountService; + + @Resource + private TeamFansInfoService teamFansInfoService; + + @Resource + private UserCustomSettingsService userCustomSettingsService; + + @Resource + private TearcherService tearcherService; + + @Resource + private TeamUserLevelStatisticService teamUserLevelStatisticService; + + @Resource + private UserVIPPreInfoService userVIPPreInfoService; + + @Resource + private TeamDailyRecordService teamDailyRecordService; - + /** * 閭�璇风爜楠岃瘉 * @@ -149,7 +191,8 @@ if (wxUnionId == null || wxUnionId.trim().length() == 0) throw new UserInfoExtraException(1, "寰俊鎺堟潈澶辫触"); - String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.emptyKey, StringUtil.Md5("activeWX:" + weiXinUser.getUnionid())); + String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.emptyKey, + StringUtil.Md5("activeWX:" + weiXinUser.getUnionid())); redisManager.cacheCommonString(key, JsonUtil.getSimpleGson().toJson(weiXinUser), 60 * 20); // 閭�璇峰叧绯荤敤鎴蜂俊鎭� @@ -171,8 +214,7 @@ * * @param acceptData * @param uid - * @param key - * 楠岃瘉杩斿洖鐨刱ey + * @param key 楠岃瘉杩斿洖鐨刱ey * @param out */ @RequestSerializableByKey(key = "'activeInviteWX-'+#uid") @@ -201,7 +243,7 @@ } /** - * 鐢ㄦ埛闃熷憳鍒楄〃鏌ヨ 1.5.3鏌ヨ鏈夋晥闃熷憳 + * 鐢ㄦ埛闃熷憳鍒楄〃鏌ヨ * * @param acceptData * @param id @@ -213,30 +255,31 @@ out.print(JsonUtil.loadFalseResult("绮変笣绫诲瀷涓嶆纭�")); return; } - - if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) { - getMyTeamNew(acceptData, page, uid, type, out); - return; - } - 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; - if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) - needVIPInfo = true; + // 鏁版嵁鍔犲伐 + JSONArray array = null; + if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) { + array = organizeTeamNew(acceptData, listTeam, uid, type, true); + } else { + boolean needVIPInfo = false; + if (VersionUtil.greaterThan_2_0_5(acceptData.getPlatform(), acceptData.getVersion())) + needVIPInfo = true; + array = organizeTeam(listTeam, uid, type, needVIPInfo); + } - // 缁勭粐鏁版嵁 - JSONObject resultData = organizeTeam(count, listTeam, uid, type,needVIPInfo); + JSONObject result = new JSONObject(); + result.put("count", count); + result.put("list", array); - // 绗竴椤靛垽鏂槸鍚︽縺娲� 鏄惁鏈夐槦鍛� if (type == 1 && page == 1) { boolean hasCode = false; UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); @@ -244,10 +287,10 @@ if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) hasCode = true; } - resultData.put("hasCode", hasCode); - resultData.put("hasTeam", count > 0 ? true : false); + result.put("hasCode", hasCode); + result.put("hasTeam", count > 0 ? true : false); } - out.print(JsonUtil.loadTrueResult(resultData)); + out.print(JsonUtil.loadTrueResult(result)); } /** @@ -259,10 +302,8 @@ * @param type * @return */ - private JSONObject organizeTeam(long count, List<ThreeSale> list, Long uid, int type, boolean needVipInfo) { - JSONObject result = new JSONObject(); + private JSONArray organizeTeam(List<ThreeSale> list, Long uid, int type, boolean needVipInfo) { JSONArray resultArray = new JSONArray(); - Date todayTime = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("MM.dd HH:mm"); SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm"); @@ -294,32 +335,6 @@ // 娣诲姞鏄惁涓篤IP 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(); @@ -359,7 +374,7 @@ } else { if (!threeSaleExtraInfoSerivce.isRemindWorker(uid, workerId)) { object.put("weiXinState", 1); - object.put("weiXinTip", "鐐瑰嚮鎻愰啋TA锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��"); + object.put("weiXinTip", "鐐瑰嚮鎻愰啋锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��"); } else { object.put("weiXinState", 2); object.put("weiXinTip", "绯荤粺宸插彂閫佹彁閱掞紝閭�璇蜂汉娣诲姞寰俊鍚庝綘鍙鍒讹紝濡傚鏂硅繜杩熶笉娣诲姞锛屼綘鍙仈绯讳汉宸ュ鏈嶅姹傚府鍔�"); @@ -371,57 +386,20 @@ object.put("recentMsg", array); resultArray.add(object); } - - result.put("count", count); - result.put("list", resultArray); - return result; + return resultArray; } - - private void getMyTeamNew(AcceptData acceptData, long page, long uid, int type, PrintWriter out) { - if (type != 1 && type != 2) { - out.print(JsonUtil.loadFalseResult("绮変笣绫诲瀷涓嶆纭�")); - return; - } - - 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); - } else if (type == 2) { - listTeam = threeSaleSerivce.listSecondTeamByUndeleted((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid); - count = threeSaleSerivce.countSecondTeamByUndeleted(uid); - } - - JSONObject result = new JSONObject(); - result.put("count", count); - result.put("list", organizeTeamNew(count, listTeam, uid, type, true)); - - // 绗竴椤靛垽鏂槸鍚︽縺娲� 鏄惁鏈夐槦鍛� - if (type == 1 && page == 1) { - boolean hasCode = false; - UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); - if (userInfoExtra != null) { - if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) - hasCode = true; - } - result.put("hasCode", hasCode); - result.put("hasTeam", count > 0 ? true : false); - } - out.print(JsonUtil.loadTrueResult(result)); - } - /** - * 鍔犲伐鏁版嵁 + * 鍔犲伐鏁版嵁 + * * @param count * @param list * @param uid - * @param type 鏌ヨ绮変笣绫诲瀷 1鐩存帴 2闂存帴 + * @param type 鏌ヨ绮変笣绫诲瀷 1鐩存帴 2闂存帴 * @param wxtip 鏄渶瑕佸井淇℃彁绀� * @return */ - private JSONArray organizeTeamNew(long count, List<ThreeSale> list, Long uid, int type, boolean wxtip) { + private JSONArray organizeTeamNew(AcceptData acceptData, List<ThreeSale> list, Long uid, int type, boolean wxtip) { JSONArray resultArray = new JSONArray(); if (list == null || list.size() == 0) { return resultArray; @@ -436,47 +414,37 @@ for (ThreeSale threeSale : list) { listWid.add(threeSale.getWorker().getId()); } - + // 鏌ヨ鏈夋晥绮変笣id int validType = UserInviteValidRecord.TYPE_TWO; 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(); + Long succeedTime = threeSale.getSucceedTime(); if (succeedTime == null) { succeedTime = threeSale.getCreateTime(); } - + // 鏈夋晥绮変笣 - boolean validFans = false; - if (state && listVid != null && listVid.size() > 0 && listVid.contains(workerId)) { + boolean validFans = false; + if (listVid != null && listVid.size() > 0 && listVid.contains(workerId)) { validFans = true; } - + // 鏈�杩戠矇涓濈櫥褰曟椂闂� Date lastLoginTime = new Date(threeSale.getCreateTime()); UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(workerId); if (userInfoExtra != null && userInfoExtra.getActiveTime() != null) { lastLoginTime = userInfoExtra.getActiveTime(); - } + } JSONObject loginJson = new JSONObject(); if (formatYears.format(todayTime).equals(formatYears.format(lastLoginTime))) { loginJson.put("content", "鏈�杩戠櫥褰� " + sdf.format(lastLoginTime)); // 鏈勾 @@ -484,87 +452,33 @@ loginJson.put("content", "鏈�杩戠櫥褰� " + format.format(lastLoginTime)); // 寰�骞� } loginJson.put("color", "#888888"); - + JSONArray array = new JSONArray(); array.add(loginJson); // 鏌ヨ绮変笣绛夌骇 - UserInviteLevelEnum level = null; + UserLevelEnum level = null; UserVIPLevel vipLevel = userInviteService.getVIPLevelByUid(workerId); - if (vipLevel != null) { - if (vipLevel.getLevel() == UserVIPLevel.LEVEL_3) { - level = UserInviteLevelEnum.actived; - } else if (vipLevel.getLevel() == UserVIPLevel.LEVEL_7) { - level = UserInviteLevelEnum.actived; - } else if (vipLevel.getLevel() == UserVIPLevel.LEVEL_10) { - level = UserInviteLevelEnum.actived; - } + if (vipLevel != null && vipLevel.getLevel() != null) { + level = UserLevelUtil.getByLevel(vipLevel.getLevel()); } - - if(level == null) { - if (userInfoExtra == null || StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) { - level = UserInviteLevelEnum.noActive; - } else { - level = UserInviteLevelEnum.actived; - } + if (level == null) { + level = UserLevelEnum.daRen; } - - + level = UserLevelUtil.getShowLevel(level); + JSONObject object = new JSONObject(); object.put("workerId", workerId); object.put("nickName", worker.getNickName()); 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 +"鍐呭崌绾т负浼氬憳锛屽惁鍒欐寜鐓ч個璇疯鍒橳A灏嗕笌浣犺劚绂婚個璇峰叧绯汇��"); - tips.add("璧跺揩鍔犳补鍗囩骇涓轰細鍛樺惂锛�"); - } else { - tips.add("浣犻渶瑕佽緟鍔㏕A鐨勯個璇蜂汉"+ 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()) { + if (wxtip) { // 涓�绾ч槦鍛� 鏌ヨ鏄电О澶囨敞 String memoName = null; ThreeSaleExtraInfo threeSaleExtraInfo = threeSale.getThreeSaleExtraInfo(); @@ -574,54 +488,55 @@ } } object.put("memoName", memoName); - - // 娣诲姞寰俊淇℃伅 - if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) { - object.put("weiXin", userInfoExtra.getWeiXin()); - object.put("weiXinState", 3); - object.put("weiXinTip", "娣诲姞TA鐨勫井淇★紝浣犲彲鏁欐巿TA濡備綍閫氳繃鏉挎牀蹇渷璧氶挶鎶�宸с��"); - } else { - if (!threeSaleExtraInfoSerivce.isRemindWorker(uid, workerId)) { - object.put("weiXinState", 1); - object.put("weiXinTip", "鐐瑰嚮鎻愰啋TA锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��"); + + if (type == 1 && !VersionUtil.greaterThan_2_1_1(acceptData.getPlatform(), acceptData.getVersion())) { + // 娣诲姞寰俊淇℃伅 + if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) { + object.put("weiXin", userInfoExtra.getWeiXin()); + object.put("weiXinState", 3); + object.put("weiXinTip", "娣诲姞TA鐨勫井淇★紝浣犲彲鏁欐巿TA濡備綍閫氳繃鏉挎牀蹇渷璧氶挶鎶�宸с��"); } else { - object.put("weiXinState", 2); - object.put("weiXinTip", "绯荤粺宸插彂閫佹彁閱掞紝閭�璇蜂汉娣诲姞寰俊鍚庝綘鍙鍒讹紝濡傚鏂硅繜杩熶笉娣诲姞锛屼綘鍙仈绯讳汉宸ュ鏈嶅姹傚府鍔�"); + if (!threeSaleExtraInfoSerivce.isRemindWorker(uid, workerId)) { + object.put("weiXinState", 1); + object.put("weiXinTip", "鐐瑰嚮鎻愰啋锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��"); + } else { + object.put("weiXinState", 2); + object.put("weiXinTip", "绯荤粺宸插彂閫佹彁閱掞紝閭�璇蜂汉娣诲姞寰俊鍚庝綘鍙鍒讹紝濡傚鏂硅繜杩熶笉娣诲姞锛屼綘鍙仈绯讳汉宸ュ鏈嶅姹傚府鍔�"); + } } } } - resultArray.add(object); } return resultArray; } - - + /** * 鏌ョ湅涓嬬骇鐨勭洿鎺ョ矇涓� + * * @param acceptData * @param page - * @param uid 褰撳墠UId - * @param tid 涓嬬骇UId + * @param uid 褰撳墠UId + * @param tid 涓嬬骇UId * @param out */ @RequestMapping(value = "getOthersTeam", method = RequestMethod.POST) - public void getOthersTeam(AcceptData acceptData, long page, Long uid, Long tid, PrintWriter out) { + public void getOthersTeam(AcceptData acceptData, long page, Long uid, Long tid, PrintWriter out) { if (tid == null) { out.print(JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘")); 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); - result.put("list", organizeTeamNew(count, listTeam, tid, 1, false)); + result.put("list", organizeTeamNew(acceptData, listTeam, tid, 1, false)); out.print(JsonUtil.loadTrueResult(result)); } - - + /** * 鐢ㄦ埛闃熷憳缁熻- IOS * @@ -634,13 +549,14 @@ 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) { @@ -685,6 +601,7 @@ /** * 鑾峰彇鐢ㄦ埛淇℃伅 + * * @param acceptData * @param uid * @param out @@ -698,8 +615,7 @@ JSONObject bossData = getBossInfo(uid, threeSaleSerivce.getMyBoss(uid)); out.print(JsonUtil.loadTrueResult(bossData)); } - - + /** * 涓婄骇淇℃伅缁勭粐 * @@ -728,7 +644,7 @@ } else { if (!threeSaleExtraInfoSerivce.isRemindBoss(boss.getId(), uid)) { bossData.put("weiXinState", 1); - bossData.put("weiXinTip", "鐐瑰嚮鎻愰啋TA锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��"); + bossData.put("weiXinTip", "鐐瑰嚮鎻愰啋锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��"); } else { bossData.put("weiXinState", 2); bossData.put("weiXinTip", "绯荤粺宸插彂閫佹彁閱掞紝閭�璇蜂汉娣诲姞寰俊鍚庝綘鍙鍒讹紝濡傚鏂硅繜杩熶笉娣诲姞锛屼綘鍙仈绯讳汉宸ュ鏈嶅姹傚府鍔�"); @@ -839,11 +755,11 @@ out.print(JsonUtil.loadFalseResult("鎻愰啋澶辫触")); } } - - + @RequestSerializableByKey(key = "'getInviteImgs-'+#uid") @RequestMapping(value = "/getInviteImgs", method = RequestMethod.POST) - public void getInviteImgs(AcceptData acceptData, Long uid, Integer page, PrintWriter out, HttpServletRequest request) { + public void getInviteImgs(AcceptData acceptData, Long uid, Integer page, PrintWriter out, + HttpServletRequest request) { if (uid == null || uid <= 0) { out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); return; @@ -851,33 +767,34 @@ if (page == null || page < 1) page = 1; - + try { String inviteCode = userInfoExtraService.getInviteCodeByUid(uid); if (StringUtil.isNullOrEmpty(inviteCode)) { out.print(JsonUtil.loadFalseResult("閭�璇风爜鏈縺娲�")); return; } - + int count = 3; - if (page > 1) + if (page > 1) count = Integer.MAX_VALUE; - + // 閭�璇峰浘 List<String> imgList = spreadUserImgService.getUserSpreadImgToPage(uid, page, count, request); - + // 閭�璇疯鍒� BusinessSystem system = new BusinessSystem(); system.setId(4L); system.setPlatform(1); system.setCreatetime(java.lang.System.currentTimeMillis()); - SystemClientParams values = systemClientParamsService.getSystemClientParamsBySystemAndKey(system, "inviteRules"); - + SystemClientParams values = systemClientParamsService.getSystemClientParamsBySystemAndKey(system, + "inviteRules"); + JSONObject data = new JSONObject(); data.put("count", spreadImgService.countAll()); data.put("inviteCode", inviteCode); data.put("helpLink", configService.get(ConfigKeyEnum.inviteHelpLink.getKey())); - data.put("inviteRules", values.getValue().replace("\n", "<br><br>")); + data.put("inviteRules", values.getValue().replace("\n", "<br><br>")); data.put("imgUrlList", JsonUtil.getSimpleGsonWithDate().toJson(imgList)); data.put("inviteLink", Constant.YINGYONGBAO_LINK); out.print(JsonUtil.loadTrue(0, JsonUtil.getSimpleGson().toJson(data), "鎴愬姛")); @@ -886,7 +803,7 @@ out.print(JsonUtil.loadFalseResult("閭�璇蜂俊鎭幏鍙栧け璐�")); } } - + /** * 绔欏唴淇℃彁閱掗槦鍛樻坊鍔犲井淇″彿 * @@ -902,23 +819,589 @@ return; } + // 鏈夋晥绮変笣 + int doneFirst = 0; + UserInviteValidNum userInviteValidNum = userInviteValidNumService.selectByPrimaryKey(uid); + if (userInviteValidNum != null) { + doneFirst = userInviteValidNum.getNumFirst() == null ? 0 : userInviteValidNum.getNumFirst(); + } + JSONObject data = new JSONObject(); - data.put("num", threeSaleSerivce.countFirstTeam(uid, 1)); + 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("浼犺緭鍙傛暟涓嶅畬鏁�")); + + /** + * 鐢ㄦ埛闃熷憳鍒楄〃鏌ヨ + * + * @param acceptData + * @param id + * @param out + */ + @RequestMapping(value = "getMyTeamV2", method = RequestMethod.POST) + public void getMyTeamV2(AcceptData acceptData, int page, long uid, int type, ThreeSaleFocusDTO focus, + PrintWriter out) { + if (type != 1 && type != 2) { + out.print(JsonUtil.loadFalseResult("绮変笣绫诲瀷涓嶆纭�")); return; } - threeSaleSerivce.remvoeBreak(inviteId, uid, tid); + + long firstTeam = 0; + long countSecond = 0; + List<ThreeSale> listTeam = null; + if (!existScreen(focus)) { // 鏅�氭煡璇� + if (type == 1) { + listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid); + } else if (type == 2) { + listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid); + } + firstTeam = threeSaleSerivce.countFirstTeam(uid); + countSecond = threeSaleSerivce.countSecondTeam(uid); + } else { // 绛涢�夋潯浠� + List<Long> listId = null; + List<TeamFansInfo> listfocus = teamFansInfoService.query((page - 1) * Constant.PAGE_SIZE, + Constant.PAGE_SIZE, type, uid, focus); + if (listfocus != null && listfocus.size() > 0) { + listId = new ArrayList<Long>(); + for (TeamFansInfo focusInfo : listfocus) { + listId.add(focusInfo.getWorkerId()); + } + } + + if (listId != null && listId.size() > 0) { + if (type == 1) { + listTeam = threeSaleSerivce.listFirstTeam(0, Constant.PAGE_SIZE, uid, listId); + } else if (type == 2) { + listTeam = threeSaleSerivce.listSecondTeam(0, Constant.PAGE_SIZE, uid, listId); + } + } + firstTeam = teamFansInfoService.count(1, uid, focus); + countSecond = teamFansInfoService.count(2, uid, focus); + } + JSONArray array = organizeTeamNew(acceptData, listTeam, uid, type, true); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛")); + long count = (type == 1) ? firstTeam : countSecond; + + JSONObject result = new JSONObject(); + result.put("firstTeam", firstTeam); + result.put("secondTeam", countSecond); + result.put("count", count); + result.put("list", array); + + // 缁熻H5閾炬帴 + if (page == 1) { + result.put("link", configService.get(ConfigKeyEnum.teamStatisticsLink.getKey())); + } + out.print(JsonUtil.loadTrueResult(result)); + } + + /** + * 楠岃瘉鏄惁瀛樺湪绛涢�夋潯浠� + * @param focus + * @return + */ + private boolean existScreen(ThreeSaleFocusDTO focus) { + if (focus.getStateValid() != null || focus.getTaobaoBind() != null || focus.getWeixinBind() != null + || focus.getMinFansNum() != null || focus.getMinFansNum() != null + || focus.getMinActiveTime() != null || focus.getMaxActiveTime() != null + || focus.getMinIncome() != null || focus.getMaxIncome() != null + || focus.getMinJoinTime() != null || focus.getMaxJoinTime() != null + || !StringUtil.isNullOrEmpty(focus.getKey()) || !StringUtil.isNullOrEmpty(focus.getLevel())) + return true; + + return false; + } + + /** + * 鐢ㄦ埛闃熷憳缁熻 + * + * @param acceptData + * @param id + * @param out + */ + @RequestMapping(value = "countMyTeamV2") + public void countMyTeamV2(String callback, AcceptData acceptData, Long uid, PrintWriter out) { + try { + JSONObject bossObject = new JSONObject(); + ThreeSale threeSale = threeSaleSerivce.getByWorkerId(uid); + if (threeSale == null) { + bossObject.put("exist", false); + bossObject.put("desc", "鎭枩浣狅紒鏉挎牀蹇渷浼樿川鐢ㄦ埛锛沑r\n\r\n浣犲苟娌℃湁閭�璇蜂汉锛屼絾浣犵殑閭�璇疯兘鍔涢粯璁ゆ槸寮�鍚殑锛沑r\n浣犳嫢鏈夌嫭鐗圭殑鏃犻個璇蜂汉婵�娲荤爜銆�"); + } else { + // 涓婄骇鍩烘湰淇℃伅 + Long bossId = threeSale.getBoss().getId(); + UserInfo userInfo = userInfoService.selectByPKey(bossId); + boolean phoneCopy = true; + String phone = userInfo.getPhone(); + if (StringUtil.isNullOrEmpty(phone)) { + phone = ""; + } else { + if (!userCustomSettingsService.validateDisplayPhoneByUid(bossId)) { + phoneCopy = false; + phone = phone.substring(0, 7) + "****"; + } + } + + // 寰俊鍙� + UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(bossId); + if (extra != null) { + bossObject.put("weixin", StringUtil.isNullOrEmpty(extra.getWeiXin()) ? "" : extra.getWeiXin()); + } + + // 褰撳墠绛夌骇 + UserLevelEnum level = null; + UserVIPLevel vipLevel = userInviteService.getVIPLevelByUid(bossId); + if (vipLevel != null && vipLevel.getLevel() != null) { + level = UserLevelUtil.getByLevel(vipLevel.getLevel()); + } + if (level == null) { + level = UserLevelEnum.daRen; + } + level = UserLevelUtil.getShowLevel(level); + + bossObject.put("exist", true); + bossObject.put("nickName", userInfo.getNickName()); + bossObject.put("portrait", userInfo.getPortrait()); + bossObject.put("phone", phone); + bossObject.put("phoneCopy", phoneCopy); + bossObject.put("level", level.name()); + } + + JSONObject json = new JSONObject(); + json.put("boss", bossObject); + + TearcherInfo tearcherInfo = tearcherService.selectByUid(uid); + if (tearcherInfo != null) { + JSONObject tearcherObject = new JSONObject(); + tearcherObject.put("nickName", tearcherInfo.getNickName()); + tearcherObject.put("portrait", tearcherInfo.getPortrait()); + tearcherObject.put("phone", tearcherInfo.getPhone()); + tearcherObject.put("weixin", tearcherInfo.getWxID()); + tearcherObject.put("level", UserLevelEnum.tearcher); + json.put("tearcher", tearcherObject); + } + + JSONObject daren = new JSONObject(); + JSONObject highVIP = new JSONObject(); + JSONObject superVIP = new JSONObject(); + + TeamUserLevelStatistic statistic = teamUserLevelStatisticService.selectByUid(uid); + if (statistic == null) { + daren.put("total", 0); + highVIP.put("total", 0); + superVIP.put("total", 0); + } else { + int totalDaren = statistic.getDaRenFirstCount() + statistic.getDaRenSecondCount() + + statistic.getNormalFirstCount() + statistic.getNormalSecondCount(); + daren.put("total", totalDaren); + highVIP.put("total", statistic.getHighFirstCount() + statistic.getHighSecondCount()); + superVIP.put("total", statistic.getSuperFirstCount() + statistic.getSuperSecondCount()); + } + + + int darenToday = 0; + int highVIPToday = 0; + int superVIPToday = 0; + String createId = teamDailyRecordService.createId(uid, new Date()); + TeamDailyRecord record = teamDailyRecordService.getById(createId); + if (record != null) { + if (record.getFirstDaRen() != null) + darenToday += record.getFirstDaRen(); + if (record.getSecondDaRen() != null) + darenToday += record.getSecondDaRen(); + if (record.getFirstHighVIP() != null) + highVIPToday += record.getFirstHighVIP(); + if (record.getSecondHighVIP() != null) + highVIPToday += record.getSecondHighVIP(); + if (record.getFirstSuperVIP() != null) + superVIPToday += record.getFirstSuperVIP(); + if (record.getSecondSuperVIP() != null) + superVIPToday += record.getSecondSuperVIP(); + } + + + // 鑾峰彇褰撴湀绗竴澶╁拰鏈�鍚庝竴澶� + Calendar cale = Calendar.getInstance(); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + String firstday, lastday; + // 鑾峰彇鍓嶆湀鐨勭涓�澶� + cale = Calendar.getInstance(); + cale.add(Calendar.MONTH, 0); + cale.set(Calendar.DAY_OF_MONTH, 1); + firstday = format.format(cale.getTime()); + // 鑾峰彇鍓嶆湀鐨勬渶鍚庝竴澶� + cale = Calendar.getInstance(); + cale.add(Calendar.MONTH, 1); + cale.set(Calendar.DAY_OF_MONTH, 0); + lastday = format.format(cale.getTime()); + + int darenMonth = 0; + int highVIPMonth = 0; + int superVIPMonth = 0; + Date date = new Date(); + Date minTime = TimeUtil.parseYYYYMMDD(firstday); + Date maxTime = TimeUtil.parseYYYYMMDD_HHMMSS(lastday + " 23:59:59"); + List<TeamDailyRecord> listMonth = teamDailyRecordService.sumGroupByYearMonth(uid, minTime, maxTime); + if (listMonth != null && listMonth.size() > 0) { + TeamDailyRecord teamRecord = listMonth.get(0); + if (teamRecord.getFirstDaRen() != null) + darenMonth += teamRecord.getFirstDaRen(); + if (teamRecord.getSecondDaRen() != null) + darenMonth += teamRecord.getSecondDaRen(); + if (teamRecord.getFirstHighVIP() != null) + highVIPMonth += teamRecord.getFirstHighVIP(); + if (teamRecord.getSecondHighVIP() != null) + highVIPMonth += teamRecord.getSecondHighVIP(); + if (teamRecord.getFirstSuperVIP() != null) + superVIPMonth += teamRecord.getFirstSuperVIP(); + if (teamRecord.getSecondSuperVIP() != null) + superVIPMonth += teamRecord.getSecondSuperVIP(); + } + // 杈句汉 + daren.put("today", darenToday); + daren.put("month", darenMonth); + // 楂樼骇浼氫細鍛� + highVIP.put("today", highVIPToday); + highVIP.put("month", highVIPMonth); + // 缁熻瓒呯骇浼氬憳鏁伴噺 + superVIP.put("today", superVIPToday); + superVIP.put("month", superVIPMonth); + + json.put("daren", daren); + json.put("highVIP", highVIP); + json.put("superVIP", superVIP); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json)); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触")); + e.printStackTrace(); + } + + } + + /** + * 鑾峰彇绮変笣淇℃伅 + * + * @param acceptData + * @param uid + * @param workerId + * @param out + */ + @RequestMapping(value = "getFansInfo") + public void getFansInfo(AcceptData acceptData, Long uid, Long workerId, PrintWriter out) { + if (uid == null || workerId == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛id缂哄け")); + return; + } + + ThreeSale threeSale = threeSaleSerivce.getByWorkerId(workerId); + if (threeSale == null) { + out.print(JsonUtil.loadFalseResult("閭�璇峰叧绯讳笉瀛樺湪")); + return; + } + + UserInfo user = userInfoService.selectByPKey(workerId); + if (user == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�")); + return; + } + + // 闈炵洿鎺ラ個璇峰叧绯� + String bossNickName = null; + if (uid.longValue() != threeSale.getBoss().getId().longValue()) { + UserInfo boss = userInfoService.selectByPKey(threeSale.getBoss().getId()); + if (boss != null) { + bossNickName = boss.getNickName(); + } + } + + + + JSONArray tagArray = new JSONArray(); + String memoName = user.getNickName(); + Long succeedTime = threeSale.getSucceedTime(); + + JSONObject data = new JSONObject(); + String phone = user.getPhone(); + boolean phoneCopy = true; + if (StringUtil.isNullOrEmpty(phone)) { + phone = ""; + } else { + if (!userCustomSettingsService.validateDisplayPhoneByUid(workerId)) { + phoneCopy = false; + phone = phone.substring(0, 7) + "****"; + } + } + + data.put("bossNickName", bossNickName); + data.put("nickName", user.getNickName()); + data.put("phone", phone); + data.put("phoneCopy", phoneCopy); + data.put("joinTime", TimeUtil.formatDate(succeedTime == null ? threeSale.getCreateTime() : succeedTime)); + + ThreeSaleExtraInfo saleExtraInfo = threeSaleExtraInfoSerivce.getbyBossIdAndWorkerId(uid, workerId); + if (saleExtraInfo != null) { + if (!StringUtil.isNullOrEmpty(saleExtraInfo.getNickname())) { + memoName = saleExtraInfo.getNickname(); + } + String tags = saleExtraInfo.getTags(); + if (!StringUtil.isNullOrEmpty(tags)) { + tagArray = JSONArray.fromObject(tags); + } + } + data.put("memoName", memoName); + data.put("tags", tagArray); + + Date activeTime = null; + String weixin = null; + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(workerId); + if (userInfoExtra != null) { + weixin = userInfoExtra.getWeiXin(); + activeTime = userInfoExtra.getActiveTime(); + } + + if (activeTime == null) { + activeTime = new Date(user.getCreatetime()); + } + + data.put("weixin", StringUtil.isNullOrEmpty(weixin) ? "" : weixin); + data.put("loginTime", TimeUtil.formatDate(activeTime)); + + UserExtraTaoBaoInfo userExtraTaoBaoInfo = userExtraTaoBaoInfoService.getByUid(workerId); + if (userExtraTaoBaoInfo != null && !StringUtil.isNullOrEmpty(userExtraTaoBaoInfo.getRelationId()) + && !StringUtil.isNullOrEmpty(userExtraTaoBaoInfo.getSpecialId())) { + data.put("taobao", true); + } else { + data.put("taobao", false); + } + + UserVIPPreInfo userVIPPreInfo = userVIPPreInfoService.getLatestProcessInfo(workerId); + if (userVIPPreInfo != null) { + String levelName = null; + Integer process = userVIPPreInfo.getProcess(); + if (process == UserVIPPreInfo.PROCESS_2) { + levelName = "楂樼骇浼氬憳"; + } else if (process == UserVIPPreInfo.PROCESS_3) { + levelName = "瓒呯骇浼氬憳"; + } else if (process == UserVIPPreInfo.PROCESS_4) { + levelName = "璧勬繁瀵煎笀"; + } + + Integer sourceType = userVIPPreInfo.getSourceType(); + if (sourceType != null && levelName != null) { + if (sourceType == UserVIPPreInfo.SOURCE_TYPE_ORDER) { + data.put("level", levelName += "(鑷喘鍒嗕韩鍨�)"); + } else if (sourceType == UserVIPPreInfo.SOURCE_TYPE_TEAM) { + data.put("level", levelName += "(閭�璇峰洟闃熷瀷)"); + } + } + } + + // 绮変笣缁熻 + long indirectNum = 0; + long directNum = threeSaleSerivce.countFirstTeam(workerId); + if (directNum > 0) { + indirectNum = threeSaleSerivce.countSecondTeam(workerId); + } + + // 璁㈠崟缁熻 + long countTB = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_TAOBAO, 60); + long countJD = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_JD, 60); + long countPDD = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_PDD, 60); + + data.put("fansNum", "鐩存帴绮変笣锛� "+directNum+"浜篭n" + "闂存帴绮変笣锛� "+indirectNum+"浜�"); + data.put("orderInfo", "娣樺疂 ("+countTB+"绗�)\n" + "浜笢 ("+countJD+"绗�)\n" + "鎷煎澶� ("+countPDD+"绗�)"); + out.print(JsonUtil.loadTrueResult(data)); + } + + /** + * 鑾峰彇绮変笣淇℃伅 + * + * @param acceptData + * @param uid + * @param workerId + * @param out + */ + @RequestMapping(value = "saveTags") + public void saveTags(AcceptData acceptData, Long uid, Long workerId, String tags, PrintWriter out) { + if (uid == null || workerId == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛id缂哄け")); + return; + } + + int type = 1; + ThreeSale threeSale = threeSaleSerivce.getByWorkerId(workerId); + if (threeSale != null && threeSale.getBoss().getId() != uid) { + type = 2; + } + + ThreeSaleExtraInfo saleExtraInfo = threeSaleExtraInfoSerivce.getbyBossIdAndWorkerId(uid, workerId); + if (saleExtraInfo != null) { + ThreeSaleExtraInfo upObject = new ThreeSaleExtraInfo(); + upObject.setTags(tags); + upObject.setId(saleExtraInfo.getId()); + upObject.setUpdateTime(new Date()); + threeSaleExtraInfoSerivce.updateByPrimaryKeySelective(upObject); + } else { + saleExtraInfo = new ThreeSaleExtraInfo(); + saleExtraInfo.setBoss(new UserInfo(uid)); + saleExtraInfo.setWorker(new UserInfo(workerId)); + saleExtraInfo.setTags(tags); + saleExtraInfo.setType(type); + saleExtraInfo.setCreateTime(new Date()); + threeSaleExtraInfoSerivce.insertSelective(saleExtraInfo); + } + + // 鏇存柊绮変笣璁板綍淇℃伅 + teamFansInfoService.updateTags(workerId, type, tags); + out.print(JsonUtil.loadTrueResult("淇濆瓨鎴愬姛")); + } + + + /** + * 闃熷憳鏁伴噺缁熻 + * + * @param acceptData + * @param id + * @param out + */ + @RequestMapping(value = "countTeamNum") + public void countTeamNum(String callback, AcceptData acceptData, Long uid, PrintWriter out) { + try { + Date minDate = null; + Date maxDate = null; + long timeStamp = System.currentTimeMillis(); + + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(timeStamp); + + // 浠婃棩棰勪及 + calendar.add(Calendar.DAY_OF_YEAR, -1); + minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); + TeamDailyRecord todayRecord = createVO(teamDailyRecordService.sumTeamNumGroupByCountDay(uid, minDate, null)); + + // 鏄ㄦ棩棰勪及 + calendar.add(Calendar.DAY_OF_YEAR, -1); + maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); + minDate = DateUtil.reduceDay(1, maxDate); + TeamDailyRecord yesterdayRecord = createVO(teamDailyRecordService.sumTeamNumGroupByCountDay(uid, minDate, maxDate)); + + // 鏈湀棰勪及 + maxDate = new Date(timeStamp); + calendar = Calendar.getInstance(); + minDate = new Date(TimeUtil + .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M")); + calendar.add(Calendar.MONTH, -1); + TeamDailyRecord monthRecord = createVO(teamDailyRecordService.sumTeamNumGroupByYearMonth(uid, minDate, maxDate)); + + // 绱 + TeamDailyRecord totalityRecord = createVO(teamDailyRecordService.sumTeamNumGroupByUid(uid, null, null)); + + JSONObject today = new JSONObject(); + today.put("direct", todayRecord.getFirstNum()); + today.put("indirect", todayRecord.getSecondNum()); + today.put("beyond", todayRecord.getBeyondNum()); + + JSONObject yesterday = new JSONObject(); + yesterday.put("direct", yesterdayRecord.getFirstNum()); + yesterday.put("indirect", yesterdayRecord.getSecondNum()); + yesterday.put("beyond", yesterdayRecord.getBeyondNum()); + + JSONObject month = new JSONObject(); + month.put("direct", monthRecord.getFirstNum()); + month.put("indirect", monthRecord.getSecondNum()); + month.put("beyond", monthRecord.getBeyondNum()); + + JSONObject totality = new JSONObject(); + totality.put("direct", totalityRecord.getFirstNum()); + totality.put("indirect", totalityRecord.getSecondNum()); + totality.put("beyond", totalityRecord.getBeyondNum()); + + + JSONObject json = new JSONObject(); + json.put("today", today); + json.put("yesterday", yesterday); + json.put("month", month); + json.put("totality", totality); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json)); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触")); + e.printStackTrace(); + } + } + + + private TeamDailyRecord createVO(List<TeamDailyRecord> list) { + TeamDailyRecord totalityRecord = new TeamDailyRecord(0,0,0); + if (list != null && list.size() > 0) { + for (TeamDailyRecord record: list) { + totalityRecord.setFirstNum(totalityRecord.getFirstNum() + record.getFirstNum()); + totalityRecord.setSecondNum(totalityRecord.getSecondNum() + record.getSecondNum()); + totalityRecord.setBeyondNum(totalityRecord.getBeyondNum() + record.getBeyondNum()); + } + } + return totalityRecord; + } + + + + /** + * 閭�璇锋帓琛屾 + * @param callback + * @param acceptData + * @param uid + * @param dateType + * @param out + */ + @RequestMapping(value = "getRanking") + public void getRanking(String callback, AcceptData acceptData, Long uid, Integer dateType, PrintWriter out) { + if (uid == null || dateType == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟缂哄け")); + return; + } + + try { + Date minDate = null; + Date maxDate = null; + long timeStamp = System.currentTimeMillis(); + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(timeStamp); + + if (dateType == 1) { + // 浠婃棩 + calendar.add(Calendar.DAY_OF_YEAR, -1); + minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); + } else if (dateType == 2) { + // 鏄ㄦ棩 + calendar.add(Calendar.DAY_OF_YEAR, -1); + maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); + minDate = DateUtil.reduceDay(1, maxDate); + } else { + // 鏈湀 + maxDate = new Date(timeStamp); + calendar = Calendar.getInstance(); + minDate = new Date(TimeUtil + .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M")); + calendar.add(Calendar.MONTH, -1); + } + + + List<OrderRankingVO> list = teamDailyRecordService.getRankingByFirstNum(uid, minDate, maxDate); + if (list.size() > 0) { + for (OrderRankingVO vo: list) { + UserInfo user = userInfoService.getUserByIdWithMybatis(vo.getUid()); + vo.setNickName(user.getNickName()); + vo.setPortrait(user.getPortrait()); + } + } + + JSONObject json = new JSONObject(); + json.put("list", list); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json)); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触")); + e.printStackTrace(); + } } } -- Gitblit v1.8.0