feat(用户): 添加用户余额相关字段及查询功能
在用户模块中添加余额、可用余额和余额限制字段,支持通过corpid查询用户余额信息 新增getUserListWithBalance接口用于查询带余额信息的用户列表 修改用户详情接口支持传入corpid参数获取对应余额信息
This commit is contained in:
parent
0e262bd324
commit
cc78eceda4
|
|
@ -48,8 +48,8 @@ public class Ab98UserController extends BaseController {
|
|||
|
||||
@Operation(summary = "用户详情")
|
||||
@GetMapping("/detail/{id}")
|
||||
public ResponseDTO<Ab98UserDetailDTO> detail(@PathVariable Long id) {
|
||||
Ab98UserDetailDTO ab98UserDetail = userApplicationService.getAb98UserDetail(id);
|
||||
public ResponseDTO<Ab98UserDetailDTO> detail(@PathVariable Long id, String corpid) {
|
||||
Ab98UserDetailDTO ab98UserDetail = userApplicationService.getAb98UserDetail(id, corpid);
|
||||
return ResponseDTO.ok(ab98UserDetail);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@ import com.agileboot.domain.ab98.api.Ab98UserDto;
|
|||
import com.agileboot.domain.ab98.api.SsoLoginUserinfo;
|
||||
import com.agileboot.domain.ab98.user.command.BindQyUserCommand;
|
||||
import com.agileboot.domain.ab98.user.dto.Ab98UserDetailDTO;
|
||||
import com.agileboot.domain.ab98.user_balance.db.UserBalanceEntity;
|
||||
import com.agileboot.domain.ab98.user_balance.db.UserBalanceService;
|
||||
import com.agileboot.domain.common.command.BulkOperationCommand;
|
||||
import com.agileboot.domain.ab98.user.command.AddAb98UserCommand;
|
||||
import com.agileboot.domain.ab98.user.command.UpdateAb98UserCommand;
|
||||
|
|
@ -43,6 +45,7 @@ public class Ab98UserApplicationService {
|
|||
private final QyUserService qyUserService;
|
||||
private final SysUserQyUserService sysUserQyUserService;
|
||||
private final SysUserService sysUserService;
|
||||
private final UserBalanceService userBalanceService;
|
||||
|
||||
public PageDTO<Ab98UserDTO> getUserList(SearchAb98UserQuery<Ab98UserEntity> query) {
|
||||
Page<Ab98UserEntity> page = userService.getUserListWithTagFilter(query);
|
||||
|
|
@ -84,9 +87,20 @@ public class Ab98UserApplicationService {
|
|||
}
|
||||
|
||||
|
||||
public Ab98UserDetailDTO getAb98UserDetail(Long ab98UserId) {
|
||||
public Ab98UserDetailDTO getAb98UserDetail(Long ab98UserId, String corpid) {
|
||||
Ab98UserEntity ab98UserEntity = userService.getById(ab98UserId);
|
||||
return new Ab98UserDetailDTO(ab98UserEntity);
|
||||
UserBalanceEntity userBalanceEntity = null;
|
||||
if (ab98UserEntity != null && StringUtils.isNotBlank(corpid)) {
|
||||
userBalanceEntity = userBalanceService.getByCorpidAndAb98UserId(corpid, ab98UserId);
|
||||
if (userBalanceEntity != null) {
|
||||
ab98UserEntity.setBalance(userBalanceEntity.getBalance());
|
||||
ab98UserEntity.setUseBalance(userBalanceEntity.getUseBalance());
|
||||
ab98UserEntity.setBalanceLimit(userBalanceEntity.getBalanceLimit());
|
||||
}
|
||||
}
|
||||
Ab98UserDetailDTO dto = new Ab98UserDetailDTO(ab98UserEntity);
|
||||
dto.setUserBalanceEntity(userBalanceEntity);
|
||||
return dto;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -79,6 +79,18 @@ public class Ab98UserEntity extends BaseEntity<Ab98UserEntity> {
|
|||
@TableField("ab98_balance")
|
||||
private Integer ab98Balance;
|
||||
|
||||
@ApiModelProperty("用户余额(来自user_balance表,单位:分)")
|
||||
@TableField(exist = false)
|
||||
private Long balance;
|
||||
|
||||
@ApiModelProperty("可用余额(来自user_balance表,单位:分)")
|
||||
@TableField(exist = false)
|
||||
private Long useBalance;
|
||||
|
||||
@ApiModelProperty("余额限制(来自user_balance表,单位:分)")
|
||||
@TableField(exist = false)
|
||||
private Long balanceLimit;
|
||||
|
||||
|
||||
@Override
|
||||
public Serializable pkVal() {
|
||||
|
|
|
|||
|
|
@ -50,12 +50,21 @@ public interface Ab98UserMapper extends BaseMapper<Ab98UserEntity> {
|
|||
@Select("SELECT * FROM ab98_user WHERE openid = #{openid} AND userid = #{userid} LIMIT 1")
|
||||
Ab98UserEntity selectByOpenidAndUserid(@Param("openid")String openid, @Param("userid")String userid);
|
||||
|
||||
@Select("SELECT DISTINCT u.* " +
|
||||
@Select("SELECT DISTINCT u.*, ub.balance, ub.use_balance, ub.balance_limit " +
|
||||
"FROM ab98_user u " +
|
||||
"LEFT JOIN ab98_user_tag t ON u.ab98_user_id = t.ab98_user_id " +
|
||||
"LEFT JOIN user_balance ub ON u.ab98_user_id = ub.ab98_user_id " +
|
||||
"${ew.customSqlSegment}")
|
||||
Page<Ab98UserEntity> getUserListWithTagFilter(
|
||||
Page<Ab98UserEntity> page,
|
||||
@Param(Constants.WRAPPER) Wrapper<Ab98UserEntity> queryWrapper
|
||||
);
|
||||
|
||||
@Select("SELECT DISTINCT u.*, ub.balance, ub.use_balance, ub.balance_limit " +
|
||||
"FROM ab98_user u " +
|
||||
"LEFT JOIN user_balance ub ON u.ab98_user_id = ub.ab98_user_id " +
|
||||
"${ew.customSqlSegment}")
|
||||
List<Ab98UserEntity> getUserListWithBalance(
|
||||
@Param(Constants.WRAPPER) Wrapper<Ab98UserEntity> queryWrapper
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,8 @@ import java.util.List;
|
|||
public interface Ab98UserService extends IService<Ab98UserEntity> {
|
||||
Page<Ab98UserEntity> getUserListWithTagFilter(AbstractPageQuery<Ab98UserEntity> query);
|
||||
|
||||
List<Ab98UserEntity> getUserListWithBalance(Wrapper<Ab98UserEntity> wrapper);
|
||||
|
||||
List<Ab98UserEntity> selectAll();
|
||||
|
||||
Ab98UserEntity getByOpenid(String openid);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.agileboot.domain.ab98.user.db;
|
||||
|
||||
import com.agileboot.common.core.page.AbstractPageQuery;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
|
@ -58,4 +59,9 @@ public class Ab98UserServiceImpl extends ServiceImpl<Ab98UserMapper, Ab98UserEnt
|
|||
public Ab98UserEntity selectByOpenidAndUserid(String openid, String userid) {
|
||||
return baseMapper.selectByOpenidAndUserid(openid, userid);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Ab98UserEntity> getUserListWithBalance(Wrapper<Ab98UserEntity> wrapper) {
|
||||
return baseMapper.getUserListWithBalance(wrapper);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,6 +61,15 @@ public class Ab98UserDTO {
|
|||
@ExcelColumn(name = "用户余额(单位:分)")
|
||||
private Integer ab98Balance;
|
||||
|
||||
@ExcelColumn(name = "余额(user_balance表,单位:分)")
|
||||
private Long balance;
|
||||
|
||||
@ExcelColumn(name = "可用余额(user_balance表,单位:分)")
|
||||
private Long useBalance;
|
||||
|
||||
@ExcelColumn(name = "余额限制(user_balance表,单位:分)")
|
||||
private Long balanceLimit;
|
||||
|
||||
@ExcelColumn(name = "注册状态")
|
||||
private String registeredStatus;
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.agileboot.common.annotation.ExcelColumn;
|
|||
import com.agileboot.common.annotation.ExcelSheet;
|
||||
import com.agileboot.common.core.base.BaseEntity;
|
||||
import com.agileboot.domain.ab98.user.db.Ab98UserEntity;
|
||||
import com.agileboot.domain.ab98.user_balance.db.UserBalanceEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
|
|
@ -62,6 +63,17 @@ public class Ab98UserDetailDTO extends BaseEntity<Ab98UserDetailDTO> {
|
|||
@ExcelColumn(name = "用户余额(单位:分)")
|
||||
private Integer ab98Balance;
|
||||
|
||||
@ExcelColumn(name = "余额(user_balance表,单位:分)")
|
||||
private Long balance;
|
||||
|
||||
@ExcelColumn(name = "可用余额(user_balance表,单位:分)")
|
||||
private Long useBalance;
|
||||
|
||||
@ExcelColumn(name = "余额限制(user_balance表,单位:分)")
|
||||
private Long balanceLimit;
|
||||
|
||||
private UserBalanceEntity userBalanceEntity;
|
||||
|
||||
@ExcelColumn(name = "注册状态")
|
||||
private String registeredStatus;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ public class SearchAb98UserQuery<T> extends AbstractPageQuery<T> {
|
|||
private Date startTime;
|
||||
private Date endTime;
|
||||
private String tagName;
|
||||
private String corpid;
|
||||
|
||||
@Override
|
||||
public QueryWrapper<T> addQueryCondition() {
|
||||
|
|
@ -37,6 +38,7 @@ public class SearchAb98UserQuery<T> extends AbstractPageQuery<T> {
|
|||
.eq(StrUtil.isNotEmpty(tagName), "t.tag_name", tagName)
|
||||
.eq(StrUtil.isNotEmpty(sex), "u.sex", sex)
|
||||
.eq(registered != null, "u.registered", registered)
|
||||
.eq(StrUtil.isNotEmpty(corpid), "ub.corpid", corpid)
|
||||
.between(startTime != null && endTime != null, "u.create_time", startTime, endTime);
|
||||
|
||||
this.timeRangeColumn = "create_time";
|
||||
|
|
|
|||
Loading…
Reference in New Issue