diff --git a/src/main/java/com/bsd/say/entities/AwardList.java b/src/main/java/com/bsd/say/entities/AwardList.java index 245e278..55f9b66 100644 --- a/src/main/java/com/bsd/say/entities/AwardList.java +++ b/src/main/java/com/bsd/say/entities/AwardList.java @@ -45,4 +45,9 @@ public class AwardList extends BaseEntity{ * 收奖人 */ private String receiverName; + + /** + * 是否已被领取 + */ + private int isReceive; } 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 3a3afff..fc07b3f 100644 --- a/src/main/java/com/bsd/say/service/impl/AwardListServiceImpl.java +++ b/src/main/java/com/bsd/say/service/impl/AwardListServiceImpl.java @@ -214,6 +214,7 @@ public class AwardListServiceImpl extends BaseServiceImpl imp private RedisTemplate redisTemplate; @Resource private RecordMapper recordMapper; + @Autowired + private AwardListMapper awardListMapper; @Override public CouponMapper getBaseMapper() { return this.couponMapper; @@ -88,6 +88,51 @@ public class CouponServiceImpl extends BaseServiceImpl imp ajaxResult.setRetmsg("PHONE OR CODE MISSING"); return ajaxResult; }else { + //先校验直接领券的 + if (!isAward){ + Users users; + if (StringUtils.isBlank(code)){ + //来源H5 + users = usersMapper.selectOne(Wrappers.lambdaQuery().eq(Users::getPhone,phone) + .and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1))); + if (users == null){ + logger.info("非微信端新会员"); + Users newUsers = new Users(); + newUsers.setPhone(phone); + newUsers.setUserType(1); + newUsers.setCreateDateTime(new Date()); + newUsers.setUpdateDateTime(new Date()); + usersMapper.insert(newUsers); + }else { + logger.info("非微信访问端老会员,可能之前用微信访问过"); + List coupons = couponMapper.selectList(Wrappers.lambdaQuery().eq(Coupon::getUserId,users.getId()) + .and(queryWrapper1 -> queryWrapper1.eq(Coupon::getState,1))); + if (coupons.size() > 0){ + ajaxResult.setRetmsg("已经领过"); + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setData(false); + return ajaxResult; + } + } + }else { + //来源微信 + String unionId = weixinService.getUnionId(code); + logger.info("union_id:"+unionId); + users = usersMapper.selectOne(Wrappers.lambdaQuery().eq(Users::getUnionId,unionId) + .and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1))); + //防非法请求,再校验一遍 + List coupons = couponMapper.selectList(Wrappers.lambdaQuery().eq(Coupon::getUserId,users.getId()) + .and(queryWrapper1 -> queryWrapper1.eq(Coupon::getState,1))); + if (coupons.size() > 0){ + ajaxResult.setRetmsg("非法请求,已经领过"); + ajaxResult.setRetcode(AjaxResult.FAILED); + ajaxResult.setData(false); + return ajaxResult; + } + } + } + + if (noteCode.equals(redisTemplate.opsForValue().get(phone))){ String token = MD5Utils.md5(tokenkey+df.format(new Date())); //验证成功,领券 @@ -109,6 +154,12 @@ public class CouponServiceImpl extends BaseServiceImpl imp users.setPhone(phone); users.setUpdateDateTime(new Date()); usersMapper.updateById(users); + + AwardList awardList = awardListMapper.selectOne(Wrappers.lambdaQuery().eq(AwardList::getUserId,users.getId()) + .and(queryWrapper1 -> queryWrapper1.eq(AwardList::getState,1))); + awardList.setIsReceive(1); + awardList.setUpdateDateTime(new Date()); + awardListMapper.updateById(awardList); //统计领取二等奖 Record record = recordMapper.selectOne(Wrappers.lambdaQuery().eq(Record::getUnionId,unionId) .and(queryWrapper1 -> queryWrapper1.eq(Record::getState,1))); @@ -121,50 +172,16 @@ public class CouponServiceImpl extends BaseServiceImpl imp //来源H5 users = usersMapper.selectOne(Wrappers.lambdaQuery().eq(Users::getPhone,phone) .and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1))); - if (users == null){ - logger.info("非微信端新会员"); - Users newUsers = new Users(); - newUsers.setPhone(phone); - newUsers.setUserType(1); - newUsers.setCreateDateTime(new Date()); - newUsers.setUpdateDateTime(new Date()); - usersMapper.insert(newUsers); - }else { - logger.info("非微信访问端老会员,可能之前用微信访问过"); - List coupons = couponMapper.selectList(Wrappers.lambdaQuery().eq(Coupon::getUserId,users.getId()) - .and(queryWrapper1 -> queryWrapper1.eq(Coupon::getState,1))); - if (coupons.size() > 0){ - ajaxResult.setRetmsg("已经领过"); - ajaxResult.setRetcode(AjaxResult.FAILED); - ajaxResult.setData(false); - return ajaxResult; - } - } - ajaxResult.setRetmsg("可以领取优惠券"); - ajaxResult.setRetcode(AjaxResult.SUCCESS); - ajaxResult.setData(true); - Record record = new Record(); record.setPhone(phone); record.setIsHavaCoupon1("有"); record.setCreateDateTime(new Date()); recordMapper.insert(record); - }else { //来源微信 String unionId = weixinService.getUnionId(code); - logger.info("union_id:"+unionId); - users = usersMapper.selectOne(Wrappers.lambdaQuery().eq(Users::getUnionId,unionId) + users = usersMapper.selectOne(Wrappers.lambdaQuery().eq(Users::getPhone,phone) .and(queryWrapper1 -> queryWrapper1.eq(Users::getState,1))); - //防非法请求,再校验一遍 - List coupons = couponMapper.selectList(Wrappers.lambdaQuery().eq(Coupon::getUserId,users.getId()) - .and(queryWrapper1 -> queryWrapper1.eq(Coupon::getState,1))); - if (coupons.size() > 0){ - ajaxResult.setRetmsg("非法请求,已经领过"); - ajaxResult.setRetcode(AjaxResult.FAILED); - ajaxResult.setData(false); - return ajaxResult; - } if (users.getUserType() == 2){ //既是寄件人又是收信人 users.setUserType(3);