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/UserCouponController.java | 1050 +++++++++++++++++++++++++-------------------------------- 1 files changed, 466 insertions(+), 584 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java index f268907..2d7b532 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserCouponController.java @@ -1,584 +1,466 @@ -package com.yeshi.fanli.controller.client.v1; - -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; - -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.JsonUtil; - -import com.yeshi.fanli.entity.accept.AcceptData; -import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture; -import com.yeshi.fanli.entity.bus.user.DeviceLotteryRecord; -import com.yeshi.fanli.entity.bus.user.UserInfoExtra; -import com.yeshi.fanli.entity.bus.user.UserLotteryRecord; -import com.yeshi.fanli.entity.system.ConfigKeyEnum; -import com.yeshi.fanli.entity.system.SystemCoupon; -import com.yeshi.fanli.exception.user.UserLotteryRecordException; -import com.yeshi.fanli.exception.user.UserSystemCouponException; -import com.yeshi.fanli.service.inter.config.ConfigService; -import com.yeshi.fanli.service.inter.config.SystemCouponService; -import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; -import com.yeshi.fanli.service.inter.order.CommonOrderService; -import com.yeshi.fanli.service.inter.user.DeviceLotteryRecordService; -import com.yeshi.fanli.service.inter.user.UserInfoExtraService; -import com.yeshi.fanli.service.inter.user.UserLotteryRecordService; -import com.yeshi.fanli.service.inter.user.UserSystemCouponService; -import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; -import com.yeshi.fanli.util.Constant; -import com.yeshi.fanli.vo.user.UserSystemCouponRecordVO; -import com.yeshi.fanli.vo.user.UserSystemCouponVO; - -import net.sf.json.JSONObject; - -/** - * 绂忓埄涓績 - * - * @author Administrator - * - */ -@Controller -@RequestMapping("api/v1/user/coupon") -public class UserCouponController { - - @Resource(name = "taskExecutor") - private TaskExecutor executor; - - @Resource - private ConfigService configService; - - @Resource - private SystemCouponService systemCouponService; - - @Resource - private UserSystemCouponService UserSystemCouponService; - - @Resource - private SwiperPictureService swiperPictureService; - - @Resource - private CommonOrderService commonOrderService; - - @Resource - private DeviceLotteryRecordService deviceLotteryRecordService; - - @Resource - private UserSystemCouponService userSystemCouponService; - - @Resource - private UserInfoExtraService userInfoExtraService; - - - @Resource - private UserLotteryRecordService userLotteryRecordService; - - @Resource - private UserVIPInfoService userVIPInfoService; - - /** - * 鐢ㄦ埛鍒稿垪琛ㄦ煡璇� - * - * @param acceptData - * @param page - * @param uid - * @param out - */ - @RequestMapping(value = "getCouponList", method = RequestMethod.POST) - public void getCouponList(AcceptData acceptData, Integer page, Long uid, PrintWriter out) { - if (uid == null) { - out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); - return; - } - - try { - if (page == null || page < 1) { - page = 1; - } - - // 绂忓埄涓績鍥剧墖 - String topPicture = null; - if (page == 1) { - List<SwiperPicture> listswiper = swiperPictureService.getByBannerCardAndVersion("welfare_top",acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion())); - if (listswiper != null && listswiper.size() > 0) { - topPicture = listswiper.get(0).getSrc(); - } - } - - boolean changeJump = false; - String version = acceptData.getVersion(); - int tversion = Integer.parseInt(version); - String platform = acceptData.getPlatform(); - if ("android".equalsIgnoreCase(platform) && tversion > 34) { - changeJump = true; - } else if (tversion > 44){ - changeJump = true; - } - - long count = UserSystemCouponService.countCouponOld(uid); - List<UserSystemCouponVO> resultList = UserSystemCouponService - .getUserCouponVOList((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, changeJump); - - if (resultList == null) { - resultList = new ArrayList<UserSystemCouponVO>(); - } - - JSONObject data = new JSONObject(); - data.put("topPicture", topPicture); - data.put("count", count); - data.put("result_list", JsonUtil.getApiCommonGson().toJson(resultList)); - - out.print(JsonUtil.loadTrueResult(data)); - - // 鏇存柊绂忓埄涓績鏈鏁伴噺 - if (page == 1) { - executor.execute(new Runnable() { - @Override - public void run() { - UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); - // 鏈鍒告槸鍚﹀ぇ浜�0 - if (userInfoExtra != null && userInfoExtra.getCouponNews() > 0) { - UserInfoExtra extra = new UserInfoExtra(); - extra.setId(userInfoExtra.getId()); - extra.setCouponNews(0); - userInfoExtraService.updateByPrimaryKeySelective(extra); - } - } - }); - } - - } catch (UserSystemCouponException e) { - out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鐢ㄦ埛濂栧姳鍒� - * - * @param acceptData - * @param page - * @param uid - * @param auctionId 鍟嗗搧id - * @param out - */ - @RequestMapping(value = "getGoodsCouponList", method = RequestMethod.POST) - public void getGoodsCouponList(AcceptData acceptData, Long uid, Long auctionId, PrintWriter out) { - if (uid == null) { - out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); - return; - } - - try { - List<UserSystemCouponVO> resultList = UserSystemCouponService.getGoodsCouponList(uid, auctionId); - - if (resultList == null) { - resultList = new ArrayList<UserSystemCouponVO>(); - } - - JSONObject dataTip = new JSONObject(); - dataTip.put("content", configService.get(ConfigKeyEnum.freeCouponTip.getKey())); - dataTip.put("fontColor", "#F14242"); - - JSONObject data = new JSONObject(); - data.put("helpLink", configService.get(ConfigKeyEnum.freeCouponHelp.getKey())); - data.put("tip", dataTip); - data.put("count", resultList.size()); - data.put("result_list", JsonUtil.getApiCommonGson().toJson(resultList)); - - out.print(JsonUtil.loadTrueResult(data)); - - } catch (UserSystemCouponException e) { - out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀� - * - * @param acceptData - * @param page - * @param uid - * @param out - */ - @RequestMapping(value = "useFreeCoupon", method = RequestMethod.POST) - public void useFreeCoupon(AcceptData acceptData, Long uid, Long cid, Long goodId, Integer goodsType, PrintWriter out) { - if (uid == null) { - out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); - return; - } - - if (goodsType == null || goodsType > 3 || goodsType < 1) { - goodsType = Constant.SOURCE_TYPE_TAOBAO; - } - - try { - UserSystemCouponService.useGoodsCoupon(uid, cid, goodId, goodsType); - out.print(JsonUtil.loadTrueResult("浣跨敤鎴愬姛")); - } catch (UserSystemCouponException e) { - out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult(1, "浣跨敤澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鐢ㄦ埛濂栧姳鍒� - * - * @param acceptData - * @param page - * @param uid - * @param out - */ - @RequestMapping(value = "getOrderCouponList", method = RequestMethod.POST) - public void getOrderCouponList(AcceptData acceptData, Long uid, PrintWriter out) { - - if (uid == null) { - out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); - return; - } - - try { - List<UserSystemCouponVO> resultList = UserSystemCouponService.getOrderCouponList(uid); - - if (resultList == null) { - resultList = new ArrayList<UserSystemCouponVO>(); - } - - JSONObject data = new JSONObject(); - data.put("helpLink", configService.get(ConfigKeyEnum.rewardCouponHelp.getKey())); - data.put("count", resultList.size()); - data.put("result_list", JsonUtil.getApiCommonGson().toJson(resultList)); - - out.print(JsonUtil.loadTrueResult(data)); - - } catch (UserSystemCouponException e) { - out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀� - * - * @param acceptData - * @param page - * @param uid - * @param out - */ - @RequestMapping(value = "useRewardCoupon", method = RequestMethod.POST) - public void useRewardCoupon(AcceptData acceptData, Long uid, Long cid, String orderNo, Integer goodsType, PrintWriter out) { - - if (uid == null) { - out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); - return; - } - - if (userVIPInfoService.isVIP(uid)) { - out.print(JsonUtil.loadFalseResult("瓒呯骇浼氬憳涓嶅彲浣跨敤濂栧姳鍒�")); - return; - } - - if (goodsType == null || goodsType > 3 || goodsType < 1) { - goodsType = Constant.SOURCE_TYPE_TAOBAO; - } - - try { - UserSystemCouponService.useOrderCoupon(uid, cid, orderNo, goodsType, acceptData); - JSONObject data = commonOrderService.getRewardJumpInfo(orderNo, goodsType); - out.print(JsonUtil.loadTrueResult(data)); - } catch (UserSystemCouponException e) { - out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult(1, "浣跨敤澶辫触")); - e.printStackTrace(); - } - } - - /** - * 璁㈠崟-濂栧姳杩涘害璇︽儏 - * - * @param acceptData - * @param orderNo 璁㈠崟鍙� - * @param out - */ - @RequestMapping(value = "getRewardRecord", method = RequestMethod.POST) - public void getRewardCounponRecord(AcceptData acceptData, String orderNo, Integer goodsType, PrintWriter out) { - try { - if (goodsType == null || goodsType > 3 || goodsType < 1) { - goodsType = Constant.SOURCE_TYPE_TAOBAO; - } - - UserSystemCouponRecordVO rewardRecord = UserSystemCouponService.getRewardCouponRecord(orderNo, goodsType); - JSONObject data = new JSONObject(); - data.put("rewardRecord", rewardRecord); - out.print(JsonUtil.loadTrueResult(data)); - } catch (UserSystemCouponException e) { - out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); - e.printStackTrace(); - } - } - - /** - * 璁㈠崟-濂栧姳杩涘害璇︽儏 - * - * @param acceptData - * @param orderNo 璁㈠崟鍙� - * @param out - */ - @RequestMapping(value = "getFreeCounponRecord", method = RequestMethod.POST) - public void getFreeCounponRecord(AcceptData acceptData, String orderNo, Integer goodsType, PrintWriter out) { - try { - if (goodsType == null || goodsType > 3 || goodsType < 1) { - goodsType = Constant.SOURCE_TYPE_TAOBAO; - } - - UserSystemCouponRecordVO rewardRecord = UserSystemCouponService.getFreeCouponRecord(orderNo, goodsType); - JSONObject data = new JSONObject(); - data.put("frreCouponRecord", rewardRecord); - out.print(JsonUtil.loadTrueResult(data)); - } catch (UserSystemCouponException e) { - out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); - } catch (Exception e) { - out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鑾峰彇鎶藉娆℃暟 - * - * @param callback - * @param acceptData - * @param uid - * @param out - */ - // @RequestMapping(value = "getLotteryCount") - public void getLotteryCount(String callback, AcceptData acceptData, Long uid, PrintWriter out) { - try { - // 1銆佸凡鐧诲綍绯荤粺 - if (uid != null) { - JSONObject data = userLotteryRecordService.getLotteryCountNewbies(uid); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - return; - } - - // 2銆佹湭鐧诲綍绯荤粺 - 璁板綍璁惧 - int platformType = 0; - String platform = acceptData.getPlatform(); - if ("android".equals(platform)) { - platformType = 1; - } else if ("ios".equals(platform)) { - platformType = 2; - } else { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("骞冲彴鏈夎")); - return; - } - - String device = acceptData.getDevice(); - if (device == null || device.trim().length() == 0) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璁惧涓嶅瓨鍦�")); - return; - } - - List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType, device); - int count = UserLotteryRecord.COUNT_NEWBIES; - if (list != null && list.size() > 0) { - count = count - list.size(); - } - // 鎶藉瑙勫垯 - String lotteryRule = configService.get(ConfigKeyEnum.lotteryRuleNewbies.getKey()); - - JSONObject data = new JSONObject(); - data.put("count", count); - data.put("rule", lotteryRule); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - } catch (UserLotteryRecordException e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鑾峰彇鎶藉缁撴灉 - * @param callback - * @param acceptData - * @param uid - * @param out - */ - // @RequestMapping(value = "getLotteryResult") - public void getLotteryResult(String callback, AcceptData acceptData, Long uid, PrintWriter out) { - - try { - // 1銆佸凡鐧诲綍鐢ㄦ埛鎶藉 - if (uid != null) { - Map<String, Object> map = userLotteryRecordService.executeLotteryNewbies(uid); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(map)); - return; - } - - // 2銆佹湭鐧诲綍鐢ㄦ埛鎶藉 - int platformType = 0; - String platform = acceptData.getPlatform(); - if ("android".equals(platform)) { - platformType = 1; - } else if ("ios".equals(platform)) { - platformType = 2; - } else { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("骞冲彴鏈夎")); - return; - } - - String device = acceptData.getDevice(); - if (device == null || device.trim().length() == 0) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璁惧涓嶅瓨鍦�")); - return; - } - - List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType, device); - if (list != null && list.size() >= UserLotteryRecord.COUNT_NEWBIES) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鎶藉娆℃暟涓嶈冻")); - return; - } - // 璁惧鎶藉 - JSONObject data = getDevicePrize(list, device, platformType); - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); - } catch (UserLotteryRecordException e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎶藉澶辫触")); - e.printStackTrace(); - } - } - - - /** - * 璁惧淇℃伅鎶藉-鏈櫥褰� - * @param list - * @param device - * @param platformType - * @return - */ - public JSONObject getDevicePrize(List<DeviceLotteryRecord> list, String device, int platformType) { - int count = 0; - int countPrize = 0; - Long couponId = null; - - if (list == null || list.size() == 0) { // 鎷ユ湁鎶藉鏈轰細 - count = UserLotteryRecord.COUNT_NEWBIES; - } else { - for (DeviceLotteryRecord deviceLotteryRecord : list) { - Long systemCouponId = deviceLotteryRecord.getSystemCouponId(); - if (systemCouponId != null) { - countPrize++; - couponId = systemCouponId; - } - } - count = UserLotteryRecord.COUNT_NEWBIES - list.size(); - } - - - String prize = null; - String couponType = null; - if (countPrize == 0) { - prize = userLotteryRecordService.getLotteryPrizeNewbies(count, countPrize, null); - } else if (countPrize == 1) { - if (couponId != null) { - SystemCoupon coupon = systemCouponService.selectByPrimaryKey(couponId); - couponType = coupon.getType().name(); - } - - if(couponType != null && couponType.trim().length() > 0) { - prize = userLotteryRecordService.getLotteryPrizeNewbies(count, countPrize, couponType); - } - } - - Long newCouponId = null; - if (prize == null || prize.trim().length() == 0) { - prize = "NoPrize"; - } else if (prize.equals(couponType)) { - // 宸插瓨鍦ㄦ鍒� - prize = "NoPrize"; - } else { - SystemCoupon coupon = systemCouponService.getCouponByType(prize); - if (coupon != null) { - newCouponId = coupon.getId(); - } - } - - count --; - - // 鎻掑叆璁板綍 - DeviceLotteryRecord record = new DeviceLotteryRecord(); - record.setDevice(device); - record.setPlatform(platformType); - record.setSystemCouponId(newCouponId); - record.setCreateTime(new Date()); - deviceLotteryRecordService.insertSelective(record); - - JSONObject data = new JSONObject(); - data.put("count", count); - data.put("result", prize); - - return data; - } - - - /** - * 鑾峰彇鎶藉娆℃暟- 澶╁ぉ鎶藉鍔卞埜 - * - * @param callback - * @param acceptData - * @param uid - * @param out - */ - // @RequestMapping(value = "getDailyCount") - public void getDailyCount(String callback, AcceptData acceptData, Long uid, PrintWriter out) { - try { - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(userLotteryRecordService.getLotteryCountDaily(uid))); - } catch (UserLotteryRecordException e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(),e.getMsg())); - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淇℃伅鑾峰彇澶辫触")); - e.printStackTrace(); - } - } - - /** - * 鑾峰彇鎶藉缁撴灉 - 澶╁ぉ鎶藉鍔卞埜` - * @param callback - * @param acceptData - * @param uid - * @param out - */ - // @RequestMapping(value = "getDailyResult") - public void getDailyResult(String callback, AcceptData acceptData, Long uid, PrintWriter out) { - try { - JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(userLotteryRecordService.executeLotteryDaily(uid))); - } catch (UserLotteryRecordException e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(),e.getMsg())); - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎶藉澶辫触")); - e.printStackTrace(); - } - } - -} +package com.yeshi.fanli.controller.client.v1; + +import java.io.PrintWriter; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import com.yeshi.fanli.service.inter.user.UserInfoService; +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.JsonUtil; + +import com.yeshi.fanli.dto.pdd.PDDGoodsDetail; +import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.bus.user.UserInfoExtra; +import com.yeshi.fanli.entity.jd.JDGoods; +import com.yeshi.fanli.entity.system.ConfigKeyEnum; +import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief; +import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException; +import com.yeshi.fanli.exception.user.UserSystemCouponException; +import com.yeshi.fanli.service.inter.config.ConfigService; +import com.yeshi.fanli.service.inter.config.SystemCouponService; +import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService; +import com.yeshi.fanli.service.inter.order.CommonOrderService; +import com.yeshi.fanli.service.inter.user.DeviceLotteryRecordService; +import com.yeshi.fanli.service.inter.user.UserInfoExtraService; +import com.yeshi.fanli.service.inter.user.UserSystemCouponService; +import com.yeshi.fanli.service.inter.user.invite.UserInviteService; +import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; +import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.RedisManager; +import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.cache.JDGoodsCacheUtil; +import com.yeshi.fanli.util.cache.PinDuoDuoCacheUtil; +import com.yeshi.fanli.util.jd.JDUtil; +import com.yeshi.fanli.util.pinduoduo.PinDuoDuoUtil; +import com.yeshi.fanli.util.taobao.TaoBaoUtil; +import com.yeshi.fanli.vo.homemodule.BannerVO; +import com.yeshi.fanli.vo.user.UserSystemCouponRecordVO; +import com.yeshi.fanli.vo.user.UserSystemCouponVO; + +import net.sf.json.JSONObject; + +/** + * 绂忓埄涓績 + * + * @author Administrator + */ +@Controller +@RequestMapping("api/v1/user/coupon") +public class UserCouponController { + + @Resource(name = "taskExecutor") + private TaskExecutor executor; + + @Resource + private ConfigService configService; + + @Resource + private SystemCouponService systemCouponService; + + @Resource + private UserSystemCouponService UserSystemCouponService; + + @Resource + private SwiperPictureService swiperPictureService; + + @Resource + private CommonOrderService commonOrderService; + + @Resource + private DeviceLotteryRecordService deviceLotteryRecordService; + + @Resource + private UserSystemCouponService userSystemCouponService; + + @Resource + private UserInfoExtraService userInfoExtraService; + + @Resource + private UserInfoService userInfoService; + + @Resource + private UserVIPInfoService userVIPInfoService; + + @Resource + private UserInviteService userInviteService; + + + @Resource + private RedisManager redisManager; + + @Resource + private JDGoodsCacheUtil jdGoodsCacheUtil; + + @Resource + private PinDuoDuoCacheUtil pinDuoDuoCacheUtil; + + + /** + * 鐢ㄦ埛鍒稿垪琛ㄦ煡璇� + * + * @param acceptData + * @param page + * @param uid + * @param out + */ + @RequestMapping(value = "getCouponList", method = RequestMethod.POST) + public void getCouponList(AcceptData acceptData, Integer page, Long uid, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + try { + if (page == null || page < 1) { + page = 1; + } + + // 绂忓埄涓績鍥剧墖 + String topPicture = null; + if (page == 1) { + List<BannerVO> listswiper = swiperPictureService.getByBannerCardAndVersion("welfare_top", acceptData.getPlatform(), Integer.parseInt(acceptData.getVersion()), acceptData.getSystem()); + if (listswiper != null && listswiper.size() > 0) { + topPicture = listswiper.get(0).getSrc(); + } + } + + boolean changeJump = false; + String version = acceptData.getVersion(); + int tversion = Integer.parseInt(version); + String platform = acceptData.getPlatform(); + if ("android".equalsIgnoreCase(platform) && tversion > 34) { + changeJump = true; + } else if (tversion > 44) { + changeJump = true; + } + + long count = UserSystemCouponService.countCouponOld(uid); + List<UserSystemCouponVO> resultList = UserSystemCouponService + .getUserCouponVOList((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, changeJump); + + if (resultList == null) { + resultList = new ArrayList<UserSystemCouponVO>(); + } + + JSONObject data = new JSONObject(); + data.put("topPicture", topPicture); + data.put("count", count); + data.put("result_list", JsonUtil.getApiCommonGson().toJson(resultList)); + + out.print(JsonUtil.loadTrueResult(data)); + + // 鏇存柊绂忓埄涓績鏈鏁伴噺 + if (page == 1) { + executor.execute(new Runnable() { + @Override + public void run() { + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); + // 鏈鍒告槸鍚﹀ぇ浜�0 + if (userInfoExtra != null && userInfoExtra.getCouponNews() > 0) { + UserInfoExtra extra = new UserInfoExtra(); + extra.setId(userInfoExtra.getId()); + extra.setCouponNews(0); + userInfoExtraService.updateByPrimaryKeySelective(extra); + } + } + }); + } + + } catch (UserSystemCouponException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); + e.printStackTrace(); + } + } + + /** + * 鐢ㄦ埛濂栧姳鍒� + * + * @param acceptData + * @param page + * @param uid + * @param auctionId 鍟嗗搧id + * @param out + */ + @RequestMapping(value = "getGoodsCouponList", method = RequestMethod.POST) + public void getGoodsCouponList(AcceptData acceptData, Long uid, String auctionId, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + try { + List<UserSystemCouponVO> resultList = UserSystemCouponService.getGoodsCouponList(uid, auctionId); + if (resultList == null) { + resultList = new ArrayList<UserSystemCouponVO>(); + } + + JSONObject dataTip = new JSONObject(); + dataTip.put("content", configService.getValue(ConfigKeyEnum.freeCouponTip.getKey(), acceptData.getSystem())); + dataTip.put("fontColor", "#F14242"); + + JSONObject data = new JSONObject(); + data.put("helpLink", configService.getValue(ConfigKeyEnum.freeCouponHelp.getKey(), acceptData.getSystem())); + data.put("tip", dataTip); + data.put("count", resultList.size()); + data.put("result_list", JsonUtil.getApiCommonGson().toJson(resultList)); + out.print(JsonUtil.loadTrueResult(data)); + } catch (UserSystemCouponException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); + e.printStackTrace(); + } + } + + + /** + * 鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀� + * + * @param acceptData + * @param uid + * @param out + */ + @RequestMapping(value = "useFreeCoupon", method = RequestMethod.POST) + public void useFreeCoupon(AcceptData acceptData, Long uid, Long cid, String goodId, Integer goodsType, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (goodsType == null || goodsType > 3 || goodsType < 1) { + goodsType = Constant.SOURCE_TYPE_TAOBAO; + } + + try { + UserSystemCouponService.useGoodsCoupon(uid, cid, goodId, goodsType); + out.print(JsonUtil.loadTrueResult("浣跨敤鎴愬姛")); + } catch (UserSystemCouponException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult(1, "浣跨敤澶辫触")); + e.printStackTrace(); + } + } + + /** + * 鐢ㄦ埛濂栧姳鍒� + * + * @param acceptData + * @param page + * @param uid + * @param out + */ + @RequestMapping(value = "getOrderCouponList", method = RequestMethod.POST) + public void getOrderCouponList(AcceptData acceptData, Long uid, PrintWriter out) { + + if (uid == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + try { + List<UserSystemCouponVO> resultList = UserSystemCouponService.getOrderCouponList(uid); + + if (resultList == null) { + resultList = new ArrayList<UserSystemCouponVO>(); + } + + JSONObject data = new JSONObject(); + data.put("helpLink", configService.getValue(ConfigKeyEnum.rewardCouponHelp.getKey(), acceptData.getSystem())); + data.put("count", resultList.size()); + data.put("result_list", JsonUtil.getApiCommonGson().toJson(resultList)); + + out.print(JsonUtil.loadTrueResult(data)); + + } catch (UserSystemCouponException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); + e.printStackTrace(); + } + } + + /** + * 鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀� + * + * @param acceptData + * @param page + * @param uid + * @param out + */ + @RequestMapping(value = "useRewardCoupon") + public void useRewardCoupon(String callback, AcceptData acceptData, Long uid, Long cid, String orderNo, Integer goodsType, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + // 褰撳墠鐢ㄦ埛鏄惁VIP + boolean vip = userInviteService.verifyVIP(uid); + if (vip) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼氬憳涓嶅彲浣跨敤濂栧姳鍒�")); + return; + } + if (goodsType == null || goodsType > 3 || goodsType < 1) { + goodsType = Constant.SOURCE_TYPE_TAOBAO; + } + try { + UserSystemCouponService.useOrderCoupon(uid, cid, orderNo, goodsType, acceptData); + JSONObject data = commonOrderService.getRewardJumpInfo(orderNo, goodsType, userInfoService.getUserSystem(uid)); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } catch (UserSystemCouponException e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "浣跨敤澶辫触")); + e.printStackTrace(); + } + } + + /** + * 璁㈠崟-濂栧姳杩涘害璇︽儏 + * + * @param acceptData + * @param orderNo 璁㈠崟鍙� + * @param out + */ + @RequestMapping(value = "getRewardRecord", method = RequestMethod.POST) + public void getRewardCounponRecord(AcceptData acceptData, String orderNo, Integer goodsType, PrintWriter out) { + try { + if (goodsType == null || goodsType > 3 || goodsType < 1) { + goodsType = Constant.SOURCE_TYPE_TAOBAO; + } + + UserSystemCouponRecordVO rewardRecord = UserSystemCouponService.getRewardCouponRecord(orderNo, goodsType); + JSONObject data = new JSONObject(); + data.put("rewardRecord", rewardRecord); + out.print(JsonUtil.loadTrueResult(data)); + } catch (UserSystemCouponException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); + e.printStackTrace(); + } + } + + /** + * 璁㈠崟-濂栧姳杩涘害璇︽儏 + * + * @param acceptData + * @param orderNo 璁㈠崟鍙� + * @param out + */ + @RequestMapping(value = "getFreeCounponRecord", method = RequestMethod.POST) + public void getFreeCounponRecord(AcceptData acceptData, String orderNo, Integer goodsType, PrintWriter out) { + try { + if (goodsType == null || goodsType > 3 || goodsType < 1) { + goodsType = Constant.SOURCE_TYPE_TAOBAO; + } + + UserSystemCouponRecordVO rewardRecord = UserSystemCouponService.getFreeCouponRecord(orderNo, goodsType); + JSONObject data = new JSONObject(); + data.put("frreCouponRecord", rewardRecord); + out.print(JsonUtil.loadTrueResult(data)); + } catch (UserSystemCouponException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult(1, "鏌ヨ澶辫触")); + e.printStackTrace(); + } + } + + + /** + * 鏌ヨ鍏嶅崟鍒� + * + * @param acceptData + * @param uid + * @param auctionId + * @param out + */ + @RequestMapping(value = "getFreeCouponList", method = RequestMethod.POST) + public void getFreeCouponList(AcceptData acceptData, Long uid, String goodsId, Integer goodsType, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (goodsType == null || StringUtil.isNullOrEmpty(goodsId)) { + out.print(JsonUtil.loadFalseResult("鍙傛暟涓嶅畬鏁�")); + return; + } + + List<UserSystemCouponVO> list = UserSystemCouponService.getFreeCouponList(uid); + if (list == null) + list = new ArrayList<>(); + + + if (list.size() > 0) { + boolean state = false; + BigDecimal priceLimit = BigDecimal.valueOf(9.9); + switch (goodsType) { + case Constant.SOURCE_TYPE_TAOBAO: + state = checkCanUsedTB(goodsId, priceLimit); + break; + case Constant.SOURCE_TYPE_JD: + state = checkCanUsedTB(goodsId, priceLimit); + break; + case Constant.SOURCE_TYPE_PDD: + state = checkCanUsedTB(goodsId, priceLimit); + break; + default: + break; + } + + // 涓嶈兘浣跨敤 + if (!state) { + for (UserSystemCouponVO userCouponVO : list) { + userCouponVO.setState(0); + userCouponVO.setCouponPicture(userCouponVO.getCouponPictureInvalid()); + Map<String, Object> map = userCouponVO.getRemainDays(); + if (map != null) { + map.put("fontColor", "#CCCCCC"); + } + userCouponVO.setRemainDays(map); + } + } + } + + JSONObject dataTip = new JSONObject(); + dataTip.put("content", configService.getValue(ConfigKeyEnum.freeCouponTip.getKey(), acceptData.getSystem())); + dataTip.put("fontColor", "#F14242"); + + JSONObject data = new JSONObject(); + data.put("helpLink", configService.getValue(ConfigKeyEnum.freeCouponHelp.getKey(), acceptData.getSystem())); + data.put("tip", dataTip); + data.put("count", list.size()); + data.put("list", JsonUtil.getApiCommonGson().toJson(list)); + out.print(JsonUtil.loadTrueResult(data)); + } + + + private boolean checkCanUsedTB(String goodsId, BigDecimal priceLimit) { + try { + TaoBaoGoodsBrief goods = redisManager.getTaoBaoGoodsBrief(goodsId); + if (goods == null) + return false; + + BigDecimal quanPrice = TaoBaoUtil.getCouponPrice(goods); + if (quanPrice.compareTo(priceLimit) <= 0) + return true; + } catch (TaobaoGoodsDownException e) { + e.printStackTrace(); + } + return false; + } + + +} -- Gitblit v1.8.0