From 4cb15e222cd7d099d533ccbeb7f9a8cd99bf180c Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 十二月 2018 16:35:18 +0800
Subject: [PATCH] 替换原来老的资金详情

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java |  170 +++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 124 insertions(+), 46 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java
index d773e6b..5d17922 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserInfoController.java
@@ -1,15 +1,16 @@
 package com.yeshi.fanli.controller.client;
 
 import java.io.PrintWriter;
+import java.io.UnsupportedEncodingException;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Type;
 import java.math.BigDecimal;
+import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
-import java.util.Map;
 import java.util.UUID;
 
 import javax.annotation.Resource;
@@ -39,7 +40,6 @@
 import com.yeshi.fanli.entity.bus.user.ExtractRecord;
 import com.yeshi.fanli.entity.bus.user.HongBao;
 import com.yeshi.fanli.entity.bus.user.HongBaoExtra;
-import com.yeshi.fanli.entity.bus.user.HongBaoMessage;
 import com.yeshi.fanli.entity.bus.user.LostOrder;
 import com.yeshi.fanli.entity.bus.user.MoneyRecord;
 import com.yeshi.fanli.entity.bus.user.OrderItem;
@@ -50,27 +50,31 @@
 import com.yeshi.fanli.entity.bus.user.UserActiveLog;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.bus.user.WeiXinUser;
+import com.yeshi.fanli.entity.common.AdminUser;
+import com.yeshi.fanli.entity.common.Config;
 import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
+import com.yeshi.fanli.entity.goods.CommonGoods;
+import com.yeshi.fanli.entity.money.UserMoneyDetail;
 import com.yeshi.fanli.entity.system.System;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
 import com.yeshi.fanli.exception.BindingAccountException;
 import com.yeshi.fanli.exception.ObjectStateException;
 import com.yeshi.fanli.exception.goods.CollectionGoodsException;
+import com.yeshi.fanli.exception.taobao.TaoKeApiException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
 import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.AdminUserService;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.config.SystemService;
 import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoMessageService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
 import com.yeshi.fanli.service.inter.hongbao.ThreeSaleExtraInfoSerivce;
 import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
 import com.yeshi.fanli.service.inter.order.LostOrderService;
 import com.yeshi.fanli.service.inter.order.OrderItemServcie;
 import com.yeshi.fanli.service.inter.order.OrderService;
-import com.yeshi.fanli.service.inter.user.AccountDetailsService;
 import com.yeshi.fanli.service.inter.user.AccountMessageService;
 import com.yeshi.fanli.service.inter.user.BindingAccountService;
 import com.yeshi.fanli.service.inter.user.ExtractRecordService;
@@ -81,7 +85,9 @@
 import com.yeshi.fanli.service.inter.user.UserAccountService;
 import com.yeshi.fanli.service.inter.user.UserActiveLogService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
 import com.yeshi.fanli.service.inter.user.WxDownService;
+import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.GsonUtil;
 import com.yeshi.fanli.util.HongBaoUtil;
@@ -91,7 +97,10 @@
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.Utils;
 import com.yeshi.fanli.util.account.UserUtil;
+import com.yeshi.fanli.util.email.MailSenderUtil;
+import com.yeshi.fanli.util.factory.AccountDetailsFactory;
 import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
 import com.yeshi.fanli.util.wx.WXLoginUtil;
 
 import net.sf.json.JSONArray;
@@ -129,9 +138,6 @@
 	private SystemService systemService;
 
 	@Resource
-	private HongBaoMessageService hongBaoMessageService;
-
-	@Resource
 	private ShamUserService shamUserService;
 
 	@Resource
@@ -146,8 +152,6 @@
 	@Resource
 	private OrderItemServcie orderItemServcie;
 
-	@Resource
-	private AccountDetailsService accountDetailsService;
 
 	@Resource
 	private AccountMessageService accountMessageService;
@@ -172,6 +176,12 @@
 
 	@Resource
 	private CollectionGoodsV2Service collectionGoodsV2Service;
+
+	@Resource
+	private AdminUserService adminUserService;
+
+	@Resource
+	private UserMoneyDetailService userMoneyDetailService;
 
 	private static final String PASSWORD_MAX_ERROR = "password_max_error";
 	private static final String EXTRACT_MIN_MONEY = "extract_min_money";
