xiongzhu 1 ano atrás
pai
commit
de6bd7e224

+ 30 - 12
src/main/java/com/izouma/zhirongip/web/InstitutionController.java

@@ -3,7 +3,9 @@ package com.izouma.zhirongip.web;
 import cn.hutool.core.util.ObjectUtil;
 import com.izouma.zhirongip.domain.Institution;
 import com.izouma.zhirongip.domain.Personal;
+import com.izouma.zhirongip.domain.User;
 import com.izouma.zhirongip.dto.InstitutionDTO;
+import com.izouma.zhirongip.dto.UserRegister;
 import com.izouma.zhirongip.enums.ApplyStatus;
 import com.izouma.zhirongip.enums.AuthorityName;
 import com.izouma.zhirongip.repo.PersonalRepo;
@@ -13,17 +15,20 @@ import com.izouma.zhirongip.service.InstitutionService;
 import com.izouma.zhirongip.dto.PageQuery;
 import com.izouma.zhirongip.exception.BusinessException;
 import com.izouma.zhirongip.repo.InstitutionRepo;
+import com.izouma.zhirongip.service.UserService;
 import com.izouma.zhirongip.utils.ObjUtils;
 import com.izouma.zhirongip.utils.SecurityUtils;
 import com.izouma.zhirongip.utils.excel.ExcelUtils;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang3.RandomStringUtils;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Collections;
 import java.util.List;
 import java.util.Set;
 
@@ -32,9 +37,10 @@ import java.util.Set;
 @AllArgsConstructor
 public class InstitutionController extends BaseController {
     private final InstitutionService institutionService;
-    private final InstitutionRepo    institutionRepo;
-    private final PersonalRepo       personalRepo;
-    private final UserRepo           userRepo;
+    private final InstitutionRepo institutionRepo;
+    private final PersonalRepo personalRepo;
+    private final UserRepo userRepo;
+    private final UserService userService;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -47,16 +53,28 @@ public class InstitutionController extends BaseController {
             orig.setStatus(ApplyStatus.PENDING);
             return institutionRepo.save(orig);
         }
-        Institution byUserId = institutionRepo.findByUserId(userId);
-        if (ObjectUtil.isNotNull(byUserId)) {
-            throw new BusinessException("已申请");
-        }
-        Personal personal = personalRepo.findByUserId(userId);
-        if (ObjectUtil.isNotNull(personal)) {
-            throw new BusinessException("已申请个人认证");
+
+        if (SecurityUtils.getAuthenticatedUser().getAuthorities().contains(Authority.get(AuthorityName.ROLE_ADMIN))) {
+            User user = userService.create(UserRegister.builder()
+                    .authorities(Collections.singleton(Authority.get(AuthorityName.ROLE_INSTITUTION)))
+                    .username(RandomStringUtils.randomAlphanumeric(16))
+                    .nickname(RandomStringUtils.randomAlphanumeric(16))
+                    .build());
+            record.setStatus(ApplyStatus.PASS);
+            record.setUserId(user.getId());
+        } else {
+            Institution byUserId = institutionRepo.findByUserId(userId);
+            if (ObjectUtil.isNotNull(byUserId)) {
+                throw new BusinessException("已申请");
+            }
+            Personal personal = personalRepo.findByUserId(userId);
+            if (ObjectUtil.isNotNull(personal)) {
+                throw new BusinessException("已申请个人认证");
+            }
+            record.setUserId(userId);
+            record.setStatus(ApplyStatus.PENDING);
         }
-        record.setUserId(userId);
-        record.setStatus(ApplyStatus.PENDING);
+
         return institutionRepo.save(record);
     }
 

+ 18 - 15
src/main/vue/src/views/InstitutionEdit.vue

@@ -136,21 +136,24 @@ export default {
             this.$http
                 .post('/institution/save', data, { body: 'json' })
                 .then(res => {
-                    this.$http
-                        .post('/user/save', data1, { body: 'json' })
-                        .then(res => {
-                            this.saving = false;
-                            this.$message.success('成功');
-                            this.$router.go(-1);
-                        })
-                        .catch(e => {
-                            console.log(e);
-                            this.saving = false;
-                            this.$message.error(e.error);
-                        });
-                    // this.saving = false;
-                    // this.$message.success('成功');
-                    // this.$router.go(-1);
+                    if (this.user.id) {
+                        this.$http
+                            .post('/user/save', data1, { body: 'json' })
+                            .then(res => {
+                                this.saving = false;
+                                this.$message.success('成功');
+                                this.$router.go(-1);
+                            })
+                            .catch(e => {
+                                console.log(e);
+                                this.saving = false;
+                                this.$message.error(e.error);
+                            });
+                    } else {
+                        this.saving = false;
+                        this.$message.success('成功');
+                        this.$router.go(-1);
+                    }
                 })
                 .catch(e => {
                     console.log(e);