用户积分

master
kanade 3 years ago
parent 397395af58
commit c5cc8c510d

@ -3,11 +3,9 @@ package com.zh.project0512.controller.wxApp;
import com.zh.project0512.model.dto.RankListDTO;
import com.zh.project0512.model.vo.RankListVo;
import com.zh.project0512.service.IRankService;
import com.zh.project0512.utils.result.ResultList;
import com.zh.project0512.utils.result.ResultPageInfo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

@ -0,0 +1,50 @@
package com.zh.project0512.controller.wxApp;
import com.zh.project0512.model.dto.UserPointsRecordListDTO;
import com.zh.project0512.model.vo.UserPointsRecordListVo;
import com.zh.project0512.model.vo.UserPointsVo;
import com.zh.project0512.service.IUserPointsRecordsService;
import com.zh.project0512.utils.JwtUtil;
import com.zh.project0512.utils.result.Result;
import com.zh.project0512.utils.result.ResultPageInfo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
*
*/
@Tag(name = "用户积分")
@RestController
@RequestMapping("/wxApp/userPoints")
public class UserPointsController {
@Resource
IUserPointsRecordsService userPointsRecordsService;
/**
*
* @return
*/
@Operation(summary = "用户积分详情")
@GetMapping("/pointsDetail")
public Result<UserPointsVo> pointsDetail(@RequestHeader String token){
String openid = new JwtUtil().parseOpenid(token);
return Result.success(userPointsRecordsService.pointsDetail(openid),"请求成功");
}
/**
*
* @param userPointsRecordListDTO list DTO
* @return list Vo
*/
@Operation(summary = "用户积分记录")
@PostMapping("/list")
public ResultPageInfo<UserPointsRecordListVo> list(@Validated @RequestBody UserPointsRecordListDTO userPointsRecordListDTO){
return ResultPageInfo.success(userPointsRecordsService.list(userPointsRecordListDTO),"请求成功");
}
}

@ -0,0 +1,7 @@
package com.zh.project0512.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zh.project0512.model.UserPointsRecords;
public interface UserPointsRecordMapper extends BaseMapper<UserPointsRecords> {
}

@ -111,4 +111,17 @@ public class User extends Model {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime lastLoginAt;
/**
*
*/
@Schema(title = "当前积分")
private Integer points;
/**
*
*/
@TableField("lastLoginAt")
@Schema(title = "历史积分")
private Integer historyPoints;
}

@ -0,0 +1,50 @@
package com.zh.project0512.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
*
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("userPointsRecords")
public class UserPointsRecords implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
@TableField("id")
private Integer id;
/**
* 1.2.3.线
*/
@TableField("type")
private Integer type;
/**
* 1.2.
*/
@TableField("settlementMethod")
private Integer settlementMethod;
/**
*
*/
@TableField("points")
private Integer points;
/**
*
*/
@TableField("createDate")
private Date createDate;
}

@ -30,9 +30,9 @@ public class RankListDTO implements Serializable {
@NotNull(message = "每页记录数不能为空")
private int size;
/**
* 1.2.
* 1.2.
*/
@Schema(title = "排行榜类型")
@Schema(title = "排行榜类型",description = "1.经销商2.员工")
@NotNull(message = "排行榜类型不能为空")
private int type;
}

@ -0,0 +1,42 @@
package com.zh.project0512.model.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* list DTO
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserPointsRecordListDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@Schema(title = "当前页数")
@NotNull(message = "当前页数不能为空")
private int pageNum;
/**
*
*/
@Schema(title = "每页记录数")
@NotNull(message = "每页记录数不能为空")
private int size;
/**
*
*/
@Schema(title = "年")
private Integer years;
/**
*
*/
@Schema(title = "月")
private Integer months;
}

@ -1,6 +1,7 @@
package com.zh.project0512.model.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -19,17 +20,21 @@ public class RankListVo implements Serializable {
/**
* idid,id
*/
@Schema(title = "关联主键id用户主键id,经销商主键id")
private String linkId;
/**
*
*/
@Schema(title = "标题")
private String title;
/**
*
*/
@Schema(title = "副标题")
private String subtitle;
/**
*
*/
@Schema(title = "传播值")
private int value;
}

