This commit is contained in:
张良(004796)
2024-03-13 14:56:59 +08:00
parent 9559658dda
commit e79d7d8c5c
18 changed files with 494 additions and 41 deletions

View File

@@ -13,6 +13,11 @@ 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.User; import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.dto.admin.user.UserAdminVo;
import com.ruoyi.xq.dto.admin.user.req.ResetPasswordAdminReq;
import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq;
import com.ruoyi.xq.dto.app.common.IdReq;
import com.ruoyi.xq.service.UserInviteService;
import com.ruoyi.xq.service.UserService; import com.ruoyi.xq.service.UserService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -38,14 +43,15 @@ import java.util.stream.Collectors;
public class UserController extends BaseController { public class UserController extends BaseController {
private final UserService userService; private final UserService userService;
private final UserInviteService userInviteService;
/** /**
* 查询用户管理列表 * 查询用户管理列表
*/ */
@SaCheckPermission("xq:user:list") @SaCheckPermission("xq:user:list")
@GetMapping("/list") @GetMapping("/list")
public TableDataInfo<User> list(User bo, PageQuery pageQuery) { public TableDataInfo<UserAdminVo> list(UserAdminVo bo, PageQuery pageQuery) {
Page<User> page = userService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)); Page<UserAdminVo> page = userService.pageAdmin(pageQuery, bo);
return TableDataInfo.build(page); return TableDataInfo.build(page);
} }
@@ -66,6 +72,57 @@ public class UserController extends BaseController {
return R.ok(users.stream().map(User::getUsercode).collect(Collectors.toList())); return R.ok(users.stream().map(User::getUsercode).collect(Collectors.toList()));
} }
@PostMapping("/resetPwd")
@SaCheckPermission("xq:user:restPwd")
@Log(title = "重置用户密码", businessType = BusinessType.UPDATE)
public R<Void> resetPwd(@RequestBody ResetPasswordAdminReq req) {
User user = userService.getById(req.getUserId());
userService.resetPassword(req.getUserId(),user.getPassword());
return R.ok();
}
@SaCheckPermission("xq:user:updateMobile")
@Log(title = "修改用户手机", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/updateMobile")
public R<Void> updateMobile(@RequestBody UpdateMobileAdminReq bo) {
userService.updateMobileUser(bo);
return R.ok();
}
@SaCheckPermission("xq:user:unBindInvite")
@Log(title = "解绑用户邀请人", businessType = BusinessType.OTHER)
@GetMapping("/unBindInvite")
public R<Void> unBindInvite(Long userId) {
userInviteService.unBindInviteUser(userId);
return R.ok();
}
@SaCheckPermission("xq:user:bindInvite")
@Log(title = "绑定用户邀请人", businessType = BusinessType.OTHER)
@GetMapping("/bindInvite")
public R<Void> bindInvite(Long userId,String inviteUsercode) {
userInviteService.bindInvite(userId,inviteUsercode);
return R.ok();
}
@PostMapping("/resetAvatar")
@SaCheckPermission("xq:user:resetAvatar")
@Log(title = "重置用户头像", businessType = BusinessType.UPDATE)
public R<Void> resetAvatar(@RequestBody IdReq res){
userService.resetAvatar(res.getId());
return R.ok();
}
@PostMapping("/resetNickname")
@SaCheckPermission("xq:user:resetNickname")
@Log(title = "重置用户昵称", businessType = BusinessType.UPDATE)
public R<Void> resetNickname(@RequestBody IdReq res){
userService.resetNickname(res.getId());
return R.ok();
}
/** /**
* 获取用户管理详细信息 * 获取用户管理详细信息
* *

View File

@@ -0,0 +1,95 @@
package com.ruoyi.xq.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.xq.domain.UserInvite;
import com.ruoyi.xq.service.UserInviteService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
/**
* 用户邀请
*
* @author 77
* @date 2024-03-13
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/xq/userInvite")
public class UserInviteController extends BaseController {
private final UserInviteService userInviteService;
/**
* 查询用户邀请列表
*/
@SaCheckPermission("xq:userInvite:list")
@GetMapping("/list")
public TableDataInfo<UserInvite> list(UserInvite bo, PageQuery pageQuery) {
Page<UserInvite> page = userInviteService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取用户邀请详细信息
*
* @param id 主键
*/
@SaCheckPermission("xq:userInvite:query")
@GetMapping("/{id}")
public R<UserInvite> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userInviteService.getById(id));
}
/**
* 新增用户邀请
*/
@SaCheckPermission("xq:userInvite:add")
@Log(title = "用户邀请", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody UserInvite bo) {
return toAjax(userInviteService.save(bo));
}
/**
* 修改用户邀请
*/
@SaCheckPermission("xq:userInvite:edit")
@Log(title = "用户邀请", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody UserInvite bo) {
return toAjax(userInviteService.updateById(bo));
}
/**
* 删除用户邀请
*
* @param ids 主键串
*/
@SaCheckPermission("xq:userInvite:remove")
@Log(title = "用户邀请", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(userInviteService.removeBatchByIds(Arrays.asList(ids)));
}
}

