Commit 34a806ff by “Kongxiangkun”

增加积分商城相关代码

parent e0477a3a
......@@ -2,13 +2,20 @@ package com.yizhi.point.application.feign;
import com.yizhi.point.application.vo.PointParamVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(name = "point", contextId = "PointRedisFeignClients")
public interface PointRedisFeignClients {
@PostMapping("/point/redis/add")
String addPointRedis(@RequestBody PointParamVO vo);
@GetMapping("/point/add")
public void pointAdd(
@RequestParam(name = "type",required = false)String type,
@RequestParam(name = "accountId",required = false)Long accountId,
@RequestParam(name = "sourceId",required = false)String sourceId);
}
......@@ -31,6 +31,11 @@ public enum PointTypeEnum {
* 培训测试
*/
EXAM("point_exam", "培训测试", 0),
/**
* 积分兑换
*/
EXCHANGE("point_exchange", "积分兑换", 0),
;
private String key;
......
......@@ -5,12 +5,11 @@ import com.yizhi.application.domain.MqPointParam;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.application.redis.RedisUtils;
import com.yizhi.application.service.MqPointParamService;
import com.yizhi.application.service.PointService;
import com.yizhi.point.application.vo.PointParamVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
@RestController
......@@ -22,30 +21,32 @@ public class PointRedisController {
private IdGenerator idGenerator;
@Autowired
private MqPointParamService mqPointParamService;
@Autowired
PointService pointService;
@PostMapping("/point/redis/add")
public String addPointRedis(@RequestBody PointParamVO vo) {
String key = idGenerator.generate().toString();
vo.setId(key);
boolean boo = redisUtils.set(key, vo, 10800L);
if(boo){
MqPointParam mqPointParam = new MqPointParam();
BeanUtils.copyProperties(vo, mqPointParam);
mqPointParam.setState(1);
mqPointParamService.insert(mqPointParam);
return key;
}
return null;
// String key = idGenerator.generate().toString();
// vo.setId(key);
// boolean boo = redisUtils.set(key, vo, 10800L);
// if(boo){
// MqPointParam mqPointParam = new MqPointParam();
// BeanUtils.copyProperties(vo, mqPointParam);
// mqPointParam.setState(1);
// mqPointParamService.insert(mqPointParam);
// return key;
// }
// return null;
return "";
}
@PostMapping("/point/add")
public String pointAdd(String type) {
return null;
@GetMapping("/point/add")
public void pointAdd(
@RequestParam(name = "type",required = false)String type,
@RequestParam(name = "accountId",required = false)Long accountId,
@RequestParam(name = "sourceId",required = false)String sourceId) {
pointService.addPoint(accountId, type, sourceId);
}
}
package com.yizhi.application.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.yizhi.application.constant.PointTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PointTypeStrategy {
private static final long serialVersionUID = 1L;
private PointTypeEnum pointTypeEnum;
private String learnSource;
}
......@@ -15,4 +15,6 @@ public interface PointService extends IService<Point> {
Point pointList(Long companyId, Long siteId);
boolean updateList(Point point);
void addPoint(Long accountId, String type, String sourceId);
}
package com.yizhi.application.service.impl;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.constant.PointTypeEnum;
import com.yizhi.application.domain.Point;
import com.yizhi.application.domain.PointDetails;
import com.yizhi.application.domain.PointTypeStrategy;
import com.yizhi.application.domain.PointUser;
import com.yizhi.application.mapper.PointUserMapper;
import com.yizhi.application.mapper.PointMapper;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.application.service.PointDetailsService;
import com.yizhi.application.service.PointService;
import com.yizhi.application.service.PointUserService;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.util.application.date.DateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.domain.Point;
import com.yizhi.application.mapper.PointMapper;
import com.yizhi.application.service.PointService;
import java.util.Date;
/**
* <p>
......@@ -79,14 +76,14 @@ public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements
}
public void addPoint(Long accountId, String type, Long sourceId){
public void addPoint(Long accountId, String type, String sourceId){
Long companyId = ContextHolder.get().getCompanyId();
Long orgId = ContextHolder.get().getOrgId();
Long siteId = ContextHolder.get().getSiteId();
String accountName = ContextHolder.get().getAccountName();
//执行积分奖励策略进行相应的业务校验
int point = getPointByType(type);
if(point > 0) {
PointTypeStrategy strategy = getPointByType(type, accountId);
if(strategy != null) {
PointUser pu = new PointUser();
pu.setUserId(accountId);
EntityWrapper<PointUser> wrapper = new EntityWrapper<PointUser>(pu);
......@@ -96,13 +93,13 @@ public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements
pu = new PointUser();
pu.setId(id);
pu.setUserId(accountId);
pu.setTotalPoint(point);
pu.setTotalPoint(strategy.getPointTypeEnum().getPoint());
pu.setState(1);
pu.setCreateById(accountId);
pu.setCreateByName(accountName);
pu.setCreateTime(new Date());
} else {
pu.setTotalPoint(pu.getTotalPoint() + point);
pu.setTotalPoint(pu.getTotalPoint() + strategy.getPointTypeEnum().getPoint());
pu.setUpdateById(accountId);
pu.setUpdateByName(accountName);
pu.setUpdateTime(new Date());
......@@ -116,14 +113,13 @@ public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements
pd.setId(idGenerator.generate());
pd.setTime(new Date());
pd.setChangeBefore(pointUser.getTotalPoint());
pd.setPoint(point);
pd.setChangeAfter(pointUser.getTotalPoint() + point);
pd.setPoint(strategy.getPointTypeEnum().getPoint());
pd.setChangeAfter(pointUser.getTotalPoint() + strategy.getPointTypeEnum().getPoint());
pd.setMultiple(1);
pd.setAccountId(accountId);
pd.setLearnName("积分兑换");
pd.setLearnSource("积分兑换");
pd.setLearnSourceId(sourceId);
pd.setLearnType("积分兑换");
pd.setLearnName(strategy.getPointTypeEnum().getDesc());
pd.setLearnSource(strategy.getLearnSource());
pd.setLearnType(strategy.getPointTypeEnum().getKey());
pd.setState(1);
pd.setCreateById(accountId);
pd.setCreateByName(accountName);
......@@ -136,25 +132,36 @@ public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements
}
}
public int getPointByType(String type){
public PointTypeStrategy getPointByType(String type, Long accountId){
PointTypeStrategy strategy = null;
if(type.equals(PointTypeEnum.LOGIN.getKey())){
return PointTypeEnum.LOGIN.getPoint();
//查询当天是否首次登录,奖励积分
String date = DateUtil.format(new Date(), "yyyy-MM-dd");
PointDetails pd = new PointDetails();
pd.setAccountId(accountId);
pd.setLearnType(PointTypeEnum.LOGIN.getKey());
pd.setLearnSource(date);
EntityWrapper<PointDetails> wrapper = new EntityWrapper<PointDetails>(pd);
int cnt = pointDetailsService.selectCount(wrapper);
if(cnt <= 0) {
return new PointTypeStrategy(PointTypeEnum.LOGIN, date);
}
}
if(type.equals(PointTypeEnum.READ.getKey())){
return PointTypeEnum.READ.getPoint();
return null;
}
if(type.equals(PointTypeEnum.PUBLICATION.getKey())){
return PointTypeEnum.PUBLICATION.getPoint();
return null;
}
if(type.equals(PointTypeEnum.COMMENT.getKey())){
return PointTypeEnum.COMMENT.getPoint();
return null;
}
if(type.equals(PointTypeEnum.ACITVITY.getKey())){
return PointTypeEnum.ACITVITY.getPoint();
return null;
}
if(type.equals(PointTypeEnum.EXAM.getKey())){
return PointTypeEnum.EXAM.getPoint();
return null;
}
return 0;
return null;
}
}
......@@ -3,6 +3,7 @@ package com.yizhi.application.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.constant.PointTypeEnum;
import com.yizhi.application.domain.PointDetails;
import com.yizhi.application.domain.PointUser;
import com.yizhi.application.mapper.PointUserMapper;
......@@ -278,15 +279,15 @@ public class PointUserServiceImpl extends ServiceImpl<PointUserMapper, PointUser
PointDetails pd = new PointDetails();
pd.setId(idGenerator.generate());
pd.setTime(new Date());
pd.setChangeBefore(pointUserExchangeVO.getPoint());
pd.setChangeBefore(pointUser.getTotalPoint());
pd.setPoint(pointUserExchangeVO.getPoint());
pd.setChangeAfter(pointUser.getTotalPoint() - pointUserExchangeVO.getPoint());
pd.setMultiple(1);
pd.setAccountId(accountId);
pd.setLearnName("积分兑换");
pd.setLearnSource("积分兑换");
pd.setLearnName(PointTypeEnum.EXCHANGE.getDesc());
pd.setLearnSource(PointTypeEnum.EXCHANGE.getDesc());
pd.setLearnSourceId(0L);
pd.setLearnType("积分兑换");
pd.setLearnType(PointTypeEnum.EXCHANGE.getKey());
pd.setState(1);
pd.setCreateById(accountId);
pd.setCreateByName(accountName);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment