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; package com.yizhi.application.controller;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.application.domain.PointProduct; import com.yizhi.application.domain.PointProduct;
import com.yizhi.application.orm.id.IdGenerator; import com.yizhi.application.orm.id.IdGenerator;
...@@ -7,7 +8,9 @@ import com.yizhi.application.orm.util.DomainConverter; ...@@ -7,7 +8,9 @@ import com.yizhi.application.orm.util.DomainConverter;
import com.yizhi.application.service.PointProductService; import com.yizhi.application.service.PointProductService;
import com.yizhi.point.application.vo.PointSearchParamVO; import com.yizhi.point.application.vo.PointSearchParamVO;
import com.yizhi.point.application.vo.domain.PointProductVo; import com.yizhi.point.application.vo.domain.PointProductVo;
import com.yizhi.util.application.json.JsonUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -16,6 +19,7 @@ import org.springframework.web.bind.annotation.*; ...@@ -16,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
@Slf4j
@Api(tags = "积分兑换产品", description = "积分兑换产品 管理端") @Api(tags = "积分兑换产品", description = "积分兑换产品 管理端")
@RestController @RestController
@RequestMapping("/manage/point/product") @RequestMapping("/manage/point/product")
...@@ -57,11 +61,13 @@ public class PointProductController { ...@@ -57,11 +61,13 @@ public class PointProductController {
@PostMapping("/delete") @PostMapping("/delete")
Long deleteDetailById(@RequestBody PointProductVo pointProductVo) { Long deleteDetailById(@RequestBody PointProductVo pointProductVo) {
log.info("删除积分商品入参:{}", JSONUtil.toJsonStr(pointProductVo));
if (null == pointProductVo) { if (null == pointProductVo) {
return null; return null;
} }
PointProduct pointProduct = new PointProduct(); PointProduct pointProduct = new PointProduct();
BeanUtils.copyProperties(pointProductVo, pointProduct); BeanUtils.copyProperties(pointProductVo, pointProduct);
log.info("删除积分商品拷贝后入参:{}", JSONUtil.toJsonStr(pointProductVo));
Long i = pointProductService.deleteDetailById(pointProduct); Long i = pointProductService.deleteDetailById(pointProduct);
return i; return i;
......
package com.yizhi.application.controller; package com.yizhi.application.controller;
import com.yizhi.application.constant.PointTypeEnum;
import com.yizhi.application.domain.MqPointParam; import com.yizhi.application.domain.MqPointParam;
import com.yizhi.application.orm.id.IdGenerator; import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.application.redis.RedisUtils; import com.yizhi.application.redis.RedisUtils;
...@@ -37,4 +38,14 @@ public class PointRedisController { ...@@ -37,4 +38,14 @@ public class PointRedisController {
return null; return null;
} }
@PostMapping("/point/add")
public String pointAdd(String type) {
return null;
}
} }
package com.yizhi.application.service.impl; package com.yizhi.application.service.impl;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.baomidou.mybatisplus.service.impl.ServiceImpl;
...@@ -9,6 +10,7 @@ import com.yizhi.application.orm.id.IdGenerator; ...@@ -9,6 +10,7 @@ import com.yizhi.application.orm.id.IdGenerator;
import com.yizhi.application.service.PointProductService; import com.yizhi.application.service.PointProductService;
import com.yizhi.point.application.vo.PointSearchParamVO; import com.yizhi.point.application.vo.PointSearchParamVO;
import com.yizhi.point.application.vo.domain.PointProductVo; import com.yizhi.point.application.vo.domain.PointProductVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -24,6 +26,7 @@ import java.util.List; ...@@ -24,6 +26,7 @@ import java.util.List;
* @since 2018-04-20 * @since 2018-04-20
*/ */
@Service @Service
@Slf4j
public class PointProductServiceImpl extends ServiceImpl<PointProductMapper, PointProduct> implements PointProductService { public class PointProductServiceImpl extends ServiceImpl<PointProductMapper, PointProduct> implements PointProductService {
@Autowired @Autowired
...@@ -51,6 +54,7 @@ public class PointProductServiceImpl extends ServiceImpl<PointProductMapper, Poi ...@@ -51,6 +54,7 @@ public class PointProductServiceImpl extends ServiceImpl<PointProductMapper, Poi
return -1L; return -1L;
} }
pointProduct.setState(0); pointProduct.setState(0);
log.info("删除积分商品update入参:{}", JSONUtil.toJsonStr(pointProduct));
return (long) pointProductMapper.updateById(pointProduct); return (long) pointProductMapper.updateById(pointProduct);
} }
......
package com.yizhi.application.service.impl; package com.yizhi.application.service.impl;
import java.util.Date; 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.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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -24,9 +35,12 @@ public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements ...@@ -24,9 +35,12 @@ public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements
@Autowired @Autowired
PointMapper pointMapper; PointMapper pointMapper;
@Autowired @Autowired
IdGenerator idGenerator; IdGenerator idGenerator;
@Autowired
PointDetailsService pointDetailsService;
@Autowired
PointUserService pointUserService;
@Override @Override
public Point pointList(Long companyId, Long siteId) { public Point pointList(Long companyId, Long siteId) {
...@@ -64,4 +78,83 @@ public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements ...@@ -64,4 +78,83 @@ public class PointServiceImpl extends ServiceImpl<PointMapper, Point> implements
return false; 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; package com.yizhi.application.service.impl;
import java.sql.Timestamp; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import java.text.SimpleDateFormat; import com.baomidou.mybatisplus.plugins.Page;
import java.util.*; 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.PointLevelService;
import com.yizhi.application.service.PointUserService; 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.point.application.vo.*;
import com.yizhi.system.application.constant.AuthzConstant; import com.yizhi.system.application.constant.AuthzConstant;
import com.yizhi.system.application.system.remote.AccountClient; import com.yizhi.system.application.system.remote.AccountClient;
...@@ -21,12 +25,12 @@ import org.slf4j.Logger; ...@@ -21,12 +25,12 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; 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 org.springframework.util.CollectionUtils;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.*;
/** /**
* <p> * <p>
* 学员积分 服务实现类 * 学员积分 服务实现类
...@@ -48,6 +52,10 @@ public class PointUserServiceImpl extends ServiceImpl<PointUserMapper, PointUser ...@@ -48,6 +52,10 @@ public class PointUserServiceImpl extends ServiceImpl<PointUserMapper, PointUser
AccountClient accountClient; AccountClient accountClient;
@Autowired @Autowired
ReportClient reportClient; ReportClient reportClient;
@Autowired
private IdGenerator idGenerator;
@Autowired
private PointDetailsService pointDetailsService;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
...@@ -255,6 +263,38 @@ public class PointUserServiceImpl extends ServiceImpl<PointUserMapper, PointUser ...@@ -255,6 +263,38 @@ public class PointUserServiceImpl extends ServiceImpl<PointUserMapper, PointUser
} }
public int updateUserPointExchange(PointUserExchangeVO pointUserExchangeVO) { 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); 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