From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v1/h5/AppH5CouponController.java |  482 ++++++++++++++++++++++++++++++++--------------------
 1 files changed, 294 insertions(+), 188 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/h5/AppH5CouponController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/h5/AppH5CouponController.java
index 8d2ea35..0fb260e 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/h5/AppH5CouponController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/h5/AppH5CouponController.java
@@ -1,188 +1,294 @@
-package com.yeshi.fanli.controller.client.v1.h5;
-
-import java.io.PrintWriter;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.annotation.Resource;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.yeshi.utils.JsonUtil;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.lable.QualityFactory;
-import com.yeshi.fanli.entity.bus.user.UserInfo;
-import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
-import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
-import com.yeshi.fanli.exception.taobao.TaoKeApiException;
-import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
-import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
-import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
-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.util.factory.goods.GoodsDetailVOFactory;
-import com.yeshi.fanli.util.taobao.TaoBaoUtil;
-import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
-import com.yeshi.fanli.vo.goods.GoodsDetailVO;
-
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-@Controller
-@RequestMapping("api/apph5/v1/coupon")
-public class AppH5CouponController {
-
-	@Resource
-	private QualityGoodsService qualityGoodsService;
-
-	@Resource
-	private HongBaoManageService hongBaoManageService;
-
-	@Resource
-	private UserInfoService userInfoService;
-
-	@Resource
-	private UserSystemCouponService userSystemCouponService;
-	
-	@Resource
-	private UserInfoExtraService userInfoExtraService;
-
-	@RequestMapping("getMianDanGoodsList")
-	public void getMianDanGoodsList(AcceptData acceptData, PrintWriter out, int page, int pageSize, String callback) {
-		List<QualityFactory> listQuery = qualityGoodsService.listFreeGoods((page - 1) * pageSize, pageSize);
-		if (listQuery == null || listQuery.size() == 0) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娌℃湁鏇村浜�"));
-			return;
-		}
-
-		List<Long> listGid = new ArrayList<Long>();
-		for (QualityFactory qualityFactory : listQuery) {
-			TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
-			if (taoBaoGoodsBrief == null) {
-				continue;
-			}
-			listGid.add(taoBaoGoodsBrief.getAuctionId());
-		}
-
-		// API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭
-		List<TaoBaoGoodsBrief> listTaoKeGoods = null;
-		try {
-			listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
-		} catch (TaoKeApiException e) {
-			e.printStackTrace();
-		} catch (TaobaoGoodsDownException e) {
-			e.printStackTrace();
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-
-		JSONArray array = new JSONArray();
-		Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-				.excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
-		BigDecimal fanLiRate = hongBaoManageService.getFanLiRate();
-		BigDecimal shareRate = hongBaoManageService.getShareRate();
-		/* 閬嶅巻鍒楄〃鏁版嵁 */
-		for (QualityFactory selectionGoods : listQuery) {
-
-			TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
-
-			if (taoBaoGoodsBrief == null) {
-				continue;
-			}
-
-			if (listTaoKeGoods != null && listTaoKeGoods.size() > 0) {
-				boolean stateSale = false; // 榛樿鍋滃敭
-				Long goodsId = taoBaoGoodsBrief.getAuctionId();
-				for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
-					Long auctionId = taoKeGoods.getAuctionId();
-					if (goodsId == auctionId || goodsId.equals(auctionId)) {
-						stateSale = true; // 鍦ㄥ敭
-						break;
-					}
-				}
-
-				if (!stateSale) {
-					continue;
-				}
-			}
-
-			BigDecimal couplePrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief);
-			if (couplePrice.compareTo(new BigDecimal("9.9")) == 1) {
-				continue; // 鍒稿悗浠峰ぇ浜�10
-			}
-			GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, shareRate);
-			array.add(gson.toJson(detailVO));
-		}
-		JSONObject data = new JSONObject();
-		data.put("goodsList", array);
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-	}
-
-	@RequestMapping("getMianDanInfo")
-	public void getMianDanInfo(AcceptData acceptData, PrintWriter out, Long uid, String callback) {
-		if (uid == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-		// 鑾峰彇鐢ㄦ埛淇℃伅
-		UserInfo user = userInfoService.getUserById(uid);
-		if (user == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�"));
-			return;
-		}
-		// 鑾峰彇鍏嶅崟鍒告暟閲�
-		long couponCount = userSystemCouponService.countUsableFreeCouponForBuy(uid);
-		JSONObject userJson = new JSONObject();
-		userJson.put("nickName", user.getNickName());
-		userJson.put("portrait", user.getPortrait());
-		userJson.put("id", user.getId());
-
-		JSONObject data = new JSONObject();
-		data.put("user", userJson);
-		data.put("couponCount", couponCount);
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-	}
-
-	/**
-	 * 鑾峰彇杩斿埄濂栧姳鍒镐俊鎭�
-	 * 
-	 * @param acceptData
-	 * @param out
-	 * @param uid
-	 * @param callback
-	 */
-	@RequestMapping("getRewardCouponInfo")
-	public void getRewardCouponInfo(AcceptData acceptData, PrintWriter out, Long uid, String callback) {
-		if (uid == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
-			return;
-		}
-		// 鑾峰彇鐢ㄦ埛淇℃伅
-		UserInfo user = userInfoService.getUserById(uid);
-		if (user == null) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�"));
-			return;
-		}
-		// 鑾峰彇鍏嶅崟鍒告暟閲�
-		long couponCount = userSystemCouponService.countUsableRewardCoupon(uid);
-		UserInfoExtra extraInfo=userInfoExtraService.getUserInfoExtra(uid);
-		long integralCount=extraInfo!=null?extraInfo.getGoldCoin():0L;
-		JSONObject userJson = new JSONObject();
-		userJson.put("nickName", user.getNickName());
-		userJson.put("portrait", user.getPortrait());
-		userJson.put("id", user.getId());
-
-		JSONObject data = new JSONObject();
-		data.put("user", userJson);
-		data.put("couponCount", couponCount);
-		data.put("integralCount", integralCount);
-		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-	}
-
-}
+package com.yeshi.fanli.controller.client.v1.h5;
+
+import java.io.PrintWriter;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.yeshi.fanli.util.SystemInfoUtil;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.yeshi.utils.JsonUtil;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.yeshi.fanli.dto.GoodsMoneyConfigParamsDTO;
+import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.lable.QualityFactory;
+import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
+import com.yeshi.fanli.entity.bus.user.vip.TearcherInfo;
+import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
+import com.yeshi.fanli.entity.goods.FreeGoodsCoupon;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.exception.taobao.TaoKeApiException;
+import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.service.inter.goods.FreeGoodsCouponService;
+import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
+import com.yeshi.fanli.service.inter.order.OrderHongBaoMoneyComputeService;
+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.vip.TearcherService;
+import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
+import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.vo.goods.GoodsDetailVO;
+import com.yeshi.fanli.vo.goods.OtherInfo;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+@Controller
+@RequestMapping("api/apph5/v1/coupon")
+public class AppH5CouponController {
+
+    @Resource
+    private QualityGoodsService qualityGoodsService;
+
+    @Resource
+    private OrderHongBaoMoneyComputeService orderHongBaoMoneyComputeService;
+
+    @Resource
+    private UserInfoService userInfoService;
+
+    @Resource
+    private UserSystemCouponService userSystemCouponService;
+
+    @Resource
+    private UserInfoExtraService userInfoExtraService;
+
+    @Resource
+    private UserVIPInfoService userVIPInfoService;
+
+    @Resource
+    private FreeGoodsCouponService freeGoodsCouponService;
+
+    @Resource
+    private TearcherService tearcherService;
+
+    @RequestMapping("getMianDanGoodsList")
+    public void getMianDanGoodsList(AcceptData acceptData, PrintWriter out, int page, int pageSize, String callback) {
+        if (acceptData.getSystem() == null)
+            acceptData.setSystem(SystemInfoUtil.getSystem(acceptData));
+
+        List<QualityFactory> listQuery = qualityGoodsService.listFreeGoods((page - 1) * pageSize, pageSize);
+        if (listQuery == null || listQuery.size() == 0) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "娌℃湁鏇村浜�"));
+            return;
+        }
+
+        List<String> listGid = new ArrayList<>();
+        for (QualityFactory qualityFactory : listQuery) {
+            TaoBaoGoodsBrief taoBaoGoodsBrief = qualityFactory.getTaoBaoGoodsBrief();
+            if (taoBaoGoodsBrief == null) {
+                continue;
+            }
+            if (!"0".equalsIgnoreCase(taoBaoGoodsBrief.getAuctionId())) {
+                listGid.add(taoBaoGoodsBrief.getAuctionId());
+            } else {
+                listGid.add(taoBaoGoodsBrief.getId() + "");
+            }
+        }
+
+        // API缃戠粶鎺ュ彛楠岃瘉鏄惁鍦ㄥ敭
+        List<TaoBaoGoodsBrief> listTaoKeGoods = null;
+        try {
+            listTaoKeGoods = TaoKeApiUtil.getBatchGoodsInfo(listGid);
+        } catch (TaoKeApiException e) {
+            e.printStackTrace();
+        } catch (TaobaoGoodsDownException e) {
+            e.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        JSONArray array = new JSONArray();
+        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+        GoodsMoneyConfigParamsDTO configParamsDTO = orderHongBaoMoneyComputeService.getShowComputeRate(acceptData.getPlatform(),
+                acceptData.getVersion(), UserLevelEnum.daRen, acceptData.getSystem());
+        /* 閬嶅巻鍒楄〃鏁版嵁 */
+        for (QualityFactory selectionGoods : listQuery) {
+
+            TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
+
+            if (taoBaoGoodsBrief == null) {
+                continue;
+            }
+
+            if (listTaoKeGoods != null && listTaoKeGoods.size() > 0) {
+                boolean stateSale = false; // 榛樿鍋滃敭
+                String goodsId = taoBaoGoodsBrief.getAuctionId();
+                for (TaoBaoGoodsBrief taoKeGoods : listTaoKeGoods) {
+                    String auctionId = taoKeGoods.getAuctionId();
+                    if (TaoBaoUtil.isEqual(goodsId, auctionId)) {
+                        stateSale = true; // 鍦ㄥ敭
+                        break;
+                    }
+                }
+
+                if (!stateSale) {
+                    continue;
+                }
+            }
+
+            BigDecimal couplePrice = TaoBaoUtil.getCouponPrice(taoBaoGoodsBrief);
+            if (couplePrice.compareTo(new BigDecimal("9.9")) == 1) {
+                continue; // 鍒稿悗浠峰ぇ浜�10
+            }
+            GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, configParamsDTO);
+            array.add(gson.toJson(detailVO));
+        }
+        JSONObject data = new JSONObject();
+        data.put("goodsList", array);
+        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+    }
+
+    @RequestMapping("getMianDanInfo")
+    public void getMianDanInfo(AcceptData acceptData, PrintWriter out, Long uid, String callback) {
+        if (acceptData.getSystem() == null)
+            acceptData.setSystem(SystemInfoUtil.getSystem(acceptData));
+        if (uid == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+        // 鑾峰彇鐢ㄦ埛淇℃伅
+        UserInfo user = userInfoService.getUserById(uid);
+        if (user == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�"));
+            return;
+        }
+        // 鑾峰彇鍏嶅崟鍒告暟閲�
+        long couponCount = userSystemCouponService.countUsableFreeCouponForBuy(uid);
+        JSONObject userJson = new JSONObject();
+        userJson.put("nickName", user.getNickName());
+        userJson.put("portrait", user.getPortrait());
+        userJson.put("id", user.getId());
+
+        JSONObject data = new JSONObject();
+        data.put("user", userJson);
+        data.put("couponCount", couponCount);
+        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+    }
+
+    /**
+     * 鑾峰彇杩斿埄濂栧姳鍒镐俊鎭�
+     *
+     * @param acceptData
+     * @param out
+     * @param uid
+     * @param callback
+     */
+    @RequestMapping("getRewardCouponInfo")
+    public void getRewardCouponInfo(AcceptData acceptData, PrintWriter out, Long uid, String callback) {
+        if (acceptData.getSystem() == null)
+            acceptData.setSystem(SystemInfoUtil.getSystem(acceptData));
+        if (uid == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+        // 鑾峰彇鐢ㄦ埛淇℃伅
+        UserInfo user = userInfoService.getUserById(uid);
+        if (user == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�"));
+            return;
+        }
+        // 鑾峰彇鍏嶅崟鍒告暟閲�
+        long couponCount = userSystemCouponService.countUsableRewardCoupon(uid);
+        UserInfoExtra extraInfo = userInfoExtraService.getUserInfoExtra(uid);
+        long integralCount = extraInfo != null ? extraInfo.getGoldCoin() : 0L;
+        JSONObject userJson = new JSONObject();
+        userJson.put("nickName", user.getNickName());
+        userJson.put("portrait", user.getPortrait());
+        userJson.put("id", user.getId());
+        userJson.put("vip", userVIPInfoService.isVIP(user.getId()));
+
+        JSONObject data = new JSONObject();
+        data.put("user", userJson);
+        data.put("couponCount", couponCount);
+        data.put("integralCount", integralCount);
+        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+    }
+
+    /**
+     * 鏂扮増鍏嶅崟鍟嗗搧鍒楄〃
+     *
+     * @param acceptData
+     * @param callback
+     * @param page
+     * @param goodsType
+     * @param out
+     */
+    @RequestMapping("getFreeGoodsList")
+    public void getFreeGoodsList(AcceptData acceptData, String callback, Long uid, int page, int goodsType,
+                                 PrintWriter out) {
+        if (acceptData.getSystem() == null)
+            acceptData.setSystem(SystemInfoUtil.getSystem(acceptData));
+        if (uid == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
+            return;
+        }
+
+        // 鑾峰彇鐢ㄦ埛淇℃伅
+        UserInfo user = userInfoService.getUserById(uid);
+        if (user == null) {
+            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛涓嶅瓨鍦�"));
+            return;
+        }
+
+        String tearcherWX = null;
+        TearcherInfo tearcherInfo = tearcherService.selectByUid(uid);
+        if (tearcherInfo != null) {
+            tearcherWX = tearcherInfo.getWxID();
+        }
+
+        // 鑾峰彇鍏嶅崟鍒告暟閲�
+        long couponNum = userSystemCouponService.countUsableFreeCouponForBuy(uid);
+
+        JSONArray array = new JSONArray();
+        List<FreeGoodsCoupon> list = freeGoodsCouponService.listByType((page - 1) * Constant.PAGE_SIZE,
+                Constant.PAGE_SIZE, goodsType);
+        if (list != null && list.size() > 0) {
+            Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
+            for (FreeGoodsCoupon freeGoods : list) {
+                GoodsDetailVO goods = freeGoods.getGoods();
+                if (goods == null)
+                    continue;
+
+                // 瀹炰粯娆�0
+                OtherInfo otherInfo = goods.getOtherInfo();
+                if (otherInfo == null)
+                    otherInfo = new OtherInfo();
+                otherInfo.setActualPay(BigDecimal.ZERO);
+
+                // 琛ラ綈閲戦
+                if (goods.isHasCoupon()) {
+                    otherInfo.setMendMoney(goods.getCouponPrice());
+                } else {
+                    otherInfo.setMendMoney(goods.getZkPrice());
+                }
+                goods.setOtherInfo(otherInfo);
+                array.add(gson.toJson(goods));
+            }
+        }
+
+        JSONObject userJson = new JSONObject();
+        userJson.put("nickName", user.getNickName());
+        userJson.put("portrait", user.getPortrait());
+        userJson.put("couponNum", couponNum);
+        userJson.put("tearcherWX", tearcherWX);
+
+        JSONObject data = new JSONObject();
+        data.put("user", userJson);
+        data.put("count", freeGoodsCouponService.countByType(goodsType));
+        data.put("list", array);
+        JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.8.0