From c4d752a1d340652d9c7d2abb5abff65cdee40d69 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期一, 20 五月 2019 09:13:56 +0800
Subject: [PATCH] 邀请素材管理、邀请素材画图

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java |  167 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 154 insertions(+), 13 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java
index 6f42de3..985e0e7 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java
@@ -4,6 +4,7 @@
 import java.io.PrintWriter;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
@@ -12,6 +13,7 @@
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.yeshi.utils.BigDecimalUtil;
 import org.yeshi.utils.JsonUtil;
 
 import com.google.gson.Gson;
@@ -24,8 +26,9 @@
 import com.google.gson.stream.JsonReader;
 import com.google.gson.stream.JsonWriter;
 import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.money.UserMoneyDetail;
 import com.yeshi.fanli.entity.money.UserMoneyDetail.UserMoneyDetailTypeEnum;
+import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
 import com.yeshi.fanli.util.MoneyBigDecimalUtil;
 import com.yeshi.fanli.util.StringUtil;
@@ -47,6 +50,12 @@
 
 	@Resource
 	private UserMoneyDetailService userMoneyDetailService;
+
+	@Resource
+	private UserInfoService userInfoService;
+
+	@Resource
+	private HongBaoV2Service hongBaoV2Service;
 
 	/**
 	 * 鏂扮増璧勯噾璇︽儏锛�1.4.9锛�
@@ -116,7 +125,8 @@
 				if (value == null) {
 					return new JsonPrimitive("");
 				} else {
-					return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value).toString());
+					value = value.setScale(2);
+					return new JsonPrimitive(value.toString());
 				}
 			}
 		});
@@ -129,24 +139,155 @@
 		out.print(JsonUtil.loadTrueResult(data));
 	}
 
+	/**
+	 * 鐢ㄦ埛璧勯噾缁熻
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param out
+	 */
 	@RequestMapping(value = "getUserMoneyStatistic")
 	public void getUserMoneyStatistic(AcceptData acceptData, Long uid, PrintWriter out) {
 		if (uid == null || uid == 0) {
 			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
+
+		BigDecimal balance = userInfoService.getUserById(uid).getMyHongBao();
+
 		UserMoneyStatisticVO vo = new UserMoneyStatisticVO();
-		vo.setBalanceMoney(new BigDecimal("0.02"));
-		vo.setLastMonthExtractMoney(new BigDecimal("0.03"));
-		vo.setLastMonthRecievedMoney(new BigDecimal("0.04"));
-		vo.setLatestThreeMonthRecievedMoney(new BigDecimal("0.05"));
-		vo.setMonthExtractMoney(new BigDecimal("0.06"));
-		vo.setMonthRecievedMoney(new BigDecimal("0.07"));
-		vo.setTotalInviteMoney(new BigDecimal("0.08"));
-		vo.setTotalRecievedMoney(new BigDecimal("0.09"));
-		vo.setTotalShareMoney(new BigDecimal("0.10"));
-		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
-		out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
+		vo.setBalanceMoney(balance);
+		Date minDate = null;
+		Date maxDate = null;
+		List<UserMoneyDetailTypeEnum> typeList = new ArrayList<>();
+
+		// 涓婃湀鎻愮幇
+		typeList.clear();
+
+		typeList.add(UserMoneyDetailTypeEnum.extract);
+		typeList.add(UserMoneyDetailTypeEnum.extractReject);
+		typeList.add(UserMoneyDetailTypeEnum.extractVerify);
+		long timeStamp = System.currentTimeMillis();
+		Calendar calendar = Calendar.getInstance();
+		calendar.setTimeInMillis(timeStamp);
+		maxDate = new Date(TimeUtil
+				.convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+		calendar.add(Calendar.MONTH, -1);
+		minDate = new Date(TimeUtil
+				.convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M"));
+
+		vo.setLastMonthExtractMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+		// 涓婃湀鏀跺叆
+		typeList.clear();
+		typeList.add(UserMoneyDetailTypeEnum.fanli);
+		typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.share);
+		typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.invite);
+		typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
+		typeList.add(UserMoneyDetailTypeEnum.weiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.hongbao);
+		typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct);
+
+		vo.setLastMonthRecievedMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+		// 鏈�杩戜笁涓湀鏀跺叆
+		maxDate = new Date(timeStamp);
+		minDate = new Date(timeStamp - 1000 * 60 * 60 * 24 * 90L);
+
+		vo.setLatestThreeMonthRecievedMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+		// 鏈湀鎻愮幇
+		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);
+		typeList.clear();
+		typeList.add(UserMoneyDetailTypeEnum.extract);
+		typeList.add(UserMoneyDetailTypeEnum.extractReject);
+		typeList.add(UserMoneyDetailTypeEnum.extractVerify);
+
+		vo.setMonthExtractMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+		// 鏈湀鍒拌处
+		typeList.clear();
+		typeList.add(UserMoneyDetailTypeEnum.fanli);
+		typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.share);
+		typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.invite);
+		typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
+		typeList.add(UserMoneyDetailTypeEnum.weiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.hongbao);
+		typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct);
+
+		vo.setMonthRecievedMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+		// 鎬荤殑閭�璇疯禋
+		typeList.clear();
+		typeList.add(UserMoneyDetailTypeEnum.invite);
+		typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
+
+		minDate = new Date(0L);
+		maxDate = new Date(timeStamp);
+		vo.setTotalInviteMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+		// 鎬荤殑鍒拌处
+
+		typeList.clear();
+		typeList.add(UserMoneyDetailTypeEnum.fanli);
+		typeList.add(UserMoneyDetailTypeEnum.fanliWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.share);
+		typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.invite);
+		typeList.add(UserMoneyDetailTypeEnum.inviteWeiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.inviteAndShare);
+		typeList.add(UserMoneyDetailTypeEnum.weiQuan);
+		typeList.add(UserMoneyDetailTypeEnum.hongbao);
+		typeList.add(UserMoneyDetailTypeEnum.hongbaoDeduct);
+		vo.setTotalRecievedMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+		// 鎬荤殑鍒嗕韩璧�
+
+		typeList.clear();
+		typeList.add(UserMoneyDetailTypeEnum.share);
+		typeList.add(UserMoneyDetailTypeEnum.shareWeiQuan);
+
+		vo.setTotalShareMoney(
+				userMoneyDetailService.statisticUserTypeMoneyWithDate(uid, typeList, minDate, maxDate).abs());
+
+		minDate = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(timeStamp, "yyyy-MM"), "yyyy-MM"));
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(new Date(timeStamp));
+		ca.add(Calendar.MONTH, 1);
+		maxDate = new Date(ca.getTimeInMillis());
+
+		// 鏈湀鏈埌璐�
+		vo.setMonthUnRecievedMoney(hongBaoV2Service.getUnRecievedMoneyWithPreGetTime(uid, minDate, maxDate));
+
+		// 鍏ㄩ儴鏈埌璐�
+		minDate = new Date(0);
+		vo.setTotalUnRecievedMoney(hongBaoV2Service.getUnRecievedMoneyWithCreateTime(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)));
 	}
 
 }

--
Gitblit v1.8.0