From 1c1d35401fdf5c89dcf8c3965fb9744d59b7f227 Mon Sep 17 00:00:00 2001 From: zyy <121611808@qq.com> Date: Thu, 13 Aug 2020 13:29:13 +0800 Subject: [PATCH] up --- .../java/com/bsd/say/config/InitConfig.java | 9 ++- .../say/controller/AwardListController.java | 18 +++-- .../say/exception/AreadyAwardException.java | 9 +++ .../com/bsd/say/service/AwardListService.java | 3 +- .../service/impl/AwardListServiceImpl.java | 80 +++++++++++++------ .../bsd/say/service/impl/WeixinService.java | 25 +++--- src/main/resources/application-dev.yml | 8 +- src/main/resources/application-prod.yml | 8 +- 8 files changed, 114 insertions(+), 46 deletions(-) create mode 100644 src/main/java/com/bsd/say/exception/AreadyAwardException.java diff --git a/src/main/java/com/bsd/say/config/InitConfig.java b/src/main/java/com/bsd/say/config/InitConfig.java index af61e6f..e3f7a38 100644 --- a/src/main/java/com/bsd/say/config/InitConfig.java +++ b/src/main/java/com/bsd/say/config/InitConfig.java @@ -1,5 +1,8 @@ package com.bsd.say.config; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.bsd.say.entities.AwardList; +import com.bsd.say.mapper.AwardListMapper; import com.bsd.say.service.RedisService; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -14,12 +17,16 @@ public class InitConfig { private Integer amount; @Resource RedisService redisService; + @Resource + private AwardListMapper awardListMapper; @PostConstruct public void initAwardConfig() { - for (int i = 0; i < amount; i++) { + int awardCount = awardListMapper.selectCount(Wrappers.lambdaQuery().eq(AwardList::getAwardType, 1)); + System.out.println("----award---" + awardCount); + for (int i = awardCount + 1; i < amount + 1; i++) { redisService.set("award-" + i, i); } diff --git a/src/main/java/com/bsd/say/controller/AwardListController.java b/src/main/java/com/bsd/say/controller/AwardListController.java index f174155..c48b812 100644 --- a/src/main/java/com/bsd/say/controller/AwardListController.java +++ b/src/main/java/com/bsd/say/controller/AwardListController.java @@ -3,6 +3,7 @@ package com.bsd.say.controller; import com.bsd.say.beans.AjaxRequest; import com.bsd.say.beans.AjaxResult; import com.bsd.say.entities.AwardList; +import com.bsd.say.exception.AreadyAwardException; import com.bsd.say.service.AwardListService; import org.springframework.web.bind.annotation.*; @@ -12,9 +13,10 @@ import javax.servlet.http.HttpServletRequest; @RestController @RequestMapping("award-list") @CrossOrigin -public class AwardListController extends BaseController{ +public class AwardListController extends BaseController { @Resource private AwardListService awardListService; + @Override public AwardListService getBaseService() { return super.getBaseService(); @@ -40,7 +42,7 @@ public class AwardListController extends BaseController{ - AjaxResult award(AjaxRequest ajaxRequest); + AjaxResult award(AjaxRequest ajaxRequest) throws AreadyAwardException; AjaxResult isValidLottery(AjaxRequest ajaxRequest); diff --git a/src/main/java/com/bsd/say/service/impl/AwardListServiceImpl.java b/src/main/java/com/bsd/say/service/impl/AwardListServiceImpl.java index ac66173..46fcf66 100644 --- a/src/main/java/com/bsd/say/service/impl/AwardListServiceImpl.java +++ b/src/main/java/com/bsd/say/service/impl/AwardListServiceImpl.java @@ -8,11 +8,13 @@ import com.bsd.say.entities.AwardList; import com.bsd.say.entities.Coupon; import com.bsd.say.entities.Record; import com.bsd.say.entities.Users; +import com.bsd.say.exception.AreadyAwardException; import com.bsd.say.mapper.AwardListMapper; import com.bsd.say.mapper.CouponMapper; import com.bsd.say.mapper.RecordMapper; import com.bsd.say.mapper.UsersMapper; import com.bsd.say.service.AwardListService; +import com.bsd.say.service.RedisService; import com.bsd.say.util.LogUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -29,6 +31,7 @@ import java.util.List; @Service("awardListService") @Transactional public class AwardListServiceImpl extends BaseServiceImpl implements AwardListService { + @Value("${award.rule}") private Integer rule; @Value("${award.amount}") @@ -40,6 +43,8 @@ public class AwardListServiceImpl extends BaseServiceImpllambdaQuery().eq(Users::getOpenId, openId) - .and(queryWrapper1 -> queryWrapper1.eq(Users::getState, 1))); + Users users = usersMapper.selectOne(Wrappers.lambdaQuery().eq(Users::getOpenId, openId) + .and(queryWrapper1 -> queryWrapper1.eq(Users::getState, 1))); + +// if (redisService.exists("user-award-" + users.getId())) { +// +// AwardList userAWardList = userAWardList = awardListMapper.selectOne(Wrappers.lambdaQuery().eq(AwardList::getUserId, users.getId())); +// if (null != userAWardList) { +// +// +// redisService.set("user-award-" + users.getId(), userAWardList.toString()); +// throw new AreadyAwardException("您已经抽过奖了, 不要太贪心哦~~~"); +// } +// } + +// synchronized (this) { AwardList maxIdAward = awardListMapper.selectByMaxId(); Integer newAwardNumner = maxIdAward.getAwardNumber() + 1; AwardList awardList = new AwardList(); @@ -89,9 +104,13 @@ public class AwardListServiceImpl extends BaseServiceImpl rule * amount) { + + if (newAwardNumner > rule * amount && !redisService.exists("award-" + (awardNumber))) { + logger.info("没一等奖了"); awardList.setAwardName("波司登优惠券"); awardList.setAwardType(2); @@ -100,19 +119,29 @@ public class AwardListServiceImpl extends BaseServiceImpl jpa: properties: @@ -42,8 +46,8 @@ server: port: 8082 award: - rule: 5 - amount: 10 + rule: 30 + amount: 100 wechat: aesKey: r4cbRuIfbbnTIgJoQE33vJACJuoioZ5pRAhumITsP8O diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 81e83e3..5b787be 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -17,6 +17,10 @@ spring: username: bsdloveh5 password: L0ve#h5_Bsd202008+ driver-class-name: com.mysql.jdbc.Driver + hikari: + minimum-idle: 20 + maximum-pool-size: 50 + connection-timeout: 30000 #解决整合后报的一个错: jpa: properties: @@ -42,8 +46,8 @@ server: port: 8082 award: - rule: 5 - amount: 10 + rule: 10 + amount: 100 wechat: aesKey: r4cbRuIfbbnTIgJoQE33vJACJuoioZ5pRAhumITsP8O