From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 18 一月 2020 12:06:27 +0800
Subject: [PATCH] 用户注册信息

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RedPackControllerV2.java |  284 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 255 insertions(+), 29 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RedPackControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RedPackControllerV2.java
index 0179e53..d57ec05 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RedPackControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RedPackControllerV2.java
@@ -2,8 +2,10 @@
 
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
+import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -26,24 +28,43 @@
 import com.google.gson.stream.JsonReader;
 import com.google.gson.stream.JsonWriter;
 import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.user.ThreeSale;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.common.AdminUser;
+import com.yeshi.fanli.entity.common.Config;
 import com.yeshi.fanli.entity.redpack.RedPackDetail.RedPackDetailTypeEnum;
 import com.yeshi.fanli.entity.redpack.RedPackExchange;
 import com.yeshi.fanli.entity.redpack.RedPackWinInvite;
 import com.yeshi.fanli.entity.redpack.RedPackWinInvite.RedPackWinInviteTypeEnum;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.exception.redpack.RedPackExchangeException;
 import com.yeshi.fanli.exception.redpack.RedPackGiveRecordException;
+import com.yeshi.fanli.service.AdminUserService;
+import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
+import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
 import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
 import com.yeshi.fanli.service.inter.redpack.RedPackConfigService;
 import com.yeshi.fanli.service.inter.redpack.RedPackDetailService;
 import com.yeshi.fanli.service.inter.redpack.RedPackExchangeService;
+import com.yeshi.fanli.service.inter.redpack.RedPackForbidService;
 import com.yeshi.fanli.service.inter.redpack.RedPackGiveRecordService;
 import com.yeshi.fanli.service.inter.redpack.RedPackWinInviteService;
+import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
+import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
+import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.ThreadUtil;
 import com.yeshi.fanli.util.TimeUtil;
+import com.yeshi.fanli.util.UserInviteUtil;
+import com.yeshi.fanli.util.email.MailSenderUtil;
 import com.yeshi.fanli.vo.redpack.RedPackDetailVO;
+import com.yeshi.fanli.vo.redpack.RedPackGiveVO;
 import com.yeshi.fanli.vo.redpack.RedPackWinInviteVO;
+import com.yeshi.fanli.vo.redpack.RedPackWinProgressVO;
 
 import net.sf.json.JSONObject;
 
@@ -59,19 +80,42 @@
 
 	@Resource
 	private RedPackDetailService redPackDetailService;
-	
-	@Resource	
+
+	@Resource
 	private RedPackGiveRecordService redPackGiveRecordService;
-	
-	@Resource	
+
+	@Resource
 	private RedPackExchangeService redPackExchangeService;
-	
-	@Resource	
+
+	@Resource
 	private RedPackWinInviteService redPackWinInviteService;
-	
-	@Resource	
+
+	@Resource
 	private UserInfoService userInfoService;
+
+	@Resource
+	private UserInfoExtraService userInfoExtraService;
+
+	@Resource
+	private JumpDetailV2Service jumpDetailV2Service;
+
+	@Resource
+	private SwiperPictureService swiperPictureService;
+
+	@Resource
+	private UserSystemCouponService userSystemCouponService;
+
+	@Resource
+	private RedPackForbidService redPackForbidService;
+
+	@Resource
+	private ThreeSaleSerivce threeSaleSerivce;
 	
