fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java
@@ -904,7 +904,8 @@ 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 || !StringUtil.isNullOrEmpty(focus.getKey())) || focus.getMinIncome() != null || focus.getMaxIncome() != null || !StringUtil.isNullOrEmpty(focus.getKey()) || !StringUtil.isNullOrEmpty(focus.getLevel())) return true; return false; fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserMoneyControllerV2.java
@@ -18,6 +18,7 @@ import org.yeshi.utils.DateUtil; import org.yeshi.utils.JsonUtil; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; import com.google.gson.JsonPrimitive; @@ -45,6 +46,7 @@ import com.yeshi.fanli.vo.money.IncomeDetailVO; import com.yeshi.fanli.vo.money.MoneyPredictVO; import com.yeshi.fanli.vo.money.MoneyStatisticVO; import com.yeshi.fanli.vo.money.TeamPredictVO; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -83,6 +85,24 @@ @Resource private OrderMoneyDailyCountService orderMoneyDailyCountService; private Gson getGson() { GsonBuilder builder = new GsonBuilder(); builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { @Override public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { if (value == null) { return new JsonPrimitive(""); } else { // 保留2位小数 value = value.setScale(2); return new JsonPrimitive(value.toString()); } } }); return builder.create(); } /** * 用户资金统计 * @@ -210,21 +230,12 @@ calendar.add(Calendar.MONTH, -1); vo.setMonthPredict(cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, maxDate))); GsonBuilder builder = new GsonBuilder(); builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { @Override public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { if (value == null) { return new JsonPrimitive(""); } else { // 保留2位小数 value = value.setScale(2); return new JsonPrimitive(value.toString()); } } }); out.print(JsonUtil.loadTrueResult(builder.create().toJson(vo))); Gson gson = getGson(); out.print(JsonUtil.loadTrueResult(gson.toJson(vo))); } private MoneyPredictVO cratePredictVO(List<OrderMoneyDailyCount> list) { MoneyPredictVO predictVO = new MoneyPredictVO(); @@ -235,29 +246,64 @@ if (list != null && list.size() > 0) { for (OrderMoneyDailyCount dailyCount : list) { if (dailyCount.getOrderNum() != null) { if (dailyCount.getOrderNum() != null) predictVO.setMineNum(predictVO.getMineNum() + dailyCount.getOrderNum()); } if (dailyCount.getOrderNumTeam() != null) { if (dailyCount.getOrderNumTeam() != null) predictVO.setTeamNum(predictVO.getTeamNum() + dailyCount.getOrderNumTeam()); } if (dailyCount.getIncome() != null) { predictVO.setMineMoney(predictVO.getMineMoney().add(dailyCount.getIncome())); } if (dailyCount.getIncomeTeam() != null) { predictVO.setTeamMoney(predictVO.getTeamMoney().add(dailyCount.getIncomeTeam())); } if (dailyCount.getIncome() != null) predictVO.setMineMoney(predictVO.getMineMoney().add(BigDecimal.valueOf(dailyCount.getIncome()/100))); if (dailyCount.getIncomeTeam() != null) predictVO.setTeamMoney(predictVO.getTeamMoney().add(BigDecimal.valueOf(dailyCount.getIncomeTeam()/100))); } } predictVO.setTotalNum(predictVO.getTeamNum() + predictVO.getMineNum()); predictVO.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney())); return predictVO; } /** * 提现成功记录 * @param acceptData * @param page * @param uid * @param out */ @RequestMapping(value = "getExtractRecord") public void getExtractRecord(AcceptData acceptData, Integer page, Long uid, PrintWriter out) { if (uid == null || uid == 0) { out.print(JsonUtil.loadFalseResult(1, "用户未登录")); return; } List<Extract> list = extractService.getExtractSucceedRecord(page, Constant.PAGE_SIZE, uid); if (list == null) { list = new ArrayList<>(); } JSONArray JSONArray = new JSONArray(); for (Extract extract : list) { Date receiveTime = extract.getReceiveTime(); if (receiveTime == null) { receiveTime = new Date(extract.getExtractTime()); } String account = "支付宝:" + UserUtil.filterAlipayAccount(extract.getAccount()); account = account + "-姓名:" + UserUtil.filterAlipayName(extract.getName()); JSONObject object = new JSONObject(); object.put("title", "你于" + TimeUtil.formatDate(receiveTime) + "提现成功"); object.put("account", account); object.put("money", "¥" + extract.getMoney().setScale(2).toString()); JSONArray.add(object); } JSONObject json = new JSONObject(); json.put("count", extractService.countExtractSucceedRecord(uid)); json.put("list", JSONArray); out.print(JsonUtil.loadTrueResult(json)); } /** * 历史详情 * @@ -334,9 +380,9 @@ Date countDay = dailyCount.getCountDay(); if (datetype == 1 && countDay != null && countDate.equals(formatDay.format(countDay))) { predictVO.setMineNum(dailyCount.getOrderNum()); predictVO.setMineMoney(dailyCount.getIncome()); predictVO.setMineMoney(BigDecimal.valueOf(dailyCount.getIncome()/100)); predictVO.setTeamNum(dailyCount.getOrderNumTeam()); predictVO.setTeamMoney(dailyCount.getIncomeTeam()); predictVO.setTeamMoney(BigDecimal.valueOf(dailyCount.getIncomeTeam()/100)); break; } @@ -344,9 +390,9 @@ if (datetype == 2 && !StringUtil.isNullOrEmpty(yearMonth) && countDate.equals(formatMonth.format(TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(yearMonth))))) { predictVO.setMineNum(dailyCount.getOrderNum()); predictVO.setMineMoney(dailyCount.getIncome()); predictVO.setMineMoney(BigDecimal.valueOf(dailyCount.getIncome()/100)); predictVO.setTeamNum(dailyCount.getOrderNumTeam()); predictVO.setTeamMoney(dailyCount.getIncomeTeam()); predictVO.setTeamMoney(BigDecimal.valueOf(dailyCount.getIncomeTeam()/100)); break; } } @@ -356,23 +402,11 @@ predictVO.setTotalMoney(predictVO.getMineMoney().add(predictVO.getTeamMoney())); } GsonBuilder builder = new GsonBuilder(); builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { @Override public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { if (value == null) { return new JsonPrimitive("0.00"); } else { // 保留2位小数 value = value.setScale(2); return new JsonPrimitive(value.toString()); } } }); Gson gson = getGson(); JSONObject object = new JSONObject(); object.put("count", list.size()); object.put("list", builder.create().toJson(list)); object.put("list", gson.toJson(list)); out.print(JsonUtil.loadTrueResult(object)); } catch (ParseException e) { e.printStackTrace(); @@ -431,65 +465,178 @@ for (OrderMoneyDailyCount dailyCount : listDailyCount) { if (dailyCount.getSourceType() == typeEnum) { detail.setNum(detail.getNum() + dailyCount.getOrderNum()); detail.setMoney(detail.getMoney().add(dailyCount.getIncome())); detail.setMoney(detail.getMoney().add(BigDecimal.valueOf(dailyCount.getIncome()/100))); } } } list.add(detail); } GsonBuilder builder = new GsonBuilder(); builder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() { @Override public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) { if (value == null) { return new JsonPrimitive("0.00"); } else { // 保留2位小数 value = value.setScale(2); return new JsonPrimitive(value.toString()); } } }); Gson gson = getGson(); JSONObject object = new JSONObject(); object.put("count", list.size()); object.put("list", builder.create().toJson(list)); object.put("list", gson.toJson(list)); out.print(JsonUtil.loadTrueResult(object)); } @RequestMapping(value = "getExtractRecord") public void getExtractRecord(AcceptData acceptData, Integer page, Long uid, PrintWriter out) { /** * 团队分红 * @param acceptData * @param uid * @param out */ @RequestMapping(value = "getTeamDividendStatistic") public void getTeamDividendStatistic(AcceptData acceptData, Long uid, PrintWriter out) { if (uid == null || uid == 0) { out.print(JsonUtil.loadFalseResult(1, "用户未登录")); return; } List<Extract> list = extractService.getExtractSucceedRecord(page, Constant.PAGE_SIZE, uid); if (list == null) { list = new ArrayList<>(); 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))); MoneyPredictVO todayVO = cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, null)); // 本月预估 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); MoneyPredictVO monthVO = cratePredictVO(orderMoneyDailyCountService.query(uid, minDate, maxDate)); Gson gson = getGson(); JSONObject object = new JSONObject(); object.put("total", "0.00"); //TODO object.put("reward", "0.00"); object.put("subsidy", "0.00"); object.put("today", gson.toJson(todayVO)); object.put("month", gson.toJson(monthVO)); out.print(JsonUtil.loadTrueResult(object)); } /** * 历史详情 * * @param acceptData * @param uid * @param datetype 1-天 - 2月 * @param out */ @RequestMapping(value = "getTeamDividendHistory") public void getTeamDividendHistory(AcceptData acceptData, Long uid, String date, Integer datetype, PrintWriter out) { if (uid == null || uid == 0) { out.print(JsonUtil.loadFalseResult(1, "用户未登录")); return; } JSONArray JSONArray = new JSONArray(); for (Extract extract : list) { Date receiveTime = extract.getReceiveTime(); if (receiveTime == null) { receiveTime = new Date(extract.getExtractTime()); if (StringUtil.isNullOrEmpty(date) || datetype == null) { out.print(JsonUtil.loadFalseResult(1, "参数不完整")); return; } try { Date minDay = new Date(); Date maxDay = new Date(); BigDecimal zero = new BigDecimal(0); List<OrderMoneyDailyCount> listDailyCount = null; List<TeamPredictVO> list = new ArrayList<>(); SimpleDateFormat formatMonth = new SimpleDateFormat("yyyy年MM月"); SimpleDateFormat formatDay = new SimpleDateFormat("yyyy年MM月dd日"); if (datetype == 1) { // 后退7个月 int countNum = 7; Date day = TimeUtil.parseYYYYMMDD(date); for (int i = 0; i < countNum; i++) { TeamPredictVO predictVO = new TeamPredictVO(zero, 0, zero, 0); if (i == 0) { predictVO.setCountDate(formatDay.format(day)); } else { predictVO.setCountDate(formatDay.format(DateUtil.reduceDay(i, day))); } list.add(predictVO); if (i == countNum - 1) { minDay = DateUtil.reduceDay(i, day); } } maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(date + " 23:59:59"); listDailyCount = orderMoneyDailyCountService.sumTeamGroupByCountDay(uid, minDay, maxDay); } else if (datetype == 2) { // 后退3个月 int countNum = 3; Date day = TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(date)); for (int i = 0; i < countNum; i++) { TeamPredictVO predictVO = new TeamPredictVO(zero, 0, zero, 0); if (i == 0) { predictVO.setCountDate(formatMonth.format(day)); } else { predictVO.setCountDate(formatMonth.format(DateUtil.reduceMonth(day, i))); } list.add(predictVO); if (i == countNum - 1) { minDay = DateUtil.reduceMonth(day, i); } } maxDay = TimeUtil.parseYYYYMMDD_HHMMSS(DateUtil.getLastDayOfMonth(date) + " 23:59:59"); listDailyCount = orderMoneyDailyCountService.sumTeamGroupByYearMonth(uid, minDay, maxDay); } String account = "支付宝:" + UserUtil.filterAlipayAccount(extract.getAccount()); account = account + "-姓名:" + UserUtil.filterAlipayName(extract.getName()); for (TeamPredictVO predictVO : list) { String countDate = predictVO.getCountDate(); if (listDailyCount != null && listDailyCount.size() > 0) { for (OrderMoneyDailyCount dailyCount : listDailyCount) { Date countDay = dailyCount.getCountDay(); if (datetype == 1 && countDay != null && countDate.equals(formatDay.format(countDay))) { predictVO.setRewardNum(dailyCount.getTeamRewardNum()); predictVO.setReward(BigDecimal.valueOf(dailyCount.getTeamReward()/100)); predictVO.setSubsidyNum(dailyCount.getTeamSubsidyNum()); predictVO.setSubsidy(BigDecimal.valueOf(dailyCount.getTeamSubsidy()/100)); break; } String yearMonth = dailyCount.getYearMonth(); if (datetype == 2 && !StringUtil.isNullOrEmpty(yearMonth) && countDate.equals(formatMonth.format(TimeUtil.parseYYYYMMDD(DateUtil.getFirstDayOfMonth(yearMonth))))) { predictVO.setRewardNum(dailyCount.getTeamRewardNum()); predictVO.setReward(BigDecimal.valueOf(dailyCount.getTeamReward()/100)); predictVO.setSubsidyNum(dailyCount.getTeamSubsidyNum()); predictVO.setSubsidy(BigDecimal.valueOf(dailyCount.getTeamSubsidy()/100)); break; } } } predictVO.setTotalNum(predictVO.getRewardNum() + predictVO.getSubsidyNum()); predictVO.setTotalMoney(predictVO.getReward().add(predictVO.getSubsidy())); } Gson gson = getGson(); JSONObject object = new JSONObject(); object.put("title", "你于" + TimeUtil.formatDate(receiveTime) + "提现成功"); object.put("account", account); object.put("money", "¥" + extract.getMoney().setScale(2).toString()); JSONArray.add(object); object.put("count", list.size()); object.put("list", gson.toJson(list)); out.print(JsonUtil.loadTrueResult(object)); } catch (ParseException e) { e.printStackTrace(); } JSONObject json = new JSONObject(); json.put("count", extractService.countExtractSucceedRecord(uid)); json.put("list", JSONArray); out.print(JsonUtil.loadTrueResult(json)); } } fanli/src/main/java/com/yeshi/fanli/dao/order/OrderMoneyDailyCountDao.java
@@ -10,10 +10,7 @@ import java.util.Locale; import java.util.Map; import javax.annotation.Resource; import org.springframework.data.domain.Sort; 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; @@ -24,40 +21,15 @@ import com.mongodb.DBCollection; import com.mongodb.DBObject; import com.mongodb.GroupCommand; import com.yeshi.fanli.dao.MongodbBaseDao; import com.yeshi.fanli.entity.order.OrderMoneyDailyCount; import com.yeshi.fanli.entity.order.OrderMoneyDailyCount.SourceTypeEnum; @Repository public class OrderMoneyDailyCountDao { public class OrderMoneyDailyCountDao extends MongodbBaseDao<OrderMoneyDailyCount> { private static String collectionName = "order_money_daily_count"; @Resource private MongoTemplate mongoTemplate; /** * 新增 * * @param record */ public void save(OrderMoneyDailyCount record) { if (record == null) { return; } mongoTemplate.save(record); } /** * 查询ID * * @param id * @return */ public OrderMoneyDailyCount getById(String id) { Query query = new Query(); query.addCriteria(Criteria.where("id").is(id)); return mongoTemplate.findOne(query, OrderMoneyDailyCount.class); } /** * 选择更新 @@ -76,24 +48,28 @@ update.set("orderNum", info.getOrderNum()); if (info.getOrderNumTeam() != null) update.set("orderNumTeam", info.getOrderNumTeam()); if (info.getTeamReward() != null) update.set("teamReward", info.getTeamReward()); if (info.getTeamRewardNum() != null) update.set("teamRewardNum", info.getTeamRewardNum()); if (info.getTeamSubsidy() != null) update.set("teamSubsidy", info.getTeamSubsidy()); if (info.getTeamSubsidyNum() != null) update.set("teamSubsidyNum", info.getTeamSubsidyNum()); update.set("updateTime", new Date()); mongoTemplate.updateMulti(query, update, OrderMoneyDailyCount.class); update(query, update); } // 查询 public List<OrderMoneyDailyCount> query(Long uid, Date minDay, Date maxDay) { Query query = new Query(); List<Criteria> list = new ArrayList<Criteria>(); list.add(Criteria.where("uid").is(uid)); if (minDay != null) list.add(Criteria.where("countDay").gte(minDay)); if (maxDay != null) list.add(Criteria.where("countDay").lte(maxDay)); if (minDay != null) { list.add(Criteria.where("bossSuperId").lte(uid)); } if (maxDay != null) { list.add(Criteria.where("bossSuperId").gte(uid)); } Query query = new Query(); if (list.size() > 0) { Criteria[] cas = new Criteria[list.size()]; for (int i = 0; i < list.size(); i++) @@ -101,7 +77,7 @@ query.addCriteria(new Criteria().andOperator(cas)); } query.with(new Sort(Sort.Direction.ASC, "countDay")); return mongoTemplate.find(query, OrderMoneyDailyCount.class); return findList(query); } /** @@ -114,10 +90,8 @@ */ public List<OrderMoneyDailyCount> sumGroupBySourceType(Long uid, Date minDate, Date maxDate) { List<OrderMoneyDailyCount> listDailyCount = new ArrayList<>(); // 统计方法 String reduce = "function(doc, aggr){" + " aggr.totalIncome += parseFloat((Math.round((doc.income)*100)/100).toFixed(2));" + " aggr.totalIncome += doc.income;" + " aggr.totalNum += doc.orderNum;" + "}"; // 查询条件 @@ -162,7 +136,7 @@ OrderMoneyDailyCount dailyCount = new OrderMoneyDailyCount(); dailyCount.setSourceType(sourceTypeEnum); dailyCount.setIncome(new BigDecimal(object.get("totalIncome").toString())); dailyCount.setIncome(new BigDecimal(object.get("totalIncome").toString()).intValue()); dailyCount.setOrderNum(new BigDecimal(object.get("totalNum").toString()).intValue()); listDailyCount.add(dailyCount); } @@ -183,7 +157,7 @@ // 统计方法 String reduce = "function(doc, aggr){" + " aggr.totalIncome += parseFloat((Math.round((doc.incomeTeam)*100)/100).toFixed(2));" + " aggr.totalIncome += doc.incomeTeam;" + " aggr.totalNum += doc.orderNumTeam;" + "}"; // 查询条件 @@ -227,13 +201,34 @@ } } dailyCount.setSourceType(sourceTypeEnum); dailyCount.setIncome(new BigDecimal(object.get("totalIncome").toString())); dailyCount.setIncome(new BigDecimal(object.get("totalIncome").toString()).intValue()); dailyCount.setOrderNum(new BigDecimal(object.get("totalNum").toString()).intValue()); listDailyCount.add(dailyCount); } } return listDailyCount; } private String getReduce() { StringBuilder builder = new StringBuilder(); builder.append("function(doc, aggr){ "); builder.append(" aggr.totalIncome += doc.income;"); builder.append(" aggr.totalNum += doc.orderNum;"); builder.append(" aggr.totalIncomeTeam += doc.incomeTeam;"); builder.append(" aggr.totalNumTeam += doc.orderNumTeam;"); builder.append(" }"); return builder.toString(); } // private String getReduce2() { // StringBuilder builder = new StringBuilder(); // builder.append("function(doc, aggr){ "); // builder.append(" aggr.totalIncome += parseFloat((Math.round((doc.income)*100)/100).toFixed(2));"); // builder.append(" aggr.totalNum += doc.orderNum;"); // builder.append(" aggr.totalIncomeTeam += parseFloat((Math.round((doc.incomeTeam)*100)/100).toFixed(2));"); // builder.append(" aggr.totalNumTeam += doc.orderNumTeam;"); // builder.append(" }"); // return builder.toString(); //} @@ -293,9 +288,9 @@ Date dtime = sdf.parse(date); OrderMoneyDailyCount dailyCount = new OrderMoneyDailyCount(); dailyCount.setCountDay(dtime); dailyCount.setIncome(new BigDecimal(dbObject.get("totalIncome").toString())); dailyCount.setIncome(new BigDecimal(dbObject.get("totalIncome").toString()).intValue()); dailyCount.setOrderNum(new BigDecimal(dbObject.get("totalNum").toString()).intValue()); dailyCount.setIncomeTeam(new BigDecimal(dbObject.get("totalIncomeTeam").toString())); dailyCount.setIncomeTeam(new BigDecimal(dbObject.get("totalIncomeTeam").toString()).intValue()); dailyCount.setOrderNumTeam(new BigDecimal(dbObject.get("totalNumTeam").toString()).intValue()); results.add(dailyCount); } catch (ParseException e) { @@ -307,19 +302,7 @@ return results; } private String getReduce() { StringBuilder builder = new StringBuilder(); builder.append("function(doc, aggr){ "); builder.append(" aggr.totalIncome += parseFloat((Math.round((doc.income)*100)/100).toFixed(2));"); builder.append(" aggr.totalNum += doc.orderNum;"); builder.append(" aggr.totalIncomeTeam += parseFloat((Math.round((doc.incomeTeam)*100)/100).toFixed(2));"); builder.append(" aggr.totalNumTeam += doc.orderNumTeam;"); builder.append(" }"); return builder.toString(); } /** * 统计每月订单收入、数量 * @param uid @@ -372,14 +355,159 @@ OrderMoneyDailyCount dailyCount = new OrderMoneyDailyCount(); dailyCount.setYearMonth(object.toString()); dailyCount.setIncome(new BigDecimal(dbObject.get("totalIncome").toString())); dailyCount.setIncome(new BigDecimal(dbObject.get("totalIncome").toString()).intValue()); dailyCount.setOrderNum(new BigDecimal(dbObject.get("totalNum").toString()).intValue()); dailyCount.setIncomeTeam(new BigDecimal(dbObject.get("totalIncomeTeam").toString())); dailyCount.setIncomeTeam(new BigDecimal(dbObject.get("totalIncomeTeam").toString()).intValue()); dailyCount.setOrderNumTeam(new BigDecimal(dbObject.get("totalNumTeam").toString()).intValue()); results.add(dailyCount); } } return results; } private String getTeamReduce() { StringBuilder builder = new StringBuilder(); builder.append("function(doc, aggr){ "); builder.append(" aggr.totalReward += doc.teamReward;"); builder.append(" aggr.totalRewardNum += doc.teamRewardNum;"); builder.append(" aggr.totalSubsidy += doc.teamSubsidy;"); builder.append(" aggr.totalSubsidyNum += doc.teamSubsidyNum;"); builder.append(" }"); return builder.toString(); } /** * 统计每天订单收入、数量 * @param uid * @param minDate * @param maxDate * @return */ public List<OrderMoneyDailyCount> sumTeamGroupByCountDay(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(); 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)); } Map<String, Object> map = new HashMap<>(); map.put("totalReward", 0); map.put("totalRewardNum", 0); map.put("totalSubsidy", 0); map.put("totalSubsidyNum", 0); BasicDBObject initial = new BasicDBObject(map); // 进行按天、周、月分组 BasicDBObject agg = new BasicDBObject("countDay", ""); DBCollection collection = mongoTemplate.getCollection(collectionName); GroupCommand xx = new GroupCommand(collection, agg, query.getQueryObject(), initial, getTeamReduce(), null); BasicDBList objects = (BasicDBList) collection.group(xx); List<OrderMoneyDailyCount> results = new ArrayList<>(); if (objects != null) { SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US); for (int i = 0; i < objects.size(); i++) { BasicDBObject dbObject = (BasicDBObject) objects.get(i); if (dbObject == null) { continue; } Object object = dbObject.get("countDay"); if (object == null) { continue; } try { String date = object.toString(); Date dtime = sdf.parse(date); OrderMoneyDailyCount dailyCount = new OrderMoneyDailyCount(); dailyCount.setCountDay(dtime); dailyCount.setTeamReward(new BigDecimal(dbObject.get("totalReward").toString()).intValue()); dailyCount.setTeamRewardNum(new BigDecimal(dbObject.get("totalRewardNum").toString()).intValue()); dailyCount.setTeamSubsidy(new BigDecimal(dbObject.get("totalSubsidy").toString()).intValue()); dailyCount.setTeamSubsidyNum(new BigDecimal(dbObject.get("totalSubsidyNum").toString()).intValue()); results.add(dailyCount); } catch (ParseException e) { e.printStackTrace(); continue; } } } return results; } /** * 统计每月订单收入、数量 * @param uid * @param minDate * @param maxDate * @return */ public List<OrderMoneyDailyCount> sumTeamGroupByYearMonth(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(); 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)); } Map<String, Object> map = new HashMap<>(); map.put("totalReward", 0); map.put("totalRewardNum", 0); map.put("totalSubsidy", 0); map.put("totalSubsidyNum", 0); BasicDBObject initial = new BasicDBObject(map); // 进行按天、周、月分组 BasicDBObject agg = new BasicDBObject("yearMonth", ""); DBCollection collection = mongoTemplate.getCollection(collectionName); GroupCommand xx = new GroupCommand(collection, agg, query.getQueryObject(), initial, getTeamReduce(), null); BasicDBList objects = (BasicDBList) collection.group(xx); List<OrderMoneyDailyCount> results = new ArrayList<>(); if (objects != null) { for (int i = 0; i < objects.size(); i++) { BasicDBObject dbObject = (BasicDBObject) objects.get(i); if (dbObject == null) { continue; } Object object = dbObject.get("yearMonth"); if (object == null) { continue; } OrderMoneyDailyCount dailyCount = new OrderMoneyDailyCount(); dailyCount.setYearMonth(object.toString()); dailyCount.setTeamReward(new BigDecimal(dbObject.get("totalReward").toString()).intValue()); dailyCount.setTeamRewardNum(new BigDecimal(dbObject.get("totalRewardNum").toString()).intValue()); dailyCount.setTeamSubsidy(new BigDecimal(dbObject.get("totalSubsidy").toString()).intValue()); dailyCount.setTeamSubsidyNum(new BigDecimal(dbObject.get("totalSubsidyNum").toString()).intValue()); results.add(dailyCount); } } return results; } } fanli/src/main/java/com/yeshi/fanli/dao/user/invite/TeamFansInfoDao.java
@@ -1,5 +1,6 @@ package com.yeshi.fanli.dao.user.invite; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -37,10 +38,10 @@ update.set("stateValid", record.getStateValid()); if (record.getTaobaoBind() != null) update.set("taobaoBind", record.getTaobaoBind()); if (record.getWeixinBind() != null) update.set("weixinBind", record.getWeixinBind()); if (record.getWeixinId() != null) update.set("weixinId", record.getWeixinId()); if (record.getWeixinIdExist() != null) update.set("weixinIdExist", record.getWeixinIdExist()); if (record.getPhone() != null) update.set("phone", record.getPhone()); if (record.getPhoneOpen() != null) @@ -120,7 +121,7 @@ list.add(Criteria.where("taobaoBind").is(focusDTO.getTaobaoBind())); if (focusDTO.getWeixinBind() != null) list.add(Criteria.where("weixinBind").is(focusDTO.getWeixinBind())); list.add(Criteria.where("weixinIdExist").is(focusDTO.getWeixinBind())); if (!StringUtil.isNullOrEmpty(focusDTO.getLevel())) list.add(Criteria.where("level").is(focusDTO.getLevel())); @@ -143,11 +144,16 @@ if (!StringUtil.isNullOrEmpty(focusDTO.getMaxActiveTime())) list.add(Criteria.where("activeTime").lte(focusDTO.getMaxActiveTime())); if (focusDTO.getMinIncome() != null) list.add(Criteria.where("income").gte(focusDTO.getMinIncome())); if (focusDTO.getMinIncome() != null) { int income = focusDTO.getMinIncome().multiply(BigDecimal.valueOf(100)).setScale(2, BigDecimal.ROUND_DOWN).intValue(); list.add(Criteria.where("income").lte(income)); } if (focusDTO.getMaxIncome() != null) list.add(Criteria.where("income").lte(focusDTO.getMaxIncome())); if (focusDTO.getMaxIncome() != null) { int income = focusDTO.getMaxIncome().multiply(BigDecimal.valueOf(100)).setScale(2, BigDecimal.ROUND_DOWN).intValue(); list.add(Criteria.where("income").lte(income)); } if (!StringUtil.isNullOrEmpty(focusDTO.getKey())) { if (type == 1) { fanli/src/main/java/com/yeshi/fanli/entity/bus/user/TeamFansInfo.java
@@ -1,6 +1,5 @@ package com.yeshi.fanli.entity.bus.user; import java.math.BigDecimal; import java.util.Date; import org.springframework.data.annotation.Id; @@ -38,10 +37,10 @@ private Boolean taobaoBind; // 绑定淘宝 @Field private Boolean weixinBind; // 绑定微信 private String weixinId; // 微信号 @Field private String weixinId; // 微信号 private Boolean weixinIdExist; // 填写微信号 @Field private String phone; // 电话号码 @@ -59,7 +58,7 @@ private Integer fansNum; // 粉丝数量 @Field private BigDecimal income; // 账户收入 private Integer income; // 账户收入 乘以100 @Field private Date incomeTime; // 账户收入统计时间 @@ -122,20 +121,12 @@ this.nickName = nickName; } public String getMemoName() { return memoName; public UserLevelEnum getLevel() { return level; } public void setMemoName(String memoName) { this.memoName = memoName; } public String getTags() { return tags; } public void setTags(String tags) { this.tags = tags; public void setLevel(UserLevelEnum level) { this.level = level; } public Boolean getStateValid() { @@ -154,92 +145,20 @@ this.taobaoBind = taobaoBind; } public Boolean getWeixinBind() { return weixinBind; } public void setWeixinBind(Boolean weixinBind) { this.weixinBind = weixinBind; } public Date getActiveTime() { return activeTime; } public void setActiveTime(Date activeTime) { this.activeTime = activeTime; } public Integer getFansNum() { return fansNum; } public void setFansNum(Integer fansNum) { this.fansNum = fansNum; } public BigDecimal getIncome() { return income; } public void setIncome(BigDecimal income) { this.income = income; } public Date getIncomeTime() { return incomeTime; } public void setIncomeTime(Date incomeTime) { this.incomeTime = incomeTime; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } public Date getJoinTime() { return joinTime; } public void setJoinTime(Date joinTime) { this.joinTime = joinTime; } public String getMemoNameSup() { return memoNameSup; } public void setMemoNameSup(String memoNameSup) { this.memoNameSup = memoNameSup; } public String getTagsSup() { return tagsSup; } public void setTagsSup(String tagsSup) { this.tagsSup = tagsSup; } public UserLevelEnum getLevel() { return level; } public void setLevel(UserLevelEnum level) { this.level = level; } public String getWeixinId() { return weixinId; } public void setWeixinId(String weixinId) { this.weixinId = weixinId; } public Boolean getWeixinIdExist() { return weixinIdExist; } public void setWeixinIdExist(Boolean weixinIdExist) { this.weixinIdExist = weixinIdExist; } public String getPhone() { @@ -266,4 +185,84 @@ this.inviteCode = inviteCode; } public Date getActiveTime() { return activeTime; } public void setActiveTime(Date activeTime) { this.activeTime = activeTime; } public Integer getFansNum() { return fansNum; } public void setFansNum(Integer fansNum) { this.fansNum = fansNum; } public Integer getIncome() { return income; } public void setIncome(Integer income) { this.income = income; } public Date getIncomeTime() { return incomeTime; } public void setIncomeTime(Date incomeTime) { this.incomeTime = incomeTime; } public Date getJoinTime() { return joinTime; } public void setJoinTime(Date joinTime) { this.joinTime = joinTime; } public String getMemoName() { return memoName; } public void setMemoName(String memoName) { this.memoName = memoName; } public String getTags() { return tags; } public void setTags(String tags) { this.tags = tags; } public String getMemoNameSup() { return memoNameSup; } public void setMemoNameSup(String memoNameSup) { this.memoNameSup = memoNameSup; } public String getTagsSup() { return tagsSup; } public void setTagsSup(String tagsSup) { this.tagsSup = tagsSup; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } } fanli/src/main/java/com/yeshi/fanli/entity/order/OrderMoneyDailyCount.java
@@ -1,6 +1,5 @@ package com.yeshi.fanli.entity.order; import java.math.BigDecimal; import java.util.Date; import org.springframework.data.annotation.Id; @@ -9,26 +8,27 @@ /** * 订单相关资金统计 * * @author Administrator * */ @Document(collection = "order_money_daily_count") public class OrderMoneyDailyCount { public enum SourceTypeEnum { taobao("淘宝", "http://img.flqapp.com/resource/icon/source_type_tb.png"), tmall("天猫", "http://img.flqapp.com/resource/icon/source_type_tm.png"), tmallGlobal("天猫国际", "http://img.flqapp.com/resource/icon/source_type_tb.png"), juHuaSuan("聚划算", "http://img.flqapp.com/resource/icon/source_type_tb.png"), huangLv("航旅", "http://img.flqapp.com/resource/icon/source_type_elme.png"), kouBei("口碑", "http://img.flqapp.com/resource/icon/source_type_elme.png"), tmallGlobal("天猫国际", "http://img.flqapp.com/resource/icon/source_type_tm_inter.png"), juHuaSuan("聚划算", "http://img.flqapp.com/resource/icon/source_type_juhuasuan.png"), huangLv("航旅", "http://img.flqapp.com/resource/icon/source_type_hanglv.png"), kouBei("口碑", "http://img.flqapp.com/resource/icon/source_type_koubei.png"), elme("饿了么", "http://img.flqapp.com/resource/icon/source_type_elme.png"), jingDong("京东", "http://img.flqapp.com/resource/icon/source_type_jd.png"), pinDuoDuo("拼多多", "http://img.flqapp.com/resource/icon/source_type_pdd.png"); private final String desc; private final String icon; private SourceTypeEnum(String desc, String icon) { this.desc = desc; this.icon = icon; @@ -42,43 +42,36 @@ return icon; } } @Id @Field("id") @Field private String id; @Field("uid") @Field private Long uid; // 上级id @Field("sourceType") @Field private SourceTypeEnum sourceType; // 来源类型 @Field("yearMonth") @Field private String yearMonth; // 统计日期-字符串 @Field("countDay") @Field private Date countDay; // 统计日期 @Field("income") private BigDecimal income; // 收入-我的 @Field("incomeTeam") private BigDecimal incomeTeam; // 收入-团队- @Field("orderNum") @Field private Integer income; // 收入-我的收益 X 100 @Field private Integer incomeTeam; // 收入-团队收益 X 100 @Field private Integer orderNum; // 订单数量-我的 @Field("orderNumTeam") @Field private Integer orderNumTeam; // 订单数量-团队 @Field("updateTime") @Field private Integer teamReward; // 团队奖励 X 100 @Field private Integer teamRewardNum; // 团队奖励订单数量 @Field private Integer teamSubsidy; // 团队补贴 X 100 @Field private Integer teamSubsidyNum; // 团队补贴订单数量 @Field private Date updateTime; // 更新时间 public String getId() { return id; @@ -96,19 +89,43 @@ this.uid = uid; } public BigDecimal getIncome() { public SourceTypeEnum getSourceType() { return sourceType; } public void setSourceType(SourceTypeEnum sourceType) { this.sourceType = sourceType; } public String getYearMonth() { return yearMonth; } public void setYearMonth(String yearMonth) { this.yearMonth = yearMonth; } public Date getCountDay() { return countDay; } public void setCountDay(Date countDay) { this.countDay = countDay; } public Integer getIncome() { return income; } public void setIncome(BigDecimal income) { public void setIncome(Integer income) { this.income = income; } public BigDecimal getIncomeTeam() { public Integer getIncomeTeam() { return incomeTeam; } public void setIncomeTeam(BigDecimal incomeTeam) { public void setIncomeTeam(Integer incomeTeam) { this.incomeTeam = incomeTeam; } @@ -128,12 +145,36 @@ this.orderNumTeam = orderNumTeam; } public Date getCountDay() { return countDay; public Integer getTeamReward() { return teamReward; } public void setCountDay(Date countDay) { this.countDay = countDay; public void setTeamReward(Integer teamReward) { this.teamReward = teamReward; } public Integer getTeamRewardNum() { return teamRewardNum; } public void setTeamRewardNum(Integer teamRewardNum) { this.teamRewardNum = teamRewardNum; } public Integer getTeamSubsidy() { return teamSubsidy; } public void setTeamSubsidy(Integer teamSubsidy) { this.teamSubsidy = teamSubsidy; } public Integer getTeamSubsidyNum() { return teamSubsidyNum; } public void setTeamSubsidyNum(Integer teamSubsidyNum) { this.teamSubsidyNum = teamSubsidyNum; } public Date getUpdateTime() { @@ -144,19 +185,4 @@ this.updateTime = updateTime; } public SourceTypeEnum getSourceType() { return sourceType; } public void setSourceType(SourceTypeEnum sourceType) { this.sourceType = sourceType; } public String getYearMonth() { return yearMonth; } public void setYearMonth(String yearMonth) { this.yearMonth = yearMonth; } } fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneyDailyCountServiceImpl.java
@@ -39,24 +39,35 @@ SimpleDateFormat formatMonth = new SimpleDateFormat("yyyy-MM"); record.setYearMonth(formatMonth.format(record.getCountDay())); OrderMoneyDailyCount dailyCount = orderMoneyDailyCountDao.getById(id); OrderMoneyDailyCount dailyCount = orderMoneyDailyCountDao.get(id); if (dailyCount != null) { // 选择性更新 orderMoneyDailyCountDao.updateSelective(record); } else { // 选择性插入 if (record.getIncome() == null) record.setIncome(BigDecimal.valueOf(0)); if (record.getIncomeTeam() == null) record.setIncomeTeam(BigDecimal.valueOf(0)); if (record.getOrderNum() == null) record.setOrderNum(0); if (record.getOrderNumTeam() == null) record.setOrderNumTeam(0); initData(record); record.setUpdateTime(new Date()); orderMoneyDailyCountDao.save(record); } } private void initData(OrderMoneyDailyCount record) { if (record.getIncome() == null) record.setIncome(0); if (record.getIncomeTeam() == null) record.setIncomeTeam(0); if (record.getOrderNum() == null) record.setOrderNum(0); if (record.getOrderNumTeam() == null) record.setOrderNumTeam(0); if (record.getTeamReward() == null) record.setTeamReward(0); if (record.getTeamRewardNum() == null) record.setTeamRewardNum(0); if (record.getTeamSubsidy() == null) record.setTeamSubsidy(0); if (record.getTeamSubsidyNum() == null) record.setTeamSubsidyNum(0); } @Override public List<OrderMoneyDailyCount> query(Long uid, Date minDay, Date maxDay) { return orderMoneyDailyCountDao.query(uid, minDay, maxDay); @@ -81,4 +92,15 @@ public List<OrderMoneyDailyCount> sumGroupByYearMonth(Long uid, Date minDay, Date maxDay) { return orderMoneyDailyCountDao.sumGroupByYearMonth(uid, minDay, maxDay); } @Override public List<OrderMoneyDailyCount> sumTeamGroupByCountDay(Long uid, Date minDay, Date maxDay) { return orderMoneyDailyCountDao.sumTeamGroupByCountDay(uid, minDay, maxDay); } @Override public List<OrderMoneyDailyCount> sumTeamGroupByYearMonth(Long uid, Date minDay, Date maxDay) { return orderMoneyDailyCountDao.sumTeamGroupByYearMonth(uid, minDay, maxDay); } } fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/TeamFansInfoServiceImpl.java
@@ -56,8 +56,6 @@ record.setStateValid(false); if (record.getTaobaoBind() == null) record.setTaobaoBind(false); if (record.getWeixinBind() == null) record.setWeixinBind(false); if (record.getWeixinId() == null) record.setWeixinId(""); if (record.getPhone() == null) @@ -71,7 +69,7 @@ if (record.getFansNum() == null) record.setFansNum(0); if (record.getIncome() != null) record.setIncome(BigDecimal.ZERO); record.setIncome(0); if (record.getIncomeTime() == null) record.setIncomeTime(new Date()); if (record.getMemoName() == null) @@ -82,6 +80,13 @@ record.setMemoNameSup(""); if (record.getTagsSup() == null) record.setTagsSup(""); if (StringUtil.isNullOrEmpty(record.getWeixinId())) { record.setWeixinIdExist(false); } else { record.setWeixinIdExist(true); } } @@ -137,14 +142,6 @@ } @Override public void updateWeixinBind(Long workerId, boolean weixinBind) { TeamFansInfo teamFansInfo = new TeamFansInfo(); teamFansInfo.setWorkerId(workerId); teamFansInfo.setWeixinBind(weixinBind); save(teamFansInfo); } @Override public void updateActiveTime(Long workerId, Date activeTime) { TeamFansInfo teamFansInfo = new TeamFansInfo(); teamFansInfo.setWorkerId(workerId); @@ -158,6 +155,11 @@ TeamFansInfo teamFansInfo = new TeamFansInfo(); teamFansInfo.setWorkerId(workerId); teamFansInfo.setWeixinId(weixinId); if (StringUtil.isNullOrEmpty(weixinId)) { teamFansInfo.setWeixinIdExist(false); } else { teamFansInfo.setWeixinIdExist(true); } save(teamFansInfo); } @@ -189,9 +191,13 @@ @Override public void updateIncome(Long workerId, BigDecimal income) { if (income == null) { income = BigDecimal.ZERO; } TeamFansInfo teamFansInfo = new TeamFansInfo(); teamFansInfo.setWorkerId(workerId); teamFansInfo.setIncome(income); teamFansInfo.setIncome(income.multiply(BigDecimal.valueOf(100)).setScale(2, BigDecimal.ROUND_DOWN).intValue()); teamFansInfo.setIncomeTime(new Date()); save(teamFansInfo); } fanli/src/main/java/com/yeshi/fanli/service/inter/order/OrderMoneyDailyCountService.java
@@ -59,5 +59,23 @@ * @return */ public List<OrderMoneyDailyCount> sumGroupByYearMonth(Long uid, Date minDay, Date maxDay); /** * 统计每天 团队分红 * @param uid * @param minDay * @param maxDay * @return */ public List<OrderMoneyDailyCount> sumTeamGroupByCountDay(Long uid, Date minDay, Date maxDay); /** * 统计每月团队分红 * @param uid * @param minDay * @param maxDay * @return */ public List<OrderMoneyDailyCount> sumTeamGroupByYearMonth(Long uid, Date minDay, Date maxDay); } fanli/src/main/java/com/yeshi/fanli/service/inter/user/invite/TeamFansInfoService.java
@@ -78,12 +78,6 @@ */ public void updateTaobaoBind(Long workerId, boolean taobaoBind); /** * 更新微信绑定 * @param workerId * @param weixinBind */ public void updateWeixinBind(Long workerId, boolean weixinBind); /** * 更新活跃时间 fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserTeamMessageListener.java
@@ -65,7 +65,7 @@ if (UserInfoUpdateTypeEnum.nickName == mqMsg.getType()) { // 更改昵称 teamFansInfoService.updateNickName(mqMsg.getUid(), mqMsg.getValue()); } else if (UserInfoUpdateTypeEnum.wxId == mqMsg.getType()) { // 微信号绑定 teamFansInfoService.updateWeixinBind(mqMsg.getUid(), true); teamFansInfoService.updateWeixinId(mqMsg.getUid(), mqMsg.getValue()); } } } else if (tag.equalsIgnoreCase(UserTopicTagEnum.taobaoBindSuccess.name())) {// 淘宝绑定成功 @@ -74,10 +74,10 @@ TaoBaoBindSuccessMQMsg mqMsg = new Gson().fromJson(json.toString(), TaoBaoBindSuccessMQMsg.class); if (mqMsg != null) { // 更新淘宝绑定 teamFansInfoService.updateWeixinBind(mqMsg.getUid(), true); teamFansInfoService.updateTaobaoBind(mqMsg.getUid(), true); Long fromUid = mqMsg.getFromUid(); if (fromUid != null) { // 淘宝被解绑 teamFansInfoService.updateWeixinBind(fromUid, false); teamFansInfoService.updateTaobaoBind(fromUid, false); } } } else if (tag.equalsIgnoreCase(UserTopicTagEnum.inviteSuccess.name())) {// 邀请成功 fanli/src/main/java/com/yeshi/fanli/vo/money/MoneyPredictVO.java
@@ -3,6 +3,7 @@ import java.math.BigDecimal; public class MoneyPredictVO { private String countDate; // 统计日期 // 总的 private BigDecimal totalMoney; // 总预估收益 private Integer totalNum; // 总付款订单数(笔) @@ -10,24 +11,19 @@ private BigDecimal mineMoney;// 预估我的收益 private Integer mineNum;// 付款订单数(笔) // 团队 private BigDecimal teamMoney;// 累计提现 private Integer teamNum;// 累计提现 private BigDecimal teamMoney;// 累计奖金 private Integer teamNum;// 累计订单 private String countDate; // 统计日期 public MoneyPredictVO() {} public MoneyPredictVO(BigDecimal mineMoney, Integer mineNum, BigDecimal teamMoney,Integer teamNum) { public MoneyPredictVO() { } public MoneyPredictVO(BigDecimal mineMoney, Integer mineNum, BigDecimal teamMoney, Integer teamNum) { this.mineMoney = mineMoney; this.mineNum = mineNum; this.teamMoney = teamMoney; this.teamNum = teamNum; } public BigDecimal getTotalMoney() { return totalMoney; fanli/src/main/java/com/yeshi/fanli/vo/money/TeamPredictVO.java
New file @@ -0,0 +1,82 @@ package com.yeshi.fanli.vo.money; import java.math.BigDecimal; public class TeamPredictVO { private String countDate; // 统计日期 // 总的 private BigDecimal totalMoney; // 总预估收益 private Integer totalNum; // 总付款订单数(笔) // 团队奖励 private BigDecimal reward; // 团队奖励 X 100 private Integer rewardNum; // 团队奖励订单数量 // 团队补贴 private BigDecimal subsidy; // 团队补贴 X 100 private Integer subsidyNum; // 团队补贴订单数量 public TeamPredictVO() {} public TeamPredictVO(BigDecimal reward, Integer rewardNum, BigDecimal subsidy, Integer subsidyNum) { this.reward = reward; this.rewardNum = rewardNum; this.subsidy = subsidy; this.subsidyNum = subsidyNum; } public String getCountDate() { return countDate; } public void setCountDate(String countDate) { this.countDate = countDate; } public BigDecimal getTotalMoney() { return totalMoney; } public void setTotalMoney(BigDecimal totalMoney) { this.totalMoney = totalMoney; } public Integer getTotalNum() { return totalNum; } public void setTotalNum(Integer totalNum) { this.totalNum = totalNum; } public BigDecimal getReward() { return reward; } public void setReward(BigDecimal reward) { this.reward = reward; } public Integer getRewardNum() { return rewardNum; } public void setRewardNum(Integer rewardNum) { this.rewardNum = rewardNum; } public BigDecimal getSubsidy() { return subsidy; } public void setSubsidy(BigDecimal subsidy) { this.subsidy = subsidy; } public Integer getSubsidyNum() { return subsidyNum; } public void setSubsidyNum(Integer subsidyNum) { this.subsidyNum = subsidyNum; } }