init
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -1,7 +1,11 @@
|
||||
package com.ruoyi.xq.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
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;
|
||||
|
||||
/**
|
||||
@@ -19,4 +23,12 @@ public interface UserService extends IService<User> {
|
||||
User getByUsercode(String usercode);
|
||||
|
||||
HomeUserVo homeUser(Long userId);
|
||||
|
||||
boolean updateMobileUser(UpdateMobileAdminReq bo);
|
||||
|
||||
void resetAvatar(Long userId);
|
||||
|
||||
void resetNickname(Long userId);
|
||||
|
||||
Page<UserAdminVo> pageAdmin(PageQuery pageQuery, UserAdminVo bo);
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,32 @@
|
||||
package com.ruoyi.xq.service.impl;
|
||||
|
||||
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.extension.plugins.pagination.Page;
|
||||
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.base.BaseException;
|
||||
import com.ruoyi.common.utils.BeanConvertUtil;
|
||||
import com.ruoyi.xq.domain.User;
|
||||
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.enums.userinfo.UserGenderEnum;
|
||||
import com.ruoyi.xq.mapper.UserMapper;
|
||||
import com.ruoyi.xq.service.UserInfoService;
|
||||
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.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 用户管理Service业务层处理
|
||||
@@ -22,9 +35,13 @@ import org.springframework.stereotype.Service;
|
||||
* @date 2024-03-04
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
|
||||
@Autowired
|
||||
private UserInfoService userInfoService;
|
||||
@Autowired
|
||||
private ImUserRefClient userRefClient;
|
||||
|
||||
@Override
|
||||
public User getByUsername(String username) {
|
||||
return this.getOne(Wrappers.lambdaQuery(User.class)
|
||||
@@ -56,4 +73,75 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
|
||||
BeanConvertUtil.copyProperties(user,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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user