+	@Resource
+	private ConfigService configService;
+	
+	@Resource
+	private AdminUserService adminUserService;
 
 	/**
 	 * 缁熻
@@ -97,6 +141,7 @@
 		BigDecimal thisMonthUse = zero;
 		BigDecimal lastMonthUse = zero;
 		BigDecimal balance = redPackBalanceService.getBalance(uid);
+		;
 		if (balance == null) {
 			balance = zero;
 		} else {
@@ -131,10 +176,10 @@
 		tips.add("浣犱篃鍙互閫夋嫨浣跨敤绾㈠寘锛屼韩鍙楃粰鍔涙姌鎵c��");
 		String giveMin = redPackConfigService.getValueByKey("give_money_min");
 		String giveMax = redPackConfigService.getValueByKey("give_money_max");
-		
+
 		// 姝e湪鎻愮幇閲戦
 		BigDecimal extractingMoney = redPackExchangeService.countMoneyByUidAndState(uid, RedPackExchange.STATE_INIT);
-		
+
 		JSONObject data = new JSONObject();
 		data.put("balance", balance.setScale(2).toString());
 		data.put("helpLink", redPackConfigService.getValueByKey("desc_help_link"));
@@ -142,16 +187,17 @@
 		data.put("giveMax", giveMax);
 		data.put("giveDesc", "娉�:绾㈠寘璧犻�侀噾棰濊嚦灏�" + giveMin + "鍏冭嚦澶�" + giveMax + "鍏�");
 
-		if (extractingMoney != null && extractingMoney.compareTo(zero) > 0) 
+		if (extractingMoney != null && extractingMoney.compareTo(zero) > 0)
 			data.put("extractingInfo", "鎻愮幇涓細楼" + extractingMoney.setScale(2));
-		
+
 		data.put("extractShortage", tips);
 		data.put("extractMin", redPackConfigService.getValueByKey("extract_money_min"));
 		data.put("extractMax", redPackConfigService.getValueByKey("extract_money_max"));
 		data.put("extractBanlenMin", redPackConfigService.getValueByKey("extract_banlen_min"));
 		data.put("extractDesc", "娉細3涓伐浣滄棩鍐呭畬鎴愬鏍革紝绾㈠寘鎻愮幇鎴愬姛鍚庡皢浼氳繘鍏ュ埌浣欓銆�");
-		
+		data.put("giveTotal", redPackGiveRecordService.countGiveList(uid));
 		data.put("useLink", redPackConfigService.getValueByKey("use_link"));
+		data.put("winLink", redPackConfigService.getValueByKey("invite_win_redpack_link"));
 
 		data.put("todayWin", todayWin.setScale(2).toString());
 		data.put("yesterdayWin", yesterdayWin.setScale(2).toString());
@@ -237,7 +283,6 @@
 			}
 		});
 
-
 		Gson gson = gsonBuilder.create();
 
 		JSONObject data = new JSONObject();
@@ -269,10 +314,35 @@
 		}
 	}
 
-	
-	
+	@RequestMapping(value = "getGiveList", method = RequestMethod.POST)
+	public void getGiveList(AcceptData acceptData, Integer page, Long uid, PrintWriter out) {
+		if (uid == null || uid <= 0) {
+			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		if (page == null || page <= 0)
+			page = 1;
+
+		try {
+			List<RedPackGiveVO> list = redPackGiveRecordService.getGiveList(page, Constant.PAGE_SIZE, uid);
+
+			GsonBuilder gsonBuilder = new GsonBuilder();
+			Gson gson = gsonBuilder.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy.MM.dd HH:mm").create();
+
+			JSONObject data = new JSONObject();
+			data.put("list", gson.toJson(list));
+			data.put("count", redPackGiveRecordService.countGiveList(uid));
+			out.print(JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			e.printStackTrace();
+			out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触"));
+		}
+	}
+
 	/**
 	 * 杞崲绾㈠寘涓虹湡瀹為噾閽�
+	 * 
 	 * @param acceptData
 	 * @param uid
 	 * @param amount
@@ -288,30 +358,66 @@
 		try {
 			redPackExchangeService.exchangeCash(uid, amount);
 			out.print(JsonUtil.loadTrueResult("鎻愮幇鐢宠鎴愬姛"));
+
+			ThreadUtil.run(new Runnable() {
+				@Override
+				public void run() {
+					JSONObject json = new JSONObject();
+					json.put("timeStamp", java.lang.System.currentTimeMillis());
+					json.put("adminId", 4L);
+					String sign = AESUtil.encrypt(json.toString(), Constant.ADMINH5_AESKEY);
+					String url = "";
+					try {
+						url = String.format("%s?from=emailh5&sign=%s",
+								Constant.systemCommonConfig.getExtractNotifyUrl(), URLEncoder.encode(sign, "UTF-8"));
+					} catch (UnsupportedEncodingException e) {
+						e.printStackTrace();
+					}
+
+					long[] targetUids = new long[] { 3L, 4L };
+					Config config = configService.getConfig(ConfigKeyEnum.extractCodeEmailFrom.getKey());
+					String[] sts = config.getValue().split(",");
+					String account = sts[0];
+					String pwd = sts[1];
+					for (long adminId : targetUids) {
+						AdminUser adminUser = adminUserService.selectByPrimaryKey(adminId);
+						String msg = "鏈夌敤鎴烽噰鐢ㄧ孩鍖呭厬鎹㈢幇閲�";
+						boolean isS = MailSenderUtil.sendEmail(adminUser.getEmail(), account, pwd, "绾㈠寘鍏戞崲鐜伴噾鎻愰啋", msg);
+					}
+				}
+			});
+
 		} catch (RedPackExchangeException e) {
 			out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
 		}
 	}
-	
-	
-	
-	@RequestMapping(value = "getRewardList", method = RequestMethod.POST)
-	public void getRewardList(AcceptData acceptData, Integer page, Long uid, PrintWriter out) {
+
+	/**
+	 * 绾㈠寘閭�璇疯繘搴�
+	 * 
+	 * @param acceptData
+	 * @param page
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "getRewardList")
+	public void getRewardList(AcceptData acceptData, Integer page, Long uid, String callback, PrintWriter out) {
 		if (uid == null || uid <= 0) {
 			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
-		
+
 		if (page == null || page < 1) {
 			out.print(JsonUtil.loadFalseResult(1, "椤电爜涓嶆纭�"));
 			return;
 		}
-		
+
 		List<RedPackWinInviteVO> list = new ArrayList<RedPackWinInviteVO>();
-		
-		List<RedPackWinInvite> listRecord = redPackWinInviteService.getRewardList((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
+
+		List<RedPackWinInvite> listRecord = redPackWinInviteService.getRewardList((page - 1) * Constant.PAGE_SIZE,
+				Constant.PAGE_SIZE, uid);
 		if (listRecord != null && !listRecord.isEmpty()) {
-			for (RedPackWinInvite record: listRecord) {
+			for (RedPackWinInvite record : listRecord) {
 				UserInfo user = null;
 				RedPackWinInviteVO winVO = new RedPackWinInviteVO();
 				RedPackWinInviteTypeEnum type = record.getType();
@@ -327,10 +433,130 @@
 				list.add(winVO);
 			}
 		}
-		
+
 		JSONObject data = new JSONObject();
+		data.put("winMoney", redPackWinInviteService.getRewardMoney(uid).setScale(2));
 		data.put("count", redPackWinInviteService.countRewardRecord(uid));
-	    data.put("list", JsonUtil.getApiCommonGson().toJson(list));
-	    out.print(JsonUtil.loadTrueResult(data));		
+		data.put("list", JsonUtil.getApiCommonGson().toJson(list));
+		if (!StringUtil.isNullOrEmpty(callback)) {
+			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
+		} else {
+			out.print(JsonUtil.loadTrueResult(data));
+		}
+	}
+
+	/**
+	 * 鐢ㄦ埛鍩虹淇℃伅
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "getBasicInfo")
+	public void getBasicInfo(AcceptData acceptData, Long uid, String callback, PrintWriter out) {
+		if (uid == null || uid <= 0) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		JSONObject data = new JSONObject();
+		data.put("balance", redPackBalanceService.getBalance(uid));
+		data.put("ruleLink", redPackConfigService.getValueByKey("invite_reward_rule_link"));
+		data.put("shareLink", UserInviteUtil.getShareUrl(uid));
+		data.put("redPackLock", redPackForbidService.verifyForbid(uid));
+
+		String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
+		if (!StringUtil.isNullOrEmpty(inviteCode)) {
+			data.put("inviteCode", inviteCode);
+		} else {
+			data.put("inviteCode", "");
+		}
+
+		// 璧犻�佸厤鍗曞埜
+		long freeCouponCount = userSystemCouponService.countGiveFreeCoupon(uid);
+		// 濂栧姳鍒�
+		long rewardCouponCount = userSystemCouponService.countUsableRewardCoupon(uid);
+
+		data.put("freeCouponCount", freeCouponCount);
+		data.put("rewardCouponCount", rewardCouponCount);
+
+		if (!StringUtil.isNullOrEmpty(callback)) {
+			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
+		} else {
+			out.print(JsonUtil.loadTrueResult(data));
+		}
+	}
+
+	/**
+	 *  璇ョ敤鎴烽個璇峰閲戞
+	 * 
+	 * @param acceptData
+	 * @param uid  涓嬬嚎UID
+	 * @param out
+	 */
+	@RequestMapping(value = "getInviteReward")
+	public void getInviteReward(AcceptData acceptData, Integer page, Long uid, String callback, PrintWriter out) {
+		if (uid == null || uid <= 0) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		if (page == null || page < 1)
+			page = 1;
+
+		List<RedPackWinProgressVO> listVO = new ArrayList<RedPackWinProgressVO>();
+		List<RedPackWinInvite> list = redPackWinInviteService.getWinTopListByBossId(page, Constant.PAGE_SIZE, uid);
+		if (list != null) {
+			for (RedPackWinInvite win : list) {
+				ThreeSale threeSale = threeSaleSerivce.getNearRelationByBossIdAndWorkerId(uid, win.getTeamUid());
+				if (threeSale == null)
+					continue;
+
+				UserInfo userInfo = userInfoService.selectByPKey(win.getTeamUid());
+				if (userInfo == null)
+					continue;
+
+				RedPackWinProgressVO progressVO = new RedPackWinProgressVO();
+				progressVO.setUid(userInfo.getId());
+				progressVO.setName(userInfo.getNickName());
+				progressVO.setPortrait(userInfo.getPortrait());
+				progressVO.setMoney(win.getMoney().setScale(2).toString());
+				progressVO.setTime("閭�璇凤細" + TimeUtil.formatDate(threeSale.getSucceedTime()));
+				listVO.add(progressVO);
+			}
+		}
+
+		JSONObject data = new JSONObject();
+		data.put("list", listVO);
+		data.put("count", redPackWinInviteService.countWinTopListByBossId(uid));
+		if (!StringUtil.isNullOrEmpty(callback)) {
+			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
+		} else {
+			out.print(JsonUtil.loadTrueResult(data));
+		}
+	}
+
+	/**
+	 *  璇ョ敤鎴烽個璇疯繘搴�
+	 * 
+	 * @param acceptData
+	 * @param tid  涓嬬嚎UID
+	 * @param out
+	 */
+	@RequestMapping(value = "getInviteProgress")
+	public void getInviteProgress(AcceptData acceptData, Long uid, Long tid, String callback, PrintWriter out) {
+		if (uid == null || uid <= 0 || tid == null || tid <= 0) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "浼犻�掑弬鏁扮己澶�"));
+			return;
+		}
+
+		JSONObject data = new JSONObject();
+		data.put("list", redPackWinInviteService.getInviteProgressByWorkerId(uid, tid));
+		data.put("num", redPackWinInviteService.countTeamNumByTid(uid, tid));
+		if (!StringUtil.isNullOrEmpty(callback)) {
+			out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
+		} else {
+			out.print(JsonUtil.loadTrueResult(data));
+		}
 	}
 }

--
Gitblit v1.8.0