This commit is contained in:
张良(004796)
2024-01-04 10:26:26 +08:00
parent 584f9dabe6
commit 01a2787d43
27 changed files with 118 additions and 16 deletions

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.User; import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserCodeGen; import com.ruoyi.cai.domain.UserCodeGen;
import com.ruoyi.cai.dto.admin.query.ResetPasswordReq; import com.ruoyi.cai.dto.admin.query.ResetPasswordReq;
import com.ruoyi.cai.dto.admin.query.UpdateMobileAdminReq;
import com.ruoyi.cai.dto.admin.query.UserUpdateAdminReq; import com.ruoyi.cai.dto.admin.query.UserUpdateAdminReq;
import com.ruoyi.cai.dto.admin.vo.UserAdminVo; import com.ruoyi.cai.dto.admin.vo.UserAdminVo;
import com.ruoyi.cai.dto.admin.vo.UserFullAdminVo; import com.ruoyi.cai.dto.admin.vo.UserFullAdminVo;
@@ -113,6 +114,14 @@ public class UserController extends BaseController {
return toAjax(userAdminManager.updateUser(bo)); return toAjax(userAdminManager.updateUser(bo));
} }
@SaCheckPermission("cai:user:edit")
@Log(title = "修改用户手机", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping("/updateMobile")
public R<Void> updateMobile(@RequestBody UpdateMobileAdminReq bo) {
return toAjax(userAdminManager.updateMobileUser(bo));
}
@PostMapping("/resetPwd") @PostMapping("/resetPwd")
public R<Void> resetPwd(@RequestBody ResetPasswordReq req) { public R<Void> resetPwd(@RequestBody ResetPasswordReq req) {
User user = userService.getById(req.getUserId()); User user = userService.getById(req.getUserId());

View File

@@ -3,6 +3,8 @@ package com.ruoyi.cai.domain;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@@ -49,6 +51,7 @@ public class User implements Serializable {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**
* 头像 * 头像

View File

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

View File

@@ -14,10 +14,6 @@ public class UserUpdateAdminReq {
* 性别 0 未知 1 女 2 男 * 性别 0 未知 1 女 2 男
*/ */
private Integer gender; private Integer gender;
/**
* 手机号
*/
private String mobile;
/** /**
* 是否可发动态 * 是否可发动态
*/ */

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.Account; import com.ruoyi.cai.domain.Account;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -18,6 +20,7 @@ public class AccountAdminVo extends Account {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.AccountCash; import com.ruoyi.cai.domain.AccountCash;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -17,6 +19,7 @@ public class AccountCashAdminVo extends AccountCash {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.Anchor; import com.ruoyi.cai.domain.Anchor;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -16,6 +18,7 @@ public class AnchorAdminVo extends Anchor {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**
* 头像 * 头像

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.AnchorApply; import com.ruoyi.cai.domain.AnchorApply;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@@ -19,6 +21,7 @@ public class AnchorApplyAdminVo extends AnchorApply implements Serializable {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -2,6 +2,8 @@ package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.Dynamic; import com.ruoyi.cai.domain.Dynamic;
import com.ruoyi.cai.domain.DynamicImages; import com.ruoyi.cai.domain.DynamicImages;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@@ -20,6 +22,7 @@ public class DynamicAdminVo extends Dynamic {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.LowHeightRisk; import com.ruoyi.cai.domain.LowHeightRisk;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -16,6 +18,7 @@ public class LowHeightRiskAdminVo extends LowHeightRisk {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**
* 头像 * 头像

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.RechargeOrder; import com.ruoyi.cai.domain.RechargeOrder;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -18,6 +20,7 @@ public class RechargeOrderAdminVo extends RechargeOrder {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.Report; import com.ruoyi.cai.domain.Report;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -17,6 +19,7 @@ public class ReportAdminVo extends Report {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.Union; import com.ruoyi.cai.domain.Union;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.bouncycastle.util.Integers; import org.bouncycastle.util.Integers;
@@ -23,6 +25,7 @@ public class UnionAdminVo extends Union {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.UnionUser; import com.ruoyi.cai.domain.UnionUser;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -17,6 +19,7 @@ public class UnionUserAdminVo extends UnionUser {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.UserAlbum; import com.ruoyi.cai.domain.UserAlbum;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -17,6 +19,7 @@ public class UserAlbumAdminVo extends UserAlbum {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.UserCameraAudit; import com.ruoyi.cai.domain.UserCameraAudit;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -17,6 +19,7 @@ public class UserCameraAuditAdminVo extends UserCameraAudit {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.UserCount; import com.ruoyi.cai.domain.UserCount;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -17,6 +19,7 @@ public class UserCountAdminVo extends UserCount {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.UserGreet; import com.ruoyi.cai.domain.UserGreet;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -17,6 +19,7 @@ public class UserGreetAdminVo extends UserGreet {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -1,13 +1,17 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.UserInvite; import com.ruoyi.cai.domain.UserInvite;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
public class UserInviteAdminVo extends UserInvite { public class UserInviteAdminVo extends UserInvite {
private String usercode; private String usercode;
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
private String inviteUsercode; private String inviteUsercode;
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String inviteMobile; private String inviteMobile;
private Integer inviteIsUnion; private Integer inviteIsUnion;
private String unionName; private String unionName;

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.UserMember; import com.ruoyi.cai.domain.UserMember;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -18,6 +20,7 @@ public class UserMemberAdminVo extends UserMember {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**
* 头像 * 头像

View File

@@ -1,6 +1,8 @@
package com.ruoyi.cai.dto.admin.vo; package com.ruoyi.cai.dto.admin.vo;
import com.ruoyi.cai.domain.VipOrder; import com.ruoyi.cai.domain.VipOrder;
import com.ruoyi.common.annotation.Sensitive;
import com.ruoyi.common.enums.SensitiveStrategy;
import lombok.Data; import lombok.Data;
@Data @Data
@@ -17,6 +19,7 @@ public class VipOrderAdminVo extends VipOrder {
/** /**
* 手机号 * 手机号
*/ */
@Sensitive(strategy = SensitiveStrategy.PHONE)
private String mobile; private String mobile;
/** /**

View File

@@ -24,6 +24,7 @@ public enum SystemConfigEnum {
DEFAULT_UNION_ONE_INCOME_RATE("0.07", "默认工会一级提成"), DEFAULT_UNION_ONE_INCOME_RATE("0.07", "默认工会一级提成"),
TODAY_GREET_MAX("100", "每日主播群打招呼次数"), TODAY_GREET_MAX("100", "每日主播群打招呼次数"),
GREET_INTERVAL_MIN("30", "群打招呼的间隔时间(分钟)"), GREET_INTERVAL_MIN("30", "群打招呼的间隔时间(分钟)"),
SENSITIVE_ENABLE("1", "是否开启手机号脱敏"),
; ;

View File

@@ -2,12 +2,14 @@ package com.ruoyi.cai.manager;
import com.ruoyi.cai.constant.RedisConstant; import com.ruoyi.cai.constant.RedisConstant;
import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.common.core.service.SensitiveService;
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.data.redis.core.HashOperations; import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -19,12 +21,19 @@ import java.util.stream.Stream;
* <p>created on 2022/8/18 17:21</p> * <p>created on 2022/8/18 17:21</p>
* @author ZL * @author ZL
*/ */
@Service @Component
public class SystemConfigManager { public class SystemConfigManager {
@Autowired @Autowired
private StringRedisTemplate redisTemplate; private StringRedisTemplate redisTemplate;
@Autowired
private SensitiveService sensitiveService;
@PostConstruct
public void initSensitive(){
boolean config = getSystemConfigOfBool(SystemConfigEnum.SENSITIVE_ENABLE);
sensitiveService.setSensitive(config);
}
/** /**
* 获取配置信息返回boolean * 获取配置信息返回boolean

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.cai.domain.User; import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserCount; import com.ruoyi.cai.domain.UserCount;
import com.ruoyi.cai.domain.UserOnline; import com.ruoyi.cai.domain.UserOnline;
import com.ruoyi.cai.dto.admin.query.UpdateMobileAdminReq;
import com.ruoyi.cai.dto.admin.query.UserUpdateAdminReq; import com.ruoyi.cai.dto.admin.query.UserUpdateAdminReq;
import com.ruoyi.cai.dto.admin.vo.UserFullAdminVo; import com.ruoyi.cai.dto.admin.vo.UserFullAdminVo;
import com.ruoyi.cai.service.*; import com.ruoyi.cai.service.*;
@@ -17,14 +18,11 @@ public class UserAdminManager {
@Autowired @Autowired
private UserService userService; private UserService userService;
public boolean updateUser(UserUpdateAdminReq userUpdateAdmin){ public boolean updateMobileUser(UpdateMobileAdminReq req){
User user = userService.getById(userUpdateAdmin.getId()); User user = userService.getById(req.getId());
if(!user.getGender().equals(userUpdateAdmin.getGender()) && user.getIsAnchor() == 1){ if(StringUtils.isNotEmpty(req.getMobile())){
throw new BaseException("主播不能修改性别");
}
if(StringUtils.isNotEmpty(userUpdateAdmin.getMobile())){
long count = userService.count(Wrappers.lambdaQuery(User.class) long count = userService.count(Wrappers.lambdaQuery(User.class)
.eq(User::getMobile, userUpdateAdmin.getMobile()) .eq(User::getMobile, req.getMobile())
.ne(User::getId, user.getId())); .ne(User::getId, user.getId()));
if(count > 0){ if(count > 0){
throw new BaseException("手机号已存在,无法修改"); throw new BaseException("手机号已存在,无法修改");
@@ -32,7 +30,18 @@ public class UserAdminManager {
} }
User update = new User(); User update = new User();
update.setId(user.getId()); update.setId(user.getId());
update.setMobile(userUpdateAdmin.getMobile()); update.setMobile(req.getMobile());
userService.updateById(update);
return true;
}
public boolean updateUser(UserUpdateAdminReq userUpdateAdmin){
User user = userService.getById(userUpdateAdmin.getId());
if(!user.getGender().equals(userUpdateAdmin.getGender()) && user.getIsAnchor() == 1){
throw new BaseException("主播不能修改性别");
}
User update = new User();
update.setId(user.getId());
update.setNickname(userUpdateAdmin.getNickname()); update.setNickname(userUpdateAdmin.getNickname());
update.setGender(userUpdateAdmin.getGender()); update.setGender(userUpdateAdmin.getGender());
update.setSendDynamic(userUpdateAdmin.getSendDynamic()); update.setSendDynamic(userUpdateAdmin.getSendDynamic());

View File

@@ -15,6 +15,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="query.nickname != null and query.nickname != ''"> <if test="query.nickname != null and query.nickname != ''">
and t1.nickname like concat('%',#{query.nickname},'%') and t1.nickname like concat('%',#{query.nickname},'%')
</if> </if>
<if test="query.mobile != null and query.mobile != ''">
and t1.mobile = #{query.mobile}
</if>
<if test="query.usercode != null and query.usercode != ''"> <if test="query.usercode != null and query.usercode != ''">
and t1.usercode like concat('%',#{query.usercode},'%') and t1.usercode like concat('%',#{query.usercode},'%')
</if> </if>

View File

@@ -10,6 +10,8 @@ package com.ruoyi.common.core.service;
*/ */
public interface SensitiveService { public interface SensitiveService {
void setSensitive(boolean sensitive);
/** /**
* 是否脱敏 * 是否脱敏
*/ */

View File

@@ -1,7 +1,6 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import com.ruoyi.common.core.service.SensitiveService; import com.ruoyi.common.core.service.SensitiveService;
import com.ruoyi.common.helper.LoginHelper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@@ -15,12 +14,22 @@ import org.springframework.stereotype.Service;
@Service @Service
public class SysSensitiveServiceImpl implements SensitiveService { public class SysSensitiveServiceImpl implements SensitiveService {
private static volatile boolean SENSITIVE = false;
@Override
public void setSensitive(boolean sensitive){
SENSITIVE = sensitive;
}
/** /**
* 是否脱敏 * 是否脱敏
*/ */
@Override @Override
public boolean isSensitive() { public boolean isSensitive() {
return !LoginHelper.isAdmin(); /*if(LoginHelper.isAdmin()){
return false;
}*/
return SENSITIVE;
} }
} }