feat 增加移动端用户资金变更记录

This commit is contained in:
damonyuan
2024-10-20 16:55:22 +08:00
parent c8e70fd3a0
commit aad5d82e73
6 changed files with 307 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
package com.mdd.front.controller;
import com.mdd.common.aop.NotLogin;
import com.mdd.common.core.AjaxResult;
import com.mdd.common.core.PageResult;
import com.mdd.common.validator.annotation.IDMust;
import com.mdd.front.LikeFrontThreadLocal;
import com.mdd.front.service.IArticleService;
import com.mdd.front.service.IUserAccountLogService;
import com.mdd.front.validate.article.ArticleCollectValidate;
import com.mdd.front.validate.article.ArticleSearchValidate;
import com.mdd.front.validate.common.PageValidate;
import com.mdd.front.validate.users.UserAccountLogSearchValidate;
import com.mdd.front.vo.article.ArticleCateVo;
import com.mdd.front.vo.article.ArticleCollectVo;
import com.mdd.front.vo.article.ArticleDetailVo;
import com.mdd.front.vo.article.ArticleListedVo;
import com.mdd.front.vo.user.UserAccountListVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@RestController
@RequestMapping("/api/account_log")
@Api(tags = "用户资金变更管理")
public class AccountLogController {
@Resource
IUserAccountLogService iUserAccountLogService;
@GetMapping("/lists")
@ApiOperation(value="用户资金变更列表")
public AjaxResult<PageResult<UserAccountListVo>> lists(@Validated PageValidate pageValidate,
@Validated UserAccountLogSearchValidate searchValidate) {
searchValidate.setUserId(LikeFrontThreadLocal.getUserId());
PageResult<UserAccountListVo> list = iUserAccountLogService.lists(pageValidate, searchValidate);
return AjaxResult.success(list);
}
}

View File

@@ -0,0 +1,21 @@
package com.mdd.front.service;
import com.mdd.common.core.PageResult;
import com.mdd.front.validate.common.PageValidate;
import com.mdd.front.validate.users.*;
import com.mdd.front.vo.user.UserAccountListVo;
import com.mdd.front.vo.user.UserCenterVo;
import com.mdd.front.vo.user.UserInfoVo;
/**
* 用户服务接口类
*/
public interface IUserAccountLogService {
/**
* @notes 获取列表
* @return array
* @author damonyuan
*/
PageResult<UserAccountListVo> lists(PageValidate pageValidate, UserAccountLogSearchValidate searchValidate);
}

View File

@@ -0,0 +1,90 @@
package com.mdd.front.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
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.mdd.common.config.GlobalConfig;
import com.mdd.common.core.PageResult;
import com.mdd.common.entity.article.Article;
import com.mdd.common.entity.log.UserAccountLog;
import com.mdd.common.entity.user.User;
import com.mdd.common.entity.user.UserAuth;
import com.mdd.common.enums.AccountLogEnum;
import com.mdd.common.enums.ClientEnum;
import com.mdd.common.enums.NoticeEnum;
import com.mdd.common.enums.UserEnum;
import com.mdd.common.exception.OperateException;
import com.mdd.common.mapper.log.UserAccountLogMapper;
import com.mdd.common.mapper.user.UserAuthMapper;
import com.mdd.common.mapper.user.UserMapper;
import com.mdd.common.plugin.notice.NoticeCheck;
import com.mdd.common.plugin.wechat.WxMnpDriver;
import com.mdd.common.util.*;
import com.mdd.front.LikeFrontThreadLocal;
import com.mdd.front.service.IUserAccountLogService;
import com.mdd.front.service.IUserService;
import com.mdd.front.validate.common.PageValidate;
import com.mdd.front.validate.users.*;
import com.mdd.front.vo.article.ArticleListedVo;
import com.mdd.front.vo.user.UserAccountListVo;
import com.mdd.front.vo.user.UserCenterVo;
import com.mdd.front.vo.user.UserInfoVo;
import me.chanjar.weixin.common.bean.oauth2.WxOAuth2AccessToken;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
/**
* 用户服务实现类
*/
@Service
public class UserAccountLogServiceImpl implements IUserAccountLogService {
@Resource
UserAccountLogMapper userAccountLogMapper;
@Override
public PageResult<UserAccountListVo> lists(PageValidate pageValidate, UserAccountLogSearchValidate searchValidate) {
Integer pageNo = pageValidate.getPage_no();
Integer pageSize = pageValidate.getPage_size();
QueryWrapper<UserAccountLog> queryWrapper = new QueryWrapper<>();
queryWrapper.isNull("delete_time");
queryWrapper.eq("user_id", searchValidate.getUserId());
if (StringUtils.isNotEmpty(searchValidate.getType()) && searchValidate.getType().equals("um")) {
queryWrapper.in("change_type", AccountLogEnum.getUserMoneyChangeType());
}
if (StringUtils.isNotNull(searchValidate.getAction())) {
queryWrapper.eq("action", searchValidate.getAction());
}
queryWrapper.orderByDesc("id");
IPage<UserAccountLog> iPage = userAccountLogMapper.selectPage(new Page<>(pageNo, pageSize), queryWrapper);
List<UserAccountListVo> list = new LinkedList<>();
for (UserAccountLog item : iPage.getRecords()) {
UserAccountListVo vo = new UserAccountListVo();
BeanUtils.copyProperties(item, vo);
vo.setTypeDesc(AccountLogEnum.getChangeTypeDesc(item.getChangeType()));
String symbol = item.getAction().equals(AccountLogEnum.DEC.getCode()) ? "-" : "+";
vo.setChangeAmountDesc(symbol + item.getChangeAmount());
vo.setCreateTime(TimeUtils.timestampToDate(item.getCreateTime()));
list.add(vo);
}
return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list);
}
}

View File

@@ -0,0 +1,20 @@
package com.mdd.front.validate.users;
import com.mdd.common.validator.annotation.StringContains;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
@ApiModel("用户资金变更参数")
public class UserAccountLogSearchValidate implements Serializable {
private static final long serialVersionUID = 1L;
private Integer userId;
private String type;
private Integer action;
}

View File

@@ -0,0 +1,39 @@
package com.mdd.front.vo.user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@ApiModel(value = "用户资金变更Vo")
public class UserAccountListVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户ID")
private Integer id;
@ApiModelProperty("变动类型")
private Integer changeType;
@ApiModelProperty("变动类型字符串")
private String typeDesc;
@ApiModelProperty("变动数量")
private BigDecimal changeAmount;
@ApiModelProperty("变动数量字符串")
private String changeAmountDesc;
@ApiModelProperty("变动类型: [1=增加, 2=减少]")
private Integer action;
@ApiModelProperty("备注信息")
private String remark;
@ApiModelProperty("创建时间")
private String createTime;
}