Merge branch 'master' of gitee.com:beijing_hongye_huicheng/lilishop

This commit is contained in:
Chopper 2021-08-09 09:14:08 +08:00
commit bf2882b566
14 changed files with 70 additions and 73 deletions

View File

@ -7,6 +7,7 @@ import cn.lili.event.MemberRegisterEvent;
import cn.lili.event.OrderStatusChangeEvent;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.entity.dto.OrderMessage;
@ -54,7 +55,7 @@ public class MemberExperienceExecute implements MemberRegisterEvent, GoodsCommen
//获取经验值设置
ExperienceSetting experienceSetting = getExperienceSetting();
//赠送会员经验值
memberService.updateMemberExperience(Long.valueOf(experienceSetting.getRegister().longValue()), true, member.getId(), "会员注册,赠送经验值" + experienceSetting.getRegister());
memberService.updateMemberPoint(Long.valueOf(experienceSetting.getRegister().longValue()), PointTypeEnum.INCREASE.name(), member.getId(), "会员注册,赠送经验值" + experienceSetting.getRegister());
}
/**
@ -67,7 +68,7 @@ public class MemberExperienceExecute implements MemberRegisterEvent, GoodsCommen
//获取经验值设置
ExperienceSetting experienceSetting = getExperienceSetting();
//赠送会员经验值
memberService.updateMemberExperience(Long.valueOf(experienceSetting.getComment().longValue()), true, memberEvaluation.getMemberId(), "会员评价,赠送经验值" + experienceSetting.getComment());
memberService.updateMemberPoint(Long.valueOf(experienceSetting.getComment().longValue()), PointTypeEnum.INCREASE.name(), memberEvaluation.getMemberId(), "会员评价,赠送经验值" + experienceSetting.getComment());
}
/**
@ -85,7 +86,7 @@ public class MemberExperienceExecute implements MemberRegisterEvent, GoodsCommen
//计算赠送经验值数量
Double point = CurrencyUtil.mul(experienceSetting.getMoney(), order.getFlowPrice(), 0);
//赠送会员经验值
memberService.updateMemberExperience(point.longValue(), true, order.getMemberId(), "会员下单,赠送经验值" + point + "");
memberService.updateMemberPoint(point.longValue(), PointTypeEnum.INCREASE.name(), order.getMemberId(), "会员下单,赠送经验值" + point + "");
}
}

View File

@ -10,6 +10,7 @@ import cn.lili.event.MemberRegisterEvent;
import cn.lili.event.OrderStatusChangeEvent;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.order.order.entity.dos.AfterSale;
import cn.lili.modules.order.order.entity.dos.Order;
@ -61,7 +62,7 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp
//获取积分设置
PointSetting pointSetting = getPointSetting();
//赠送会员积分
memberService.updateMemberPoint(Long.valueOf(pointSetting.getRegister().longValue()), true, member.getId(), "会员注册,赠送积分" + pointSetting.getRegister() + "");
memberService.updateMemberPoint(Long.valueOf(pointSetting.getRegister().longValue()), PointTypeEnum.INCREASE.name(), member.getId(), "会员注册,赠送积分" + pointSetting.getRegister() + "");
}
/**
@ -74,7 +75,7 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp
//获取积分设置
PointSetting pointSetting = getPointSetting();
//赠送会员积分
memberService.updateMemberPoint(Long.valueOf(pointSetting.getComment().longValue()), true, memberEvaluation.getMemberId(), "会员评价,赠送积分" + pointSetting.getComment() + "");
memberService.updateMemberPoint(Long.valueOf(pointSetting.getComment().longValue()), PointTypeEnum.INCREASE.name(), memberEvaluation.getMemberId(), "会员评价,赠送积分" + pointSetting.getComment() + "");
}
/**
@ -96,13 +97,13 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp
//计算赠送积分数量
Double point = CurrencyUtil.mul(pointSetting.getMoney(), order.getFlowPrice(), 0);
//赠送会员积分
memberService.updateMemberPoint(point.longValue(), true, order.getMemberId(), "会员下单,赠送积分" + point + "");
memberService.updateMemberPoint(point.longValue(), PointTypeEnum.INCREASE.name(), order.getMemberId(), "会员下单,赠送积分" + point + "");
//取消订单恢复积分
} else if (orderMessage.getNewStatus().equals(OrderStatusEnum.CANCELLED)) {
//根据订单编号获取订单数据,如果为积分订单则跳回
Order order = orderService.getBySn(orderMessage.getOrderSn());
if (order.getOrderPromotionType().equals(OrderPromotionTypeEnum.POINTS.name()) && order.getPriceDetailDTO().getPayPoint() != null) {
memberService.updateMemberPoint(Convert.toLong(order.getPriceDetailDTO().getPayPoint()), true, order.getMemberId(), "订单取消,恢复积分:" + order.getPriceDetailDTO().getPayPoint() + "");
memberService.updateMemberPoint(Convert.toLong(order.getPriceDetailDTO().getPayPoint()), PointTypeEnum.INCREASE.name(), order.getMemberId(), "订单取消,恢复积分:" + order.getPriceDetailDTO().getPayPoint() + "");
}
}
}
@ -120,7 +121,7 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp
//计算扣除积分数量
Double point = CurrencyUtil.mul(pointSetting.getMoney(), afterSale.getActualRefundPrice(), 0);
//扣除会员积分
memberService.updateMemberPoint(point.longValue(), false, afterSale.getMemberId(), "会员退款,扣除积分" + point + "");
memberService.updateMemberPoint(point.longValue(), PointTypeEnum.REDUCE.name(), afterSale.getMemberId(), "会员退款,回退积分" + point + "");
}
}

View File

@ -4,6 +4,7 @@ import cn.lili.event.*;
import cn.lili.modules.member.entity.dto.MemberPointMessage;
import cn.lili.modules.member.entity.dto.MemberWithdrawalMessage;
import cn.lili.modules.member.entity.enums.MemberWithdrawalDestinationEnum;
import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.modules.member.entity.enums.WithdrawStatusEnum;
import cn.lili.modules.message.entity.dto.NoticeMessageDTO;
import cn.lili.modules.message.entity.enums.NoticeMessageNodeEnum;
@ -160,7 +161,7 @@ public class NoticeMessageExecute implements TradeEvent, OrderStatusChangeEvent,
NoticeMessageDTO noticeMessageDTO = new NoticeMessageDTO();
noticeMessageDTO.setMemberId(memberPointMessage.getMemberId());
Map<String, String> params = new HashMap<>(2);
if (memberPointMessage.getType()) {
if (memberPointMessage.getType().equals(PointTypeEnum.INCREASE.name())) {
params.put("expenditure_points", "0");
params.put("income_points", memberPointMessage.getPoint().toString());
} else {

View File

@ -41,9 +41,9 @@ public class PointLogInterceptor {
point = Long.valueOf(obj[0].toString());
}
//变动类型
Boolean type = false;
String type = PointTypeEnum.INCREASE.name();
if (obj[1] != null) {
type = Boolean.valueOf(obj[1].toString());
type = obj[1].toString();
}
//会员ID
String memberId = "";
@ -56,10 +56,15 @@ public class PointLogInterceptor {
MemberPointsHistory memberPointsHistory = new MemberPointsHistory();
memberPointsHistory.setMemberId(member.getId());
memberPointsHistory.setMemberName(member.getUsername());
memberPointsHistory.setPointType(type ? PointTypeEnum.INCREASE.name() : PointTypeEnum.REDUCE.name());
memberPointsHistory.setPointType(type);
memberPointsHistory.setVariablePoint(point);
memberPointsHistory.setBeforePoint(type ? member.getPoint() - point : member.getPoint() + point);
if (type.equals(PointTypeEnum.INCREASE.name())) {
memberPointsHistory.setBeforePoint(member.getPoint() - point);
} else {
memberPointsHistory.setBeforePoint(member.getPoint() + point);
}
memberPointsHistory.setPoint(member.getPoint());
memberPointsHistory.setContent(obj[3] == null ? "" : obj[3].toString());
memberPointsHistory.setCreateBy("系统");

View File

@ -46,7 +46,7 @@ public class Member extends BaseEntity {
private Integer sex;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "会员生日")
private Date birthday;
@ -64,6 +64,10 @@ public class Member extends BaseEntity {
@ApiModelProperty(value = "积分数量")
private Long point;
@Min(message = "必须为数字", value = 0)
@ApiModelProperty(value = "积分总数量")
private Long totalPoint;
@ApiModelProperty(value = "会员头像")
private String face;
@ -103,6 +107,7 @@ public class Member extends BaseEntity {
this.haveStore = false;
this.sex = 0;
this.point = 0L;
this.totalPoint = 0L;
this.lastLoginDate = new Date();
}
@ -116,6 +121,7 @@ public class Member extends BaseEntity {
this.face = face;
this.sex = 0;
this.point = 0L;
this.totalPoint = 0L;
this.lastLoginDate = new Date();
}
@ -129,6 +135,7 @@ public class Member extends BaseEntity {
this.face = face;
this.sex = sex;
this.point = 0L;
this.totalPoint = 0L;
this.lastLoginDate = new Date();
}
}

View File

@ -67,7 +67,7 @@ public class MemberPointsHistory {
@ApiModelProperty(value = "消费之前积分")
private Long beforePoint;
@ApiModelProperty(value = "消费积分")
@ApiModelProperty(value = "变动积分")
private Long variablePoint;
@ApiModelProperty(value = "content")
@ -76,7 +76,7 @@ public class MemberPointsHistory {
/**
* @see cn.lili.modules.member.entity.enums.PointTypeEnum
*/
@ApiModelProperty(value = "消费积分类型")
@ApiModelProperty(value = "积分类型")
private String pointType;
}