View File

@@ -133,10 +133,6 @@ public class User implements Serializable {
* 邀请人 * 邀请人
*/ */
private Long inviteId; private Long inviteId;
/**
* 邀请人Code
*/
private String inviteCode;
/** /**
* im_token * im_token
*/ */

View File

@@ -37,14 +37,6 @@ public class UserExtend implements Serializable {
* 收益的余额 * 收益的余额
*/ */
private BigDecimal incomeCoin; private BigDecimal incomeCoin;
/**
* 邀请人
*/
private Long inviteId;
/**
* 邀请人Code
*/
private String inviteCode;
/** /**
* 消费统计 * 消费统计
*/ */
@@ -53,10 +45,6 @@ public class UserExtend implements Serializable {
* 提现统计 * 提现统计
*/ */
private BigDecimal withdrawTotal; private BigDecimal withdrawTotal;
/**
* 给上家的返现提成
*/
private BigDecimal cashbackTotal;
private LocalDateTime createTime; private LocalDateTime createTime;
private LocalDateTime updateTime; private LocalDateTime updateTime;

View File

@@ -0,0 +1,52 @@
package com.ruoyi.xq.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 用户邀请对象 xq_user_invite
*
* @author 77
* @date 2024-03-13
*/
@Data
@TableName("xq_user_invite")
public class UserInvite implements Serializable {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "id")
private Long id;
/**
* 用户ID
*/
private Long userId;
/**
* 用户号
*/
private String usercode;
/**
* 邀请人
*/
private Long inviteId;
/**
* 邀请人Code
*/
private String inviteCode;
/**
* 给上家的返现提成
*/
private BigDecimal cashbackTotal;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,11 @@
package com.ruoyi.xq.dto.admin.user;
import com.ruoyi.xq.domain.User;
import lombok.Data;
@Data
public class UserAdminVo extends User {
private Long inviteId;
private String inviteNickname;
private String inviteUsercode;
}

View File

@@ -0,0 +1,11 @@
package com.ruoyi.xq.dto.admin.user.req;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "重置密码入参")
public class ResetPasswordAdminReq {
private Long userId;
private String password;
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.xq.dto.admin.user.req;
import lombok.Data;
@Data
public class UpdateMobileAdminReq {
private Long id;
private String mobile;
}

View File

@@ -4,6 +4,8 @@ package com.ruoyi.xq.enums.userinfo;
import lombok.Getter; import lombok.Getter;
import java.util.Arrays;
/** /**
* 性别 * 性别
* <p>created on 2024/2/26 16:50</p> * <p>created on 2024/2/26 16:50</p>
@@ -11,17 +13,23 @@ import lombok.Getter;
*/ */
@Getter @Getter
public enum UserGenderEnum { public enum UserGenderEnum {
NONE(0,"未知"), NONE(0,"未知", ""),
WOMEN(1,""), WOMEN(1,"", ""),
MAN(2,""), MAN(2,"", ""),
; ;
private final Integer code; private final Integer code;
private final String text; private final String text;
private final String defaultAvatar;
UserGenderEnum(Integer code, String text) { UserGenderEnum(Integer code, String text, String defaultAvatar) {
this.code = code; this.code = code;
this.text = text; this.text = text;
this.defaultAvatar = defaultAvatar;
}
public static UserGenderEnum getByCode(Integer gender) {
return Arrays.stream(UserGenderEnum.values()).filter(i -> gender.equals(i.getCode())).findFirst().orElse(null);
} }
} }

View File

@@ -6,7 +6,6 @@ import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.UserType; import com.ruoyi.common.enums.UserType;
@@ -65,6 +64,8 @@ public class CaiLoginManager {
private SmsVerifyService smsVerifyService; private SmsVerifyService smsVerifyService;
@Autowired @Autowired
private UserExtendService userExtendService; private UserExtendService userExtendService;
@Autowired
private UserInviteService userInviteService;
public String login(String username,String password){ public String login(String username,String password){
User user = userService.getByUsername(username); User user = userService.getByUsername(username);
@@ -119,30 +120,19 @@ public class CaiLoginManager {
}finally { }finally {
lock.unlock(); lock.unlock();
} }
if(user.getInviteId() != null){ if(StringUtils.isNotEmpty(inviteCode)){
User finalUser = user; User finalUser = user;
ExecutorConstant.COMMON_EXECUTOR.execute(() -> dealInviteId(finalUser)); ExecutorConstant.COMMON_EXECUTOR.execute(() -> dealInviteId(finalUser,inviteCode));
} }
return user; return user;
} }
public void dealInviteId(User user){ public void dealInviteId(User user, String inviteCode){
String inviteCode = user.getInviteCode();
if(StringUtils.isEmpty(inviteCode)){ if(StringUtils.isEmpty(inviteCode)){
return; return;
} }
User inviteUser = userService.getByUsercode(inviteCode); userInviteService.bindInvite(user.getId(),inviteCode);
if(inviteUser == null){
return;
}
userService.update(Wrappers.lambdaUpdate(User.class)
.eq(User::getId,user.getId())
.set(User::getInviteId, inviteUser.getId()));
userExtendService.update(Wrappers.lambdaUpdate(UserExtend.class)
.eq(UserExtend::getUserId, user.getId())
.set(UserExtend::getInviteId, inviteUser.getId())
.set(UserExtend::getInviteCode, inviteUser.getUsercode()));
} }
@@ -189,7 +179,6 @@ public class CaiLoginManager {
add.setPassword(BCrypt.hashpw(usercode+"用户手动滑稽安康黄鼠狼")); add.setPassword(BCrypt.hashpw(usercode+"用户手动滑稽安康黄鼠狼"));
add.setMobile(mobile); add.setMobile(mobile);
add.setGender(UserGenderEnum.NONE.getCode()); add.setGender(UserGenderEnum.NONE.getCode());
add.setInviteCode(inviteCode);
add.setImToken(IdUtil.simpleUUID()); add.setImToken(IdUtil.simpleUUID());
userService.save(add); userService.save(add);
CreateUserReq req = new CreateUserReq(); CreateUserReq req = new CreateUserReq();

View File

@@ -0,0 +1,14 @@
package com.ruoyi.xq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.xq.domain.UserInvite;
/**
* 用户邀请Mapper接口
*
* @author 77
* @date 2024-03-13
*/
public interface UserInviteMapper extends BaseMapper<UserInvite> {
}

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.User; import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.dto.admin.user.UserAdminVo;
import org.apache.ibatis.annotations.Param;
/** /**
* 用户管理Mapper接口 * 用户管理Mapper接口
@@ -11,4 +14,5 @@ import com.ruoyi.xq.domain.User;
*/ */
public interface UserMapper extends BaseMapper<User> { public interface UserMapper extends BaseMapper<User> {
Page<UserAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserAdminVo bo);
} }

View File

@@ -0,0 +1,17 @@
package com.ruoyi.xq.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.xq.domain.UserInvite;
/**
* 用户邀请Service接口
*
* @author 77
* @date 2024-03-13
*/
public interface UserInviteService extends IService<UserInvite> {
void bindInvite(Long userId, String inviteCode);
void unBindInviteUser(Long userId);
}

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.User; import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.dto.admin.user.UserAdminVo;
import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq;
import com.ruoyi.xq.dto.app.user.vo.HomeUserVo; import com.ruoyi.xq.dto.app.user.vo.HomeUserVo;
/** /**
@@ -19,4 +23,12 @@ public interface UserService extends IService<User> {
User getByUsercode(String usercode); User getByUsercode(String usercode);
HomeUserVo homeUser(Long userId); HomeUserVo homeUser(Long userId);
boolean updateMobileUser(UpdateMobileAdminReq bo);
void resetAvatar(Long userId);
void resetNickname(Long userId);
Page<UserAdminVo> pageAdmin(PageQuery pageQuery, UserAdminVo bo);
} }

View File

@@ -0,0 +1,68 @@
package com.ruoyi.xq.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.domain.UserInvite;
import com.ruoyi.xq.mapper.UserInviteMapper;
import com.ruoyi.xq.service.UserInviteService;
import com.ruoyi.xq.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
/**
* 用户邀请Service业务层处理
*
* @author 77
* @date 2024-03-13
*/
@Slf4j
@Service
public class UserInviteServiceImpl extends ServiceImpl<UserInviteMapper, UserInvite> implements UserInviteService {
@Autowired
private UserService userService;
@Override
@Transactional(rollbackFor = Exception.class)
public void bindInvite(Long userId, String inviteCode) {
User user = userService.getById(userId);
User inviteUser = userService.getByUsercode(inviteCode);
if(user == null || inviteUser == null){
throw new ServiceException("用户不存在,邀请用户不存在");
}
// TODO 添加判断,不允许设置自己为邀请人
// TODO 加锁
UserInvite userInvite = this.getOne(Wrappers.lambdaQuery(UserInvite.class)
.eq(UserInvite::getInviteId, inviteUser.getId())
.eq(UserInvite::getUserId, userId)
.last("limit 1"));
if(userInvite == null){
userInvite = new UserInvite();
userInvite.setUserId(userId);
userInvite.setUsercode(user.getUsercode());
userInvite.setInviteId(inviteUser.getId());
userInvite.setInviteCode(inviteUser.getUsercode());
}
userInvite.setCashbackTotal(BigDecimal.ZERO);
this.saveOrUpdate(userInvite);
userService.update(Wrappers.lambdaUpdate(User.class)
.eq(User::getId, userId)
.set(User::getInviteId, inviteUser.getId()));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void unBindInviteUser(Long userId) {
this.remove(Wrappers.lambdaQuery(UserInvite.class)
.eq(UserInvite::getUserId, userId));
userService.update(Wrappers.lambdaUpdate(User.class)
.eq(User::getId, userId)
.set(User::getInviteId, null));
}
}

View File

@@ -1,19 +1,32 @@
package com.ruoyi.xq.service.impl; package com.ruoyi.xq.service.impl;
import cn.dev33.satoken.secure.BCrypt; import cn.dev33.satoken.secure.BCrypt;
import cn.hutool.core.util.PhoneUtil;
import com.alibaba.fastjson2.JSON;
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.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.BeanConvertUtil; import com.ruoyi.common.utils.BeanConvertUtil;
import com.ruoyi.xq.domain.User; import com.ruoyi.xq.domain.User;
import com.ruoyi.xq.domain.UserInfo; import com.ruoyi.xq.domain.UserInfo;
import com.ruoyi.xq.dto.admin.user.UserAdminVo;
import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq;
import com.ruoyi.xq.dto.app.user.vo.HomeUserVo; import com.ruoyi.xq.dto.app.user.vo.HomeUserVo;
import com.ruoyi.xq.enums.userinfo.UserGenderEnum;
import com.ruoyi.xq.mapper.UserMapper; import com.ruoyi.xq.mapper.UserMapper;
import com.ruoyi.xq.service.UserInfoService; import com.ruoyi.xq.service.UserInfoService;
import com.ruoyi.xq.service.UserService; import com.ruoyi.xq.service.UserService;
import com.ruoyi.yunxin.client.ImUserRefClient;
import com.ruoyi.yunxin.req.UpdateUinfoReq;
import com.ruoyi.yunxin.resp.YxCommonR;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/** /**
* 用户管理Service业务层处理 * 用户管理Service业务层处理
@@ -22,9 +35,13 @@ import org.springframework.stereotype.Service;
* @date 2024-03-04 * @date 2024-03-04
*/ */
@Service @Service
@Slf4j
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService { public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
@Autowired @Autowired
private UserInfoService userInfoService; private UserInfoService userInfoService;
@Autowired
private ImUserRefClient userRefClient;
@Override @Override
public User getByUsername(String username) { public User getByUsername(String username) {
return this.getOne(Wrappers.lambdaQuery(User.class) return this.getOne(Wrappers.lambdaQuery(User.class)
@@ -56,4 +73,75 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
BeanConvertUtil.copyProperties(user,result); BeanConvertUtil.copyProperties(user,result);
return result; return result;
} }
@Override
public boolean updateMobileUser(UpdateMobileAdminReq bo) {
if(!PhoneUtil.isMobile(bo.getMobile())){
throw new ServiceException("请填写正常的手机号");
}
User user = this.getById(bo.getId());
if(com.ruoyi.common.utils.StringUtils.isNotEmpty(bo.getMobile())){
long count = this.count(Wrappers.lambdaQuery(User.class)
.eq(User::getMobile, bo.getMobile())
.ne(User::getId, user.getId()));
if(count > 0){
throw new BaseException("手机号已存在,无法修改");
}
}
User update = new User();
update.setId(user.getId());
update.setMobile(bo.getMobile());
this.updateById(update);
return true;
}
@Override
public void resetAvatar(Long userId) {
User user = this.getById(userId);
if(user == null){
return;
}
Integer gender = user.getGender();
UserGenderEnum genderEnum = UserGenderEnum.getByCode(gender);
if(genderEnum == null){
return;
}
this.update(Wrappers.lambdaUpdate(User.class)
.eq(User::getId,user.getId())
.set(User::getAvatar,genderEnum.getDefaultAvatar()));
UpdateUinfoReq uinfoReq = new UpdateUinfoReq();
uinfoReq.setAccid(user.getId()+"");
uinfoReq.setIcon(genderEnum.getDefaultAvatar());
YxCommonR r = userRefClient.updateUinfo(uinfoReq);
if(!r.isSuccess()){
log.error("云信更新失败,需要检查!{}", JSON.toJSONString(r));
}
}
@Override
public void resetNickname(Long userId) {
User user = this.getById(userId);
if(user == null){
return;
}
boolean update = this.update(Wrappers.lambdaUpdate(User.class)
.eq(User::getId, user.getId())
.set(User::getNickname, "用户" + user.getUsercode()));
if(!update){
return;
}
UpdateUinfoReq uinfoReq = new UpdateUinfoReq();
uinfoReq.setAccid(user.getId()+"");
uinfoReq.setName("用户"+user.getUsercode());
YxCommonR r = userRefClient.updateUinfo(uinfoReq);
if(!r.isSuccess()){
log.error("云信更新失败,需要检查!{}", JSON.toJSONString(r));
}
}
@Override
public Page<UserAdminVo> pageAdmin(PageQuery pageQuery, UserAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(), bo);
}
} }

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.xq.mapper.UserInviteMapper">
<resultMap type="com.ruoyi.xq.domain.UserInvite" id="UserInviteResult">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="usercode" column="usercode"/>
<result property="inviteId" column="invite_id"/>
<result property="inviteCode" column="invite_code"/>
<result property="cashbackTotal" column="cashback_total"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>

View File

@@ -3,6 +3,21 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 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.UserMapper"> <mapper namespace="com.ruoyi.xq.mapper.UserMapper">
<select id="pageAdmin" resultType="com.ruoyi.xq.dto.admin.user.UserAdminVo">
select t1.*, t2.id as invite_id, t2.nickname as invite_nickname, t2.usercode as invite_usercode
from xq_user t1
left join xq_user t2 on t1.invite_id = t2.id
<where>
<if test="bo.usercode != null and bo.usercode != ''">
and t1.usercode = #{bo.usercode}
</if>
<if test="bo.nickname != null and bo.nickname != ''">
and t1.nickname like concat('%',#{bo.nickname},'%')
</if>
<if test="bo.mobile != null and bo.mobile != ''">
and t1.mobile = #{bo.mobile}
</if>
</where>
order by t1.id desc
</select>
</mapper> </mapper>