会员经验值设置

This commit is contained in:
lifenlong 2021-05-17 09:24:58 +08:00
parent c8a43573fd
commit 591ce04e42
15 changed files with 68 additions and 50 deletions

View File

@ -4,9 +4,6 @@ server:
servlet: servlet:
context-path: / context-path: /
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
# multipart:
# location: /Users/lifenlong/Desktop/ceshi
tomcat: tomcat:
uri-encoding: UTF-8 uri-encoding: UTF-8
threads: threads:

View File

@ -2,9 +2,6 @@ server:
servlet: servlet:
context-path: / context-path: /
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
# multipart:
# location: /Users/lifenlong/Desktop/ceshi
tomcat: tomcat:
uri-encoding: UTF-8 uri-encoding: UTF-8
threads: threads:

View File

@ -4,9 +4,6 @@ server:
servlet: servlet:
context-path: / context-path: /
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
# multipart:
# location: /Users/lifenlong/Desktop/ceshi
tomcat: tomcat:
uri-encoding: UTF-8 uri-encoding: UTF-8
threads: threads:

View File

@ -2,9 +2,6 @@ server:
servlet: servlet:
context-path: / context-path: /
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
# multipart:
# location: /Users/lifenlong/Desktop/ceshi
tomcat: tomcat:
uri-encoding: UTF-8 uri-encoding: UTF-8
threads: threads:
@ -80,7 +77,7 @@ spring:
default-datasource: default-datasource:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.0.116:3306/lilishop?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai url: jdbc:mysql://192.168.0.116:3306/Bulbasaur?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root username: root
password: lilishop password: lilishop
maxActive: 20 maxActive: 20

View File

@ -1,11 +1,17 @@
package cn.lili.event.impl; package cn.lili.event.impl;
import cn.lili.common.utils.CurrencyUtil;
import cn.lili.event.GoodsCommentCompleteEvent; import cn.lili.event.GoodsCommentCompleteEvent;
import cn.lili.event.MemberRegisterEvent; 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.Member;
import cn.lili.modules.member.entity.dos.MemberEvaluation; import cn.lili.modules.member.entity.dos.MemberEvaluation;
import cn.lili.modules.member.service.MemberService; 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;
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.system.entity.dos.Setting; import cn.lili.modules.system.entity.dos.Setting;
import cn.lili.modules.system.entity.dto.ExperienceSetting; import cn.lili.modules.system.entity.dto.ExperienceSetting;
import cn.lili.modules.system.entity.enums.SettingEnum; import cn.lili.modules.system.entity.enums.SettingEnum;
@ -21,7 +27,7 @@ import org.springframework.stereotype.Service;
* @date: 2021/5/16 11:16 下午 * @date: 2021/5/16 11:16 下午
*/ */
@Service @Service
public class MemberExperienceExecute implements MemberRegisterEvent, GoodsCommentCompleteEvent { public class MemberExperienceExecute implements MemberRegisterEvent, GoodsCommentCompleteEvent, OrderStatusChangeEvent {
//配置 //配置
@Autowired @Autowired
@ -29,22 +35,59 @@ public class MemberExperienceExecute implements MemberRegisterEvent, GoodsCommen
//会员 //会员
@Autowired @Autowired
private MemberService memberService; private MemberService memberService;
//订单
@Autowired
private OrderService orderService;
/**
* 会员注册赠送经验值
* @param member 会员
*/
@Override @Override
public void memberRegister(Member member) { public void memberRegister(Member member) {
//获取经验值设置 //获取经验值设置
Setting setting = settingService.get(SettingEnum.EXPERIENCE_SETTING.name()); ExperienceSetting experienceSetting = getExperienceSetting();
ExperienceSetting experienceSetting = new Gson().fromJson(setting.getSettingValue(), ExperienceSetting.class);
//赠送会员经验值 //赠送会员经验值
memberService.updateMemberPoint(Long.valueOf(experienceSetting.getRegister().longValue()), 1, member.getId(), "会员注册,赠送经验值" + experienceSetting.getRegister()); memberService.updateMemberExperience(Long.valueOf(experienceSetting.getRegister().longValue()), true, member.getId(), "会员注册,赠送经验值" + experienceSetting.getRegister());
} }
/**
* 商品评价赠送经验值
* @param memberEvaluation 会员评价
*/
@Override @Override
public void goodsComment(MemberEvaluation memberEvaluation) { public void goodsComment(MemberEvaluation memberEvaluation) {
//获取签到经验值设置 //获取经验值设置
Setting setting = settingService.get(SettingEnum.EXPERIENCE_SETTING.name()); ExperienceSetting experienceSetting = getExperienceSetting();
ExperienceSetting experienceSetting = new Gson().fromJson(setting.getSettingValue(), ExperienceSetting.class);
//赠送会员经验值 //赠送会员经验值
memberService.updateMemberPoint(Long.valueOf(experienceSetting.getComment().longValue()), 1, memberEvaluation.getMemberId(), "会员评价,赠送经验值" + experienceSetting.getComment()); memberService.updateMemberExperience(Long.valueOf(experienceSetting.getComment().longValue()), true, memberEvaluation.getMemberId(), "会员评价,赠送经验值" + experienceSetting.getComment());
}
/**
* 完成订单赠送经验值
* @param orderMessage 订单消息
*/
@Override
public void orderChange(OrderMessage orderMessage) {
if(orderMessage.getNewStatus().equals(OrderStatusEnum.COMPLETED)){
//获取经验值设置
ExperienceSetting experienceSetting = getExperienceSetting();
//获取订单信息
Order order = orderService.getBySn(orderMessage.getOrderSn());
//计算赠送经验值数量
Double point= CurrencyUtil.mul(experienceSetting.getMoney(),order.getFlowPrice(),0);
//赠送会员经验值
memberService.updateMemberExperience(point.longValue(), true, order.getMemberId(), "会员下单,赠送经验值" + point + "");
}
}
/**
* 获取经验值设置
* @return 经验值设置
*/
private ExperienceSetting getExperienceSetting(){
Setting setting = settingService.get(SettingEnum.EXPERIENCE_SETTING.name());
return new Gson().fromJson(setting.getSettingValue(), ExperienceSetting.class);
} }
} }