@ -0,0 +1,45 @@
package com.zh.project0512.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
/**
* list Vo
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserPointsRecordListVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
* Id
*/
@Schema(title = "主键Id")
private Integer id;
/**
* 1.2.3.线
*/
@Schema(title = "类型",description = "1.任务奖励2.素材分享奖励3.线下结算扣除")
private Integer type;
/**
* 1.2.
*/
@Schema(title = "结算方式",description = "1.增加2.扣除")
private Integer settlementMethod;
/**
*
*/
@Schema(title = "积分")
private Integer points;
/**
*
*/
@Schema(title = "创建日期")
private Date createDate;
}

@ -0,0 +1,29 @@
package com.zh.project0512.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* Vo
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserPointsVo implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
@Schema(title = "当前积分")
private Integer points;
/**
*
*/
@Schema(title = "累计获得积分")
private Integer historyPoints;
}

@ -0,0 +1,23 @@
package com.zh.project0512.service;
import com.zh.project0512.model.dto.UserPointsRecordListDTO;
import com.zh.project0512.model.vo.UserPointsRecordListVo;
import com.zh.project0512.model.vo.UserPointsVo;
import com.zh.project0512.utils.page.PageInfo;
public interface IUserPointsRecordsService {
/**
*
* @param openid
* @return Vo
*/
UserPointsVo pointsDetail(String openid);
/**
*
* @param userPointsRecordListDTO list DTO
* @return list Vo
*/
PageInfo<UserPointsRecordListVo> list(UserPointsRecordListDTO userPointsRecordListDTO);
}

@ -0,0 +1,61 @@
package com.zh.project0512.serviceImpl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zh.project0512.mapper.UserMapper;
import com.zh.project0512.mapper.UserPointsRecordMapper;
import com.zh.project0512.model.Rank;
import com.zh.project0512.model.User;
import com.zh.project0512.model.UserPointsRecords;
import com.zh.project0512.model.dto.UserPointsRecordListDTO;
import com.zh.project0512.model.vo.RankListVo;
import com.zh.project0512.model.vo.UserPointsRecordListVo;
import com.zh.project0512.model.vo.UserPointsVo;
import com.zh.project0512.service.IUserPointsRecordsService;
import com.zh.project0512.utils.PropertyUtils;
import com.zh.project0512.utils.page.PageInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
@Service
public class UserPointsRecordServiceImpl implements IUserPointsRecordsService {
@Resource
UserPointsRecordMapper userPointsRecordMapper;
@Resource
UserMapper userMapper;
@Override
public UserPointsVo pointsDetail(String openid) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("openid",openid);
User user = userMapper.selectOne(queryWrapper);
UserPointsVo userPointsVo = new UserPointsVo();
userPointsVo.setPoints(user.getPoints());
userPointsVo.setHistoryPoints(user.getHistoryPoints());
return userPointsVo;
}
@Override
public PageInfo<UserPointsRecordListVo> list(UserPointsRecordListDTO userPointsRecordListDTO) {
ArrayList<UserPointsRecordListVo> userPointsRecordListVos = new ArrayList<>();
QueryWrapper<UserPointsRecords> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(userPointsRecordListDTO.getYears() != null,"YEAR(createDate)",userPointsRecordListDTO.getYears());
queryWrapper.eq(userPointsRecordListDTO.getMonths() != null,"MONTH(createDate)",userPointsRecordListDTO.getMonths());
Page<UserPointsRecords> page = new Page<>(userPointsRecordListDTO.getPageNum(), userPointsRecordListDTO.getSize());
IPage<UserPointsRecords> userPointsRecordsIPage = userPointsRecordMapper.selectPage(page, queryWrapper);
List<UserPointsRecords> records = userPointsRecordsIPage.getRecords();
if (records != null && records.size()>0){
for (UserPointsRecords record : records) {
UserPointsRecordListVo userPointsRecordListVo = new UserPointsRecordListVo();
PropertyUtils.copyProperties(record,userPointsRecordListVo);
userPointsRecordListVos.add(userPointsRecordListVo);
}
}
return new PageInfo<>(userPointsRecordsIPage.getPages(), userPointsRecordListVos, userPointsRecordsIPage.getTotal());
}
}
Loading…
Cancel
Save