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 | 485 ++++++++++++++++++++++++++++++++--------------------- 1 files changed, 294 insertions(+), 191 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 fe2047f..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,191 +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.dto.ConfigParamsDTO; -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.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 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(); - ConfigParamsDTO configParamsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE); - /* 閬嶅巻鍒楄〃鏁版嵁 */ - 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, 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 (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