View File

@ -52,7 +52,7 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp
//获取积分设置 //获取积分设置
PointSetting pointSetting=getPointSetting(); PointSetting pointSetting=getPointSetting();
//赠送会员积分 //赠送会员积分
memberService.updateMemberPoint(Long.valueOf(pointSetting.getRegister().longValue()), 1, member.getId(), "会员注册,赠送积分" + pointSetting.getRegister() + ""); memberService.updateMemberPoint(Long.valueOf(pointSetting.getRegister().longValue()), true, member.getId(), "会员注册,赠送积分" + pointSetting.getRegister() + "");
} }
/** /**
@ -64,7 +64,7 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp
//获取积分设置 //获取积分设置
PointSetting pointSetting=getPointSetting(); PointSetting pointSetting=getPointSetting();
//赠送会员积分 //赠送会员积分
memberService.updateMemberPoint(Long.valueOf(pointSetting.getComment().longValue()), 1, memberEvaluation.getMemberId(), "会员评价,赠送积分" + pointSetting.getComment() + ""); memberService.updateMemberPoint(Long.valueOf(pointSetting.getComment().longValue()), true, memberEvaluation.getMemberId(), "会员评价,赠送积分" + pointSetting.getComment() + "");
} }
/** /**
@ -85,7 +85,7 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp
//计算赠送积分数量 //计算赠送积分数量
Double point=CurrencyUtil.mul(pointSetting.getMoney(),order.getFlowPrice(),0); Double point=CurrencyUtil.mul(pointSetting.getMoney(),order.getFlowPrice(),0);
//赠送会员积分 //赠送会员积分
memberService.updateMemberPoint(point.longValue(), 1, order.getMemberId(), "会员下单,赠送积分" + point + ""); memberService.updateMemberPoint(point.longValue(), true, order.getMemberId(), "会员下单,赠送积分" + point + "");
} }
} }
@ -102,7 +102,7 @@ public class MemberPointExecute implements MemberRegisterEvent, GoodsCommentComp
//计算扣除积分数量 //计算扣除积分数量
Double point=CurrencyUtil.mul(pointSetting.getMoney(), afterSale.getActualRefundPrice(),0); Double point=CurrencyUtil.mul(pointSetting.getMoney(), afterSale.getActualRefundPrice(),0);
//扣除会员积分 //扣除会员积分
memberService.updateMemberPoint(point.longValue(), 1, afterSale.getMemberId(), "会员退款,扣除积分" + point + ""); memberService.updateMemberPoint(point.longValue(), false, afterSale.getMemberId(), "会员退款,扣除积分" + point + "");
} }
} }

View File

@ -4,9 +4,6 @@ server:
servlet: servlet:
context-path: / context-path: /
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
# multipart:
# location: /Users/lifenlong/Desktop/ceshi
tomcat: tomcat:
uri-encoding: UTF-8 uri-encoding: UTF-8
threads: threads:

View File

@ -15,8 +15,8 @@ public class MemberPointMessage {
@ApiModelProperty(value = "积分") @ApiModelProperty(value = "积分")
private Long point; private Long point;
@ApiModelProperty(value = "类型 1为增加") @ApiModelProperty(value = "是否增加积分")
private Integer type; private Boolean type;
@ApiModelProperty(value = "会员id") @ApiModelProperty(value = "会员id")
private String memberId; private String memberId;

View File

@ -176,23 +176,23 @@ public interface MemberService extends IService<Member> {
* 会员积分变动 * 会员积分变动
* *
* @param point 变动积分 * @param point 变动积分
* @param type 变动类型 1为增加 0为消费 * @param type 是否增加积分
* @param memberId 会员id * @param memberId 会员id
* @param content 变动详细 * @param content 变动详细
* @return 操作结果 * @return 操作结果
*/ */
Boolean updateMemberPoint(Long point, Integer type, String memberId, String content); Boolean updateMemberPoint(Long point, Boolean type, String memberId, String content);
/** /**
* 会员积分变动 * 会员积分变动
* *
* @param experience 变动经验值 * @param experience 变动经验值
* @param type 变动类型 1为增加 0为消费 * @param type 是否增加经验值
* @param memberId 会员id * @param memberId 会员id
* @param content 变动详细 * @param content 变动详细
* @return 操作结果 * @return 操作结果
*/ */
Boolean updateMemberExperience(Long experience, Integer type, String memberId, String content); Boolean updateMemberExperience(Long experience, Boolean type, String memberId, String content);
/** /**
* 修改会员状态 * 修改会员状态

View File

@ -354,13 +354,13 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
@Override @Override
@PointLogPoint @PointLogPoint
public Boolean updateMemberPoint(Long point, Integer type, String memberId, String content) { public Boolean updateMemberPoint(Long point, Boolean type, String memberId, String content) {
//获取当前会员信息 //获取当前会员信息
Member member = this.getById(memberId); Member member = this.getById(memberId);
if (member != null) { if (member != null) {
//积分变动后的会员积分 //积分变动后的会员积分
long currentPoint; long currentPoint;
if (type == 1) { if (type) {
currentPoint = CurrencyUtil.add(member.getPoint(), point).longValue(); currentPoint = CurrencyUtil.add(member.getPoint(), point).longValue();
} else { } else {
currentPoint = CurrencyUtil.sub(member.getPoint(), point) < 0 ? 0 : new Double(CurrencyUtil.sub(member.getPoint(), point)).longValue(); currentPoint = CurrencyUtil.sub(member.getPoint(), point) < 0 ? 0 : new Double(CurrencyUtil.sub(member.getPoint(), point)).longValue();
@ -384,13 +384,13 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
} }
@Override @Override
public Boolean updateMemberExperience(Long experience, Integer type, String memberId, String content) { public Boolean updateMemberExperience(Long experience, Boolean type, String memberId, String content) {
//获取当前会员信息 //获取当前会员信息
Member member = this.getById(memberId); Member member = this.getById(memberId);
if (member != null) { if (member != null) {
//积分变动后的会员积分 //积分变动后的会员积分
long currentExperience; long currentExperience;
if (type == 1) { if (type) {
currentExperience = CurrencyUtil.add(member.getPoint(), experience).longValue(); currentExperience = CurrencyUtil.add(member.getPoint(), experience).longValue();
} else { } else {
currentExperience = CurrencyUtil.sub(member.getPoint(), experience) < 0 ? 0 : new Double(CurrencyUtil.sub(member.getExperience(), experience)).longValue(); currentExperience = CurrencyUtil.sub(member.getPoint(), experience) < 0 ? 0 : new Double(CurrencyUtil.sub(member.getExperience(), experience)).longValue();

View File

@ -21,7 +21,6 @@ import cn.lili.modules.system.service.SettingService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.gson.Gson; import com.google.gson.Gson;
import lombok.RequiredArgsConstructor;
import org.apache.rocketmq.spring.core.RocketMQTemplate; import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -137,7 +136,7 @@ public class MemberSignServiceImpl extends ServiceImpl<MemberSignMapper, MemberS
content = "会员签到第" + day + "天,赠送积分" + point + ""; content = "会员签到第" + day + "天,赠送积分" + point + "";
} }
//赠送会员积分 //赠送会员积分
memberService.updateMemberPoint(point, 1, memberId, content); memberService.updateMemberPoint(point, true, memberId, content);
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();

View File

@ -123,7 +123,7 @@ public class TradeServiceImpl extends ServiceImpl<TradeMapper, Trade> implements
throw new ServiceException(ResultCode.PAY_POINT_ENOUGH); throw new ServiceException(ResultCode.PAY_POINT_ENOUGH);
} }
boolean result = memberService.updateMemberPoint(tradeDTO.getPriceDetailDTO(). boolean result = memberService.updateMemberPoint(tradeDTO.getPriceDetailDTO().
getPayPoint().longValue(), 0, tradeDTO.getMemberId(), getPayPoint().longValue(), false, tradeDTO.getMemberId(),
"订单【" + orderSns + "】创建,积分扣减"); "订单【" + orderSns + "】创建,积分扣减");
if (!result) { if (!result) {

View File

@ -4,9 +4,6 @@ server:
servlet: servlet:
context-path: / context-path: /
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
# multipart:
# location: /Users/lifenlong/Desktop/ceshi
tomcat: tomcat:
uri-encoding: UTF-8 uri-encoding: UTF-8
threads: threads:

View File

@ -4,9 +4,6 @@ server:
servlet: servlet:
context-path: / context-path: /
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
# multipart:
# location: /Users/lifenlong/Desktop/ceshi
tomcat: tomcat:
uri-encoding: UTF-8 uri-encoding: UTF-8
threads: threads:

View File

@ -3,9 +3,6 @@ server:
servlet: servlet:
context-path: / context-path: /
# 正式部署时候,解开此处配置,防止文件夹被清除导致的文件上传失败问题
# multipart:
# location: /Users/lifenlong/Desktop/ceshi
tomcat: tomcat:
uri-encoding: UTF-8 uri-encoding: UTF-8
threads: threads: