init
This commit is contained in:
@@ -2,6 +2,7 @@ package com.ruoyi.xq.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.xq.domain.AreaCode;
|
||||
import com.ruoyi.xq.dto.admin.areacode.AreaCodeAdminTree;
|
||||
import com.ruoyi.xq.dto.app.areacode.AreaCodeQuery;
|
||||
import com.ruoyi.xq.dto.app.areacode.AreaCodeTree;
|
||||
|
||||
@@ -17,6 +18,8 @@ public interface AreaCodeService extends IService<AreaCode> {
|
||||
|
||||
List<AreaCode> listAreaCode(AreaCodeQuery query);
|
||||
|
||||
List<AreaCodeAdminTree> treeAdmin();
|
||||
|
||||
List<AreaCodeTree> tree();
|
||||
|
||||
}
|
||||
|
||||
@@ -6,11 +6,14 @@ import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.xq.domain.User;
|
||||
import com.ruoyi.xq.dto.admin.user.FullUserVo;
|
||||
import com.ruoyi.xq.dto.admin.user.UserAdminVo;
|
||||
import com.ruoyi.xq.dto.admin.user.req.AddUserReq;
|
||||
import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq;
|
||||
import com.ruoyi.xq.dto.admin.user.req.UpdateUserReq;
|
||||
import com.ruoyi.xq.dto.app.user.HomePageReq;
|
||||
import com.ruoyi.xq.dto.app.user.vo.HomeUserListVo;
|
||||
import com.ruoyi.xq.dto.app.user.vo.HomeUserVo;
|
||||
import com.ruoyi.xq.dto.common.user.MinUser;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -49,4 +52,11 @@ public interface UserService extends IService<User> {
|
||||
boolean unlock(Long id);
|
||||
|
||||
FullUserVo fullUserAdmin(Long userId);
|
||||
|
||||
User getByMobile(String mobile);
|
||||
|
||||
void saveUser(AddUserReq bo);
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
void updateBaseUser(UpdateUserReq updateUserReq);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.common.utils.BeanConvertUtil;
|
||||
import com.ruoyi.xq.domain.AreaCode;
|
||||
import com.ruoyi.xq.dto.admin.areacode.AreaCodeAdminTree;
|
||||
import com.ruoyi.xq.dto.app.areacode.AreaCodeQuery;
|
||||
import com.ruoyi.xq.dto.app.areacode.AreaCodeTree;
|
||||
import com.ruoyi.xq.mapper.AreaCodeMapper;
|
||||
@@ -12,7 +13,6 @@ import com.ruoyi.xq.service.AreaCodeService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -32,6 +32,35 @@ public class AreaCodeServiceImpl extends ServiceImpl<AreaCodeMapper,AreaCode> im
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AreaCodeAdminTree> treeAdmin() {
|
||||
List<AreaCode> list = this.list();
|
||||
List<AreaCodeAdminTree> nodeList = list.stream().map(i -> {
|
||||
AreaCodeAdminTree areaCodeAdminTree = new AreaCodeAdminTree();
|
||||
areaCodeAdminTree.setId(i.getCode());
|
||||
areaCodeAdminTree.setLabel(i.getName());
|
||||
areaCodeAdminTree.setParentId(i.getPcode());
|
||||
return areaCodeAdminTree;
|
||||
}).collect(Collectors.toList());
|
||||
Map<Integer, AreaCodeAdminTree> nodeMap = new HashMap<>();
|
||||
Set<AreaCodeAdminTree> roots = new HashSet<>();
|
||||
// 遍历列表构建节点映射表
|
||||
for (AreaCodeAdminTree node : nodeList) {
|
||||
nodeMap.put(node.getId(), node);
|
||||
if (node.getParentId() == 0 || !nodeMap.containsKey(node.getParentId())) {
|
||||
roots.add(node);
|
||||
}
|
||||
}
|
||||
// 建立父子关系
|
||||
for (AreaCodeAdminTree node : nodeList) {
|
||||
if (nodeMap.containsKey(node.getParentId())) {
|
||||
AreaCodeAdminTree parentNode = nodeMap.get(node.getParentId());
|
||||
parentNode.addChild(node);
|
||||
}
|
||||
}
|
||||
return new ArrayList<>(roots);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AreaCodeTree> tree() {
|
||||
List<AreaCode> list = this.list();
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.ruoyi.xq.service.impl;
|
||||
|
||||
import cn.dev33.satoken.secure.BCrypt;
|
||||
import cn.hutool.core.util.PhoneUtil;
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -14,7 +15,9 @@ import com.ruoyi.common.utils.BeanConvertUtil;
|
||||
import com.ruoyi.xq.domain.*;
|
||||
import com.ruoyi.xq.dto.admin.user.FullUserVo;
|
||||
import com.ruoyi.xq.dto.admin.user.UserAdminVo;
|
||||
import com.ruoyi.xq.dto.admin.user.req.AddUserReq;
|
||||
import com.ruoyi.xq.dto.admin.user.req.UpdateMobileAdminReq;
|
||||
import com.ruoyi.xq.dto.admin.user.req.UpdateUserReq;
|
||||
import com.ruoyi.xq.dto.app.user.HomePageReq;
|
||||
import com.ruoyi.xq.dto.app.user.vo.HomeUserListVo;
|
||||
import com.ruoyi.xq.dto.app.user.vo.HomeUserVo;
|
||||
@@ -22,6 +25,8 @@ import com.ruoyi.xq.dto.common.user.MinUser;
|
||||
import com.ruoyi.xq.enums.ErrorEnum;
|
||||
import com.ruoyi.xq.enums.common.SystemConfigEnum;
|
||||
import com.ruoyi.xq.enums.userinfo.UserGenderEnum;
|
||||
import com.ruoyi.xq.lock.LockKey;
|
||||
import com.ruoyi.xq.manager.LoginManager;
|
||||
import com.ruoyi.xq.manager.SystemConfigManager;
|
||||
import com.ruoyi.xq.mapper.UserMapper;
|
||||
import com.ruoyi.xq.service.*;
|
||||
@@ -32,8 +37,11 @@ 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.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
@@ -68,6 +76,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
|
||||
private UserAuthService userAuthService;
|
||||
@Autowired
|
||||
private UserStatusService userStatusService;
|
||||
@Autowired
|
||||
private UserExtendService userExtendService;
|
||||
@Autowired
|
||||
private RedissonClient redissonClient;
|
||||
@Autowired
|
||||
private AreaCodeService areaCodeService;
|
||||
|
||||
@Override
|
||||
public MinUser getMinUserById(Long userId){
|
||||
@@ -223,7 +237,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
|
||||
if(StringUtils.isNotEmpty(vipQuery.getProfession()) ||
|
||||
vipQuery.getAnnualIncome() != null || vipQuery.getZodiac() != null ||
|
||||
vipQuery.getSign() != null || vipQuery.getChildStatus() != null || vipQuery.getHousingStatus() != null ||
|
||||
vipQuery.getCarStatus() != null || StringUtils.isNotEmpty(vipQuery.getAddressCode())){
|
||||
vipQuery.getCarStatus() != null || vipQuery.getAddressCode() != null){
|
||||
if(userId == null){
|
||||
throw new ServiceException(ErrorEnum.VIP_AUTH);
|
||||
}
|
||||
@@ -290,6 +304,82 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
|
||||
vo.setUserLogin(userLogin);
|
||||
List<UserPictures> userPicturesList = userPicturesService.listByUserIdSuccess(userId);
|
||||
vo.setUserPicturesList(userPicturesList);
|
||||
UserExtend userExtend = userExtendService.getByUserId(userId);
|
||||
vo.setAccount(userExtend);
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public User getByMobile(String mobile){
|
||||
return this.getOne(Wrappers.lambdaQuery(User.class).eq(User::getMobile, mobile)
|
||||
.last("limit 1"));
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private LoginManager loginManager;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void saveUser(AddUserReq bo) {
|
||||
User user = this.getByMobile(bo.getMobile());
|
||||
if(user != null){
|
||||
throw new ServiceException("手机号已存在!");
|
||||
}
|
||||
String lockKey = LockKey.getRegisterLockKey(bo.getMobile());
|
||||
RLock lock = redissonClient.getLock(lockKey);
|
||||
if(lock.isLocked()){
|
||||
throw new ServiceException("您点击太快了");
|
||||
}
|
||||
lock.lock();
|
||||
try {
|
||||
user = this.getByMobile(bo.getMobile());
|
||||
if(user != null){
|
||||
throw new ServiceException("手机号已存在!");
|
||||
}
|
||||
user = loginManager.registerUser(bo.getMobile(), null);
|
||||
UpdateUserReq updateUser = BeanConvertUtil.convertTo(bo, UpdateUserReq::new);
|
||||
updateUser.setUserId(user.getId());
|
||||
UserService userService = SpringUtil.getBean(UserService.class);
|
||||
userService.updateBaseUser(updateUser);
|
||||
}finally {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateBaseUser(UpdateUserReq updateUserReq){
|
||||
User user = this.getById(updateUserReq.getUserId());
|
||||
if(user == null){
|
||||
throw new ServiceException("用户不存在!");
|
||||
}
|
||||
User updateUser = new User();
|
||||
updateUser.setId(user.getId());
|
||||
updateUser.setType(updateUserReq.getUserType());
|
||||
updateUser.setNickname(updateUserReq.getNickname());
|
||||
updateUser.setAvatar(updateUserReq.getAvatar());
|
||||
updateUser.setGender(updateUserReq.getGender());
|
||||
updateUser.setHeight(updateUserReq.getHeight());
|
||||
updateUser.setWeight(updateUserReq.getWeight());
|
||||
updateUser.setBirthday(updateUserReq.getBirthday());
|
||||
if(updateUserReq.getResidenceCode() != null){
|
||||
updateUser.setResidenceCode(updateUserReq.getResidenceCode());
|
||||
AreaCode areaCode = areaCodeService.getById(updateUserReq.getResidenceCode());
|
||||
updateUser.setResidenceCode(updateUserReq.getResidenceCode());
|
||||
updateUser.setResidenceName(areaCode.getName());
|
||||
updateUser.setResidenceCityCode(areaCode.getPcode());
|
||||
updateUser.setResidenceCityName(areaCode.getPname());
|
||||
}
|
||||
if(updateUserReq.getAddressCode() != null){
|
||||
AreaCode areaCode = areaCodeService.getById(updateUserReq.getAddressCode());
|
||||
updateUser.setAddressCode(updateUserReq.getAddressCode());
|
||||
updateUser.setAddressName(areaCode.getFullname());
|
||||
}
|
||||
updateUser.setEducation(updateUserReq.getEducation());
|
||||
updateUser.setMarriage(updateUserReq.getMarriage());
|
||||
updateUser.setProfession(updateUserReq.getProfession());
|
||||
updateUser.setAnnualIncome(updateUserReq.getAnnualIncome());
|
||||
this.updateById(updateUser);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user