@@ -695,16 +705,9 @@
 		JSONObject data = new JSONObject();
 		data.put("user", user);
 		Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
-		String maxError = "5";
-		maxError = configService.get(PASSWORD_MAX_ERROR); // 褰撴棩杈撻敊瀵嗙爜鏈�澶氭鏁�
-		PassWordErrorRecord record = passWordErrorRecordService.getRecord(uid);
-		int max = Integer.parseInt(maxError);
-		if (record.getCount() >= max) {
-			data.put("error", "1"); // 杈惧埌鏈�澶氶檺鍒�
-		} else {
-			data.put("error", "0");
-		}
-		data.put("maxError", maxError);
+
+		data.put("error", "0");
+		data.put("maxError", 1);
 		String minMoney = configService.get(EXTRACT_MIN_MONEY); // 鍗曠瑪鎻愮幇鐨勬渶灏忛噾棰�
 		String maxMoney = configService.get(EXTRACT_MAX_MONEY); // 鍗曠瑪鎻愮幇鐨勬渶澶ч噾棰�
 		int maxDayCount = Integer.parseInt(configService.get("extract_count_day"));
@@ -1236,6 +1239,30 @@
 			JSONObject data = new JSONObject();
 			data.put("id", extract.getId());
 			out.print(JsonUtil.loadTrueResult(data));
+			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();
+					}
+					AdminUser adminUser = adminUserService.selectByPrimaryKey(4L);
+					Config config = configService.getConfig("extract_code_email_from");
+					String[] sts = config.getValue().split(",");
+					String account = sts[0];
+					String pwd = sts[1];
+					String msg = "鎻愮幇瀹℃牳閾炬帴:" + url;
+					boolean isS = MailSenderUtil.sendEmail(adminUser.getEmail(), account, pwd, "鏈夋柊鐨勬彁鐜板鏍�", msg);
+				}
+			});
 			return;
 		} else if (etype == 1) {
 			out.print(JsonUtil.loadFalseResult("宸茶秴杩囧綋鏃ユ彁鐜版鏁�"));
@@ -1301,14 +1328,6 @@
 		data.put("hongBao", GsonUtil.toJsonExpose(hbx));
 		out.print(JsonUtil.loadTrueResult(data));
 		LogHelper.userInfo("[ip:" + IPUtil.getRemotIP(request) + "] 鎵撳紑绾㈠寘[id=" + hid + "]鎴愬姛锛�");
-	}
-
-	@RequestMapping(value = "getHongBaoMessages", method = RequestMethod.POST)
-	public void getHongBaoMessages(AcceptData acceptData, PrintWriter out) {
-		List<HongBaoMessage> list = shamUserService.getManyData();
-		JSONObject data = new JSONObject();
-		data.put("list", list);
-		out.print(JsonUtil.loadTrueResult(data));
 	}
 
 	@RequestMapping("findLostOrder")
@@ -1501,22 +1520,66 @@
 		List<CollectionGoodsV2> collectionGoodsList = collectionGoodsV2Service.getCollectionGoodsList(uid, page + 1,
 				Constant.PAGE_SIZE);
 
-		// List<CollectionGoods> coList =
-		// collectionGoodsService.findCollectionGoods(uid, page + 1);
+		List<TaoBaoGoodsBriefExtra> list = new ArrayList<TaoBaoGoodsBriefExtra>();
+
 		long count = collectionGoodsV2Service.getCollectionGoodsCount(uid);
 		JSONObject data = new JSONObject();
