From 4e938ce8cf18ebb12c102e7c18c1ca16fe1b15a8 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 28 二月 2019 14:03:44 +0800 Subject: [PATCH] 消息返回修改 --- fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java | 99 ++++++++++++++++++++++++++++++++----------------- 1 files changed, 64 insertions(+), 35 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 51f8969..f5cdcaf 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 @@ -1,17 +1,16 @@ package com.yeshi.fanli.controller.client; import java.io.PrintWriter; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; 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.DateUtil; import org.yeshi.utils.JsonUtil; import com.yeshi.fanli.entity.accept.AcceptData; @@ -21,10 +20,12 @@ import com.yeshi.fanli.entity.bus.user.UserSystemCoupon; import com.yeshi.fanli.entity.system.SystemCoupon; import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum; +import com.yeshi.fanli.exception.user.UserInfoExtraException; 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.hongbao.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.order.CommonOrderCountService; import com.yeshi.fanli.service.inter.order.CommonOrderService; import com.yeshi.fanli.service.inter.user.DeviceLotteryRecordService; @@ -44,6 +45,9 @@ @Controller @RequestMapping("api/v1/user/coupon") public class UserCouponController { + + @Resource(name = "taskExecutor") + private TaskExecutor executor; @Resource private ConfigService configService; @@ -72,6 +76,8 @@ @Resource private CommonOrderCountService commonOrderCountService; + @Resource + private ThreeSaleSerivce threeSaleSerivce; // 鏈�澶ф娊濂栨鏁� private static int MAX_COUNT = 5; @@ -120,6 +126,26 @@ 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.setCouponNews(0); + try { + userInfoExtraService.saveUserInfoExtra(userInfoExtra); + } catch (UserInfoExtraException e) { + e.printStackTrace(); + } + } + + } + }); + } } catch (UserSystemCouponException e) { out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); @@ -134,21 +160,23 @@ * @param acceptData * @param page * @param uid + * @param auctionId 鍟嗗搧id * @param out */ @RequestMapping(value = "getGoodsCouponList", method = RequestMethod.POST) - public void getGoodsCouponList(AcceptData acceptData, Long uid, PrintWriter out) { + 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); + List<UserSystemCouponVO> resultList = UserSystemCouponService.getGoodsCouponList(uid, auctionId); if (resultList == null ) { resultList =new ArrayList<UserSystemCouponVO>(); } + JSONObject dataTip = new JSONObject(); dataTip.put("content", configService.get("free_coupon_tip")); @@ -368,6 +396,7 @@ // 濂栧搧 int count = 0; String prize = ""; + String hasPrize = ""; Long couponId = null; if (uid == null) { // 鏈櫥褰� @@ -387,7 +416,7 @@ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璁惧涓嶅瓨鍦�")); return; } - int hasPrize = 0; + int countPrize = 0; List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType, device); @@ -395,25 +424,40 @@ 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) { - hasPrize++; + 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; } // 濂栧搧 - prize = getLotteryPrize(MAX_COUNT, hasPrize, list.size(), couponId); + prize = getLotteryPrize(MAX_COUNT, countPrize, list.size(), couponId); // 鎶戒腑 Long newCouponId = null; if (prize != null && prize.trim().length() > 0) { - SystemCoupon coupon= systemCouponService.getCouponByType(prize); - newCouponId =coupon.getId(); + // 宸插瓨鍦ㄦ鍒� + if (hasPrize.equals(prize)) { + prize = null; + } else { + SystemCoupon coupon= systemCouponService.getCouponByType(prize); + newCouponId = coupon.getId(); + } } // 鎻掑叆璁板綍 @@ -442,34 +486,21 @@ 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); // 鎶戒腑 if (prize != null && prize.trim().length() > 0) { - SystemCoupon coupon= systemCouponService.getCouponByType(prize); - String endDay = DateUtil.plusDay(coupon.getExpiryDay(), new Date()); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - Date endTime = format.parse(endDay); - - int stateActivated = 1; - if (coupon.getType() == CouponTypeEnum.welfareFreeCoupon) { - stateActivated = 0; + if (hasPrize.equals(prize)) { + prize = null; + } else { + // 鎻掑叆鍒镐俊鎭� + userSystemCouponService.insertUserCoupon(uid, prize, UserSystemCoupon.SOURCE_CHOUJIANG); } - - UserSystemCoupon userCoupon = new UserSystemCoupon(); - userCoupon.setUid(uid); - userCoupon.setSource(UserSystemCoupon.SOURCE_CHOUJIANG); - userCoupon.setSystemCoupon(coupon); - userCoupon.setState(UserSystemCoupon.STATE_CAN_USE); - userCoupon.setStateActivated(stateActivated); - userCoupon.setStartTime(new Date()); - userCoupon.setEndTime(endTime); - userCoupon.setCreateTime(new Date()); - userCoupon.setUpdateTime(new Date()); - userSystemCouponService.insertSelective(userCoupon); } // 鍓╀綑娆℃暟 @@ -501,13 +532,13 @@ * @param couponId 鍒竔d * @return */ - public String getLotteryPrize(int maxCount, int hasPrize, int record, Long couponId) { + public String getLotteryPrize(int maxCount, int countPrize, int record, Long couponId) { String prize = null; String freeCoupon = CouponTypeEnum.welfareFreeCoupon.name(); // 绂忓埄鍏嶈垂鍒� String rebateCoupon = CouponTypeEnum.rebatePercentCoupon.name(); // 濂栧姳鍒� - if (hasPrize == 1 && record == maxCount - 1) { + if (countPrize == 1 && record == maxCount - 1) { // 鏈�鍚庝竴娆★細 鍙敹鍒颁竴涓鍝� SystemCoupon systemCoupon = systemCouponService.selectByPrimaryKey(couponId); if (systemCoupon != null) { @@ -521,7 +552,7 @@ prize = rebateCoupon; // 濂栧姳鍒� } - } else if (hasPrize == 0 && record == maxCount - 2) { + } else if (countPrize == 0 && record == maxCount - 2) { // 鍓�3娆℃病鏈夊鍔辨椂銆佸悗闈袱娆″繀涓� long result = (1 + Math.round(Math.random() * (9))); if (result <= 5) { @@ -532,7 +563,7 @@ } else { // 澶т簬3娆℃満浼� - if (hasPrize < 2) { // 涓嶈冻涓や釜濂栧搧 + if (countPrize < 2) { // 涓嶈冻涓や釜濂栧搧 long result = (1 + Math.round(Math.random() * (9))); if (result <= 3) { prize = freeCoupon; // 绂忓埄鍏嶈垂鍒� @@ -545,7 +576,6 @@ return prize; } - /** * 鑾峰彇鎶藉缁撴灉 @@ -596,7 +626,6 @@ } userInfoExtra.setLotteryNewbies(count); userInfoExtraService.saveUserInfoExtra(userInfoExtra); - } else { count = lotteryNewbies; // 鍓╀綑娆℃暟 } -- Gitblit v1.8.0