View File

@ -16,7 +16,7 @@ public class MemberPointMessage {
private Long point;
@ApiModelProperty(value = "是否增加积分")
private Boolean type;
private String type;
@ApiModelProperty(value = "会员id")
private String memberId;

View File

@ -12,11 +12,15 @@ import lombok.Data;
@Data
public class MemberPointsHistoryVO {
@ApiModelProperty(value = "积分总数")
@ApiModelProperty(value = "当前会员积分")
private Long point;
@ApiModelProperty(value = "未使用积分总数")
private Long variablePoint;
@ApiModelProperty(value = "累计获得积分")
private Long totalPoint;
public MemberPointsHistoryVO(){
this.point = 0L;
this.totalPoint = 0L;
}
}

View File

@ -178,23 +178,13 @@ public interface MemberService extends IService<Member> {
* 会员积分变动
*
* @param point 变动积分
* @param type 是否增加积分 true 增加积分反之扣减积分
* @param type 是否增加积分 INCREASE 增加 REDUCE 扣减
* @param memberId 会员id
* @param content 变动日志
* @return 操作结果
*/
Boolean updateMemberPoint(Long point, Boolean type, String memberId, String content);
Boolean updateMemberPoint(Long point, String type, String memberId, String content);
/**
* 会员积分变动
*
* @param experience 变动经验值
* @param type 是否增加经验值
* @param memberId 会员id
* @param content 变动详细
* @return 操作结果
*/
Boolean updateMemberExperience(Long experience, Boolean type, String memberId, String content);
/**
* 修改会员状态

View File

@ -1,7 +1,9 @@
package cn.lili.modules.member.serviceimpl;
import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.modules.member.service.MemberService;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO;
@ -12,6 +14,7 @@ import cn.lili.modules.member.service.MemberPointsHistoryService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@ -24,25 +27,20 @@ import org.springframework.stereotype.Service;
public class MemberPointsHistoryServiceImpl extends ServiceImpl<MemberPointsHistoryMapper, MemberPointsHistory> implements MemberPointsHistoryService {
@Autowired
private MemberService memberService;
@Override
public MemberPointsHistoryVO getMemberPointsHistoryVO(String memberId) {
//获取会员积分历史
Member member = memberService.getById(memberId);
MemberPointsHistoryVO memberPointsHistoryVO = new MemberPointsHistoryVO();
Long point = 0L;
Long variablePoint = 0L;
if (StringUtils.isNotEmpty(memberId)) {
point = this.baseMapper.getMemberPointsHistoryVO(PointTypeEnum.INCREASE.name(), memberId);
variablePoint = this.baseMapper.getMemberPointsHistoryVO(PointTypeEnum.REDUCE.name(), memberId);
} else {
point = this.baseMapper.getALLMemberPointsHistoryVO(PointTypeEnum.REDUCE.name());
variablePoint = this.baseMapper.getALLMemberPointsHistoryVO(PointTypeEnum.INCREASE.name());
if (member != null) {
memberPointsHistoryVO.setPoint(member.getPoint());
memberPointsHistoryVO.setTotalPoint(member.getTotalPoint());
return memberPointsHistoryVO;
}
memberPointsHistoryVO.setPoint(point == null ? 0 : point);
memberPointsHistoryVO.setVariablePoint(variablePoint == null ? 0 : variablePoint);
memberPointsHistoryVO.setVariablePoint(memberPointsHistoryVO.getPoint() - memberPointsHistoryVO.getVariablePoint());
return memberPointsHistoryVO;
return new MemberPointsHistoryVO();
}
@Override

View File

@ -7,6 +7,7 @@ import cn.lili.cache.CachePrefix;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.enums.SwitchEnum;
import cn.lili.common.exception.ServiceException;
import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.mybatis.util.PageUtil;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.MemberTagsEnum;
@ -376,21 +377,26 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
@Override
@PointLogPoint
public Boolean updateMemberPoint(Long point, Boolean type, String memberId, String content) {
public Boolean updateMemberPoint(Long point, String type, String memberId, String content) {
//获取当前会员信息
Member member = this.getById(memberId);
if (member != null) {
//积分变动后的会员积分
long currentPoint;
//会员总获得积分
long totalPoint = member.getTotalPoint();
//如果增加积分
if (type) {
if (type.equals(PointTypeEnum.INCREASE.name())) {
currentPoint = member.getPoint() + point;
//如果是增加积分 需要增加总获得积分
totalPoint = totalPoint + point;
}
//否则扣除积分
else {
currentPoint = member.getPoint() - point < 0 ? 0 : member.getPoint() - point;
}
member.setPoint(currentPoint);
member.setTotalPoint(totalPoint);
Boolean result = this.updateById(member);
if (result) {
//发送会员消息
@ -408,26 +414,6 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
throw new ServiceException(ResultCode.USER_NOT_EXIST);
}
@Override
public Boolean updateMemberExperience(Long experience, Boolean type, String memberId, String content) {
//获取当前会员信息
Member member = this.getById(memberId);
if (member != null) {
//积分变动后的会员积分
long currentExperience;
if (type) {
currentExperience = CurrencyUtil.add(member.getPoint(), experience).longValue();
} else {
currentExperience = CurrencyUtil.sub(member.getPoint(), experience) < 0 ? 0 : new Double(CurrencyUtil.sub(member.getExperience(), experience)).longValue();
}
member.setExperience(currentExperience);
return this.updateById(member);
}
throw new ServiceException(ResultCode.USER_NOT_EXIST);
}
@Override
public Boolean updateMemberStatus(List<String> memberIds, Boolean status) {
UpdateWrapper<Member> updateWrapper = Wrappers.update();

View File

@ -2,6 +2,7 @@ package cn.lili.modules.member.serviceimpl;
import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException;
import cn.lili.modules.member.entity.enums.PointTypeEnum;
import cn.lili.rocketmq.RocketmqSendCallbackBuilder;
import cn.lili.rocketmq.tags.MemberTagsEnum;
import cn.lili.common.security.AuthUser;
@ -66,8 +67,8 @@ public class MemberSignServiceImpl extends ServiceImpl<MemberSignMapper, MemberS
AuthUser authUser = UserContext.getCurrentUser();
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());
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) {
@ -139,10 +140,10 @@ public class MemberSignServiceImpl extends ServiceImpl<MemberSignMapper, MemberS
content = "会员签到第" + day + "天,赠送积分" + point + "";
}
//赠送会员积分
memberService.updateMemberPoint(point, true, memberId, content);
memberService.updateMemberPoint(point, PointTypeEnum.INCREASE.name(), memberId, content);
}
} catch (Exception e) {
log.error("会员签到错误",e);
log.error("会员签到错误", e);
}
}

File diff suppressed because one or more lines are too long

View File

@ -156,3 +156,6 @@ INSERT INTO `li_menu` VALUES (1410862675914764290, 'admin', '2021-07-02 15:27:29
INSERT INTO `li_menu` VALUES (1419926569920536578, 'admin', '2021-07-27 15:44:10', b'0', 'admin', '2021-07-27 16:07:10', NULL, 'customWords/index', NULL, 2, 'customWords', '1367050250249830400', 'customWords', 4.00, 'ES分词', NULL, '/manager/manager/custom-words*');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
/** 新增会员获的总积分 **/
ALTER TABLE li_member ADD total_point bigint ( 20 ) DEFAULT 0 COMMENT '积分总数量';