This commit is contained in:
77
2024-03-17 17:14:36 +08:00
parent daa95dd756
commit 34fe7c08e8
17 changed files with 184 additions and 50 deletions

View File

@@ -0,0 +1,13 @@
package com.ruoyi.xq.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "xq.system")
public class XqConfig {
private Integer cosHttp;
}

View File

@@ -13,6 +13,9 @@ import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.xq.domain.UserInfoAudit; import com.ruoyi.xq.domain.UserInfoAudit;
import com.ruoyi.xq.dto.admin.common.AuditFailReq;
import com.ruoyi.xq.dto.admin.useraudit.UserInfoAuditAdminVo;
import com.ruoyi.xq.dto.app.common.IdsReq;
import com.ruoyi.xq.service.UserInfoAuditService; import com.ruoyi.xq.service.UserInfoAuditService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@@ -41,8 +44,8 @@ public class UserInfoAuditController extends BaseController {
*/ */
@SaCheckPermission("xq:userInfoAudit:list") @SaCheckPermission("xq:userInfoAudit:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<UserInfoAudit> list(UserInfoAudit bo, PageQuery pageQuery) { public TableDataInfo<UserInfoAuditAdminVo> list(UserInfoAuditAdminVo bo, PageQuery pageQuery) {
Page<UserInfoAudit> page = userInfoAuditService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)); Page<UserInfoAuditAdminVo> page = userInfoAuditService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
@@ -58,26 +61,22 @@ public class UserInfoAuditController extends BaseController {
return R.ok(userInfoAuditService.getById(id)); return R.ok(userInfoAuditService.getById(id));
} }
/** @SaCheckPermission("xq:userInfoAudit:edit")
* 新增用户信息审核 @Log(title = "用户信息审核成功", businessType = BusinessType.UPDATE)
*/
@SaCheckPermission("xq:userInfoAudit:add")
@Log(title = "用户信息审核", businessType = BusinessType.INSERT)
@RepeatSubmit() @RepeatSubmit()
@PostMapping() @PostMapping("/audit/success")
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserInfoAudit bo) { public R<Void> auditSuccess(@RequestBody IdsReq bo) {
return toAjax(userInfoAuditService.save(bo)); userInfoAuditService.auditSuccess(bo.getIds());
return R.ok();
} }
/**
* 修改用户信息审核
*/
@SaCheckPermission("xq:userInfoAudit:edit") @SaCheckPermission("xq:userInfoAudit:edit")
@Log(title = "用户信息审核", businessType = BusinessType.UPDATE) @Log(title = "用户信息审核失败", businessType = BusinessType.UPDATE)
@RepeatSubmit() @RepeatSubmit()
@PutMapping() @PostMapping("/audit/fail")
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserInfoAudit bo) { public R<Void> auditFail(@RequestBody AuditFailReq bo) {
return toAjax(userInfoAuditService.updateById(bo)); userInfoAuditService.auditFail(bo.getId(), bo.getAuditRemark());
return R.ok();
} }
/** /**

View File

@@ -98,8 +98,8 @@ public class UserAppController {
} }
@PostMapping("/user/remove/picture") @PostMapping("/user/remove/picture")
@Operation(summary = "删除用户照片") @Operation(summary = "批量删除用户照片")
@Log(title = "删除用户照片", businessType = BusinessType.OTHER, isSaveDb = false) @Log(title = "批量删除用户照片", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> removeUserPicture(@RequestBody IdsReq req){ public R<Void> removeUserPicture(@RequestBody IdsReq req){
List<Long> ids = Arrays.stream(req.getIds().split(",")) List<Long> ids = Arrays.stream(req.getIds().split(","))
.map(Long::valueOf) .map(Long::valueOf)

View File

@@ -105,7 +105,7 @@ public class User implements Serializable {
/** /**
* 职业 * 职业
*/ */
private Integer profession; private String profession;
/** /**
* 年收入 * 年收入
*/ */

View File

