Browse Source

律师注销修改

zhangchen 4 hours ago
parent
commit
d8b79774c1

+ 1 - 1
alien-entity/src/main/java/shop/alien/entity/store/LawyerUser.java

@@ -101,7 +101,7 @@ public class LawyerUser extends Model<LawyerUser> {
     @TableField("updated_user_id")
     private Integer updatedUserId;
 
-    @ApiModelProperty(value = "注销标记, 0:未注销, 1:已注销")
+    @ApiModelProperty(value = "注销标记, 0:未注销, 1:已注销, 2:注销冷静期")
     @TableField("logout_flag")
     private Integer logoutFlag;
 

+ 24 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/LawyerLogoutRequestDto.java

@@ -0,0 +1,24 @@
+package shop.alien.entity.store.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 律师账号注销请求
+ */
+@Data
+@ApiModel(value = "LawyerLogoutRequestDto", description = "律师账号注销请求")
+public class LawyerLogoutRequestDto implements Serializable {
+
+    @ApiModelProperty(value = "律师ID", required = true)
+    private Integer id;
+
+    @ApiModelProperty(value = "注销原因(如:多余账号、使用过程中遇到困难、安全/隐私顾虑、不再从事该行业、其他)", required = true)
+    private String logoutReason;
+
+    @ApiModelProperty(value = "注销内容,原因为「其他」时必填,最多300字")
+    private String logoutContent;
+}

+ 5 - 7
alien-lawyer/src/main/java/shop/alien/lawyer/controller/LawyerUserController.java

@@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.LawyerUser;
 import shop.alien.entity.store.StoreDictionary;
+import shop.alien.entity.store.dto.LawyerLogoutRequestDto;
 import shop.alien.entity.store.dto.LawyerPaymentAccountDto;
 import shop.alien.entity.store.dto.LawyerRecommendedDto;
 import shop.alien.entity.store.dto.LawyerUserDto;
@@ -216,13 +217,10 @@ public class LawyerUserController {
 
     @ApiOperation("注销律师用户")
     @ApiOperationSupport(order = 13)
-    @ApiImplicitParams({
-            @ApiImplicitParam(name = "id", value = "律师ID", dataType = "Integer", paramType = "query", required = true)
-    })
-    @GetMapping("/logOutLawyerUser")
-    public R<Map<String, Object>> logOutLawyerUser(@RequestParam(value = "id") Integer id) {
-        log.info("LawyerUserController.logOutLawyerUser?id={}", id);
-        return lawyerUserService.logOutLawyerUser(id);
+    @PostMapping("/logOutLawyerUser")
+    public R<Map<String, Object>> logOutLawyerUser(@RequestBody LawyerLogoutRequestDto request) {
+        log.info("LawyerUserController.logOutLawyerUser?request={}", request);
+        return lawyerUserService.logOutLawyerUser(request);
     }
 
 

+ 2 - 1
alien-lawyer/src/main/java/shop/alien/lawyer/service/LawyerUserService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.LawyerUser;
 import shop.alien.entity.store.StoreDictionary;
+import shop.alien.entity.store.dto.LawyerLogoutRequestDto;
 import shop.alien.entity.store.dto.LawyerUserDto;
 import shop.alien.entity.store.vo.LawyerUserVo;
 
@@ -126,7 +127,7 @@ public interface LawyerUserService extends IService<LawyerUser> {
      * @param id 律师ID
      * @return R<Map < String, Object>> 注销结果,包含律师ID、姓名、手机号、注销标记、注销时间等信息
      */
-    R<Map<String, Object>> logOutLawyerUser(Integer id);
+    R<Map<String, Object>> logOutLawyerUser(LawyerLogoutRequestDto request);
 
     /**
      * 获取律师信息

+ 30 - 6
alien-lawyer/src/main/java/shop/alien/lawyer/service/impl/LawyerUserServiceImpl.java

@@ -16,6 +16,7 @@ import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import shop.alien.entity.result.R;
 import shop.alien.entity.store.*;
+import shop.alien.entity.store.dto.LawyerLogoutRequestDto;
 import shop.alien.entity.store.dto.LawyerUserDto;
 import shop.alien.entity.store.excelVo.LawyerUserExcelVo;
 import shop.alien.entity.store.vo.LawyerUserVo;
@@ -47,6 +48,9 @@ import java.util.stream.Collectors;
 @RequiredArgsConstructor
 public class LawyerUserServiceImpl extends ServiceImpl<LawyerUserMapper, LawyerUser> implements LawyerUserService {
 
+    private static final String LOGOUT_REASON_OTHER = "其他";
+    private static final int LOGOUT_CONTENT_MAX_LENGTH = 300;
+
     private final LawyerUserMapper lawyerUserMapper;
     private final LawyerServiceAreaService lawyerServiceAreaService;
     private final LawyerServiceAreaMapper lawyerServiceAreaMapper;
@@ -491,21 +495,39 @@ public class LawyerUserServiceImpl extends ServiceImpl<LawyerUserMapper, LawyerU
      * 4. 设置注销相关字段:注销标记、注销时间、状态等
      * </p>
      *
-     * @param id 律师ID
+     * @param request 注销请求(含律师ID、注销原因、注销内容)
      * @return 注销结果,包含注销信息
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R<Map<String, Object>> logOutLawyerUser(Integer id) {
-        log.info("开始注销律师用户,律师ID={}", id);
+    public R<Map<String, Object>> logOutLawyerUser(LawyerLogoutRequestDto request) {
+        log.info("开始注销律师用户,request={}", request);
 
         Map<String, Object> resultMap = new HashMap<>();
 
-        // 参数校验
-        if (id == null) {
+        if (request == null || request.getId() == null) {
             log.warn("注销律师用户失败:律师ID为空");
             return R.fail("律师ID不能为空");
         }
+        Integer id = request.getId();
+
+        String logoutReason = request.getLogoutReason() == null ? null : request.getLogoutReason().trim();
+        if (!StringUtils.hasText(logoutReason)) {
+            log.warn("注销律师用户失败:注销原因为空,律师ID={}", id);
+            return R.fail("请选择注销原因");
+        }
+
+        String logoutContent = request.getLogoutContent() == null ? null : request.getLogoutContent().trim();
+        if (LOGOUT_REASON_OTHER.equals(logoutReason)) {
+            if (!StringUtils.hasText(logoutContent)) {
+                log.warn("注销律师用户失败:原因为其他时注销内容为空,律师ID={}", id);
+                return R.fail("请填写注销内容");
+            }
+            if (logoutContent.length() > LOGOUT_CONTENT_MAX_LENGTH) {
+                log.warn("注销律师用户失败:注销内容超过{}字,律师ID={}", LOGOUT_CONTENT_MAX_LENGTH, id);
+                return R.fail("注销内容不能超过300字");
+            }
+        }
 
         // 查询律师信息
         LawyerUser lawyerUser = this.getById(id);
@@ -549,8 +571,10 @@ public class LawyerUserServiceImpl extends ServiceImpl<LawyerUserMapper, LawyerU
 
             if (CollectionUtils.isEmpty(list) && lawyerUser.getOrderReceivingStatus() == 0) {
                 // 设置注销相关字段
-                lawyerUser.setLogoutFlag(1); // 注销标记:1-已注销
+                lawyerUser.setLogoutFlag(2); // 注销标记:1-已注销
                 lawyerUser.setLogoutTime(new Date()); // 注销时间
+                lawyerUser.setLogoutReason(logoutContent);
+                lawyerUser.setLogoutCode(logoutReason);
                 lawyerUser.setStatus(0); // 状态设置为禁用
                 lawyerUser.setOrderReceivingStatus(0); // 接单状态设置为不接单
                 lawyerUser.setIsOnline(0); // 在线状态设置为离线

+ 2 - 21
alien-store/src/main/java/shop/alien/store/controller/LifeUserController.java

@@ -207,30 +207,11 @@ public class LifeUserController {
      */
     @ApiOperation("用户端撤回注销用户")
     @PostMapping("/liftCancelAccountUn")
-    public R<Boolean> liftCancelAccountUn(@RequestBody LifeUserVo user) {
-        log.info("LifeUserController.liftCancelAccountUn?LifeUserVo={}", user);
+    public R<Boolean> liftCancelAccountUn(@RequestBody LifeUser user) {
+        log.info("LifeUserController.liftCancelAccountUn?LifeUser={}", user);
         if (user == null || user.getId() == null) {
             return R.fail("用户id不能为空");
         }
-        LifeUser lifeUser = lifeUserMapper.selectById(user.getId());
-        if (lifeUser == null) {
-            return R.fail("用户不存在");
-        }
-        if (!StringUtils.hasText(lifeUser.getUserPhone())) {
-            return R.fail("用户手机号不存在");
-        }
-        if (!StringUtils.hasText(user.getVerificationCode())) {
-            return R.fail("验证码不能为空");
-        }
-        int code;
-        try {
-            code = Integer.parseInt(user.getVerificationCode().trim());
-        } catch (NumberFormatException e) {
-            return R.fail("验证码格式错误");
-        }
-        if (!aliSms.checkSmsCode(lifeUser.getUserPhone(), 0, 5, code)) {
-            return R.fail("验证码错误或已过期");
-        }
         try {
             service.liftCancelAccountUn(user.getId());
         } catch (IllegalArgumentException e) {