签到存在事务问题处理。优化这块逻辑相关
This commit is contained in:
parent
286214d9c3
commit
23ddca6f82
@ -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_promotion TO promotion_flag;
|
||||||
ALTER TABLE li_goods_sku RENAME COLUMN is_auth TO auth_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';
|
@ -67,14 +67,6 @@ public class MemberSignServiceImpl extends ServiceImpl<MemberSignMapper, MemberS
|
|||||||
//获取当前会员信息
|
//获取当前会员信息
|
||||||
AuthUser authUser = UserContext.getCurrentUser();
|
AuthUser authUser = UserContext.getCurrentUser();
|
||||||
if (authUser != null) {
|
if (authUser != null) {
|
||||||
QueryWrapper<MemberSign> queryWrapper = new QueryWrapper<>();
|
|
||||||
queryWrapper.eq("member_id", authUser.getId());
|
|
||||||
queryWrapper.between("create_time", new Date(DateUtil.startOfTodDay() * 1000), DateUtil.getCurrentDayEndTime());
|
|
||||||
//校验今天是否已经签到
|
|
||||||
List<MemberSign> todaySigns = this.baseMapper.getTodayMemberSign(queryWrapper);
|
|
||||||
if (todaySigns.size() > 0) {
|
|
||||||
throw new ServiceException(ResultCode.MEMBER_SIGN_REPEAT);
|
|
||||||
}
|
|
||||||
//当前签到天数的前一天日期
|
//当前签到天数的前一天日期
|
||||||
List<MemberSign> signs = this.baseMapper.getBeforeMemberSign(authUser.getId());
|
List<MemberSign> signs = this.baseMapper.getBeforeMemberSign(authUser.getId());
|
||||||
//构建参数
|
//构建参数
|
||||||
@ -89,14 +81,17 @@ public class MemberSignServiceImpl extends ServiceImpl<MemberSignMapper, MemberS
|
|||||||
} else {
|
} else {
|
||||||
memberSign.setSignDay(1);
|
memberSign.setSignDay(1);
|
||||||
}
|
}
|
||||||
Integer result = this.baseMapper.insert(memberSign);
|
//手动写入创建时间,以保证唯一索引生效
|
||||||
|
memberSign.setCreateTime(DateUtil.getCurrentDayEndTime());
|
||||||
|
try {
|
||||||
|
this.baseMapper.insert(memberSign);
|
||||||
//签到成功后发送消息赠送积分
|
//签到成功后发送消息赠送积分
|
||||||
if (result > 0) {
|
|
||||||
String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_SING.name();
|
String destination = rocketmqCustomProperties.getMemberTopic() + ":" + MemberTagsEnum.MEMBER_SING.name();
|
||||||
rocketMQTemplate.asyncSend(destination, memberSign, RocketmqSendCallbackBuilder.commonCallback());
|
rocketMQTemplate.asyncSend(destination, memberSign, RocketmqSendCallbackBuilder.commonCallback());
|
||||||
return true;
|
return true;
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ServiceException(ResultCode.MEMBER_SIGN_REPEAT);
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
throw new ServiceException(ResultCode.USER_NOT_LOGIN);
|
throw new ServiceException(ResultCode.USER_NOT_LOGIN);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user