-		Map<String, String> map = hongBaoManageService.convertMap();
-		String proportion = map.get("hongbao_goods_proportion");
-		String fcRate = map.get("hongbao_fc_ratio");
-		List<TaoBaoGoodsBriefExtra> list = new ArrayList<TaoBaoGoodsBriefExtra>();
-		collectionGoodsList.parallelStream().forEachOrdered(cg -> {
-			TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(cg.getCommonGoods());
-			goodsBrief.setSalesCount(TaoBaoUtil.getSaleCount(goodsBrief.getBiz30day()));
-			TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion,
-					fcRate, "");
-			taoBaoGoodsBriefExtra.setCreatetime(cg.getCreateTime());
-			list.add(taoBaoGoodsBriefExtra);
-		});
+
+		List<TaoBaoGoodsBrief> listTaoKeGoods = new ArrayList<TaoBaoGoodsBrief>();
+		if (collectionGoodsList != null && collectionGoodsList.size() > 0) {
+
+			BigDecimal proportion = hongBaoManageService.getFanLiRate();
+
+			List<Long> listGid = new ArrayList<Long>();
+			for (CollectionGoodsV2 collectionGoodsV2 : collectionGoodsList) {
+				CommonGoods commonGoods = collectionGoodsV2.getCommonGoods();
+				if (commonGoods == null) {
+					continue;
+				}
+				listGid.add(commonGoods.getGoodsId());
+			}
+
+			try {
+				// API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭
+				listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
+			} catch (TaoKeApiException e) {
+				e.printStackTrace();
+			} catch (TaobaoGoodsDownException e) {
+				e.printStackTrace();
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+
+			for (CollectionGoodsV2 collectionGoodsV2 : collectionGoodsList) {
+				CommonGoods commonGoods = collectionGoodsV2.getCommonGoods();
+				if (commonGoods == null) {
+					continue;
+				}
+
+				if (listTaoKeGoods != null && listTaoKeGoods.size() > 0) {
+					int state = 1; // 榛樿鍋滃敭
+					Long goodsId = commonGoods.getGoodsId();
+					for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
+						Long auctionId = taoKeGoods.getAuctionId();
+						if (goodsId == auctionId || goodsId.equals(auctionId)) {
+							state = 0; // 鍦ㄥ敭
+							break;
+						}
+					}
+					commonGoods.setState(state);
+				}
+
+				TaoBaoGoodsBrief goodsBrief = TaoBaoUtil.convert(commonGoods);
+				goodsBrief.setSalesCount(TaoBaoUtil.getSaleCount(goodsBrief.getBiz30day()));
+				TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief,
+						proportion.toString(), "");
+				taoBaoGoodsBriefExtra.setCreatetime(collectionGoodsV2.getCreateTime());
+
+				list.add(taoBaoGoodsBriefExtra);
+			}
+
+		}
+
 		GsonBuilder builder = new GsonBuilder().registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
 			@Override
 			public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
@@ -1578,8 +1641,11 @@
 
 	@RequestMapping("findAccountDetailsList")
 	public void findAccountDetailsList(AcceptData acceptData, long uid, int page, PrintWriter out) {
-		List<AccountDetails> list = accountDetailsService.findAccountDetailsList(uid, page);
-		int count = accountDetailsService.getCount(uid);
+		List<UserMoneyDetail> detailList = userMoneyDetailService.listByUidWithState(uid, page, Constant.PAGE_SIZE);
+		List<AccountDetails> list = new ArrayList<>();
+		for (UserMoneyDetail detail : detailList)
+			list.add(AccountDetailsFactory.create(detail));
+		long count = userMoneyDetailService.countByUidWithState(uid);
 		JSONObject data = new JSONObject();
 		data.put("list", GsonUtil.toJsonExpose(list));
 		data.put("count", count);
@@ -1587,9 +1653,21 @@
 	}
 
 	@RequestMapping("findAccountDetailsListV2")
-	public void findAccountDetailsListNew(AcceptData acceptData, long uid, int page, PrintWriter out) {
-		List<AccountDetails> list = accountDetailsService.findAccountDetailsListWithState(uid, page);
-		long count = accountDetailsService.getCountWithState(uid);
+	public void findAccountDetailsListNew(AcceptData acceptData, Long uid, int page, PrintWriter out) {
+
+		if (uid == null) {
+			out.print(JsonUtil.loadFalseResult(1, "UID涓虹┖"));
+			return;
+		}
+
+		List<UserMoneyDetail> detailList = userMoneyDetailService.listByUidWithState(uid, page, Constant.PAGE_SIZE);
+
+		List<AccountDetails> list = new ArrayList<>();
+		for (UserMoneyDetail detail : detailList)
+			list.add(AccountDetailsFactory.create(detail));
+
+		long count = userMoneyDetailService.countByUidWithState(uid);
+
 		JSONObject data = new JSONObject();
 		JSONArray array = new JSONArray();
 		for (AccountDetails ad : list) {

--
Gitblit v1.8.0