Commit 9a2f03f7 by “Kongxiangkun”

增加积分商城相关代码

parent 06f5e759
package com.yizhi.application.constant;
public enum PointTypeEnum {
/**
* 登录
*/
LOGIN("point_login", "每日首登", 1),
/**
* 阅读文章
*/
READ("point_read", "阅读文章", 1),
/**
* 我要投稿
*/
PUBLICATION("point_publication", "我要投稿", 5),
/**
* 发表评论
*/
COMMENT("point_comment", "发表评论", 3),
/**
* 参加活动
*/
ACITVITY("point_acitvity", "参加活动", 3),
/**
* 培训测试
*/
EXAM("point_exam", "培训测试", 0),
;
private String key;
private String desc;
private int point;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public int getPoint() {
return point;
}
public void setPoint(int point) {
this.point = point;
}
private PointTypeEnum(String key, String desc, int point) {
this.desc = desc;
this.key = key;
this.point = point;
}
}
package com.yizhi.application.controller;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.application.domain.PointProduct;
import com.yizhi.application.orm.id.IdGenerator;
......@@ -7,7 +8,9 @@ import com.yizhi.application.orm.util.DomainConverter;
import com.yizhi.application.service.PointProductService;
import com.yizhi.point.application.vo.PointSearchParamVO;
import com.yizhi.point.application.vo.domain.PointProductVo;
import com.yizhi.util.application.json.JsonUtil;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
......@@ -16,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
@Slf4j
@Api(tags = "积分兑换产品", description = "积分兑换产品 管理端")
@RestController
@RequestMapping("/manage/point/product")
......@@ -57,11 +61,13 @@ public class PointProductController {
@PostMapping("/delete")
Long deleteDetailById(@RequestBody PointProductVo pointProductVo) {
log.info("删除积分商品入参:{}", JSONUtil.toJsonStr(pointProductVo));
if (null == pointProductVo) {
return null;
}
PointProduct pointProduct = new PointProduct();
BeanUtils.copyProperties(pointProductVo, pointProduct);
log.info("删除积分商品拷贝后入参:{}", JSONUtil.toJsonStr(pointProductVo));
Long i = pointProductService.deleteDetailById(pointProduct);
return i;
......
package com.yizhi.application.controller;
import com.yizhi.application.constant.PointTypeEnum;
import com.yizhi.application.domain.MqPointParam;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.application.redis.RedisUtils;
......@@ -37,4 +38,14 @@ public class PointRedisController {
return null;
}
@PostMapping("/point/add")
public String pointAdd(String type) {
return null;
}
}
package com.yizhi.application.service.impl;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
......@@ -9,6 +10,7 @@ import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.application.service.PointProductService;
import com.yizhi.point.application.vo.PointSearchParamVO;
import com.yizhi.point.application.vo.domain.PointProductVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -24,6 +26,7 @@ import java.util.List;
* @since 2018-04-20
*/
@Service
@Slf4j
public class PointProductServiceImpl extends ServiceImpl<PointProductMapper, PointProduct> implements PointProductService {
@Autowired
......@@ -51,6 +54,7 @@ public class PointProductServiceImpl extends ServiceImpl<PointProductMapper, Poi
return -1L;
}
pointProduct.setState(0);
log.info("删除积分商品update入参:{}", JSONUtil.toJsonStr(pointProduct));
return (long) pointProductMapper.updateById(pointProduct);
}
......
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.yizhi.application.constant.PointTypeEnum;
import com.yizhi.application.domain.PointDetails;
import com.yizhi.application.domain.PointUser;
import com.yizhi.application.mapper.PointUserMapper;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.application.service.PointDetailsService;
import com.yizhi.application.service.PointUserService;
import com.yizhi.core.application.context.ContextHolder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -24,9 +35,12 @@ public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements
@Autowired
PointMapper pointMapper;
@Autowired
IdGenerator idGenerator;
@Autowired
PointDetailsService pointDetailsService;
@Autowired
PointUserService pointUserService;
@Override
public Point pointList(Long companyId, Long siteId) {
......@@ -64,4 +78,83 @@ public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements
return false;
}
public void addPoint(Long accountId, String type, Long 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) {
PointUser pu = new PointUser();
pu.setUserId(accountId);
EntityWrapper<PointUser> wrapper = new EntityWrapper<PointUser>(pu);
PointUser pointUser = pointUserService.selectOne(wrapper);
Long id = idGenerator.generate();
if (pu == null) {
pu = new PointUser();
pu.setId(id);
pu.setUserId(accountId);
pu.setTotalPoint(point);
pu.setState(1);
pu.setCreateById(accountId);
pu.setCreateByName(accountName);
pu.setCreateTime(new Date());
} else {
pu.setTotalPoint(pu.getTotalPoint() + point);
pu.setUpdateById(accountId);
pu.setUpdateByName(accountName);
pu.setUpdateTime(new Date());
}
pu.setOrgId(orgId);
pu.setSiteId(siteId);
pu.setCompanyId(companyId);
boolean b = pointUserService.insertOrUpdate(pu);
if(b) {
PointDetails pd = new PointDetails();
pd.setId(idGenerator.generate());
pd.setTime(new Date());
pd.setChangeBefore(pointUser.getTotalPoint());
pd.setPoint(point);
pd.setChangeAfter(pointUser.getTotalPoint() + point);
pd.setMultiple(1);
pd.setAccountId(accountId);
pd.setLearnName("积分兑换");
pd.setLearnSource("积分兑换");
pd.setLearnSourceId(sourceId);
pd.setLearnType("积分兑换");
pd.setState(1);
pd.setCreateById(accountId);
pd.setCreateByName(accountName);
pd.setCreateTime(new Date());
pd.setOrgId(orgId);
pd.setCompanyId(companyId);
pd.setSiteId(siteId);
pointDetailsService.insert(pd);
}
}
}
public int getPointByType(String type){
if(type.equals(PointTypeEnum.LOGIN.getKey())){
return PointTypeEnum.LOGIN.getPoint();
}
if(type.equals(PointTypeEnum.READ.getKey())){
return PointTypeEnum.READ.getPoint();
}
if(type.equals(PointTypeEnum.PUBLICATION.getKey())){
return PointTypeEnum.PUBLICATION.getPoint();
}
if(type.equals(PointTypeEnum.COMMENT.getKey())){
return PointTypeEnum.COMMENT.getPoint();
}
if(type.equals(PointTypeEnum.ACITVITY.getKey())){
return PointTypeEnum.ACITVITY.getPoint();
}
if(type.equals(PointTypeEnum.EXAM.getKey())){
return PointTypeEnum.EXAM.getPoint();
}
return 0;
}
}
package com.yizhi.application.service.impl;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.domain.PointDetails;
import com.yizhi.application.domain.PointUser;
import com.yizhi.application.mapper.PointUserMapper;
import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.application.service.PointDetailsService;
import com.yizhi.application.service.PointLevelService;
import com.yizhi.application.service.PointUserService;
import com.yizhi.application.domain.PointUser;
import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.point.application.vo.*;
import com.yizhi.system.application.constant.AuthzConstant;
import com.yizhi.system.application.system.remote.AccountClient;
......@@ -21,12 +25,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yizhi.application.mapper.PointUserMapper;
import org.springframework.util.CollectionUtils;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* <p>
* 学员积分 服务实现类
......@@ -48,6 +52,10 @@ public class PointUserServiceImpl extends ServiceImpl<PointUserMapper, PointUser
AccountClient accountClient;
@Autowired
ReportClient reportClient;
@Autowired
private IdGenerator idGenerator;
@Autowired
private PointDetailsService pointDetailsService;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
......@@ -255,6 +263,38 @@ public class PointUserServiceImpl extends ServiceImpl<PointUserMapper, PointUser
}
public int updateUserPointExchange(PointUserExchangeVO pointUserExchangeVO) {
PointUser pu = new PointUser();
pu.setUserId(pointUserExchangeVO.getUserId());
EntityWrapper<PointUser> wrapper = new EntityWrapper<PointUser>(pu);
PointUser pointUser = this.selectOne(wrapper);
if(pointUser == null) {
return 0;
}
Long companyId = ContextHolder.get().getCompanyId();
Long orgId = ContextHolder.get().getOrgId();
Long siteId = ContextHolder.get().getSiteId();
Long accountId = ContextHolder.get().getAccountId();
String accountName = ContextHolder.get().getAccountName();
PointDetails pd = new PointDetails();
pd.setId(idGenerator.generate());
pd.setTime(new Date());
pd.setChangeBefore(pointUserExchangeVO.getPoint());
pd.setPoint(pointUserExchangeVO.getPoint());
pd.setChangeAfter(pointUser.getTotalPoint() - pointUserExchangeVO.getPoint());
pd.setMultiple(1);
pd.setAccountId(accountId);
pd.setLearnName("积分兑换");
pd.setLearnSource("积分兑换");
pd.setLearnSourceId(0L);
pd.setLearnType("积分兑换");
pd.setState(1);
pd.setCreateById(accountId);
pd.setCreateByName(accountName);
pd.setCreateTime(new Date());
pd.setOrgId(orgId);
pd.setCompanyId(companyId);
pd.setSiteId(siteId);
pointDetailsService.insert(pd);
return pointUserMapper.updateUserPointExchange(pointUserExchangeVO);
}
......
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