From 1faf3ab0ba6c17eee48e68e8d0077ea61f45d75d Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 12 五月 2020 20:19:36 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java | 15 + /dev/null | 32 ---- fanli/src/main/java/com/yeshi/fanli/dao/user/invite/TeamDailyRecordDao.java | 119 +++++++++++++--- fanli/src/main/java/com/yeshi/fanli/dao/order/OrderMoneyDailyCountDao.java | 2 fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/TeamDailyRecordServiceImpl.java | 61 +++----- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java | 84 +++++++++-- fanli/src/main/java/com/yeshi/fanli/entity/bus/user/invite/TeamDailyRecord.java | 4 fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/TeamDailyRecordService.java | 58 ++++--- 8 files changed, 225 insertions(+), 150 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java index 0997f10..3be498e 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java @@ -1878,21 +1878,28 @@ */ @RequestMapping(value = "setextrainfo", method = RequestMethod.POST) public void setExtraInfo(AcceptData acceptData, long uid, long inviteId, String memoName, PrintWriter out) { - List<ThreeSale> listThreeSale = threeSaleSerivce.listbyIdAndBossId(inviteId, uid, null); - if (listThreeSale == null || listThreeSale.size() == 0) { + ThreeSale threeSale = threeSaleSerivce.selectByPrimaryKey(inviteId); + if (threeSale == null) { out.print(JsonUtil.loadFalseResult("璇ヨ褰曚笉瀛樺湪")); return; } - UserInfo worker = listThreeSale.get(0).getWorker(); + UserInfo worker = threeSale.getWorker(); if (worker == null) { out.print(JsonUtil.loadFalseResult("璇ヨ褰曚笉瀛樺湪")); return; } - + ThreeSaleExtraInfo extraInfo = threeSaleExtraInfoSerivce.getbyBossIdAndWorkerId(uid, worker.getId()); if (extraInfo == null) { extraInfo = new ThreeSaleExtraInfo(); + Long bossUid = threeSale.getBoss().getId(); + if (uid == bossUid) { + extraInfo.setType(1); // 鐩存帴 + } else { + extraInfo.setType(2); // 闂存帴 + } + extraInfo.setWorker(worker); extraInfo.setNickname(memoName); extraInfo.setCreateTime(new Date()); 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 acdc267..ff5e5ab 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 @@ -32,7 +32,7 @@ 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.vip.TeamDailyRecord; +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; @@ -995,28 +995,72 @@ highVIP.put("total", statistic.getHighFirstCount() + statistic.getHighSecondCount()); superVIP.put("total", statistic.getSuperFirstCount() + statistic.getSuperSecondCount()); } - // 缁熻杈句汉 - long darenToday = threeSaleSerivce.countFirstTeamByDate(uid, 1) + threeSaleSerivce.countSecondTeamByDate(uid, 1); - long darenMonth = threeSaleSerivce.countFirstTeamByDate(uid, 2) + threeSaleSerivce.countSecondTeamByDate(uid, 2); + + + 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); - - SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); - String today = sd.format(new Date()); - // 褰撴湀1鍙� - Calendar calendar1 = Calendar.getInstance(); - calendar1.set(Calendar.DAY_OF_MONTH, 1); - Date minTime = sd.parse(sd.format(calendar1.getTime())); - - int highVIPToday = 0; - int highVIPMonth = 0; - // TODO 缁熻楂樼骇浼氬憳鏁伴噺 + // 楂樼骇浼氫細鍛� highVIP.put("today", highVIPToday); highVIP.put("month", highVIPMonth); - - - int superVIPToday = 0; - int superVIPMonth = 0; // 缁熻瓒呯骇浼氬憳鏁伴噺 superVIP.put("today", superVIPToday); superVIP.put("month", superVIPMonth); @@ -1234,7 +1278,7 @@ TeamDailyRecord monthRecord = new TeamDailyRecord(0,0,0); TeamDailyRecord totalityRecord = new TeamDailyRecord(0,0,0); - List<TeamDailyRecord> list = teamDailyRecordService.getbyUid(uid); + List<TeamDailyRecord> list = teamDailyRecordService.getByUid(uid); if (list != null && list.size() > 0) { for (TeamDailyRecord record: list) { Date statisticDay = record.getCountDay(); diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/order/DateTypeEnum.java b/fanli/src/main/java/com/yeshi/fanli/dao/order/DateTypeEnum.java deleted file mode 100644 index 18bc298..0000000 --- a/fanli/src/main/java/com/yeshi/fanli/dao/order/DateTypeEnum.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.yeshi.fanli.dao.order; - -public enum DateTypeEnum { - DATE("1", "%Y-%m-%d"), - MONTH("2", "%Y-%m"), - YEAR("3", "%Y"); - - private String name; - private String value; - - private DateTypeEnum(String name, String value) { - this.name = name; - this.value = value; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getValue() { - return value; - } - - public void setValue(String value) { - this.value = value; - } - -} \ No newline at end of file diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/order/OrderMoneyDailyCountDao.java b/fanli/src/main/java/com/yeshi/fanli/dao/order/OrderMoneyDailyCountDao.java index f141f17..fa3b3ec 100644 --- a/fanli/src/main/java/com/yeshi/fanli/dao/order/OrderMoneyDailyCountDao.java +++ b/fanli/src/main/java/com/yeshi/fanli/dao/order/OrderMoneyDailyCountDao.java @@ -113,7 +113,6 @@ * @return */ public List<OrderMoneyDailyCount> sumGroupBySourceType(Long uid, Date minDate, Date maxDate) { - String collectionName = "order_money_daily_count"; List<OrderMoneyDailyCount> listDailyCount = new ArrayList<>(); // 缁熻鏂规硶 @@ -180,7 +179,6 @@ * @return */ public List<OrderMoneyDailyCount> sumTeamGroupBySourceType(Long uid, Date minDate, Date maxDate) { - String collectionName = "order_money_daily_count"; List<OrderMoneyDailyCount> listDailyCount = new ArrayList<>(); // 缁熻鏂规硶 diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/user/invite/TeamDailyRecordDao.java b/fanli/src/main/java/com/yeshi/fanli/dao/user/invite/TeamDailyRecordDao.java index 8576988..730ea5d 100644 --- a/fanli/src/main/java/com/yeshi/fanli/dao/user/invite/TeamDailyRecordDao.java +++ b/fanli/src/main/java/com/yeshi/fanli/dao/user/invite/TeamDailyRecordDao.java @@ -1,36 +1,28 @@ package com.yeshi.fanli.dao.user.invite; +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; -import javax.annotation.Resource; - -import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.stereotype.Repository; -import com.yeshi.fanli.entity.bus.user.vip.TeamDailyRecord; +import com.mongodb.BasicDBObject; +import com.mongodb.DBObject; +import com.yeshi.fanli.dao.MongodbBaseDao; +import com.yeshi.fanli.entity.bus.user.invite.TeamDailyRecord; @Repository -public class TeamDailyRecordDao { +public class TeamDailyRecordDao extends MongodbBaseDao<TeamDailyRecord> { - @Resource - private MongoTemplate mongoTemplate; + private static String collectionName = "team_daily_Record"; - /** - * 鏂板 - * - * @param record - */ - public void save(TeamDailyRecord record) { - if (record == null) { - return; - } - mongoTemplate.save(record); - } - + /** * 閫夋嫨鎬ф洿鏂� * @param record @@ -65,7 +57,7 @@ if (record.getBeyondSuperVIP() != null) update.set("beyondSuperVIP", record.getBeyondSuperVIP()); update.set("updateTime", new Date()); - mongoTemplate.updateMulti(query, update, TeamDailyRecord.class); + update(query, update); } /** @@ -85,10 +77,10 @@ * * @return */ - public List<TeamDailyRecord> getbyUid(Long uid) { + public List<TeamDailyRecord> getByUid(Long uid) { Query query = new Query(); query.addCriteria(Criteria.where("uid").is(uid)); - return mongoTemplate.find(query, TeamDailyRecord.class); + return findList(query); } /** @@ -96,11 +88,86 @@ * * @return */ - public List<TeamDailyRecord> getbyUid(Long uid, Date minTime) { + public List<TeamDailyRecord> listByUid(Long uid, Date minDate, Date maxDate) { + List<Criteria> list = new ArrayList<Criteria>(); + list.add(Criteria.where("uid").is(uid)); + if (minDate != null) + list.add(Criteria.where("countDay").gte(minDate)); + if (maxDate != null) + list.add(Criteria.where("countDay").lte(maxDate)); + Query query = new Query(); - query.addCriteria(Criteria.where("uid").is(uid)); - query.addCriteria(Criteria.where("countDay").lte(minTime)); - return mongoTemplate.find(query, TeamDailyRecord.class); + if (list.size() > 0) { + Criteria[] cas = new Criteria[list.size()]; + for (int i = 0; i < list.size(); i++) + cas[i] = list.get(i); + query.addCriteria(new Criteria().andOperator(cas)); + } + return findList(query); } + + /** + * 缁熻骞存湀 + * @param uid + * @param minDate + * @param maxDate + * @return + */ + public List<TeamDailyRecord> sumGroupByYearMonth(Long uid, Date minDate, Date maxDate) { + List<TeamDailyRecord> listDailyCount = new ArrayList<>(); + // 缁熻鏂规硶 + String reduce = "function(doc, aggr){" + + " aggr.firstDaRen += doc.firstDaRen;" + + " aggr.secondDaRen += doc.secondDaRen;" + + " aggr.firstHighVIP += doc.firstHighVIP;" + + " aggr.secondHighVIP += doc.secondHighVIP;" + + " aggr.firstSuperVIP += doc.firstSuperVIP;" + + " aggr.secondSuperVIP += doc.secondSuperVIP;" + + "}"; + + // 鏌ヨ鏉′欢 + List<Criteria> list = new ArrayList<Criteria>(); + list.add(Criteria.where("uid").is(uid)); + if (minDate != null) + list.add(Criteria.where("countDay").gte(minDate)); + if (maxDate != null) + list.add(Criteria.where("countDay").lte(maxDate)); + + Query query = new Query(); + if (list.size() > 0) { + Criteria[] cas = new Criteria[list.size()]; + for (int i = 0; i < list.size(); i++) + cas[i] = list.get(i); + query.addCriteria(new Criteria().andOperator(cas)); + } + + BasicDBObject agg = new BasicDBObject("yearMonth", ""); + + Map<String, Object> map = new HashMap<>(); + map.put("firstDaRen", 0); + map.put("secondDaRen", 0); + map.put("firstHighVIP", 0); + map.put("secondHighVIP", 0); + map.put("firstSuperVIP", 0); + map.put("secondSuperVIP", 0); + BasicDBObject dbObject = new BasicDBObject(map); + DBObject result = mongoTemplate.getCollection(collectionName).group(agg, query.getQueryObject(), dbObject, reduce); + Map<String, BasicDBObject> mapResult = result.toMap(); + if (mapResult.size() > 0) { + for (int i = 0; i < mapResult.size(); i++) { + BasicDBObject object = mapResult.get(i + ""); + + TeamDailyRecord record = new TeamDailyRecord(); + record.setFirstDaRen(new BigDecimal(object.get("totalNum").toString()).intValue()); + record.setFirstHighVIP(new BigDecimal(object.get("totalNum").toString()).intValue()); + record.setFirstSuperVIP(new BigDecimal(object.get("totalNum").toString()).intValue()); + record.setSecondDaRen(new BigDecimal(object.get("totalNum").toString()).intValue()); + record.setSecondHighVIP(new BigDecimal(object.get("totalNum").toString()).intValue()); + record.setSecondSuperVIP(new BigDecimal(object.get("totalNum").toString()).intValue()); + listDailyCount.add(record); + } + } + return listDailyCount; + } } diff --git a/fanli/src/main/java/com/yeshi/fanli/entity/bus/user/vip/TeamDailyRecord.java b/fanli/src/main/java/com/yeshi/fanli/entity/bus/user/invite/TeamDailyRecord.java similarity index 97% rename from fanli/src/main/java/com/yeshi/fanli/entity/bus/user/vip/TeamDailyRecord.java rename to fanli/src/main/java/com/yeshi/fanli/entity/bus/user/invite/TeamDailyRecord.java index 296e8f4..2e68665 100644 --- a/fanli/src/main/java/com/yeshi/fanli/entity/bus/user/vip/TeamDailyRecord.java +++ b/fanli/src/main/java/com/yeshi/fanli/entity/bus/user/invite/TeamDailyRecord.java @@ -1,4 +1,4 @@ -package com.yeshi.fanli.entity.bus.user.vip; +package com.yeshi.fanli.entity.bus.user.invite; import java.util.Date; @@ -13,7 +13,7 @@ * @author Administrator * */ -@Document(collection = "team_daily_Record") +@Document(collection = "team_daily_record") public class TeamDailyRecord { @Id diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/TeamDailyRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/TeamDailyRecordServiceImpl.java index 30d354f..3dda437 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/TeamDailyRecordServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/TeamDailyRecordServiceImpl.java @@ -9,15 +9,12 @@ import org.springframework.stereotype.Service; import com.yeshi.fanli.dao.user.invite.TeamDailyRecordDao; -import com.yeshi.fanli.entity.bus.user.ThreeSale; -import com.yeshi.fanli.entity.bus.user.vip.TeamDailyRecord; +import com.yeshi.fanli.entity.bus.user.invite.TeamDailyRecord; import com.yeshi.fanli.exception.user.TeamDailyRecordException; -import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.user.invite.TeamDailyRecordService; import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.TimeUtil; -import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService; @Service public class TeamDailyRecordServiceImpl implements TeamDailyRecordService { @@ -41,7 +38,7 @@ // id record.setId(id); - TeamDailyRecord teamDaily = teamDailyRecordDao.getById(id); + TeamDailyRecord teamDaily = teamDailyRecordDao.get(id); if (teamDaily != null) { teamDailyRecordDao.updateSelective(record); } else { @@ -51,45 +48,31 @@ teamDailyRecordDao.save(record); } } + + @Override + public String createId(Long uid, Date date) { + String gernalTime = TimeUtil.getGernalTime(date.getTime()); + return StringUtil.Md5(uid + "#" + gernalTime); + } - + @Override - @RequestSerializableByKeyService(key = "#uid") - public void addDailyRecord(Long uid) { - // 閲嶆柊缁熻闃熷憳绛夌骇鏁伴噺 - recountRecord(uid); - - // 缁熻涓婄骇闃熷憳鏁伴噺 - ThreeSale threeSale = threeSaleSerivce.getByWorkerId(uid); - if (threeSale != null) { - recountRecord(threeSale.getBoss().getId()); - } - } - - private void recountRecord(Long uid) { - try { - // 鐩存帴绮変笣 - int firstCount = (int) threeSaleSerivce.countFirstTeamByDate(uid, 1); - // 闂存帴绮変笣 - int secondCount = (int) threeSaleSerivce.countSecondTeamByDate(uid, 1); - - int secondBeyond = 0; - - - } catch (Exception e) { - e.getSuppressed(); - LogHelper.errorDetailInfo(e); - } - } - - @Override - public List<TeamDailyRecord> getbyUid(Long uid) { - return teamDailyRecordDao.getbyUid(uid); + public TeamDailyRecord getById(String id) { + return teamDailyRecordDao.get(id); } @Override - public List<TeamDailyRecord> getbyUid(Long uid, Date minTime) { - return teamDailyRecordDao.getbyUid(uid, minTime); + public List<TeamDailyRecord> getByUid(Long uid) { + return teamDailyRecordDao.getByUid(uid); } + @Override + public List<TeamDailyRecord> listByUid(Long uid, Date minTime, Date maxTime) { + return teamDailyRecordDao.listByUid(uid, minTime, maxTime); + } + + @Override + public List<TeamDailyRecord> sumGroupByYearMonth(Long uid, Date minTime, Date maxTime) { + return teamDailyRecordDao.sumGroupByYearMonth(uid, minTime, maxTime); + } } diff --git a/fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/TeamDailyRecordService.java b/fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/TeamDailyRecordService.java index 9772b8c..f67c4a5 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/TeamDailyRecordService.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/TeamDailyRecordService.java @@ -3,34 +3,10 @@ import java.util.Date; import java.util.List; -import com.yeshi.fanli.entity.bus.user.vip.TeamDailyRecord; +import com.yeshi.fanli.entity.bus.user.invite.TeamDailyRecord; import com.yeshi.fanli.exception.user.TeamDailyRecordException; public interface TeamDailyRecordService { - - - - /** - * 鍒濆鍖栫粺璁$矇涓濈瓑绾ф暟閲� - * @param uid - */ - public void addDailyRecord(Long uid); - - /** - * 鏌ヨ鎵�鏈� - * @param uid - * @return - */ - public List<TeamDailyRecord> getbyUid(Long uid); - - /** - * 鏌ヨ鏁版嵁 - * @param uid - * @param level - * @param minTime - * @return - */ - public List<TeamDailyRecord> getbyUid(Long uid, Date minTime); /** * 淇濆瓨淇℃伅- 鏂板銆侀�夋嫨鏇存柊 @@ -38,4 +14,36 @@ * @throws TeamDailyRecordException */ public void save(TeamDailyRecord record) throws TeamDailyRecordException; + + + /** + * 鐢ㄦ埛id 鏃堕棿绛涢�� + * @param uid + * @param minTime + * @param maxTime + * @return + */ + List<TeamDailyRecord> listByUid(Long uid, Date minTime, Date maxTime); + + /** + * 鏍规嵁鏈堜唤鍒嗙粍缁熻 + * @param uid + * @param minTime + * @param maxTime + * @return + */ + public List<TeamDailyRecord> sumGroupByYearMonth(Long uid, Date minTime, Date maxTime); + + /** + * 鏌ヨ鏍规嵁id + * @param id + * @return + */ + public TeamDailyRecord getById(String id); + + + public String createId(Long uid, Date date); + + + public List<TeamDailyRecord> getByUid(Long uid); } -- Gitblit v1.8.0