From 23ddca6f82bd3ced7761458d3c787ab3819128ef Mon Sep 17 00:00:00 2001 From: Chopper Date: Mon, 24 Jan 2022 17:30:52 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AD=BE=E5=88=B0=E5=AD=98=E5=9C=A8=E4=BA=8B?= =?UTF-8?q?=E5=8A=A1=E9=97=AE=E9=A2=98=E5=A4=84=E7=90=86=E3=80=82=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E8=BF=99=E5=9D=97=E9=80=BB=E8=BE=91=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DB/version4.2.3toMASTER.sql | 8 ++++++++ .../serviceimpl/MemberSignServiceImpl.java | 19 +++++++------------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/DB/version4.2.3toMASTER.sql b/DB/version4.2.3toMASTER.sql index a9eeb7ee..c34d6097 100644 --- a/DB/version4.2.3toMASTER.sql +++ b/DB/version4.2.3toMASTER.sql @@ -54,3 +54,11 @@ ALTER TABLE li_goods RENAME COLUMN is_auth TO auth_flag; ALTER TABLE li_goods_sku RENAME COLUMN is_promotion TO promotion_flag; ALTER TABLE li_goods_sku RENAME COLUMN is_auth TO auth_flag; + + +-- 增加会员表索引 +ALTER TABLE li_member ADD INDEX query_mobile (`mobile`) COMMENT 'query_member'; +-- 会员签到唯一索引 惠券查询索引 +ALTER TABLE li_member_sign ADD INDEX query_create_time (`create_time`) COMMENT 'query_create_time'; +ALTER TABLE li_member_sign ADD INDEX query_member_id (`member_id`) COMMENT 'query_member_id'; +ALTER TABLE li_member_sign add unique uk_member_day (member_id, create_time) COMMENT 'uk_member_day'; \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberSignServiceImpl.java b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberSignServiceImpl.java index 25dd0ea0..f5821133 100644 --- a/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberSignServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberSignServiceImpl.java @@ -67,14 +67,6 @@ public class MemberSignServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("member_id", authUser.getId()); - queryWrapper.between("create_time", new Date(DateUtil.startOfTodDay() * 1000), DateUtil.getCurrentDayEndTime()); - //校验今天是否已经签到 - List todaySigns = this.baseMapper.getTodayMemberSign(queryWrapper); - if (todaySigns.size() > 0) { - throw new ServiceException(ResultCode.MEMBER_SIGN_REPEAT); - } //当前签到天数的前一天日期 List signs = this.baseMapper.getBeforeMemberSign(authUser.getId()); //构建参数 @@ -89,14 +81,17 @@ public class MemberSignServiceImpl extends ServiceImpl 0) { + //手动写入创建时间,以保证唯一索引生效 + memberSign.setCreateTime(DateUtil.getCurrentDayEndTime()); + try { + this.baseMapper.insert(memberSign); + //签到成功后发送消息赠送积分 String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_SING.name(); rocketMQTemplate.asyncSend(destination, memberSign, RocketmqSendCallbackBuilder.commonCallback()); return true; + } catch (Exception e) { + throw new ServiceException(ResultCode.MEMBER_SIGN_REPEAT); } - return false; } throw new ServiceException(ResultCode.USER_NOT_LOGIN); }