diff --git a/agileboot-admin/src/main/java/com/agileboot/admin/controller/ab98/Ab98UserController.java b/agileboot-admin/src/main/java/com/agileboot/admin/controller/ab98/Ab98UserController.java index bc32a4d..e3de83c 100644 --- a/agileboot-admin/src/main/java/com/agileboot/admin/controller/ab98/Ab98UserController.java +++ b/agileboot-admin/src/main/java/com/agileboot/admin/controller/ab98/Ab98UserController.java @@ -48,8 +48,8 @@ public class Ab98UserController extends BaseController { @Operation(summary = "用户详情") @GetMapping("/detail/{id}") - public ResponseDTO detail(@PathVariable Long id) { - Ab98UserDetailDTO ab98UserDetail = userApplicationService.getAb98UserDetail(id); + public ResponseDTO detail(@PathVariable Long id, String corpid) { + Ab98UserDetailDTO ab98UserDetail = userApplicationService.getAb98UserDetail(id, corpid); return ResponseDTO.ok(ab98UserDetail); } diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/Ab98UserApplicationService.java b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/Ab98UserApplicationService.java index c5544dd..25c16c6 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/Ab98UserApplicationService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/Ab98UserApplicationService.java @@ -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 getUserList(SearchAb98UserQuery query) { Page 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; } diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserEntity.java b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserEntity.java index 5544993..c807527 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserEntity.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserEntity.java @@ -79,6 +79,18 @@ public class Ab98UserEntity extends BaseEntity { @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() { diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserMapper.java b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserMapper.java index fda7dd6..7c6c07b 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserMapper.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserMapper.java @@ -50,12 +50,21 @@ public interface Ab98UserMapper extends BaseMapper { @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 getUserListWithTagFilter( Page page, @Param(Constants.WRAPPER) Wrapper 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 getUserListWithBalance( + @Param(Constants.WRAPPER) Wrapper queryWrapper + ); } diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserService.java b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserService.java index 7e46dec..2142e20 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserService.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserService.java @@ -19,11 +19,13 @@ import java.util.List; */ public interface Ab98UserService extends IService { Page getUserListWithTagFilter(AbstractPageQuery query); - + + List getUserListWithBalance(Wrapper wrapper); + List selectAll(); - + Ab98UserEntity getByOpenid(String openid); - + Ab98UserEntity getByUserid(String userid); Ab98UserEntity getByIdnum(String idnum); diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserServiceImpl.java b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserServiceImpl.java index 37f489e..b3ae24d 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserServiceImpl.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/db/Ab98UserServiceImpl.java @@ -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 getUserListWithBalance(Wrapper wrapper) { + return baseMapper.getUserListWithBalance(wrapper); + } } diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/dto/Ab98UserDTO.java b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/dto/Ab98UserDTO.java index ddfe0e4..d62187d 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/dto/Ab98UserDTO.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/dto/Ab98UserDTO.java @@ -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; diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/dto/Ab98UserDetailDTO.java b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/dto/Ab98UserDetailDTO.java index b36ecda..8f9ae00 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/dto/Ab98UserDetailDTO.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/dto/Ab98UserDetailDTO.java @@ -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 { @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; } diff --git a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/query/SearchAb98UserQuery.java b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/query/SearchAb98UserQuery.java index c327d91..dd47cb5 100644 --- a/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/query/SearchAb98UserQuery.java +++ b/agileboot-domain/src/main/java/com/agileboot/domain/ab98/user/query/SearchAb98UserQuery.java @@ -22,6 +22,7 @@ public class SearchAb98UserQuery extends AbstractPageQuery { private Date startTime; private Date endTime; private String tagName; + private String corpid; @Override public QueryWrapper addQueryCondition() { @@ -37,6 +38,7 @@ public class SearchAb98UserQuery extends AbstractPageQuery { .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";