Procházet zdrojové kódy

税号/手机号 去重

licailing před 5 roky
rodič
revize
39bf6cd899

+ 1 - 1
src/main/java/com/izouma/wenlvju/domain/Rate.java

@@ -50,7 +50,6 @@ public class Rate extends BaseEntity {
     @Enumerated(EnumType.STRING)
     private RateStatus status;
 
-    @NonNull
     @ApiModelProperty(value = "是否承办考级活动")
     private boolean undertakeExamination;
 
@@ -59,6 +58,7 @@ public class Rate extends BaseEntity {
 //    private List<String> examination;
 
     @NonNull
+    @Column(columnDefinition = "TEXT")
     @ApiModelProperty(value = "单位概况")
     private String introduction;
 

+ 2 - 0
src/main/java/com/izouma/wenlvju/repo/OrganizationRepo.java

@@ -19,4 +19,6 @@ public interface OrganizationRepo extends JpaRepository<Organization, Long>, Jpa
 
     @Query(nativeQuery = true, value = "SELECT ifnull(max(sort + 1),1) FROM organization")
     int nextSort();
+
+    Organization findByUscc(String uscc);
 }

+ 6 - 0
src/main/java/com/izouma/wenlvju/service/UserService.java

@@ -65,6 +65,12 @@ public class UserService {
         if (StringUtils.isNotBlank(userRegister.getPassword())) {
             user.setPassword(new BCryptPasswordEncoder().encode(userRegister.getPassword()));
         }
+        if (ObjectUtil.isNotNull(userRegister.getPhone())) {
+            User byPhone = userRepo.findByPhoneAndDelFalse(userRegister.getPhone());
+            if (ObjectUtil.isNotNull(byPhone)) {
+                throw new BusinessException("该手机号已绑定");
+            }
+        }
         return userRepo.save(user);
     }
 

+ 17 - 0
src/main/java/com/izouma/wenlvju/web/OrganizationController.java

@@ -1,5 +1,7 @@
 package com.izouma.wenlvju.web;
 
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.izouma.wenlvju.domain.Organization;
 import com.izouma.wenlvju.service.OrganizationService;
 import com.izouma.wenlvju.dto.PageQuery;
@@ -30,9 +32,24 @@ public class OrganizationController extends BaseController {
         if (record.getId() != null) {
             Organization orig = organizationRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
             ObjUtils.merge(orig, record);
+            if (StrUtil.isNotBlank(record.getUscc())) {
+                Organization byUscc = organizationRepo.findByUscc(record.getUscc());
+                if (ObjectUtil.isNotNull(byUscc)) {
+                    if (!byUscc.getId().equals(orig.getId())) {
+                        throw new BusinessException("该统一社会信用代码已被注册");
+                    }
+                }
+            }
+
             return organizationRepo.save(orig);
         }
         record.setUserId(SecurityUtils.getAuthenticatedUser().getId());
+        if (StrUtil.isNotBlank(record.getUscc())) {
+            Organization byUscc = organizationRepo.findByUscc(record.getUscc());
+            if (ObjectUtil.isNotNull(byUscc)) {
+                throw new BusinessException("该统一社会信用代码已被注册");
+            }
+        }
         return organizationRepo.save(record);
     }
 

+ 13 - 7
src/main/java/com/izouma/wenlvju/web/UserController.java

@@ -1,13 +1,12 @@
 package com.izouma.wenlvju.web;
 
-import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.ObjectUtil;
 import com.izouma.wenlvju.domain.User;
 import com.izouma.wenlvju.dto.ExpertDTO;
 import com.izouma.wenlvju.dto.OrganizationRegDTO;
 import com.izouma.wenlvju.dto.PageQuery;
 import com.izouma.wenlvju.dto.UserRegister;
 import com.izouma.wenlvju.enums.AuthorityName;
-import com.izouma.wenlvju.exception.AuthenticationException;
 import com.izouma.wenlvju.exception.BusinessException;
 import com.izouma.wenlvju.repo.UserRepo;
 import com.izouma.wenlvju.security.Authority;
@@ -26,7 +25,6 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -53,10 +51,10 @@ public class UserController extends BaseController {
 
     @PostMapping("/regOrganization")
     public User regOrganization(@RequestBody OrganizationRegDTO dto) {
-        LocalDate start = Convert.convert(LocalDate.class, "2021-6-3");
-        if (LocalDate.now().isBefore(start)) {
-            throw new AuthenticationException("系统暂未开放注册", null);
-        }
+//        LocalDate start = Convert.convert(LocalDate.class, "2021-6-3");
+//        if (LocalDate.now().isBefore(start)) {
+//            throw new AuthenticationException("系统暂未开放注册", null);
+//        }
         return userService.regOrganization(dto);
     }
 
@@ -72,6 +70,14 @@ public class UserController extends BaseController {
         if (user.getId() != null) {
             User orig = userRepo.findById(user.getId()).orElseThrow(new BusinessException("无记录"));
             ObjUtils.merge(orig, user);
+            if (ObjectUtil.isNotNull(orig.getPhone())) {
+                User byPhone = userRepo.findByPhoneAndDelFalse(orig.getPhone());
+                if (ObjectUtil.isNotNull(byPhone)) {
+                    if (!byPhone.getId().equals(user.getId())) {
+                        throw new BusinessException("该手机号已绑定");
+                    }
+                }
+            }
             return userRepo.save(orig);
         }
         return userRepo.save(user);

+ 16 - 8
src/main/vue/src/views/organization/OrganizationEdit.vue

@@ -52,28 +52,29 @@
             </el-form-item> -->
             <div class="info-content">
                 <el-form-item label="承办单位名称" prop="name">
-                    <el-input v-model="formData.name" placeholder="请输入承办单位名称"></el-input>
+                    <el-input v-model="formData.name" placeholder="请输入承办单位名称" readonly></el-input>
                 </el-form-item>
                 <el-form-item label="负责人" prop="owner">
-                    <el-input v-model="formData.owner" placeholder="请输入负责人"></el-input>
+                    <el-input v-model="formData.owner" placeholder="请输入负责人" readonly></el-input>
                 </el-form-item>
                 <el-form-item label="负责人邮箱" prop="ownerEmail">
-                    <el-input v-model="formData.ownerEmail" placeholder="请输入负责人邮箱"></el-input>
+                    <el-input v-model="formData.ownerEmail" placeholder="请输入负责人邮箱" readonly></el-input>
                 </el-form-item>
                 <el-form-item label="负责人电话" prop="ownerPhone">
-                    <el-input v-model="formData.ownerPhone" placeholder="请输入负责人电话"></el-input>
+                    <el-input v-model="formData.ownerPhone" placeholder="请输入负责人电话" readonly></el-input>
                 </el-form-item>
                 <el-form-item label="法人姓名" prop="privacyPolicy">
-                    <el-input v-model="formData.privacyPolicy" placeholder="请输入法人姓名"></el-input>
+                    <el-input v-model="formData.privacyPolicy" placeholder="请输入法人姓名" readonly></el-input>
                 </el-form-item>
                 <el-form-item label="证件号码" prop="idNo">
-                    <el-input v-model="formData.idNo" placeholder="请输入证件号码"></el-input>
+                    <el-input v-model="formData.idNo" placeholder="请输入证件号码" readonly></el-input>
                 </el-form-item>
                 <el-form-item label="信用代码" prop="uscc">
                     <el-input
                         v-model="formData.uscc"
                         placeholder="请输入统一社会信用代码"
                         style="width:490px"
+                        readonly
                     ></el-input>
                 </el-form-item>
                 <el-form-item label="地址" prop="district" class="address">
@@ -83,6 +84,7 @@
                             :key="index"
                             :value="item.value"
                             :label="item.label"
+                            disabled
                         ></el-option>
                     </el-select>
                 </el-form-item>
@@ -94,6 +96,7 @@
                         style="width:100%"
                         placeholder="请输入详细地址"
                         v-model="formData.address"
+                        readonly
                     ></el-input>
                 </el-form-item>
                 <el-form-item label="所属考级机构" prop="gradingOrganizationId">
@@ -102,6 +105,7 @@
                         placeholder="所属考级机构"
                         multiple
                         style="width:490px"
+                        disabled
                     >
                         <el-option
                             v-for="(item, index) in examination"
@@ -118,6 +122,7 @@
                         placeholder="请输入经营范围"
                         v-model="formData.businessScope"
                         style="width:100%"
+                        readonly
                     ></el-input>
                 </el-form-item>
                 <el-form-item label="营业执照" prop="businessLicense" class="address">
@@ -127,9 +132,9 @@
             <el-form-item class="fixed-btn">
                 <!-- <el-button @click="readonly = false" :loading="saving" type="success">编辑</el-button> -->
                 <div style="margin: 10px">
-                    <el-button @click="onSave" :loading="saving" type="primary">保存</el-button>
+                    <!-- <el-button @click="onSave" :loading="saving" type="primary">保存</el-button> -->
+                    <el-button @click="$router.go(-1)">返回</el-button>
                 </div>
-                <!-- <el-button @click="$router.go(-1)">取消</el-button> -->
             </el-form-item>
         </el-form>
     </div>
@@ -330,4 +335,7 @@ export default {
         flex-grow: 1;
     }
 }
+/deep/ .el-input.is-disabled .el-input__inner {
+    background-color: #ffffff;
+}
 </style>

+ 5 - 1
src/main/vue/src/views/organization/OrganizationList.vue

@@ -27,6 +27,7 @@
             <el-table-column v-if="multipleMode" align="center" type="selection" width="50"> </el-table-column>
             <el-table-column prop="id" label="ID" width="80"> </el-table-column>
             <el-table-column prop="name" label="承办单位名称"> </el-table-column>
+            <el-table-column prop="uscc" label="统一社会信用代码"></el-table-column>
             <el-table-column prop="district" label="所属区县"> </el-table-column>
             <el-table-column prop="businessLicense" label="营业执照">
                 <template slot-scope="{ row }">
@@ -94,7 +95,10 @@ export default {
     },
     methods: {
         beforeGetData() {
-            return { search: this.search };
+            return {
+                sort: 'createdAt,desc',
+                search: this.search
+            };
         },
         toggleMultipleMode(multipleMode) {
             this.multipleMode = multipleMode;