Browse Source

性别修改只能修改一次

fangqing 5 months ago
parent
commit
00ad48bcfe

+ 20 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java

@@ -21,9 +21,11 @@ import com.ruoyi.common.utils.file.FileUploadUtils;
 import com.ruoyi.common.utils.file.MimeTypeUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.generator.domain.Community.CommunityUserBlock;
+import com.ruoyi.generator.domain.Community.CommunityUserCircle;
 import com.ruoyi.generator.domain.Community.CommunityUserInfo;
 import com.ruoyi.generator.mapper.community.CommunityUserInfoMapper;
 import com.ruoyi.generator.service.ICommunityUserBlockService;
+import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.service.ISysUserService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -54,6 +57,8 @@ public class SysProfileController extends BaseController {
     private ICommunityUserBlockService communityUserBlockService;
 
 
+    @Autowired
+    private SysUserMapper userMapper;
 
     @Autowired
     private RedisCache redisCache;
@@ -90,6 +95,21 @@ public class SysProfileController extends BaseController {
         if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser)) {
             return error("修改用户'" + loginUser.getUsername() + "'失败,邮箱账号已存在");
         }
+
+        //查询用户是否还有修改性别的次数
+        SysUser sysUsers = userMapper.selectOne(
+                new QueryWrapper<SysUser>()
+                        .select("sex", "is_sex") // 选择 sex 和 is_sex 字段
+                        .eq("user_id", currentUser.getUserId())
+
+        );
+
+        if (sysUsers.getIsSex() && !currentUser.getSex().equals(sysUsers.getSex())) {
+            return error("不允许修改用户'" + loginUser.getUsername() + "'性别");
+        } else if (currentUser.getSex().equals(sysUsers.getSex())) {
+            currentUser.setSex(null);
+        }
+
         if (userService.updateUserProfile(currentUser) > 0) {
             CommunityUserInfo communityUserInfo = communityUserInfoMapper.selectOne(new QueryWrapper<CommunityUserInfo>().eq("user_id", currentUser.getUserId()));
             communityUserInfo.setProfile(currentUser.getProfile());

+ 15 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java

@@ -89,6 +89,13 @@ public class SysUser extends BaseEntity {
     @Excel(name = "用户性别", readConverterExp = "0=男,1=女,2=未知")
     private String sex;
 
+
+    /**
+     * 是否已删除
+     */
+    private Boolean isSex;
+
+
     /**
      * 用户头像
      */
@@ -231,6 +238,14 @@ public class SysUser extends BaseEntity {
         this.sex = sex;
     }
 
+    public Boolean getIsSex() {
+        return isSex;
+    }
+
+    public void setIsSex(Boolean isSex) {
+        this.isSex = isSex;
+    }
+
     public String getAvatar() {
         return avatar;
     }

+ 2 - 0
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -23,6 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateBy"     column="update_by"    />
         <result property="updateTime"   column="update_time"  />
         <result property="remark"       column="remark"       />
+		<result property="isSex" 		column="is_Sex"/>
         <association property="dept"    javaType="SysDept"         resultMap="deptResult" />
         <collection  property="roles"   javaType="java.util.List"  resultMap="RoleResult" />
     </resultMap>
@@ -183,6 +184,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="email != null ">email = #{email},</if>
  			<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
  			<if test="sex != null and sex != ''">sex = #{sex},</if>
+			<if test="sex != null and sex != ''">is_sex = true,</if>
  			<if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
  			<if test="password != null and password != ''">password = #{password},</if>
  			<if test="status != null and status != ''">status = #{status},</if>