Commit 73597561 by “Kongxiangkun”

增加积分商城相关代码

parent 4947a91c
package com.yizhi.point.application.feign;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.point.application.vo.PointSearchParamVO;
import com.yizhi.point.application.vo.domain.MqPointParamVo;
import com.yizhi.point.application.vo.domain.PointActivityVo;
import com.yizhi.point.application.vo.domain.PointProductVo;
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;
import java.util.List;
import java.util.Map;
/**
* 轮播
*
* @author HUIHUI.DUAN
* @date 2018/3/28 10:44
*/
@FeignClient(name = "point", contextId = "PointProductFeignClients")
public interface PointProductFeignClients {
@PostMapping("/manage/point/product/insert")
Long insertDetail(@RequestBody PointProductVo pointProductVo);
@PostMapping("/manage/point/product/delete")
Long deleteDetailById(@RequestBody PointProductVo pointProductVo);
@PostMapping("/manage/point/product/update")
Long updateById(@RequestBody PointProductVo pointProductVo);
@PostMapping("/manage/point/product/enabled")
Boolean pointUp(@RequestBody PointProductVo pointProductVo);
@PostMapping("/manage/point/product/disabled")
Boolean pointDown(@RequestBody PointProductVo pointProductVo);
@GetMapping("/manage/point/product/list")
Page<PointProductVo> productList(@RequestBody PointSearchParamVO searchParamVO);
}
package com.yizhi.point.application.feign; package com.yizhi.point.application.feign;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.point.application.vo.*;
import com.yizhi.point.application.vo.domain.PointDetailsVo; import com.yizhi.point.application.vo.domain.PointDetailsVo;
import com.yizhi.point.application.vo.PointUserListVO;
import com.yizhi.point.application.vo.PointUserParamVO;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -84,4 +83,10 @@ public interface PointUserFeignClients { ...@@ -84,4 +83,10 @@ public interface PointUserFeignClients {
@GetMapping("/manage/point/user/totalPoint") @GetMapping("/manage/point/user/totalPoint")
public Map<Long, Long> totalPoint( @RequestParam("siteIds") List<Long> siteIds, public Map<Long, Long> totalPoint( @RequestParam("siteIds") List<Long> siteIds,
@RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate); @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate);
@GetMapping("/manage/point/user/list")
public Page<PointUserPageListVO> list(@RequestBody PointSearchParamVO searchParamVO);
@GetMapping("/manage/point/user/exchange")
public int exchange(@RequestBody PointUserExchangeVO pointUserExchangeVO);
} }
package com.yizhi.point.application.vo;
import lombok.Data;
@Data
public class PointSearchParamVO {
private String name;
private Integer pageNo;
private Integer pageSize;
}
package com.yizhi.point.application.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "用户的积分兑换", description = "PointUserExchangeVO")
public class PointUserExchangeVO {
@ApiModelProperty("用户id")
private Long userId;
@ApiModelProperty("兑换扣减积分")
private Integer point;
}
package com.yizhi.point.application.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "用户的积分", description = "PointUserPageListVO")
public class PointUserPageListVO {
@ApiModelProperty("用户id")
private Long userId;
@ApiModelProperty("用户名")
private String userName;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("总积分")
private String totalPoint;
}
package com.yizhi.point.application.vo.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 活动策略
* </p>
*
* @author bob123
* @since 2018-04-20
*/
@Data
@ApiModel(value = "PointProductVo", description = "积分兑换商品配置")
@TableName("point_product")
public class PointProductVo extends Model<PointProductVo> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "产品id")
private Long id;
@ApiModelProperty(value = "产品名称")
@TableField("product_name")
private String productName;
@ApiModelProperty(value = "产品图片")
@TableField("product_img")
private String productImg;
@ApiModelProperty(value = "0删除 1上架 2下架")
private Integer state;
@ApiModelProperty(value = "创建时间")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "创建人")
@TableField("create_by_id")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
@TableField("create_by_name")
private String createByName;
@ApiModelProperty(value = "修改时间")
@TableField("update_time")
private Date updateTime;
@ApiModelProperty(value = "修改人")
@TableField("update_by_id")
private Long updateById;
@ApiModelProperty(value = "修改人姓名")
@TableField("update_by_name")
private String updateByName;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.application.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.application.domain.PointProduct;
import com.yizhi.application.orm.id.IdGenerator;
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 io.swagger.annotations.Api;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "积分兑换产品", description = "积分兑换产品 管理端")
@RestController
@RequestMapping("/manage/point/product")
public class PointProductController {
private static final Logger LOG = LoggerFactory.getLogger(PointProductController.class);
@Autowired
PointProductService pointProductService;
@Autowired
IdGenerator idGenerator;
@Autowired
DomainConverter domainConverter;
@PostMapping("/insert")
Long insertDetail(@RequestBody PointProductVo pointProductVo) {
if (null == pointProductVo) {
return null;
}
PointProduct pointProduct = new PointProduct();
BeanUtils.copyProperties(pointProductVo, pointProduct);
return pointProductService.insertDetail(pointProduct);
}
@PostMapping("/update")
Long updateById(@RequestBody PointProductVo pointProductVo) {
if (null == pointProductVo) {
return null;
}
PointProduct pointProduct = new PointProduct();;
BeanUtils.copyProperties(pointProductVo, pointProduct);
Boolean isOk = pointProductService.updateById(pointProduct);
if (isOk) {
return pointProductVo.getId();
}
return null;
}
@PostMapping("/delete")
Long deleteDetailById(@RequestBody PointProductVo pointProductVo) {
if (null == pointProductVo) {
return null;
}
PointProduct pointProduct = new PointProduct();
BeanUtils.copyProperties(pointProductVo, pointProduct);
Long i = pointProductService.deleteDetailById(pointProduct);
return i;
}
@PostMapping("/enabled")
Boolean bannerUp(@RequestBody PointProductVo pointProductVo) {
if (null == pointProductVo) {
return false;
}
PointProduct pointProduct = new PointProduct();
BeanUtils.copyProperties(pointProductVo, pointProduct);
return pointProductService.pointUp(pointProduct.getId(), pointProduct.getUpdateById(), pointProduct.getUpdateByName());
}
@PostMapping("/disabled")
Boolean bannerDown(@RequestBody PointProductVo pointProductVo) {
if (null == pointProductVo) {
return false;
}
PointProduct pointProduct = new PointProduct();
BeanUtils.copyProperties(pointProductVo, pointProduct);
return pointProductService.pointDown(pointProduct.getId(), pointProduct.getUpdateById(), pointProduct.getUpdateByName());
}
@GetMapping("/list")
public Page<PointProductVo> productList(@RequestBody PointSearchParamVO searchParamVO) {
return pointProductService.productList(searchParamVO);
}
}
package com.yizhi.application.controller; package com.yizhi.application.controller;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.application.domain.PointDetails; import com.yizhi.application.domain.PointDetails;
import com.yizhi.application.service.PointDetailsService; import com.yizhi.application.service.PointDetailsService;
import com.yizhi.application.service.PointUserService; import com.yizhi.application.service.PointUserService;
import com.yizhi.core.application.context.ContextHolder; import com.yizhi.core.application.context.ContextHolder;
import com.yizhi.core.application.context.RequestContext; import com.yizhi.core.application.context.RequestContext;
import com.yizhi.point.application.vo.PointUserListVO; import com.yizhi.point.application.vo.*;
import com.yizhi.point.application.vo.PointUserParamVO;
import com.yizhi.point.application.vo.domain.PointDetailsVo; import com.yizhi.point.application.vo.domain.PointDetailsVo;
import com.yizhi.system.application.system.remote.ReportClient; import com.yizhi.system.application.system.remote.ReportClient;
import io.swagger.annotations.Api;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.plugins.Page;
import io.swagger.annotations.Api; import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
...@@ -148,4 +141,14 @@ public class PointUserController { ...@@ -148,4 +141,14 @@ public class PointUserController {
return pointUserService.totalPoint(siteIds, startDate, endDate); return pointUserService.totalPoint(siteIds, startDate, endDate);
} }
@GetMapping("/list")
public Page<PointUserPageListVO> list(@RequestBody PointSearchParamVO searchParamVO) {
return pointUserService.list(searchParamVO);
}
@GetMapping("/exchange")
public int exchange(@RequestBody PointUserExchangeVO pointUserExchangeVO) {
return pointUserService.updateUserPointExchange(pointUserExchangeVO);
}
} }
package com.yizhi.application.domain;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
* 活动策略
* </p>
*
* @author bob123
* @since 2018-04-20
*/
@Data
@ApiModel(value = "PointProductVo", description = "积分兑换商品配置")
@TableName("point_product")
public class PointProduct extends Model<PointProduct> {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "产品id")
private Long id;
@ApiModelProperty(value = "产品名称")
@TableField("product_name")
private String productName;
@ApiModelProperty(value = "产品图片")
@TableField("product_img")
private String productImg;
@ApiModelProperty(value = "0删除 1上架 2下架")
private Integer state;
@ApiModelProperty(value = "创建时间")
@TableField("create_time")
private Date createTime;
@ApiModelProperty(value = "创建人")
@TableField("create_by_id")
private Long createById;
@ApiModelProperty(value = "创建人姓名")
@TableField("create_by_name")
private String createByName;
@ApiModelProperty(value = "修改时间")
@TableField("update_time")
private Date updateTime;
@ApiModelProperty(value = "修改人")
@TableField("update_by_id")
private Long updateById;
@ApiModelProperty(value = "修改人姓名")
@TableField("update_by_name")
private String updateByName;
@Override
protected Serializable pkVal() {
return this.id;
}
}
package com.yizhi.application.mapper;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.yizhi.application.domain.PointActivity;
import com.yizhi.application.domain.PointProduct;
import com.yizhi.point.application.vo.domain.PointProductVo;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
* <p>
* 活动策略 Mapper 接口
* </p>
*
* @author bob123
* @since 2018-04-20
*/
public interface PointProductMapper extends BaseMapper<PointProduct> {
List<PointProductVo> productList(@Param("page") Page<PointProductVo> page, @Param("productName") String productName);
}
...@@ -3,10 +3,9 @@ package com.yizhi.application.mapper; ...@@ -3,10 +3,9 @@ package com.yizhi.application.mapper;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.List; import java.util.List;
import com.yizhi.application.domain.PointProduct;
import com.yizhi.application.domain.PointUser; import com.yizhi.application.domain.PointUser;
import com.yizhi.point.application.vo.PointUserListVO; import com.yizhi.point.application.vo.*;
import com.yizhi.point.application.vo.PointUserParamVO;
import com.yizhi.point.application.vo.TotalPointVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.mapper.BaseMapper; import com.baomidou.mybatisplus.mapper.BaseMapper;
...@@ -38,4 +37,8 @@ public interface PointUserMapper extends BaseMapper<PointUser> { ...@@ -38,4 +37,8 @@ public interface PointUserMapper extends BaseMapper<PointUser> {
List<TotalPointVO> totalPoint(@Param("siteIds") List<Long> siteIds, List<TotalPointVO> totalPoint(@Param("siteIds") List<Long> siteIds,
@Param("startDate") String startDate, @Param("endDate") String endDate); @Param("startDate") String startDate, @Param("endDate") String endDate);
List<PointUserPageListVO> list(@Param("page") Page<PointUserPageListVO> page, @Param("name") String name);
int updateUserPointExchange(PointUserExchangeVO pointUserExchangeVO);
} }
package com.yizhi.application.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.yizhi.application.domain.PointActivity;
import com.yizhi.application.domain.PointProduct;
import com.yizhi.point.application.vo.PointSearchParamVO;
import com.yizhi.point.application.vo.domain.PointProductVo;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* <p>
* 活动策略 服务类
* </p>
*
* @author bob123
* @since 2018-04-20
*/
public interface PointProductService extends IService<PointProduct> {
Long insertDetail(PointProduct pointProduct);
Long deleteDetailById(PointProduct pointProduct);
Boolean pointUp(Long id, Long accountId, String accountName);
Boolean pointDown(Long id, Long accountId, String accountName);
Page<PointProductVo> productList(PointSearchParamVO searchParamVO);
}
...@@ -7,8 +7,7 @@ import java.util.Map; ...@@ -7,8 +7,7 @@ import java.util.Map;
import com.baomidou.mybatisplus.plugins.Page; import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService; import com.baomidou.mybatisplus.service.IService;
import com.yizhi.application.domain.PointUser; import com.yizhi.application.domain.PointUser;
import com.yizhi.point.application.vo.PointUserListVO; import com.yizhi.point.application.vo.*;
import com.yizhi.point.application.vo.PointUserParamVO;
/** /**
* <p> * <p>
...@@ -33,4 +32,8 @@ public interface PointUserService extends IService<PointUser> { ...@@ -33,4 +32,8 @@ public interface PointUserService extends IService<PointUser> {
Timestamp getStartDate(); Timestamp getStartDate();
Map<Long, Long> totalPoint(List<Long> siteIds,String startDate,String endDate); Map<Long, Long> totalPoint(List<Long> siteIds,String startDate,String endDate);
Page<PointUserPageListVO> list(PointSearchParamVO searchParamVO);
int updateUserPointExchange(PointUserExchangeVO pointUserExchangeVO);
} }
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.domain.PointProduct;
import com.yizhi.application.mapper.PointProductMapper;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* <p>
* 活动策略 服务实现类
* </p>
*
* @author bob123
* @since 2018-04-20
*/
@Service
public class PointProductServiceImpl extends ServiceImpl<PointProductMapper, PointProduct> implements PointProductService {
@Autowired
IdGenerator idGenerator ;
@Autowired
PointProductMapper pointProductMapper;
@Override
public Long insertDetail(PointProduct pointProduct) {
pointProduct.setId(idGenerator.generate());
Integer count = pointProductMapper.insert(pointProduct);
if(count > 0){
return pointProduct.getId();
}
return null;
}
@Override
public Long deleteDetailById(PointProduct pointProduct) {
PointProduct tem = new PointProduct();
tem.setId(pointProduct.getId());
int count = pointProductMapper.selectCount(new EntityWrapper<PointProduct>(tem));
if(count<=0){
return -1L;
}
pointProduct.setState(0);
return (long) pointProductMapper.updateById(pointProduct);
}
@Override
public Boolean pointUp(Long id, Long accountId, String accountName) {
PointProduct pointProduct = new PointProduct();
Date date = new Date();
pointProduct.setId(id);
pointProduct.setState(1);
pointProduct.setUpdateById(accountId);
pointProduct.setUpdateByName(accountName);
pointProduct.setUpdateTime(date);
return pointProductMapper.updateById(pointProduct)>0;
}
@Override
public Boolean pointDown(Long id, Long accountId, String accountName) {
PointProduct pointProduct = new PointProduct();
Date date = new Date();
pointProduct.setId(id);
pointProduct.setState(2);
pointProduct.setUpdateById(accountId);
pointProduct.setUpdateByName(accountName);
pointProduct.setUpdateTime(date);
return pointProductMapper.updateById(pointProduct)>0;
}
@Override
public Page<PointProductVo> productList(PointSearchParamVO searchParamVO) {
Page<PointProductVo> page = new Page<>(searchParamVO.getPageNo(), searchParamVO.getPageSize());
List<PointProductVo> list = pointProductMapper.productList(page, searchParamVO.getName());
return page.setRecords(list);
}
}
\ No newline at end of file
...@@ -7,9 +7,7 @@ import java.util.*; ...@@ -7,9 +7,7 @@ import java.util.*;
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.application.domain.PointUser;
import com.yizhi.point.application.vo.PointUserListVO; import com.yizhi.point.application.vo.*;
import com.yizhi.point.application.vo.PointUserParamVO;
import com.yizhi.point.application.vo.TotalPointVO;
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;
import com.yizhi.system.application.system.remote.ReportClient; import com.yizhi.system.application.system.remote.ReportClient;
...@@ -248,4 +246,17 @@ public class PointUserServiceImpl extends ServiceImpl<PointUserMapper, PointUser ...@@ -248,4 +246,17 @@ public class PointUserServiceImpl extends ServiceImpl<PointUserMapper, PointUser
return dateString; return dateString;
} }
public Page<PointUserPageListVO> list(PointSearchParamVO searchParamVO) {
Page<PointUserPageListVO> page = new Page<>(searchParamVO.getPageNo(), searchParamVO.getPageSize());
List pointUserList = pointUserMapper.list(page, searchParamVO.getName());
page.setRecords(pointUserList);
return page;
}
public int updateUserPointExchange(PointUserExchangeVO pointUserExchangeVO) {
return pointUserMapper.updateUserPointExchange(pointUserExchangeVO);
}
} }
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yizhi.application.mapper.PointProductMapper">
<select id="productList" resultType="com.yizhi.point.application.vo.domain.PointProductVo">
SELECT *
FROM point_product
WHERE state != 0
<if test="name != null and name != ''">
AND product_name like CONCAT('%', #{name}, '%')
</if>
</select>
</mapper>
...@@ -205,4 +205,16 @@ ...@@ -205,4 +205,16 @@
order by sum(pu.total_point) desc order by sum(pu.total_point) desc
) a ) a
</select> </select>
<select id="list" resultType="com.yizhi.point.application.vo.PointUserPageListVO">
select a.name as userName, a.full_name as name, p.total_point as totalPoint, p.user_id as userId
from point_user p left join cloud_system.account a on p.user_id = a.id where 1 = 1
<if test="name!=null and name != ''">
AND (a.`name` LIKE CONCAT('%', #{name}, '%') or a.full_name LIKE CONCAT('%', #{name}, '%'))
</if>
</select>
<update id="updateUserPointExchange" parameterType="com.yizhi.point.application.vo.PointUserExchangeVO">
update point_user set total_point = total_point - #{point} where user_id = #{userId} and total_point - #{point} > 0
</update>
</mapper> </mapper>
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