| | |
| | | |
| | | 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; |
| | |
| | | |
| | | /** |
| | | * 福利中心 |
| | | * |
| | | * @author Administrator |
| | | * |
| | | * @author Administrator |
| | | */ |
| | | @Controller |
| | | @RequestMapping("api/v1/user/coupon") |
| | | public class UserCouponController { |
| | | |
| | | @Resource(name = "taskExecutor") |
| | | private TaskExecutor executor; |
| | | @Resource(name = "taskExecutor") |
| | | private TaskExecutor executor; |
| | | |
| | | @Resource |
| | | private ConfigService configService; |
| | | @Resource |
| | | private ConfigService configService; |
| | | |
| | | @Resource |
| | | private SystemCouponService systemCouponService; |
| | | |
| | | @Resource |
| | | private UserSystemCouponService UserSystemCouponService; |
| | | @Resource |
| | | private SystemCouponService systemCouponService; |
| | | |
| | | @Resource |
| | | private SwiperPictureService swiperPictureService; |
| | | @Resource |
| | | private UserSystemCouponService UserSystemCouponService; |
| | | |
| | | @Resource |
| | | private CommonOrderService commonOrderService; |
| | | @Resource |
| | | private SwiperPictureService swiperPictureService; |
| | | |
| | | @Resource |
| | | private DeviceLotteryRecordService deviceLotteryRecordService; |
| | | @Resource |
| | | private CommonOrderService commonOrderService; |
| | | |
| | | @Resource |
| | | private UserSystemCouponService userSystemCouponService; |
| | | @Resource |
| | | private DeviceLotteryRecordService deviceLotteryRecordService; |
| | | |
| | | @Resource |
| | | private UserInfoExtraService userInfoExtraService; |
| | | @Resource |
| | | private UserSystemCouponService userSystemCouponService; |
| | | |
| | | @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; |
| | | } |
| | | @Resource |
| | | private UserInfoExtraService userInfoExtraService; |
| | | |
| | | try { |
| | | if (page == null || page < 1) { |
| | | page = 1; |
| | | } |
| | | @Resource |
| | | private UserInfoService userInfoService; |
| | | |
| | | // 福利中心图片 |
| | | 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); |
| | | @Resource |
| | | private UserVIPInfoService userVIPInfoService; |
| | | |
| | | if (resultList == null) { |
| | | resultList = new ArrayList<UserSystemCouponVO>(); |
| | | } |
| | | @Resource |
| | | private UserInviteService userInviteService; |
| | | |
| | | 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)); |
| | | @Resource |
| | | private RedisManager redisManager; |
| | | |
| | | // 更新福利中心未读数量 |
| | | 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); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | @Resource |
| | | private JDGoodsCacheUtil jdGoodsCacheUtil; |
| | | |
| | | } catch (UserSystemCouponException e) { |
| | | out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); |
| | | } catch (Exception e) { |
| | | out.print(JsonUtil.loadFalseResult(1, "查询失败")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | @Resource |
| | | private PinDuoDuoCacheUtil pinDuoDuoCacheUtil; |
| | | |
| | | /** |
| | | * 用户奖励券 |
| | | * |
| | | * @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>(); |
| | | } |
| | | /** |
| | | * 用户券列表查询 |
| | | * |
| | | * @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; |
| | | } |
| | | |
| | | JSONObject dataTip = new JSONObject(); |
| | | dataTip.put("content", configService.getValue(ConfigKeyEnum.freeCouponTip.getKey(),acceptData.getSystem())); |
| | | dataTip.put("fontColor", "#F14242"); |
| | | try { |
| | | if (page == null || page < 1) { |
| | | page = 1; |
| | | } |
| | | |
| | | 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(); |
| | | } |
| | | } |
| | | // 福利中心图片 |
| | | 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(); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 免单券使用记录 以及状态修改 |
| | | * |
| | | * @param acceptData |
| | | * @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; |
| | | } |
| | | 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; |
| | | } |
| | | |
| | | 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(); |
| | | } |
| | | } |
| | | long count = UserSystemCouponService.countCouponOld(uid); |
| | | List<UserSystemCouponVO> resultList = UserSystemCouponService |
| | | .getUserCouponVOList((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, changeJump); |
| | | |
| | | /** |
| | | * 用户奖励券 |
| | | * |
| | | * @param acceptData |
| | | * @param page |
| | | * @param uid |
| | | * @param out |
| | | */ |
| | | @RequestMapping(value = "getOrderCouponList", method = RequestMethod.POST) |
| | | public void getOrderCouponList(AcceptData acceptData, Long uid, PrintWriter out) { |
| | | if (resultList == null) { |
| | | resultList = new ArrayList<UserSystemCouponVO>(); |
| | | } |
| | | |
| | | if (uid == null) { |
| | | out.print(JsonUtil.loadFalseResult("用户未登录")); |
| | | return; |
| | | } |
| | | JSONObject data = new JSONObject(); |
| | | data.put("topPicture", topPicture); |
| | | data.put("count", count); |
| | | data.put("result_list", JsonUtil.getApiCommonGson().toJson(resultList)); |
| | | |
| | | try { |
| | | List<UserSystemCouponVO> resultList = UserSystemCouponService.getOrderCouponList(uid); |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | |
| | | if (resultList == null) { |
| | | resultList = new ArrayList<UserSystemCouponVO>(); |
| | | } |
| | | // 更新福利中心未读数量 |
| | | 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); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | 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)); |
| | | } catch (UserSystemCouponException e) { |
| | | out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); |
| | | } catch (Exception e) { |
| | | out.print(JsonUtil.loadFalseResult(1, "查询失败")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | |
| | | out.print(JsonUtil.loadTrueResult(data)); |
| | | /** |
| | | * 用户奖励券 |
| | | * |
| | | * @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; |
| | | } |
| | | |
| | | } catch (UserSystemCouponException e) { |
| | | out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); |
| | | } catch (Exception e) { |
| | | out.print(JsonUtil.loadFalseResult(1, "查询失败")); |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | try { |
| | | List<UserSystemCouponVO> resultList = UserSystemCouponService.getGoodsCouponList(uid, auctionId); |
| | | if (resultList == null) { |
| | | resultList = new ArrayList<UserSystemCouponVO>(); |
| | | } |
| | | |
| | | /** |
| | | * 免单券使用记录 以及状态修改 |
| | | * |
| | | * @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); |
| | | 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(); |
| | | } |
| | | } |
| | | JSONObject dataTip = new JSONObject(); |
| | | dataTip.put("content", configService.getValue(ConfigKeyEnum.freeCouponTip.getKey(), acceptData.getSystem())); |
| | | dataTip.put("fontColor", "#F14242"); |
| | | |
| | | /** |
| | | * 订单-奖励进度详情 |
| | | * |
| | | * @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(); |
| | | } |
| | | } |
| | | 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 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; |
| | | } |
| | | /** |
| | | * 免单券使用记录 以及状态修改 |
| | | * |
| | | * @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 || 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(Long.parseLong(goodsId), priceLimit); |
| | | break; |
| | | case Constant.SOURCE_TYPE_JD: |
| | | state = checkCanUsedTB(Long.parseLong(goodsId), priceLimit); |
| | | break; |
| | | case Constant.SOURCE_TYPE_PDD: |
| | | state = checkCanUsedTB(Long.parseLong(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); |
| | | } |
| | | } |
| | | } |
| | | if (goodsType == null || goodsType > 3 || goodsType < 1) { |
| | | goodsType = Constant.SOURCE_TYPE_TAOBAO; |
| | | } |
| | | |
| | | 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(Long 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; |
| | | } |
| | | 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(); |
| | | } |
| | | } |
| | | |
| | | |
| | | private boolean checkCanUsedJD(Long goodsId, BigDecimal priceLimit) { |
| | | JDGoods goods = jdGoodsCacheUtil.getGoodsInfo(goodsId); |
| | | if (goods == null) |
| | | return false; |
| | | BigDecimal quanPrice = JDUtil.getCouponPrice(goods); |
| | | if (quanPrice.compareTo(priceLimit) <= 0) |
| | | return true; |
| | | |
| | | return false; |
| | | } |
| | | |
| | | private boolean checkCanUsedPDD(Long goodsId, BigDecimal priceLimit) { |
| | | PDDGoodsDetail goods = pinDuoDuoCacheUtil.getGoodsInfo(goodsId); |
| | | if (goods == null) |
| | | return false; |
| | | BigDecimal quanPrice = PinDuoDuoUtil.getCouponPrice(goods); |
| | | if (quanPrice.compareTo(priceLimit) <= 0) |
| | | return true; |
| | | |
| | | return false; |
| | | } |
| | | |
| | | /** |
| | | * 用户奖励券 |
| | | * |
| | | * @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; |
| | | } |
| | | |
| | | |
| | | } |