From 88b54772dbcf5ecab1e2316e4e4626ac901b8908 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期二, 22 一月 2019 15:58:24 +0800
Subject: [PATCH] 邀请码添加返回状态

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/UserMoneyController.java |  162 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 160 insertions(+), 2 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 14b3d61..8cface0 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
@@ -3,6 +3,8 @@
 import java.io.IOException;
 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;
@@ -24,10 +26,14 @@
 import com.google.gson.stream.JsonWriter;
 import com.yeshi.fanli.entity.accept.AcceptData;
 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;
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.vo.money.UserMoneyDetailHistoryVO;
+import com.yeshi.fanli.vo.money.UserMoneyStatisticVO;
 
 import net.sf.json.JSONObject;
 
@@ -43,6 +49,12 @@
 
 	@Resource
 	private UserMoneyDetailService userMoneyDetailService;
+
+	@Resource
+	private UserInfoService userInfoService;
+
+	@Resource
+	private HongBaoV2Service hongBaoV2Service;
 
 	/**
 	 * 鏂扮増璧勯噾璇︽儏锛�1.4.9锛�
@@ -82,8 +94,7 @@
 
 		List<UserMoneyDetailHistoryVO> list = userMoneyDetailService.listUserMoneyDetailForClient(uid, index, date);
 		long count = userMoneyDetailService.countUserMoneyDetailForClient(uid, index, date);
-		GsonBuilder gsonBuilder = JsonUtil.getConvertBigDecimalToStringBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation();
+		GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
 		gsonBuilder.registerTypeAdapter(UserMoneyDetailTypeEnum.class, new TypeAdapter<UserMoneyDetailTypeEnum>() {
 			@Override
 			public UserMoneyDetailTypeEnum read(JsonReader arg0) throws IOException {
@@ -107,6 +118,15 @@
 					return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy.MM.dd HH:mm"));
 				}
 			}
+		}).registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
+			@Override
+			public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
+				if (value == null) {
+					return new JsonPrimitive("");
+				} else {
+					return new JsonPrimitive(MoneyBigDecimalUtil.getWithNoZera(value).toString());
+				}
+			}
 		});
 
 		Gson gson = gsonBuilder.create();
@@ -117,4 +137,142 @@
 		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(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));
+		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
+		out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
+	}
+
 }

--
Gitblit v1.8.0