From a7454d8a6325566753358b37ffabfae2faa0ca7f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 28 四月 2021 19:46:49 +0800
Subject: [PATCH] 拼多多授权调整,支持小程序跳转

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java | 1712 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 856 insertions(+), 856 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java
index 044acc7..f9bd927 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java
@@ -1,856 +1,856 @@
-package com.yeshi.fanli.controller.client.v2;
-
-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;
-
-import javax.annotation.Resource;
-
-import org.springframework.core.task.TaskExecutor;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-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;
-import com.google.gson.JsonSerializationContext;
-import com.google.gson.JsonSerializer;
-import com.google.gson.TypeAdapter;
-import com.google.gson.stream.JsonReader;
-import com.google.gson.stream.JsonWriter;
-import com.yeshi.fanli.dto.ConfigParamsDTO;
-import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail.TaoLiJinDetailTypeEnum;
-import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinNewbies;
-import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
-import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
-import com.yeshi.fanli.entity.system.ConfigKeyEnum;
-import com.yeshi.fanli.entity.taobao.ShareHotGoods;
-import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
-import com.yeshi.fanli.entity.taobao.TLJFreeBuyGoods;
-import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
-import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBriefExtra;
-import com.yeshi.fanli.exception.user.UserInfoException;
-import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
-import com.yeshi.fanli.service.inter.config.ConfigService;
-import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
-import com.yeshi.fanli.service.inter.goods.ShareGoodsTextTemplateService;
-import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
-import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
-import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
-import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service;
-import com.yeshi.fanli.service.inter.monitor.MonitorService;
-import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
-import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
-import com.yeshi.fanli.service.inter.redpack.UserTaoLiJinNewbiesService;
-import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
-import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
-import com.yeshi.fanli.service.inter.taobao.TLJFreeBuyGoodsService;
-import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
-import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
-import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
-import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
-import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
-import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
-import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
-import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.TaoBaoConstant;
-import org.yeshi.utils.TimeUtil;
-import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
-import com.yeshi.fanli.util.taobao.TaoBaoUtil;
-import com.yeshi.fanli.util.taobao.TaoLiJinUtil;
-import com.yeshi.fanli.vo.goods.GoodsDetailVO;
-import com.yeshi.fanli.vo.goods.MoneyInfoVO;
-import com.yeshi.fanli.vo.goods.OtherInfo;
-import com.yeshi.goods.facade.entity.taobao.TLJBuyHongBaoVO;
-import com.yeshi.fanli.vo.homemodule.BannerVO;
-import com.yeshi.common.vo.ClientTextStyleVO;
-import com.yeshi.fanli.vo.redpack.TaoLiJinWinDetailVO;
-import com.yeshi.fanli.vo.tlj.ReduceHongBao;
-import com.yeshi.fanli.vo.tlj.SpreadHongBao;
-import com.yeshi.fanli.vo.tlj.TaoLiJinDetailVO;
-import com.yeshi.fanli.vo.user.UserTaoLiJinRecordVO;
-
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-@Controller
-@RequestMapping("api/v2/taolijin")
-public class TaoLiJinControllerV2 {
-
-	@Resource
-	private UserTaoLiJinRecordService userTaoLiJinRecordService;
-
-	@Resource
-	private ConfigService configService;
-
-	@Resource
-	private ShareGoodsService shareGoodsService;
-
-	@Resource
-	private UserInfoService userInfoService;
-
-	@Resource
-	private UserShareGoodsRecordService userShareGoodsRecordService;
-
-	@Resource
-	private HongBaoManageService hongBaoManageService;
-
-	@Resource
-	private ShareGoodsTextTemplateService shareGoodsTextTemplateService;
-
-	@Resource
-	private BusinessEmergent110Service businessEmergent110Service;
-
-	@Resource
-	private MonitorService monitorService;
-
-	@Resource
-	private UserInfoExtraService userInfoExtraService;
-
-	@Resource
-	private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
-
-	@Resource
-	private UserTaoLiJinOriginService userTaoLiJinOriginService;
-
-	@Resource
-	private UserTaoLiJinDetailService userTaoLiJinDetailService;
-
-	@Resource
-	private UserMoneyExtraService userMoneyExtraService;
-
-	@Resource
-	private ConfigTaoLiJinService configTaoLiJinService;
-
-	@Resource
-	private QualityGoodsService qualityGoodsService;
-
-	@Resource
-	private JumpDetailV2Service jumpDetailV2Service;
-
-	@Resource(name = "taskExecutor")
-	private TaskExecutor executor;
-
-	@Resource
-	private ShareHotGoodsService shareHotGoodsService;
-
-	@Resource
-	private TLJBuyGoodsService tljBuyGoodsService;
-
-	@Resource
-	private SwiperPictureService swiperPictureService;
-
-	@Resource
-	private UserTaoLiJinNewbiesService userTaoLiJinNewbiesService;
-
-	@Resource
-	private TLJFreeBuyGoodsService tljFreeBuyGoodsService;
-	
-	@Resource
-	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
-
-	/**
-	 * 鑾峰彇娣樼ぜ閲戝垎浜褰�
-	 * 
-	 * @param acceptData
-	 * @param uid
-	 * @param page
-	 * @param out
-	 */
-	@RequestMapping(value = "getShareRecord", method = RequestMethod.POST)
-	public void getShareRecord(AcceptData acceptData, Long uid, Integer page, PrintWriter out) {
-		if (uid == null || uid <= 0) {
-			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-
-		if (page == null || page < 1) {
-			page = 1;
-		}
-
-		int pageSize = Constant.PAGE_SIZE;
-		List<UserTaoLiJinRecordVO> list = userTaoLiJinRecordService.getRecordByUid((page - 1) * pageSize, pageSize,
-				uid);
-		if (list == null) {
-			list = new ArrayList<UserTaoLiJinRecordVO>();
-		}
-
-		long count = userTaoLiJinRecordService.countShareRecordByUid(uid);
-
-		GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
-		gsonBuilder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
-			@Override
-			public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
-				if (value == null) {
-					return new JsonPrimitive("");
-				} else {
-					return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy.MM.dd HH:mm"));
-				}
-			}
-		});
-
-		Gson gson = gsonBuilder.create();
-
-		JSONObject data = new JSONObject();
-		data.put("count", count);
-		data.put("list", gson.toJson(list));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 缁熻娣樼ぜ閲�
-	 * 
-	 * @param acceptData
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "countHongBao", method = RequestMethod.POST)
-	public void countHongBao(AcceptData acceptData, Long uid, PrintWriter out) {
-		if (uid == null || uid <= 0) {
-			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-
-		// 杩囨湡 -鍙栨秷鏀跺洖
-		// userTaoLiJinOriginService.overdueHongBao(uid);
-
-		// 鎴戠殑娣樼ぜ閲�
-		BigDecimal tlj = null;
-		UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
-		if (userMoneyExtra != null) {
-			tlj = userMoneyExtra.getTlj();
-		} else {
-			tlj = new BigDecimal(0);
-		}
-
-		// 浠婃棩鍒嗕韩涓暟
-		long countShare = userTaoLiJinRecordService.countTodayNum(uid);
-
-		// 鑾峰緱
-		BigDecimal todayWin = userTaoLiJinOriginService.countMoneyByDate(uid, 1);
-		BigDecimal yesterdayWin = userTaoLiJinOriginService.countMoneyByDate(uid, 2);
-		BigDecimal thisMonthWin = userTaoLiJinOriginService.countMoneyByDate(uid, 3);
-		BigDecimal lastMonthWin = userTaoLiJinOriginService.countMoneyByDate(uid, 4);
-
-		BigDecimal zero = new BigDecimal(0);
-		// 娑堣��
-		BigDecimal todayUse = userTaoLiJinDetailService.countUseMoneyByDate(uid, 1);
-		if (todayUse == null || todayUse.compareTo(zero) > 0) {
-			todayUse = zero;
-		}
-
-		BigDecimal yesterdayUse = userTaoLiJinDetailService.countUseMoneyByDate(uid, 2);
-		if (yesterdayUse == null || yesterdayUse.compareTo(zero) > 0) {
-			yesterdayUse = zero;
-		}
-		BigDecimal thisMonthUse = userTaoLiJinDetailService.countUseMoneyByDate(uid, 3);
-		if (thisMonthUse == null || thisMonthUse.compareTo(zero) > 0) {
-			thisMonthUse = zero;
-		}
-		BigDecimal lastMonthUse = userTaoLiJinDetailService.countUseMoneyByDate(uid, 4);
-		if (lastMonthUse == null || lastMonthUse.compareTo(zero) > 0) {
-			lastMonthUse = zero;
-		}
-
-		String giveMin = configTaoLiJinService.getValueByKey("give_min_amount");
-
-		JSONObject data = new JSONObject();
-		data.put("tlj", tlj.setScale(2).toString());
-		data.put("giveMin", giveMin);
-		data.put("giveTip", "娉�:璧犻�佹帹骞跨孩鍖呴噾棰濊嚦灏�" + giveMin + "鍏�");
-		data.put("helpLink", configTaoLiJinService.getValueByKey("hongbao_help_link"));
-		data.put("countShare", countShare);
-		data.put("todayWin", todayWin.setScale(2).toString());
-		data.put("yesterdayWin", yesterdayWin.setScale(2).toString());
-		data.put("thisMonthWin", thisMonthWin.setScale(2).toString());
-		data.put("lastMonthWin", lastMonthWin.setScale(2).toString());
-		data.put("todayUse", todayUse.setScale(2).toString().replaceAll("-", ""));
-		data.put("yesterdayUse", yesterdayUse.setScale(2).toString().replaceAll("-", ""));
-		data.put("thisMonthUse", thisMonthUse.setScale(2).toString().replaceAll("-", ""));
-		data.put("lastMonthUse", lastMonthUse.setScale(2).toString().replaceAll("-", ""));
-
-		// IOS 鍒嗕韩涓暟
-		ClientTextStyleVO textVo1 = new ClientTextStyleVO();
-		textVo1.setContent("浠婃棩鍒涘缓鍒嗕韩");
-		textVo1.setColor("#888888");
-		ClientTextStyleVO textVo2 = new ClientTextStyleVO();
-		textVo2.setContent(countShare + "");
-		textVo2.setColor("#E5005C");
-		ClientTextStyleVO textVo3 = new ClientTextStyleVO();
-		textVo3.setContent("涓�");
-		textVo3.setColor("#888888");
-
-		List<ClientTextStyleVO> listCountShare = new ArrayList<ClientTextStyleVO>();
-		listCountShare.add(textVo1);
-		listCountShare.add(textVo2);
-		listCountShare.add(textVo3);
-		data.put("listShare", listCountShare);
-
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 鑾峰彇娣樼ぜ閲戞槑缁嗚鎯�
-	 * 
-	 * @param acceptData
-	 * @param uid
-	 * @param index
-	 *            List鏈�鏈殑涓婚敭ID
-	 * @param year
-	 *            骞翠唤
-	 * @param month
-	 *            鏈堜唤
-	 * @param out
-	 */
-	@RequestMapping(value = "getMoneyDetails")
-	public void getMoneyDetails(AcceptData acceptData, Long uid, Long index, Integer year, Integer month,
-			PrintWriter out) {
-		if (uid == null || uid == 0) {
-			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-
-		if ((year == null && month != null) || (year != null && month == null)) {
-			out.print(JsonUtil.loadFalseResult(1, "鏃ユ湡涓嶅畬鏁�"));
-			return;
-		}
-
-		Date date = null;
-
-		if (year != null && month != null) {
-			date = new Date(TimeUtil.convertToTimeTemp(year + "-" + month, "yyyy-M"));
-			Calendar ca = Calendar.getInstance();
-			ca.setTime(date);
-			ca.add(Calendar.MONTH, 1);
-			date = new Date(ca.getTimeInMillis() - 1);
-		}
-
-		// 鏌ヨ鍒楄〃
-		List<TaoLiJinDetailVO> list = userTaoLiJinDetailService.listUserMoneyDetailForClient(uid, index, date);
-		// 缁熻鎬绘潯鏁�
-		long count = userTaoLiJinDetailService.countUserMoneyDetailForClient(uid, index, date);
-
-		GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
-		gsonBuilder.registerTypeAdapter(TaoLiJinDetailTypeEnum.class, new TypeAdapter<TaoLiJinDetailTypeEnum>() {
-			@Override
-			public TaoLiJinDetailTypeEnum read(JsonReader arg0) throws IOException {
-				return null;
-			}
-
-			@Override
-			public void write(JsonWriter out, TaoLiJinDetailTypeEnum arg1) throws IOException {
-				out.beginObject();
-				out.name("portrait").value(arg1.getPicture());
-				out.endObject();
-			}
-		}).registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
-			@Override
-			public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
-				if (value == null) {
-					return new JsonPrimitive("");
-				} else {
-					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 {
-					// 淇濈暀2浣嶅皬鏁�
-					value = value.setScale(2);
-					return new JsonPrimitive(value.toString());
-				}
-			}
-		});
-
-		Gson gson = gsonBuilder.create();
-
-		JSONObject data = new JSONObject();
-		data.put("count", count);
-		data.put("data", gson.toJson(list));
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 鍒嗕韩鐖嗘鍟嗗搧-闄愪簬娣樼ぜ閲�
-	 * 
-	 * @param acceptData
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "getShareGoods", method = RequestMethod.POST)
-	public void getShareGoods(AcceptData acceptData, Long uid, PrintWriter out) {
-		if (uid == null || uid <= 0) {
-			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-
-		String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
-		List<ShareHotGoods> listHot = shareHotGoodsService.listByDay(day);
-		if (listHot == null) {
-			listHot = new ArrayList<ShareHotGoods>();
-		}
-
-		JSONArray array = new JSONArray();
-		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
-		boolean isNewUser = userInfoExtraService.isNewUser(uid);
-		if (isNewUser) {
-			// 鍒ゅ畾涓鸿�佺敤鎴凤細 鏂颁汉鍙浣跨敤浜嗘柊浜虹孩鍖咃紝涔熷氨鏄偅1鍧楅挶锛岄偅涔堬紝浠栫湅鍒扮殑鍒嗕韩鐖嗘涓殑鍟嗗搧-灏卞彧鑳藉垎浜��
-			long countRecord = userTaoLiJinRecordService.countRecordByUid(uid);
-			if (countRecord > 0) {
-				isNewUser = false;
-			}
-		}
-
-		BigDecimal proportion = hongBaoManageService.getTLJShareRate(System.currentTimeMillis(),acceptData.getSystem());
-		for (ShareHotGoods hotGoods : listHot) {
-			TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
-			if (taoBaoGoodsBrief == null) {
-				continue;
-			}
-
-			// 璁$畻鎺ㄥ箍绾㈠寘
-			String warningRate = configTaoLiJinService.getValueByKey("warning_value", new Date());
-			BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, taoBaoGoodsBrief);
-
-			// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
-			if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) {
-				continue;
-			}
-
-			TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(),
-					null);
-			// 鍘绘帀鏍囩
-			extra.setLabels(null);
-
-			// 鏄剧ず绫诲瀷
-			if (isNewUser) {
-				extra.setMoneyType(1);
-				extra.setSpreadMoney("鎺ㄥ箍绾㈠寘 楼" + 1);
-			} else {
-				extra.setMoneyType(2);
-				extra.setSpreadMoney("鎺ㄥ箍绾㈠寘 楼" + spreadMoney);
-			}
-			array.add(gson.toJson(extra));
-		}
-
-		/*
-		 * // 杩囨湡 -鍙栨秷鏀跺洖 executor.execute(new Runnable() {
-		 * 
-		 * @Override public void run() {
-		 * userTaoLiJinOriginService.overdueHongBao(uid); } });
-		 */
-
-		JSONObject data = new JSONObject();
-		data.put("count", array.size());
-		data.put("list", array);
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 鍒嗕韩鐖嗘鍟嗗搧-闄愪簬娣樼ぜ閲�
-	 * 
-	 * @param acceptData
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "getShareGoodsV2", method = RequestMethod.POST)
-	public void getShareGoodsV2(AcceptData acceptData, Long uid, PrintWriter out) {
-		String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
-		List<ShareHotGoods> listHot = shareHotGoodsService.listByDay(day);
-		if (listHot == null) {
-			listHot = new ArrayList<ShareHotGoods>();
-		}
-
-		JSONArray array = new JSONArray();
-		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
-		// 鍙栨秷鏂颁汉鑷喘
-		boolean isNewUser = false;// userInfoExtraService.isNewUser(uid);
-		if (isNewUser) {
-			// 鍒ゅ畾涓鸿�佺敤鎴凤細 鏂颁汉鍙浣跨敤浜嗘柊浜虹孩鍖咃紝涔熷氨鏄偅1鍧楅挶锛岄偅涔堬紝浠栫湅鍒扮殑鍒嗕韩鐖嗘涓殑鍟嗗搧-灏卞彧鑳藉垎浜��
-			long countRecord = userTaoLiJinRecordService.countRecordByUid(uid);
-			if (countRecord > 0) {
-				isNewUser = false;
-			}
-		}
-
-		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
-				acceptData.getVersion(),acceptData.getSystem());
-
-		for (ShareHotGoods hotGoods : listHot) {
-			TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
-			if (taoBaoGoodsBrief == null) {
-				continue;
-			}
-
-			// 璁$畻鎺ㄥ箍绾㈠寘
-			String warningRate = configTaoLiJinService.getValueByKey("warning_value", new Date());
-			BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, taoBaoGoodsBrief);
-
-			// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
-			if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) {
-				continue;
-			}
-
-			GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
-
-			// 澶т簬1.6.5鐨勬墠浼氭樉绀虹鍒╀环
-			if (com.yeshi.fanli.util.VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
-				if (detailVO.getCouponPrice() != null && detailVO.getCouponPrice().compareTo(new BigDecimal(0)) > 0)
-					detailVO.setCouponPrice(detailVO.getCouponPrice().subtract(spreadMoney));
-				else
-					detailVO.setZkPrice(detailVO.getZkPrice().subtract(spreadMoney));
-			}
-
-			// 鍘绘帀鏍囩
-			detailVO.setLabels(null);
-
-			MoneyInfoVO moneyInfo = detailVO.getMoneyInfo();
-			OtherInfo otherInfo = new OtherInfo();
-			SpreadHongBao spreadHongBao = new SpreadHongBao();
-
-			// 鏄剧ず绫诲瀷
-			if (isNewUser) {
-				moneyInfo.setMoneyType(1);
-				spreadHongBao.setName("鎺ㄥ箍绾㈠寘");
-				spreadHongBao.setMoney(" 楼1");
-			} else {
-				moneyInfo.setMoneyType(2);
-				spreadHongBao.setName("鎺ㄥ箍绾㈠寘");
-				spreadHongBao.setMoney(" 楼" + spreadMoney);
-			}
-			detailVO.setMoneyInfo(moneyInfo);
-			otherInfo.setSpreadHongBao(spreadHongBao);
-			detailVO.setOtherInfo(otherInfo);
-
-			array.add(gson.toJson(detailVO));
-		}
-
-		/*
-		 * executor.execute(new Runnable() {
-		 * 
-		 * @Override public void run() { // 杩囨湡
-		 * userTaoLiJinOriginService.overdueHongBao(uid); } });
-		 */
-
-		JSONObject data = new JSONObject();
-		data.put("count", array.size());
-		data.put("list", array);
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 鍒嗕韩鐖嗘鍟嗗搧-闄愪簬娣樼ぜ閲�
-	 * 
-	 * @param acceptData
-	 * @param out
-	 */
-	@RequestMapping(value = "getBuyGoods", method = RequestMethod.POST)
-	public void getBuyGoods(AcceptData acceptData, int page, PrintWriter out) {
-
-		String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
-		List<TLJBuyGoods> listHot = tljBuyGoodsService.listByDay(day);
-		if (listHot == null) {
-			listHot = new ArrayList<TLJBuyGoods>();
-		}
-
-		JSONArray array = new JSONArray();
-		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
-		BigDecimal proportion = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE;
-		for (TLJBuyGoods hotGoods : listHot) {
-			TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
-			if (taoBaoGoodsBrief == null) {
-				continue;
-			}
-
-			// 璁$畻鎺ㄥ箍绾㈠寘
-			BigDecimal spreadMoney = TaoBaoUtil.getGoodsHongBaoMoney(taoBaoGoodsBrief, proportion,true);
-
-			// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
-			if (spreadMoney.compareTo(new BigDecimal(1.0)) < 0) {
-				continue;
-			}
-
-			TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(),
-					null);
-			// 鍘绘帀鏍囩
-			extra.setLabels(null);
-
-			String hongBao = spreadMoney.toString();
-			TLJBuyHongBaoVO vo = new TLJBuyHongBaoVO();
-			vo.setLeft(hotGoods.getLeftHongBaoCount());
-			vo.setMoney(hongBao);
-			vo.setTagName("浠樻绔嬪噺  楼" + hongBao);
-			vo.setTip("");
-			vo.setTotal(hotGoods.getTotalHongBaoCount());
-			extra.setTljBuyHongBao(vo);
-			// 鏄剧ず绫诲瀷
-			extra.setMoneyType(2);
-			extra.setSpreadMoney("浠樻绔嬪噺 楼" + spreadMoney);
-
-			array.add(gson.toJson(extra));
-		}
-
-		if (page > 1)
-			array.clear();
-
-		JSONObject data = new JSONObject();
-		data.put("count", array.size());
-		data.put("list", array);
-		if (page == 1) {
-			List<BannerVO> bannerList = swiperPictureService.getByBannerCardAndVersion("zigoulijian_banner",
-					acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()),acceptData.getSystem());
-
-			if (bannerList != null && bannerList.size() > 0)
-				data.put("topPicture", bannerList.get(0).getSrc());
-			else
-				data.put("topPicture", "");
-
-			data.put("ruleUrl", configService.getValue(ConfigKeyEnum.zigoulijianRule.getKey(),acceptData.getSystem()));
-		}
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 鍒嗕韩鐖嗘鍟嗗搧-闄愪簬娣樼ぜ閲�
-	 * 
-	 * @param acceptData
-	 * @param out
-	 */
-	@RequestMapping(value = "getBuyGoodsV2", method = RequestMethod.POST)
-	public void getBuyGoodsV2(AcceptData acceptData, int page, PrintWriter out) {
-
-		String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
-		List<TLJBuyGoods> listHot = tljBuyGoodsService.listByDay(day);
-		if (listHot == null) {
-			listHot = new ArrayList<TLJBuyGoods>();
-		}
-
-		JSONArray array = new JSONArray();
-		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
-		BigDecimal proportion = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE;
-		ConfigParamsDTO paramsDTO = new ConfigParamsDTO(proportion, proportion, Constant.MAX_REWARD_RATE,
-				hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem()));
-		for (TLJBuyGoods hotGoods : listHot) {
-			TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
-			if (taoBaoGoodsBrief == null) {
-				continue;
-			}
-
-			// 璁$畻鎺ㄥ箍绾㈠寘
-			BigDecimal spreadMoney = TaoBaoUtil.getGoodsHongBaoMoney(taoBaoGoodsBrief, proportion,true);
-
-			// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
-			if (spreadMoney.compareTo(new BigDecimal(1.0)) < 0) {
-				continue;
-			}
-
-			GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
-
-			// 澶т簬1.6.5鐨勬墠浼氭樉绀虹鍒╀环
-			if (com.yeshi.fanli.util.VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
-				if (detailVO.getCouponPrice() != null && detailVO.getCouponPrice().compareTo(new BigDecimal(0)) > 0)
-					detailVO.setCouponPrice(detailVO.getCouponPrice().subtract(spreadMoney));
-				else
-					detailVO.setZkPrice(detailVO.getZkPrice().subtract(spreadMoney));
-			}
-
-			// 鍘绘帀鏍囩
-			detailVO.setLabels(null);
-
-			MoneyInfoVO moneyInfo = detailVO.getMoneyInfo();
-			moneyInfo.setMoneyType(2);
-			detailVO.setMoneyInfo(moneyInfo);
-
-			String hongBao = spreadMoney.toString();
-			ReduceHongBao vo = new ReduceHongBao();
-			vo.setLeft(hotGoods.getLeftHongBaoCount());
-			vo.setMoney(" 楼" + hongBao);
-			vo.setName("浠樻绔嬪噺 ");
-			vo.setTip("");
-			vo.setTotal(hotGoods.getTotalHongBaoCount());
-
-			OtherInfo otherInfo = new OtherInfo();
-			otherInfo.setReduceHongBao(vo);
-			detailVO.setOtherInfo(otherInfo);
-
-			array.add(gson.toJson(detailVO));
-		}
-
-		if (page > 1)
-			array.clear();
-
-		JSONObject data = new JSONObject();
-		data.put("count", array.size());
-		data.put("list", array);
-		if (page == 1) {
-			List<BannerVO> bannerList = swiperPictureService.getByBannerCardAndVersion("zigoulijian_banner",
-					acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()),acceptData.getSystem());
-
-			if (bannerList != null && bannerList.size() > 0)
-				data.put("topPicture", bannerList.get(0).getSrc());
-			else
-				data.put("topPicture", "");
-
-			data.put("ruleUrl", configService.getValue(ConfigKeyEnum.zigoulijianRule.getKey(),acceptData.getSystem()));
-		}
-		out.print(JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 璧犻�佹窐绀奸噾
-	 * 
-	 * @param acceptData
-	 * @param uid
-	 * @param amount
-	 * @param out
-	 */
-	@RequestMapping(value = "giveTLJ", method = RequestMethod.POST)
-	public void giveTLJ(AcceptData acceptData, Long uid, BigDecimal amount, PrintWriter out) {
-		out.print(JsonUtil.loadFalseResult(1, "鎶辨瓑锛屾帹骞跨孩鍖呯浉鍏冲姛鑳藉凡涓嬬嚎锛�"));
-	}
-
-	/**
-	 * 鏂颁汉绾㈠寘璇︽儏
-	 * 
-	 * @param acceptData
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "getWinDetail", method = RequestMethod.POST)
-	public void getWinDetail(AcceptData acceptData, Long uid, PrintWriter out) {
-		if (uid == null || uid <= 0) {
-			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-
-		try {
-			TaoLiJinWinDetailVO winDetail = userTaoLiJinNewbiesService.receiveReward(uid);
-			if (winDetail == null) {
-				out.print(JsonUtil.loadFalseResult(1, "绾㈠寘宸茶鎶㈠厜"));
-				return;
-			}
-
-			// 2銆侀《閮ㄨ疆鎾浘
-			List<BannerVO> oldtopPicList = swiperPictureService.getByBannerCardAndVersion(
-					"redpack_win_detail_banner", acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()),acceptData.getSystem());
-			List<BannerVO> topPicList = new ArrayList<>();
-			if (oldtopPicList != null && oldtopPicList.size() > 0)
-				topPicList.addAll(oldtopPicList);
-
-			JSONObject data = new JSONObject();
-			data.put("detail", JsonUtil.getApiCommonGson().toJson(winDetail));
-			data.put("banner", JsonUtil.getApiCommonGson().toJson(topPicList));
-			out.print(JsonUtil.loadTrueResult(data));
-		} catch (Exception e) {
-			out.print(JsonUtil.loadFalseResult(1, "绾㈠寘宸茶鎶㈠厜鍟�"));
-		}
-	}
-
-	/**
-	 * 鏂颁汉鍏嶅崟鍒楄〃
-	 * @param acceptData
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "gerFreeList")
-	public void gerFreeList(String callback, AcceptData acceptData, int page, Long uid, PrintWriter out) {
-		if (uid == null || uid <= 0) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-
-		String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
-		List<TLJFreeBuyGoods> listFree = tljFreeBuyGoodsService.listByDay(day);
-		if (listFree == null) {
-			listFree = new ArrayList<TLJFreeBuyGoods>();
-		}
-
-		JSONArray array = new JSONArray();
-		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
-		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
-				acceptData.getVersion(),acceptData.getSystem());
-
-		for (TLJFreeBuyGoods freeGoods : listFree) {
-			TaoBaoGoodsBrief goods = freeGoods.getGoods();
-			if (goods == null)
-				continue;
-
-			// 璁$畻鍒稿悗浠� 1<= n <= 2
-			BigDecimal couplePrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
-			if (couplePrice.compareTo(new BigDecimal(1.0)) < 0 && couplePrice.compareTo(new BigDecimal(2.0)) > 0)
-				continue;
-
-			GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
-
-			// 涓撳睘鏍囩
-			List<ClientTextStyleVO> labels = new ArrayList<ClientTextStyleVO>();
-			labels.add(new ClientTextStyleVO("鏂颁汉涓撳睘", "#FE0014"));
-			labels.add(new ClientTextStyleVO("瀹炰粯0鍏�", "#FF9600"));
-			detailVO.setLabels(labels);
-			array.add(gson.toJson(detailVO));
-		}
-
-		if (page > 1)
-			array.clear();
-
-		JSONObject data = new JSONObject();
-		data.put("count", array.size());
-		data.put("list", array);
-		if (page == 1) {
-			try {
-				data.put("portrait", userInfoService.getUserInfo(uid).getPortrait());
-			} catch (UserInfoException e) {
-				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, e.getMsg()));
-				return;
-			}
-
-			String state = "宸茶繃鏈�";
-			BigDecimal balance = new BigDecimal(0);
-			UserTaoLiJinNewbies winDetail = userTaoLiJinNewbiesService.selectByPrimaryKey(uid);
-			if (winDetail != null) {
-				balance = winDetail.getMoney();
-				if (winDetail.getEndTime().getTime() > java.lang.System.currentTimeMillis()) {
-					try {
-						String remaining = DateUtil.dateDiff2(new Date(), winDetail.getEndTime());
-						if (!remaining.equals("0鍒�"))
-							state = "鍓�" + remaining + "杩囨湡";
-					} catch (Exception e) {
-						e.printStackTrace();
-					}
-				}
-			}
-
-			String rule = configTaoLiJinService.getValueByKey("new_user_free_buy_list_rule");
-			rule = rule.replace("{閾炬帴}", configService.getValue(ConfigKeyEnum.customerServiceLink.getKey(),acceptData.getSystem()));
-
-			data.put("state", state);
-			data.put("balance", "鏂颁汉绾㈠寘锛�" + balance.setScale(2) + "鍏�");
-			data.put("rule", rule);
-		}
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-	}
-}
+package com.yeshi.fanli.controller.client.v2;
+
+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;
+
+import javax.annotation.Resource;
+
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+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;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+import com.google.gson.TypeAdapter;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import com.yeshi.fanli.dto.ConfigParamsDTO;
+import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail.TaoLiJinDetailTypeEnum;
+import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinNewbies;
+import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
+import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
+import com.yeshi.fanli.entity.taobao.ShareHotGoods;
+import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
+import com.yeshi.fanli.entity.taobao.TLJFreeBuyGoods;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBriefExtra;
+import com.yeshi.fanli.exception.user.UserInfoException;
+import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
+import com.yeshi.fanli.service.inter.config.ConfigService;
+import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
+import com.yeshi.fanli.service.inter.goods.ShareGoodsTextTemplateService;
+import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
+import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
+import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
+import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service;
+import com.yeshi.fanli.service.inter.monitor.MonitorService;
+import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.redpack.UserTaoLiJinNewbiesService;
+import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
+import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
+import com.yeshi.fanli.service.inter.taobao.TLJFreeBuyGoodsService;
+import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
+import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
+import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
+import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
+import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
+import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.TaoBaoConstant;
+import org.yeshi.utils.TimeUtil;
+import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoLiJinUtil;
+import com.yeshi.fanli.vo.goods.GoodsDetailVO;
+import com.yeshi.fanli.vo.goods.MoneyInfoVO;
+import com.yeshi.fanli.vo.goods.OtherInfo;
+import com.yeshi.goods.facade.entity.taobao.TLJBuyHongBaoVO;
+import com.yeshi.fanli.vo.homemodule.BannerVO;
+import com.yeshi.common.vo.ClientTextStyleVO;
+import com.yeshi.fanli.vo.redpack.TaoLiJinWinDetailVO;
+import com.yeshi.fanli.vo.tlj.ReduceHongBao;
+import com.yeshi.fanli.vo.tlj.SpreadHongBao;
+import com.yeshi.fanli.vo.tlj.TaoLiJinDetailVO;
+import com.yeshi.fanli.vo.user.UserTaoLiJinRecordVO;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+@Controller
+@RequestMapping("api/v2/taolijin")
+public class TaoLiJinControllerV2 {
+
+	@Resource
+	private UserTaoLiJinRecordService userTaoLiJinRecordService;
+
+	@Resource
+	private ConfigService configService;
+
+	@Resource
+	private ShareGoodsService shareGoodsService;
+
+	@Resource
+	private UserInfoService userInfoService;
+
+	@Resource
+	private UserShareGoodsRecordService userShareGoodsRecordService;
+
+	@Resource
+	private HongBaoManageService hongBaoManageService;
+
+	@Resource
+	private ShareGoodsTextTemplateService shareGoodsTextTemplateService;
+
+	@Resource
+	private BusinessEmergent110Service businessEmergent110Service;
+
+	@Resource
+	private MonitorService monitorService;
+
+	@Resource
+	private UserInfoExtraService userInfoExtraService;
+
+	@Resource
+	private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
+
+	@Resource
+	private UserTaoLiJinOriginService userTaoLiJinOriginService;
+
+	@Resource
+	private UserTaoLiJinDetailService userTaoLiJinDetailService;
+
+	@Resource
+	private UserMoneyExtraService userMoneyExtraService;
+
+	@Resource
+	private ConfigTaoLiJinService configTaoLiJinService;
+
+	@Resource
+	private QualityGoodsService qualityGoodsService;
+
+	@Resource
+	private JumpDetailV2Service jumpDetailV2Service;
+
+	@Resource(name = "taskExecutor")
+	private TaskExecutor executor;
+
+	@Resource
+	private ShareHotGoodsService shareHotGoodsService;
+
+	@Resource
+	private TLJBuyGoodsService tljBuyGoodsService;
+
+	@Resource
+	private SwiperPictureService swiperPictureService;
+
+	@Resource
+	private UserTaoLiJinNewbiesService userTaoLiJinNewbiesService;
+
+	@Resource
+	private TLJFreeBuyGoodsService tljFreeBuyGoodsService;
+	
+	@Resource
+	private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
+
+	/**
+	 * 鑾峰彇娣樼ぜ閲戝垎浜褰�
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param page
+	 * @param out
+	 */
+	@RequestMapping(value = "getShareRecord", method = RequestMethod.POST)
+	public void getShareRecord(AcceptData acceptData, Long uid, Integer page, PrintWriter out) {
+		if (uid == null || uid <= 0) {
+			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		if (page == null || page < 1) {
+			page = 1;
+		}
+
+		int pageSize = Constant.PAGE_SIZE;
+		List<UserTaoLiJinRecordVO> list = userTaoLiJinRecordService.getRecordByUid((page - 1) * pageSize, pageSize,
+				uid);
+		if (list == null) {
+			list = new ArrayList<UserTaoLiJinRecordVO>();
+		}
+
+		long count = userTaoLiJinRecordService.countShareRecordByUid(uid);
+
+		GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
+		gsonBuilder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
+			@Override
+			public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
+				if (value == null) {
+					return new JsonPrimitive("");
+				} else {
+					return new JsonPrimitive(TimeUtil.getGernalTime(value.getTime(), "yyyy.MM.dd HH:mm"));
+				}
+			}
+		});
+
+		Gson gson = gsonBuilder.create();
+
+		JSONObject data = new JSONObject();
+		data.put("count", count);
+		data.put("list", gson.toJson(list));
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 缁熻娣樼ぜ閲�
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "countHongBao", method = RequestMethod.POST)
+	public void countHongBao(AcceptData acceptData, Long uid, PrintWriter out) {
+		if (uid == null || uid <= 0) {
+			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		// 杩囨湡 -鍙栨秷鏀跺洖
+		// userTaoLiJinOriginService.overdueHongBao(uid);
+
+		// 鎴戠殑娣樼ぜ閲�
+		BigDecimal tlj = null;
+		UserMoneyExtra userMoneyExtra = userMoneyExtraService.selectByPrimaryKey(uid);
+		if (userMoneyExtra != null) {
+			tlj = userMoneyExtra.getTlj();
+		} else {
+			tlj = new BigDecimal(0);
+		}
+
+		// 浠婃棩鍒嗕韩涓暟
+		long countShare = userTaoLiJinRecordService.countTodayNum(uid);
+
+		// 鑾峰緱
+		BigDecimal todayWin = userTaoLiJinOriginService.countMoneyByDate(uid, 1);
+		BigDecimal yesterdayWin = userTaoLiJinOriginService.countMoneyByDate(uid, 2);
+		BigDecimal thisMonthWin = userTaoLiJinOriginService.countMoneyByDate(uid, 3);
+		BigDecimal lastMonthWin = userTaoLiJinOriginService.countMoneyByDate(uid, 4);
+
+		BigDecimal zero = new BigDecimal(0);
+		// 娑堣��
+		BigDecimal todayUse = userTaoLiJinDetailService.countUseMoneyByDate(uid, 1);
+		if (todayUse == null || todayUse.compareTo(zero) > 0) {
+			todayUse = zero;
+		}
+
+		BigDecimal yesterdayUse = userTaoLiJinDetailService.countUseMoneyByDate(uid, 2);
+		if (yesterdayUse == null || yesterdayUse.compareTo(zero) > 0) {
+			yesterdayUse = zero;
+		}
+		BigDecimal thisMonthUse = userTaoLiJinDetailService.countUseMoneyByDate(uid, 3);
+		if (thisMonthUse == null || thisMonthUse.compareTo(zero) > 0) {
+			thisMonthUse = zero;
+		}
+		BigDecimal lastMonthUse = userTaoLiJinDetailService.countUseMoneyByDate(uid, 4);
+		if (lastMonthUse == null || lastMonthUse.compareTo(zero) > 0) {
+			lastMonthUse = zero;
+		}
+
+		String giveMin = configTaoLiJinService.getValueByKey("give_min_amount");
+
+		JSONObject data = new JSONObject();
+		data.put("tlj", tlj.setScale(2).toString());
+		data.put("giveMin", giveMin);
+		data.put("giveTip", "娉�:璧犻�佹帹骞跨孩鍖呴噾棰濊嚦灏�" + giveMin + "鍏�");
+		data.put("helpLink", configTaoLiJinService.getValueByKey("hongbao_help_link"));
+		data.put("countShare", countShare);
+		data.put("todayWin", todayWin.setScale(2).toString());
+		data.put("yesterdayWin", yesterdayWin.setScale(2).toString());
+		data.put("thisMonthWin", thisMonthWin.setScale(2).toString());
+		data.put("lastMonthWin", lastMonthWin.setScale(2).toString());
+		data.put("todayUse", todayUse.setScale(2).toString().replaceAll("-", ""));
+		data.put("yesterdayUse", yesterdayUse.setScale(2).toString().replaceAll("-", ""));
+		data.put("thisMonthUse", thisMonthUse.setScale(2).toString().replaceAll("-", ""));
+		data.put("lastMonthUse", lastMonthUse.setScale(2).toString().replaceAll("-", ""));
+
+		// IOS 鍒嗕韩涓暟
+		ClientTextStyleVO textVo1 = new ClientTextStyleVO();
+		textVo1.setContent("浠婃棩鍒涘缓鍒嗕韩");
+		textVo1.setColor("#888888");
+		ClientTextStyleVO textVo2 = new ClientTextStyleVO();
+		textVo2.setContent(countShare + "");
+		textVo2.setColor("#E5005C");
+		ClientTextStyleVO textVo3 = new ClientTextStyleVO();
+		textVo3.setContent("涓�");
+		textVo3.setColor("#888888");
+
+		List<ClientTextStyleVO> listCountShare = new ArrayList<ClientTextStyleVO>();
+		listCountShare.add(textVo1);
+		listCountShare.add(textVo2);
+		listCountShare.add(textVo3);
+		data.put("listShare", listCountShare);
+
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 鑾峰彇娣樼ぜ閲戞槑缁嗚鎯�
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param index
+	 *            List鏈�鏈殑涓婚敭ID
+	 * @param year
+	 *            骞翠唤
+	 * @param month
+	 *            鏈堜唤
+	 * @param out
+	 */
+	@RequestMapping(value = "getMoneyDetails")
+	public void getMoneyDetails(AcceptData acceptData, Long uid, Long index, Integer year, Integer month,
+			PrintWriter out) {
+		if (uid == null || uid == 0) {
+			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		if ((year == null && month != null) || (year != null && month == null)) {
+			out.print(JsonUtil.loadFalseResult(1, "鏃ユ湡涓嶅畬鏁�"));
+			return;
+		}
+
+		Date date = null;
+
+		if (year != null && month != null) {
+			date = new Date(TimeUtil.convertToTimeTemp(year + "-" + month, "yyyy-M"));
+			Calendar ca = Calendar.getInstance();
+			ca.setTime(date);
+			ca.add(Calendar.MONTH, 1);
+			date = new Date(ca.getTimeInMillis() - 1);
+		}
+
+		// 鏌ヨ鍒楄〃
+		List<TaoLiJinDetailVO> list = userTaoLiJinDetailService.listUserMoneyDetailForClient(uid, index, date);
+		// 缁熻鎬绘潯鏁�
+		long count = userTaoLiJinDetailService.countUserMoneyDetailForClient(uid, index, date);
+
+		GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
+		gsonBuilder.registerTypeAdapter(TaoLiJinDetailTypeEnum.class, new TypeAdapter<TaoLiJinDetailTypeEnum>() {
+			@Override
+			public TaoLiJinDetailTypeEnum read(JsonReader arg0) throws IOException {
+				return null;
+			}
+
+			@Override
+			public void write(JsonWriter out, TaoLiJinDetailTypeEnum arg1) throws IOException {
+				out.beginObject();
+				out.name("portrait").value(arg1.getPicture());
+				out.endObject();
+			}
+		}).registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
+			@Override
+			public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
+				if (value == null) {
+					return new JsonPrimitive("");
+				} else {
+					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 {
+					// 淇濈暀2浣嶅皬鏁�
+					value = value.setScale(2);
+					return new JsonPrimitive(value.toString());
+				}
+			}
+		});
+
+		Gson gson = gsonBuilder.create();
+
+		JSONObject data = new JSONObject();
+		data.put("count", count);
+		data.put("data", gson.toJson(list));
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 鍒嗕韩鐖嗘鍟嗗搧-闄愪簬娣樼ぜ閲�
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "getShareGoods", method = RequestMethod.POST)
+	public void getShareGoods(AcceptData acceptData, Long uid, PrintWriter out) {
+		if (uid == null || uid <= 0) {
+			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
+		List<ShareHotGoods> listHot = shareHotGoodsService.listByDay(day);
+		if (listHot == null) {
+			listHot = new ArrayList<ShareHotGoods>();
+		}
+
+		JSONArray array = new JSONArray();
+		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+		boolean isNewUser = userInfoExtraService.isNewUser(uid);
+		if (isNewUser) {
+			// 鍒ゅ畾涓鸿�佺敤鎴凤細 鏂颁汉鍙浣跨敤浜嗘柊浜虹孩鍖咃紝涔熷氨鏄偅1鍧楅挶锛岄偅涔堬紝浠栫湅鍒扮殑鍒嗕韩鐖嗘涓殑鍟嗗搧-灏卞彧鑳藉垎浜��
+			long countRecord = userTaoLiJinRecordService.countRecordByUid(uid);
+			if (countRecord > 0) {
+				isNewUser = false;
+			}
+		}
+
+		BigDecimal proportion = hongBaoManageService.getTLJShareRate(System.currentTimeMillis(),acceptData.getSystem());
+		for (ShareHotGoods hotGoods : listHot) {
+			TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
+			if (taoBaoGoodsBrief == null) {
+				continue;
+			}
+
+			// 璁$畻鎺ㄥ箍绾㈠寘
+			String warningRate = configTaoLiJinService.getValueByKey("warning_value", new Date());
+			BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, taoBaoGoodsBrief);
+
+			// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
+			if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) {
+				continue;
+			}
+
+			TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(),
+					null);
+			// 鍘绘帀鏍囩
+			extra.setLabels(null);
+
+			// 鏄剧ず绫诲瀷
+			if (isNewUser) {
+				extra.setMoneyType(1);
+				extra.setSpreadMoney("鎺ㄥ箍绾㈠寘 楼" + 1);
+			} else {
+				extra.setMoneyType(2);
+				extra.setSpreadMoney("鎺ㄥ箍绾㈠寘 楼" + spreadMoney);
+			}
+			array.add(gson.toJson(extra));
+		}
+
+		/*
+		 * // 杩囨湡 -鍙栨秷鏀跺洖 executor.execute(new Runnable() {
+		 * 
+		 * @Override public void run() {
+		 * userTaoLiJinOriginService.overdueHongBao(uid); } });
+		 */
+
+		JSONObject data = new JSONObject();
+		data.put("count", array.size());
+		data.put("list", array);
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 鍒嗕韩鐖嗘鍟嗗搧-闄愪簬娣樼ぜ閲�
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "getShareGoodsV2", method = RequestMethod.POST)
+	public void getShareGoodsV2(AcceptData acceptData, Long uid, PrintWriter out) {
+		String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
+		List<ShareHotGoods> listHot = shareHotGoodsService.listByDay(day);
+		if (listHot == null) {
+			listHot = new ArrayList<ShareHotGoods>();
+		}
+
+		JSONArray array = new JSONArray();
+		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+		// 鍙栨秷鏂颁汉鑷喘
+		boolean isNewUser = false;// userInfoExtraService.isNewUser(uid);
+		if (isNewUser) {
+			// 鍒ゅ畾涓鸿�佺敤鎴凤細 鏂颁汉鍙浣跨敤浜嗘柊浜虹孩鍖咃紝涔熷氨鏄偅1鍧楅挶锛岄偅涔堬紝浠栫湅鍒扮殑鍒嗕韩鐖嗘涓殑鍟嗗搧-灏卞彧鑳藉垎浜��
+			long countRecord = userTaoLiJinRecordService.countRecordByUid(uid);
+			if (countRecord > 0) {
+				isNewUser = false;
+			}
+		}
+
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+				acceptData.getVersion(),acceptData.getSystem());
+
+		for (ShareHotGoods hotGoods : listHot) {
+			TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
+			if (taoBaoGoodsBrief == null) {
+				continue;
+			}
+
+			// 璁$畻鎺ㄥ箍绾㈠寘
+			String warningRate = configTaoLiJinService.getValueByKey("warning_value", new Date());
+			BigDecimal spreadMoney = TaoLiJinUtil.getSpreadMoney(warningRate, taoBaoGoodsBrief);
+
+			// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
+			if (spreadMoney.compareTo(new BigDecimal(1.1)) < 0) {
+				continue;
+			}
+
+			GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
+
+			// 澶т簬1.6.5鐨勬墠浼氭樉绀虹鍒╀环
+			if (com.yeshi.fanli.util.VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
+				if (detailVO.getCouponPrice() != null && detailVO.getCouponPrice().compareTo(new BigDecimal(0)) > 0)
+					detailVO.setCouponPrice(detailVO.getCouponPrice().subtract(spreadMoney));
+				else
+					detailVO.setZkPrice(detailVO.getZkPrice().subtract(spreadMoney));
+			}
+
+			// 鍘绘帀鏍囩
+			detailVO.setLabels(null);
+
+			MoneyInfoVO moneyInfo = detailVO.getMoneyInfo();
+			OtherInfo otherInfo = new OtherInfo();
+			SpreadHongBao spreadHongBao = new SpreadHongBao();
+
+			// 鏄剧ず绫诲瀷
+			if (isNewUser) {
+				moneyInfo.setMoneyType(1);
+				spreadHongBao.setName("鎺ㄥ箍绾㈠寘");
+				spreadHongBao.setMoney(" 楼1");
+			} else {
+				moneyInfo.setMoneyType(2);
+				spreadHongBao.setName("鎺ㄥ箍绾㈠寘");
+				spreadHongBao.setMoney(" 楼" + spreadMoney);
+			}
+			detailVO.setMoneyInfo(moneyInfo);
+			otherInfo.setSpreadHongBao(spreadHongBao);
+			detailVO.setOtherInfo(otherInfo);
+
+			array.add(gson.toJson(detailVO));
+		}
+
+		/*
+		 * executor.execute(new Runnable() {
+		 * 
+		 * @Override public void run() { // 杩囨湡
+		 * userTaoLiJinOriginService.overdueHongBao(uid); } });
+		 */
+
+		JSONObject data = new JSONObject();
+		data.put("count", array.size());
+		data.put("list", array);
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 鍒嗕韩鐖嗘鍟嗗搧-闄愪簬娣樼ぜ閲�
+	 * 
+	 * @param acceptData
+	 * @param out
+	 */
+	@RequestMapping(value = "getBuyGoods", method = RequestMethod.POST)
+	public void getBuyGoods(AcceptData acceptData, int page, PrintWriter out) {
+
+		String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
+		List<TLJBuyGoods> listHot = tljBuyGoodsService.listByDay(day);
+		if (listHot == null) {
+			listHot = new ArrayList<TLJBuyGoods>();
+		}
+
+		JSONArray array = new JSONArray();
+		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+		BigDecimal proportion = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE;
+		for (TLJBuyGoods hotGoods : listHot) {
+			TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
+			if (taoBaoGoodsBrief == null) {
+				continue;
+			}
+
+			// 璁$畻鎺ㄥ箍绾㈠寘
+			BigDecimal spreadMoney = TaoBaoUtil.getGoodsHongBaoMoney(taoBaoGoodsBrief, proportion,true);
+
+			// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
+			if (spreadMoney.compareTo(new BigDecimal(1.0)) < 0) {
+				continue;
+			}
+
+			TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(),
+					null);
+			// 鍘绘帀鏍囩
+			extra.setLabels(null);
+
+			String hongBao = spreadMoney.toString();
+			TLJBuyHongBaoVO vo = new TLJBuyHongBaoVO();
+			vo.setLeft(hotGoods.getLeftHongBaoCount());
+			vo.setMoney(hongBao);
+			vo.setTagName("浠樻绔嬪噺  楼" + hongBao);
+			vo.setTip("");
+			vo.setTotal(hotGoods.getTotalHongBaoCount());
+			extra.setTljBuyHongBao(vo);
+			// 鏄剧ず绫诲瀷
+			extra.setMoneyType(2);
+			extra.setSpreadMoney("浠樻绔嬪噺 楼" + spreadMoney);
+
+			array.add(gson.toJson(extra));
+		}
+
+		if (page > 1)
+			array.clear();
+
+		JSONObject data = new JSONObject();
+		data.put("count", array.size());
+		data.put("list", array);
+		if (page == 1) {
+			List<BannerVO> bannerList = swiperPictureService.getByBannerCardAndVersion("zigoulijian_banner",
+					acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()),acceptData.getSystem());
+
+			if (bannerList != null && bannerList.size() > 0)
+				data.put("topPicture", bannerList.get(0).getSrc());
+			else
+				data.put("topPicture", "");
+
+			data.put("ruleUrl", configService.getValue(ConfigKeyEnum.zigoulijianRule.getKey(),acceptData.getSystem()));
+		}
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 鍒嗕韩鐖嗘鍟嗗搧-闄愪簬娣樼ぜ閲�
+	 * 
+	 * @param acceptData
+	 * @param out
+	 */
+	@RequestMapping(value = "getBuyGoodsV2", method = RequestMethod.POST)
+	public void getBuyGoodsV2(AcceptData acceptData, int page, PrintWriter out) {
+
+		String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
+		List<TLJBuyGoods> listHot = tljBuyGoodsService.listByDay(day);
+		if (listHot == null) {
+			listHot = new ArrayList<TLJBuyGoods>();
+		}
+
+		JSONArray array = new JSONArray();
+		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+		BigDecimal proportion = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE;
+		ConfigParamsDTO paramsDTO = new ConfigParamsDTO(proportion, proportion, Constant.MAX_REWARD_RATE,
+				hongBaoManageService.getFanLiRate(UserLevelEnum.superVIP,acceptData.getSystem()));
+		for (TLJBuyGoods hotGoods : listHot) {
+			TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
+			if (taoBaoGoodsBrief == null) {
+				continue;
+			}
+
+			// 璁$畻鎺ㄥ箍绾㈠寘
+			BigDecimal spreadMoney = TaoBaoUtil.getGoodsHongBaoMoney(taoBaoGoodsBrief, proportion,true);
+
+			// 鎺ㄥ箍绾㈠寘 涓嶈兘灏忎簬1
+			if (spreadMoney.compareTo(new BigDecimal(1.0)) < 0) {
+				continue;
+			}
+
+			GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
+
+			// 澶т簬1.6.5鐨勬墠浼氭樉绀虹鍒╀环
+			if (com.yeshi.fanli.util.VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
+				if (detailVO.getCouponPrice() != null && detailVO.getCouponPrice().compareTo(new BigDecimal(0)) > 0)
+					detailVO.setCouponPrice(detailVO.getCouponPrice().subtract(spreadMoney));
+				else
+					detailVO.setZkPrice(detailVO.getZkPrice().subtract(spreadMoney));
+			}
+
+			// 鍘绘帀鏍囩
+			detailVO.setLabels(null);
+
+			MoneyInfoVO moneyInfo = detailVO.getMoneyInfo();
+			moneyInfo.setMoneyType(2);
+			detailVO.setMoneyInfo(moneyInfo);
+
+			String hongBao = spreadMoney.toString();
+			ReduceHongBao vo = new ReduceHongBao();
+			vo.setLeft(hotGoods.getLeftHongBaoCount());
+			vo.setMoney(" 楼" + hongBao);
+			vo.setName("浠樻绔嬪噺 ");
+			vo.setTip("");
+			vo.setTotal(hotGoods.getTotalHongBaoCount());
+
+			OtherInfo otherInfo = new OtherInfo();
+			otherInfo.setReduceHongBao(vo);
+			detailVO.setOtherInfo(otherInfo);
+
+			array.add(gson.toJson(detailVO));
+		}
+
+		if (page > 1)
+			array.clear();
+
+		JSONObject data = new JSONObject();
+		data.put("count", array.size());
+		data.put("list", array);
+		if (page == 1) {
+			List<BannerVO> bannerList = swiperPictureService.getByBannerCardAndVersion("zigoulijian_banner",
+					acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()),acceptData.getSystem());
+
+			if (bannerList != null && bannerList.size() > 0)
+				data.put("topPicture", bannerList.get(0).getSrc());
+			else
+				data.put("topPicture", "");
+
+			data.put("ruleUrl", configService.getValue(ConfigKeyEnum.zigoulijianRule.getKey(),acceptData.getSystem()));
+		}
+		out.print(JsonUtil.loadTrueResult(data));
+	}
+
+	/**
+	 * 璧犻�佹窐绀奸噾
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param amount
+	 * @param out
+	 */
+	@RequestMapping(value = "giveTLJ", method = RequestMethod.POST)
+	public void giveTLJ(AcceptData acceptData, Long uid, BigDecimal amount, PrintWriter out) {
+		out.print(JsonUtil.loadFalseResult(1, "鎶辨瓑锛屾帹骞跨孩鍖呯浉鍏冲姛鑳藉凡涓嬬嚎锛�"));
+	}
+
+	/**
+	 * 鏂颁汉绾㈠寘璇︽儏
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "getWinDetail", method = RequestMethod.POST)
+	public void getWinDetail(AcceptData acceptData, Long uid, PrintWriter out) {
+		if (uid == null || uid <= 0) {
+			out.print(JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		try {
+			TaoLiJinWinDetailVO winDetail = userTaoLiJinNewbiesService.receiveReward(uid);
+			if (winDetail == null) {
+				out.print(JsonUtil.loadFalseResult(1, "绾㈠寘宸茶鎶㈠厜"));
+				return;
+			}
+
+			// 2銆侀《閮ㄨ疆鎾浘
+			List<BannerVO> oldtopPicList = swiperPictureService.getByBannerCardAndVersion(
+					"redpack_win_detail_banner", acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()),acceptData.getSystem());
+			List<BannerVO> topPicList = new ArrayList<>();
+			if (oldtopPicList != null && oldtopPicList.size() > 0)
+				topPicList.addAll(oldtopPicList);
+
+			JSONObject data = new JSONObject();
+			data.put("detail", JsonUtil.getApiCommonGson().toJson(winDetail));
+			data.put("banner", JsonUtil.getApiCommonGson().toJson(topPicList));
+			out.print(JsonUtil.loadTrueResult(data));
+		} catch (Exception e) {
+			out.print(JsonUtil.loadFalseResult(1, "绾㈠寘宸茶鎶㈠厜鍟�"));
+		}
+	}
+
+	/**
+	 * 鏂颁汉鍏嶅崟鍒楄〃
+	 * @param acceptData
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "gerFreeList")
+	public void gerFreeList(String callback, AcceptData acceptData, int page, Long uid, PrintWriter out) {
+		if (uid == null || uid <= 0) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�"));
+			return;
+		}
+
+		String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
+		List<TLJFreeBuyGoods> listFree = tljFreeBuyGoodsService.listByDay(day);
+		if (listFree == null) {
+			listFree = new ArrayList<TLJFreeBuyGoods>();
+		}
+
+		JSONArray array = new JSONArray();
+		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+		ConfigParamsDTO paramsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+				acceptData.getVersion(),acceptData.getSystem());
+
+		for (TLJFreeBuyGoods freeGoods : listFree) {
+			TaoBaoGoodsBrief goods = freeGoods.getGoods();
+			if (goods == null)
+				continue;
+
+			// 璁$畻鍒稿悗浠� 1<= n <= 2
+			BigDecimal couplePrice = TaoBaoUtil.getAfterUseCouplePrice(goods);
+			if (couplePrice.compareTo(new BigDecimal(1.0)) < 0 && couplePrice.compareTo(new BigDecimal(2.0)) > 0)
+				continue;
+
+			GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(goods, paramsDTO);
+
+			// 涓撳睘鏍囩
+			List<ClientTextStyleVO> labels = new ArrayList<ClientTextStyleVO>();
+			labels.add(new ClientTextStyleVO("鏂颁汉涓撳睘", "#FE0014"));
+			labels.add(new ClientTextStyleVO("瀹炰粯0鍏�", "#FF9600"));
+			detailVO.setLabels(labels);
+			array.add(gson.toJson(detailVO));
+		}
+
+		if (page > 1)
+			array.clear();
+
+		JSONObject data = new JSONObject();
+		data.put("count", array.size());
+		data.put("list", array);
+		if (page == 1) {
+			try {
+				data.put("portrait", userInfoService.getUserInfo(uid).getPortrait());
+			} catch (UserInfoException e) {
+				JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, e.getMsg()));
+				return;
+			}
+
+			String state = "宸茶繃鏈�";
+			BigDecimal balance = new BigDecimal(0);
+			UserTaoLiJinNewbies winDetail = userTaoLiJinNewbiesService.selectByPrimaryKey(uid);
+			if (winDetail != null) {
+				balance = winDetail.getMoney();
+				if (winDetail.getEndTime().getTime() > java.lang.System.currentTimeMillis()) {
+					try {
+						String remaining = DateUtil.dateDiff2(new Date(), winDetail.getEndTime());
+						if (!remaining.equals("0鍒�"))
+							state = "鍓�" + remaining + "杩囨湡";
+					} catch (Exception e) {
+						e.printStackTrace();
+					}
+				}
+			}
+
+			String rule = configTaoLiJinService.getValueByKey("new_user_free_buy_list_rule");
+			rule = rule.replace("{閾炬帴}", configService.getValue(ConfigKeyEnum.customerServiceLink.getKey(),acceptData.getSystem()));
+
+			data.put("state", state);
+			data.put("balance", "鏂颁汉绾㈠寘锛�" + balance.setScale(2) + "鍏�");
+			data.put("rule", rule);
+		}
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+	}
+}

--
Gitblit v1.8.0