@@ -42,6 +42,14 @@ public class UserInfoAudit implements Serializable {
*/ */
private Integer infoType; private Integer infoType;
/**
* 审核前的数据
*/
private String auditBeforeContent;
/**
* 审核中的数据
*/
private String auditContent; private String auditContent;
/** /**
* 1-待审核 2-审核成功 3-审核失败 * 1-待审核 2-审核成功 3-审核失败

View File

@@ -78,7 +78,7 @@ public class UserInfoAdminVo extends UserInfo {
/** /**
* 职业 * 职业
*/ */
private Integer profession; private String profession;
/** /**
* 年收入 * 年收入
*/ */

View File

@@ -0,0 +1,15 @@
package com.ruoyi.xq.dto.admin.useraudit;
import com.ruoyi.xq.domain.UserInfoAudit;
import lombok.Data;
@Data
public class UserInfoAuditAdminVo extends UserInfoAudit {
/**
* 昵称
*/
private String nickname;
private String mobile;
private String avatar;
}

View File

@@ -4,12 +4,13 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Data @Data
@Schema(description = "登陆入参模型") @Schema(description = "登陆入参模型")
public class LoginUser { public class LoginUser {
@Schema(description = "登陆类型 1-手机验证码登陆 2-密码登陆") @Schema(description = "登陆类型 1-手机验证码登陆 2-密码登陆")
@NotEmpty(message = "1-手机验证码登陆 2-密码登陆") @NotNull(message = "1-手机验证码登陆 2-密码登陆")
private Integer loginType = 1; private Integer loginType = 1;
@Schema(description = "登陆账号(手机号码)") @Schema(description = "登陆账号(手机号码)")
@NotEmpty(message = "手机号不能为空") @NotEmpty(message = "手机号不能为空")

View File

@@ -47,7 +47,7 @@ public class UpdateBaseInfoReq {
* 职业 * 职业
*/ */
@Schema(description = "职业") @Schema(description = "职业")
private Integer profession; private String profession;
/** /**
* 年收入 * 年收入
*/ */

View File

@@ -17,7 +17,7 @@ public class CurrentUserFullInfoVo {
@Schema(description = "用户ID") @Schema(description = "用户ID")
private Long userId; private Long userId;
@Schema(description = "用户编号") @Schema(description = "用户编号")
private Long usercode; private String usercode;
@Schema(description = "用户头像") @Schema(description = "用户头像")
private AvatarMinAuditDTO avatarAudit; private AvatarMinAuditDTO avatarAudit;
@Schema(description = "相册") @Schema(description = "相册")

View File

@@ -6,10 +6,8 @@ import lombok.Data;
@Data @Data
public class RemarkMinAuditDTO { public class RemarkMinAuditDTO {
@Schema(description = "备注") @Schema(description = "备注信息")
private String remark; private String remark;
@Schema(description = "正在审核中的备注")
private String auditRemark;
@Schema(description = "1-待审核 2-审核成功 3-审核失败") @Schema(description = "1-待审核 2-审核成功 3-审核失败")
private Integer auditStatus; private Integer auditStatus;
} }

View File

@@ -51,7 +51,7 @@ public class CurrentUserManager {
CurrentUserFullInfoVo result = new CurrentUserFullInfoVo(); CurrentUserFullInfoVo result = new CurrentUserFullInfoVo();
BeanConvertUtil.copyProperties(userInfo,result); BeanConvertUtil.copyProperties(userInfo,result);
BeanConvertUtil.copyProperties(user,result); BeanConvertUtil.copyProperties(user,result);
UserInfoAudit avatarAudit = userInfoAuditService.getByUserIdAndType(userId, UserInfoAuditTypeEnum.AVATAR); UserInfoAudit avatarAudit = userInfoAuditService.getAuditingDataByUserIdAndType(userId, UserInfoAuditTypeEnum.AVATAR);
AvatarMinAuditDTO avatarAuditInfo = new AvatarMinAuditDTO(); AvatarMinAuditDTO avatarAuditInfo = new AvatarMinAuditDTO();
avatarAuditInfo.setAvatar(user.getAvatar()); avatarAuditInfo.setAvatar(user.getAvatar());
avatarAuditInfo.setAuditStatus(AuditEnum.NO.getCode()); avatarAuditInfo.setAuditStatus(AuditEnum.NO.getCode());
@@ -61,12 +61,12 @@ public class CurrentUserManager {
} }
result.setAvatarAudit(avatarAuditInfo); result.setAvatarAudit(avatarAuditInfo);
UserInfoAudit remarkAudit = userInfoAuditService.getByUserIdAndType(userId, UserInfoAuditTypeEnum.REMARK); UserInfoAudit remarkAudit = userInfoAuditService.getAuditingDataByUserIdAndType(userId, UserInfoAuditTypeEnum.REMARK);
RemarkMinAuditDTO remarkAuditInfo = new RemarkMinAuditDTO(); RemarkMinAuditDTO remarkAuditInfo = new RemarkMinAuditDTO();
remarkAuditInfo.setRemark(user.getAvatar()); remarkAuditInfo.setRemark(user.getRemark());
remarkAuditInfo.setAuditStatus(AuditEnum.NO.getCode()); remarkAuditInfo.setAuditStatus(AuditEnum.NO.getCode());
if(remarkAudit != null){ if(remarkAudit != null){
remarkAuditInfo.setAuditRemark(remarkAudit.getAuditContent()); remarkAuditInfo.setRemark(remarkAudit.getAuditContent());
remarkAuditInfo.setAuditStatus(remarkAudit.getAuditStatus()); remarkAuditInfo.setAuditStatus(remarkAudit.getAuditStatus());
} }
result.setRemarkAudit(remarkAuditInfo); result.setRemarkAudit(remarkAuditInfo);
@@ -97,6 +97,10 @@ public class CurrentUserManager {
return vo; return vo;
} }
/**
* 更新基础信息
* @param req
*/
public void updateBaseInfo(UpdateBaseInfoReq req) { public void updateBaseInfo(UpdateBaseInfoReq req) {
Long userId = LoginHelper.getUserId(); Long userId = LoginHelper.getUserId();
User updateUser = BeanConvertUtil.convertTo(req, User::new); User updateUser = BeanConvertUtil.convertTo(req, User::new);
@@ -131,6 +135,9 @@ public class CurrentUserManager {
@Autowired @Autowired
private RedissonClient redissonClient; private RedissonClient redissonClient;
/**
* 更新备注信息
*/
public void updateRemark(String remark){ public void updateRemark(String remark){
Long userId = LoginHelper.getUserId(); Long userId = LoginHelper.getUserId();
User user = userService.getById(userId); User user = userService.getById(userId);
@@ -141,18 +148,20 @@ public class CurrentUserManager {
return; return;
} }
lock.lock(5,TimeUnit.SECONDS); lock.lock(5,TimeUnit.SECONDS);
UserInfoAudit audit = userInfoAuditService.getByUserIdAndType(userId, UserInfoAuditTypeEnum.REMARK); UserInfoAudit audit = userInfoAuditService.getAuditingDataByUserIdAndType(userId, UserInfoAuditTypeEnum.REMARK);
if(audit == null){ if(audit == null){
audit = new UserInfoAudit(); audit = new UserInfoAudit();
audit.setUserId(userId); audit.setUserId(userId);
audit.setUsercode(user.getUsercode()); audit.setUsercode(user.getUsercode());
audit.setInfoType(UserInfoAuditTypeEnum.REMARK.getCode()); audit.setInfoType(UserInfoAuditTypeEnum.REMARK.getCode());
audit.setAuditBeforeContent(user.getRemark());
audit.setAuditContent(remark); audit.setAuditContent(remark);
audit.setAuditStatus(AuditEnum.AUDITING.getCode()); audit.setAuditStatus(AuditEnum.AUDITING.getCode());
userInfoAuditService.save(audit); userInfoAuditService.save(audit);
}else{ }else{
userInfoAuditService.update(Wrappers.lambdaUpdate(UserInfoAudit.class) userInfoAuditService.update(Wrappers.lambdaUpdate(UserInfoAudit.class)
.set(UserInfoAudit::getAuditContent, remark) .set(UserInfoAudit::getAuditContent, remark)
.set(UserInfoAudit::getAuditBeforeContent, user.getRemark())
.eq(UserInfoAudit::getId, audit.getId())); .eq(UserInfoAudit::getId, audit.getId()));
} }
} finally { } finally {
@@ -170,18 +179,20 @@ public class CurrentUserManager {
return; return;
} }
lock.lock(5,TimeUnit.SECONDS); lock.lock(5,TimeUnit.SECONDS);
UserInfoAudit audit = userInfoAuditService.getByUserIdAndType(userId, UserInfoAuditTypeEnum.AVATAR); UserInfoAudit audit = userInfoAuditService.getAuditingDataByUserIdAndType(userId, UserInfoAuditTypeEnum.AVATAR);
if(audit == null){ if(audit == null){
audit = new UserInfoAudit(); audit = new UserInfoAudit();
audit.setUserId(userId); audit.setUserId(userId);
audit.setUsercode(user.getUsercode()); audit.setUsercode(user.getUsercode());
audit.setInfoType(UserInfoAuditTypeEnum.AVATAR.getCode()); audit.setInfoType(UserInfoAuditTypeEnum.AVATAR.getCode());
audit.setAuditBeforeContent(user.getAvatar());
audit.setAuditContent(avatar); audit.setAuditContent(avatar);
audit.setAuditStatus(AuditEnum.AUDITING.getCode()); audit.setAuditStatus(AuditEnum.AUDITING.getCode());
userInfoAuditService.save(audit); userInfoAuditService.save(audit);
}else{ }else{
userInfoAuditService.update(Wrappers.lambdaUpdate(UserInfoAudit.class) userInfoAuditService.update(Wrappers.lambdaUpdate(UserInfoAudit.class)
.set(UserInfoAudit::getAuditContent, avatar) .set(UserInfoAudit::getAuditContent, avatar)
.set(UserInfoAudit::getAuditBeforeContent, user.getAvatar())
.eq(UserInfoAudit::getId, audit.getId())); .eq(UserInfoAudit::getId, audit.getId()));
} }
} finally { } finally {

View File

@@ -1,7 +1,10 @@
package com.ruoyi.xq.mapper; package com.ruoyi.xq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.xq.domain.UserInfoAudit; import com.ruoyi.xq.domain.UserInfoAudit;
import com.ruoyi.xq.dto.admin.useraudit.UserInfoAuditAdminVo;
import org.apache.ibatis.annotations.Param;
/** /**
* 用户信息审核Mapper接口 * 用户信息审核Mapper接口
@@ -11,4 +14,5 @@ import com.ruoyi.xq.domain.UserInfoAudit;
*/ */
public interface UserInfoAuditMapper extends BaseMapper<UserInfoAudit> { public interface UserInfoAuditMapper extends BaseMapper<UserInfoAudit> {
Page<UserInfoAuditAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserInfoAuditAdminVo bo);
} }

View File

@@ -1,7 +1,11 @@
package com.ruoyi.xq.service; package com.ruoyi.xq.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.xq.domain.UserInfoAudit; import com.ruoyi.xq.domain.UserInfoAudit;
import com.ruoyi.xq.dto.admin.useraudit.UserInfoAuditAdminVo;
import com.ruoyi.xq.dto.app.common.IdsReq;
import com.ruoyi.xq.enums.user.UserInfoAuditTypeEnum; import com.ruoyi.xq.enums.user.UserInfoAuditTypeEnum;
/** /**
@@ -11,5 +15,17 @@ import com.ruoyi.xq.enums.user.UserInfoAuditTypeEnum;
* @date 2024-03-04 * @date 2024-03-04
*/ */
public interface UserInfoAuditService extends IService<UserInfoAudit> { public interface UserInfoAuditService extends IService<UserInfoAudit> {
UserInfoAudit getByUserIdAndType(Long userId, UserInfoAuditTypeEnum auditTypeEnum); /**
* 查询审核中的数据
* @param userId
* @param auditTypeEnum
* @return
*/
UserInfoAudit getAuditingDataByUserIdAndType(Long userId, UserInfoAuditTypeEnum auditTypeEnum);
Page<UserInfoAuditAdminVo> pageAdmin(PageQuery pageQuery, UserInfoAuditAdminVo bo);
void auditSuccess(String ids);
void auditFail(Long id, String auditRemark);
} }

View File

@@ -1,15 +1,30 @@
package com.ruoyi.xq.service.impl; package com.ruoyi.xq.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.domain.UserInfoAudit; import com.ruoyi.xq.domain.UserInfoAudit;
import com.ruoyi.xq.domain.UserPictures;
import com.ruoyi.xq.dto.admin.useraudit.UserInfoAuditAdminVo;
import com.ruoyi.xq.dto.app.common.IdsReq;
import com.ruoyi.xq.enums.common.AuditEnum; import com.ruoyi.xq.enums.common.AuditEnum;
import com.ruoyi.xq.enums.user.UserInfoAuditTypeEnum; import com.ruoyi.xq.enums.user.UserInfoAuditTypeEnum;
import com.ruoyi.xq.enums.userinfo.UserHousingStatusEnum;
import com.ruoyi.xq.mapper.UserInfoAuditMapper; import com.ruoyi.xq.mapper.UserInfoAuditMapper;
import com.ruoyi.xq.service.UserInfoAuditService; import com.ruoyi.xq.service.UserInfoAuditService;
import com.ruoyi.xq.service.UserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.boot.autoconfigure.security.SecurityProperties;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/** /**
* 用户信息审核Service业务层处理 * 用户信息审核Service业务层处理
* *
@@ -20,8 +35,11 @@ import org.springframework.stereotype.Service;
@Service @Service
public class UserInfoAuditServiceImpl extends ServiceImpl<UserInfoAuditMapper,UserInfoAudit> implements UserInfoAuditService { public class UserInfoAuditServiceImpl extends ServiceImpl<UserInfoAuditMapper,UserInfoAudit> implements UserInfoAuditService {
@Autowired
private UserService userService;
@Override @Override
public UserInfoAudit getByUserIdAndType(Long userId, UserInfoAuditTypeEnum auditTypeEnum){ public UserInfoAudit getAuditingDataByUserIdAndType(Long userId, UserInfoAuditTypeEnum auditTypeEnum){
return this.getOne(Wrappers.lambdaQuery(UserInfoAudit.class) return this.getOne(Wrappers.lambdaQuery(UserInfoAudit.class)
.eq(UserInfoAudit::getInfoType, auditTypeEnum.getCode()) .eq(UserInfoAudit::getInfoType, auditTypeEnum.getCode())
.eq(UserInfoAudit::getUserId, userId) .eq(UserInfoAudit::getUserId, userId)
@@ -29,4 +47,51 @@ public class UserInfoAuditServiceImpl extends ServiceImpl<UserInfoAuditMapper,Us
.last("limit 1")); .last("limit 1"));
} }
@Override
public Page<UserInfoAuditAdminVo> pageAdmin(PageQuery pageQuery, UserInfoAuditAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(),bo);
}
@Override
public void auditSuccess(String ids) {
String[] idArray = ids.split(",");
for (String id : idArray) {
boolean flag = this.update(Wrappers.lambdaUpdate(UserInfoAudit.class)
.eq(UserInfoAudit::getId, id)
.eq(UserInfoAudit::getAuditStatus, AuditEnum.AUDITING.getCode())
.set(UserInfoAudit::getAuditStatus, AuditEnum.SUCCESS.getCode())
.set(UserInfoAudit::getAuditIp, ServletUtils.getClientIP())
.set(UserInfoAudit::getAuditOpId, LoginHelper.getUserId())
.set(UserInfoAudit::getAuditOpName, LoginHelper.getUsername())
.set(UserInfoAudit::getAuditTime, LocalDateTime.now())
.set(UserInfoAudit::getAuditRemark, "审核成功"));
if(flag){
UserInfoAudit userInfoAudit = this.getById(id);
if(userInfoAudit.getInfoType().equals(UserInfoAuditTypeEnum.AVATAR.getCode())){
userService.update(Wrappers.lambdaUpdate(User.class)
.eq(User::getId, userInfoAudit.getUserId())
.set(User::getAvatar, userInfoAudit.getAuditContent()));
}else if(userInfoAudit.getInfoType().equals(UserInfoAuditTypeEnum.REMARK.getCode())){
userService.update(Wrappers.lambdaUpdate(User.class)
.eq(User::getId, userInfoAudit.getUserId())
.set(User::getRemark, userInfoAudit.getAuditContent()));
}
}
}
}
@Override
public void auditFail(Long id, String auditRemark) {
this.update(Wrappers.lambdaUpdate(UserInfoAudit.class)
.eq(UserInfoAudit::getId, id)
.eq(UserInfoAudit::getAuditStatus, AuditEnum.AUDITING.getCode())
.set(UserInfoAudit::getAuditStatus, AuditEnum.FAIL.getCode())
.set(UserInfoAudit::getAuditIp, ServletUtils.getClientIP())
.set(UserInfoAudit::getAuditOpId, LoginHelper.getUserId())
.set(UserInfoAudit::getAuditOpName, LoginHelper.getUsername())
.set(UserInfoAudit::getAuditTime, LocalDateTime.now())
.set(UserInfoAudit::getAuditRemark, auditRemark));
}
} }

View File

@@ -28,7 +28,8 @@ public class UserPicturesServiceImpl extends ServiceImpl<UserPicturesMapper,User
@Override @Override
public List<UserPictures> listByUserId(Long userId) { public List<UserPictures> listByUserId(Long userId) {
return this.list(Wrappers.lambdaQuery(UserPictures.class) return this.list(Wrappers.lambdaQuery(UserPictures.class)
.eq(UserPictures::getUserId, userId)); .eq(UserPictures::getUserId, userId)
.in(UserPictures::getAuditStatus, AuditEnum.AUDITING.getCode(), AuditEnum.SUCCESS.getCode()));
} }
@Override @Override

View File

@@ -4,20 +4,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.xq.mapper.UserInfoAuditMapper"> <mapper namespace="com.ruoyi.xq.mapper.UserInfoAuditMapper">
<resultMap type="com.ruoyi.xq.domain.UserInfoAudit" id="UserInfoAuditResult"> <select id="pageAdmin" resultType="com.ruoyi.xq.dto.admin.useraudit.UserInfoAuditAdminVo">
<result property="id" column="id"/> select t1.*, t2.nickname, t2.mobile,t2.avatar
<result property="userId" column="user_id"/> from xq_user_info_audit t1
<result property="usercode" column="usercode"/> left join xq_user t2 on t1.user_id = t2.id
<result property="infoType" column="info_type"/> <where>
<result property="auditStatus" column="audit_status"/> <if test="bo.usercode != null and bo.usercode != ''">
<result property="auditRemark" column="audit_remark"/> and t1.usercode = #{bo.usercode}
<result property="auditTime" column="audit_time"/> </if>
<result property="auditOpId" column="audit_op_id"/> <if test="bo.nickname != null and bo.nickname != ''">
<result property="auditOpName" column="audit_op_name"/> and t2.nickname like concat('%',#{bo.nickname},'%')
<result property="auditIp" column="audit_ip"/> </if>
<result property="createTime" column="create_time"/> <if test="bo.mobile != null and bo.mobile != ''">
<result property="updateTime" column="update_time"/> and t2.mobile = #{bo.mobile}
</resultMap> </if>
</where>
order by create_time desc
</select>
</mapper> </mapper>