From f92377709d27a03726001e8fb1de51512c43d5e2 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期四, 28 二月 2019 14:48:33 +0800 Subject: [PATCH] bug修改 --- fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java | 322 +++++++++++++++++++++++++---------------------------- 1 files changed, 153 insertions(+), 169 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java index f5cdcaf..011d4dc 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java @@ -39,6 +39,7 @@ /** * 绂忓埄涓績 + * * @author Administrator * */ @@ -56,34 +57,35 @@ private UserSystemCouponService UserSystemCouponService; @Resource - private SwiperPictureService swiperPictureService; - + private SwiperPictureService swiperPictureService; + @Resource private CommonOrderService commonOrderService; - + @Resource private DeviceLotteryRecordService deviceLotteryRecordService; - + @Resource private SystemCouponService systemCouponService; - + @Resource private UserSystemCouponService userSystemCouponService; - + @Resource private UserInfoExtraService userInfoExtraService; - + @Resource private CommonOrderCountService commonOrderCountService; @Resource private ThreeSaleSerivce threeSaleSerivce; - + // 鏈�澶ф娊濂栨鏁� private static int MAX_COUNT = 5; - + /** * 鐢ㄦ埛鍒稿垪琛ㄦ煡璇� + * * @param acceptData * @param page * @param uid @@ -95,38 +97,38 @@ out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); return; } - + try { if (page == null || page < 1) { page = 1; } - + // 绂忓埄涓績鍥剧墖 - String topPicture = null; - if(page == 1) { + String topPicture = null; + if (page == 1) { List<SwiperPicture> listswiper = swiperPictureService.getByBannerCard("welfare_top"); if (listswiper != null && listswiper.size() > 0) { topPicture = listswiper.get(0).getSrc(); } } - + long count = 0; - List<UserSystemCouponVO> resultList = UserSystemCouponService.getUserCouponVOList((page - 1) * Constant.PAGE_SIZE, - Constant.PAGE_SIZE, uid ); - + List<UserSystemCouponVO> resultList = UserSystemCouponService + .getUserCouponVOList((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid); + if (resultList != null && resultList.size() > 0) { count = UserSystemCouponService.countUserCouponList(uid); } else 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() { @@ -142,7 +144,7 @@ e.printStackTrace(); } } - + } }); } @@ -154,13 +156,14 @@ e.printStackTrace(); } } - + /** * 鐢ㄦ埛濂栧姳鍒� + * * @param acceptData * @param page * @param uid - * @param auctionId 鍟嗗搧id + * @param auctionId 鍟嗗搧id * @param out */ @RequestMapping(value = "getGoodsCouponList", method = RequestMethod.POST) @@ -169,27 +172,26 @@ out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); return; } - + try { List<UserSystemCouponVO> resultList = UserSystemCouponService.getGoodsCouponList(uid, auctionId); - - if (resultList == null ) { - resultList =new ArrayList<UserSystemCouponVO>(); + + if (resultList == null) { + resultList = new ArrayList<UserSystemCouponVO>(); } - - + JSONObject dataTip = new JSONObject(); dataTip.put("content", configService.get("free_coupon_tip")); dataTip.put("fontColor", "#F14242"); - + JSONObject data = new JSONObject(); data.put("helpLink", configService.get("free_coupon_help")); 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) { @@ -197,10 +199,10 @@ e.printStackTrace(); } } - - + /** - * 鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀� + * 鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀� + * * @param acceptData * @param page * @param uid @@ -212,7 +214,7 @@ out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); return; } - + try { UserSystemCouponService.useGoodsCoupon(uid, cid, goodId); out.print(JsonUtil.loadTrueResult("浣跨敤鎴愬姛")); @@ -223,10 +225,10 @@ e.printStackTrace(); } } - - + /** * 鐢ㄦ埛濂栧姳鍒� + * * @param acceptData * @param page * @param uid @@ -234,26 +236,26 @@ */ @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>(); + + if (resultList == null) { + resultList = new ArrayList<UserSystemCouponVO>(); } - + JSONObject data = new JSONObject(); data.put("helpLink", configService.get("reward_coupon_help")); 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) { @@ -261,10 +263,10 @@ e.printStackTrace(); } } - - + /** - * 鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀� + * 鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀� + * * @param acceptData * @param page * @param uid @@ -272,19 +274,19 @@ */ @RequestMapping(value = "useRewardCoupon", method = RequestMethod.POST) public void useRewardCoupon(AcceptData acceptData, Long uid, Long cid, String orderNo, PrintWriter out) { - + if (uid == null) { out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); return; } - + try { UserSystemCouponService.useOrderCoupon(uid, cid, orderNo); - + JSONObject data = commonOrderService.getRewardJumpInfo(orderNo); - + out.print(JsonUtil.loadTrueResult(data)); - + } catch (UserSystemCouponException e) { out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); } catch (Exception e) { @@ -292,25 +294,26 @@ e.printStackTrace(); } } - + /** - * 璁㈠崟-濂栧姳杩涘害璇︽儏 + * 璁㈠崟-濂栧姳杩涘害璇︽儏 + * * @param acceptData - * @param orderNo 璁㈠崟鍙� + * @param orderNo 璁㈠崟鍙� * @param out */ @RequestMapping(value = "getRewardRecord", method = RequestMethod.POST) public void getRewardCounponRecord(AcceptData acceptData, String orderNo, PrintWriter out) { - + try { - + UserSystemCouponRecordVO rewardRecord = UserSystemCouponService.getRewardCouponRecord(orderNo); - + 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) { @@ -318,25 +321,26 @@ e.printStackTrace(); } } - + /** - * 璁㈠崟-濂栧姳杩涘害璇︽儏 + * 璁㈠崟-濂栧姳杩涘害璇︽儏 + * * @param acceptData - * @param orderNo 璁㈠崟鍙� + * @param orderNo 璁㈠崟鍙� * @param out */ @RequestMapping(value = "getFreeCounponRecord", method = RequestMethod.POST) public void getFreeCounponRecord(AcceptData acceptData, String orderNo, PrintWriter out) { - + try { - + UserSystemCouponRecordVO rewardRecord = UserSystemCouponService.getFreeCouponRecord(orderNo); - + 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) { @@ -344,7 +348,6 @@ e.printStackTrace(); } } - /** * 鑾峰彇鎶藉娆℃暟 @@ -356,15 +359,55 @@ */ @RequestMapping(value = "getLotteryCount") public void getLotteryCount(String callback, AcceptData acceptData, Long uid, PrintWriter out) { - int count = 0; try { - count = getSurplusCount(acceptData, uid); - } catch (Exception e) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMessage())); - e.printStackTrace(); - } + // 榛樿鏈�澶ф娊濂栨鏁� + int count = 5; - try { + if (uid == null || uid == 0) { // 鏈櫥褰� + 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() > 0) { + count = count - list.size(); + } + + } else { // 宸茬櫥褰� + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); + if (userInfoExtra == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛淇℃伅涓嶅瓨鍦�")); + return; + } + + Integer lotteryNewbies = userInfoExtra.getLotteryNewbies(); + if (lotteryNewbies == null) { // 鏈娊杩� + // 鏄惁鏈夎繃璁㈠崟锛氳繑鍒┿�佸垎浜鍗� + boolean hasOrder = commonOrderCountService.hasRebateAndShareOrder(uid); + if (hasOrder) { + count = 0; // 涓嶇畻鏂扮敤鎴� + } + userInfoExtra.setLotteryNewbies(count); + userInfoExtraService.saveUserInfoExtra(userInfoExtra); + } else { + count = lotteryNewbies; // 鍓╀綑娆℃暟 + } + } + // 鎶藉瑙勫垯 String lotteryRule = configService.get("lottery_rule_newbies"); @@ -379,8 +422,7 @@ e.printStackTrace(); } } - - + /** * 鑾峰彇鎶藉缁撴灉 * @@ -398,8 +440,8 @@ String prize = ""; String hasPrize = ""; Long couponId = null; - - if (uid == null) { // 鏈櫥褰� + + if (uid == null || uid == 0) { // 鏈櫥褰� int platformType = 0; String platform = acceptData.getPlatform(); if ("android".equals(platform)) { @@ -417,31 +459,29 @@ return; } int countPrize = 0; - + List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType, device); if (list != null && list.size() == MAX_COUNT) { // 鏃犳娊濂栨満浼� JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鎶藉娆℃暟涓嶈冻")); return; } else if (list != null && list.size() < MAX_COUNT) { // 鎷ユ湁鎶藉鏈轰細 - + for (DeviceLotteryRecord deviceLotteryRecord : list) { Long systemCouponId = deviceLotteryRecord.getSystemCouponId(); if (systemCouponId != null) { countPrize++; couponId = systemCouponId; } - + if (countPrize == 1) { SystemCoupon coupon = systemCouponService.selectByPrimaryKey(systemCouponId); hasPrize = coupon.getType().name(); } } - - + count = MAX_COUNT - 1 - list.size(); - - + } else { count = MAX_COUNT - 1; } @@ -455,11 +495,11 @@ if (hasPrize.equals(prize)) { prize = null; } else { - SystemCoupon coupon= systemCouponService.getCouponByType(prize); + SystemCoupon coupon = systemCouponService.getCouponByType(prize); newCouponId = coupon.getId(); } } - + // 鎻掑叆璁板綍 DeviceLotteryRecord record = new DeviceLotteryRecord(); record.setDevice(device); @@ -467,34 +507,35 @@ record.setSystemCouponId(newCouponId); record.setCreateTime(new Date()); deviceLotteryRecordService.insertSelective(record); - + } else { // 宸茬櫥褰� UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); if (userInfoExtra == null) { JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淇℃伅涓嶆纭�")); return; } - + Integer lotteryNewbies = userInfoExtra.getLotteryNewbies(); - if (lotteryNewbies == null || lotteryNewbies < 1 ) { // 娆℃暟宸茬敤鍏� + if (lotteryNewbies == null || lotteryNewbies < 1) { // 娆℃暟宸茬敤鍏� JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鎶藉娆℃暟涓嶈冻")); return; } else { count = lotteryNewbies - 1; // 鍓╀綑娆℃暟 } - - List<UserSystemCoupon> list = userSystemCouponService.getUserCouponBySource(uid, UserSystemCoupon.SOURCE_CHOUJIANG); + + List<UserSystemCoupon> list = userSystemCouponService.getUserCouponBySource(uid, + UserSystemCoupon.SOURCE_CHOUJIANG); if (list != null && list.size() == 1) { couponId = list.get(0).getSystemCoupon().getId(); SystemCoupon coupon = systemCouponService.selectByPrimaryKey(couponId); hasPrize = coupon.getType().name(); } - + // 濂栧搧 - prize = getLotteryPrize(MAX_COUNT, list.size(), MAX_COUNT- lotteryNewbies, couponId); + prize = getLotteryPrize(MAX_COUNT, list.size(), MAX_COUNT - lotteryNewbies, couponId); // 鎶戒腑 if (prize != null && prize.trim().length() > 0) { - + if (hasPrize.equals(prize)) { prize = null; } else { @@ -502,12 +543,12 @@ userSystemCouponService.insertUserCoupon(uid, prize, UserSystemCoupon.SOURCE_CHOUJIANG); } } - + // 鍓╀綑娆℃暟 userInfoExtra.setLotteryNewbies(count); userInfoExtraService.saveUserInfoExtra(userInfoExtra); } - + if (prize == null || prize.trim().length() == 0) { prize = "NoPrize"; } @@ -523,21 +564,22 @@ e.printStackTrace(); } } - + /** * 濂栧搧鎶藉彇 - * @param maxCount 鏈�澶ф鏁� + * + * @param maxCount 鏈�澶ф鏁� * @param hasPrize 鎷ユ湁濂栧搧鏁伴噺 - * @param record 宸叉娊娆℃暟 + * @param record 宸叉娊娆℃暟 * @param couponId 鍒竔d * @return */ public String getLotteryPrize(int maxCount, int countPrize, int record, Long couponId) { - - String prize = null; + + String prize = null; String freeCoupon = CouponTypeEnum.welfareFreeCoupon.name(); // 绂忓埄鍏嶈垂鍒� - String rebateCoupon = CouponTypeEnum.rebatePercentCoupon.name(); // 濂栧姳鍒� - + String rebateCoupon = CouponTypeEnum.rebatePercentCoupon.name(); // 濂栧姳鍒� + if (countPrize == 1 && record == maxCount - 1) { // 鏈�鍚庝竴娆★細 鍙敹鍒颁竴涓鍝� SystemCoupon systemCoupon = systemCouponService.selectByPrimaryKey(couponId); @@ -551,7 +593,7 @@ } else { prize = rebateCoupon; // 濂栧姳鍒� } - + } else if (countPrize == 0 && record == maxCount - 2) { // 鍓�3娆℃病鏈夊鍔辨椂銆佸悗闈袱娆″繀涓� long result = (1 + Math.round(Math.random() * (9))); @@ -560,7 +602,7 @@ } else { prize = rebateCoupon; // 濂栧姳鍒� } - + } else { // 澶т簬3娆℃満浼� if (countPrize < 2) { // 涓嶈冻涓や釜濂栧搧 @@ -569,69 +611,11 @@ prize = freeCoupon; // 绂忓埄鍏嶈垂鍒� } else if (result <= 6) { prize = rebateCoupon; // 濂栧姳鍒� - } - } - } - - return prize; - } - - - /** - * 鑾峰彇鎶藉缁撴灉 - * - * @param callback - * @param acceptData - * @param uid - * @param out - */ - public int getSurplusCount(AcceptData acceptData, Long uid) throws Exception { - - // 榛樿鏈�澶ф娊濂栨鏁� - int count = 5; - - if (uid == null) { // 鏈櫥褰� - int platformType = 0; - String platform = acceptData.getPlatform(); - if ("android".equals(platform)) { - platformType = 1; - } else if ("ios".equals(platform)) { - platformType = 2; - } else { - throw new Exception("骞冲彴鏈夎"); - } - - String device = acceptData.getDevice(); - if (device == null || device.trim().length() == 0) { - throw new Exception("璁惧涓嶅瓨鍦�"); - } - - List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType, device); - if (list != null && list.size() > 0) { - count = count - list.size(); - } - - } else { // 宸茬櫥褰� - UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); - if (userInfoExtra == null) { - throw new Exception("淇℃伅涓嶆纭�"); - } - - Integer lotteryNewbies = userInfoExtra.getLotteryNewbies(); - if (lotteryNewbies == null) { // 鏈娊杩� - // 鏄惁鏈夎繃璁㈠崟锛氳繑鍒┿�佸垎浜鍗� - boolean hasOrder = commonOrderCountService.hasRebateAndShareOrder(uid); - if (hasOrder) { - count = 0; // 涓嶇畻鏂扮敤鎴� } - userInfoExtra.setLotteryNewbies(count); - userInfoExtraService.saveUserInfoExtra(userInfoExtra); - } else { - count = lotteryNewbies; // 鍓╀綑娆℃暟 - } + } } - return count; + return prize; } } -- Gitblit v1.8.0