Преглед изворни кода

Merge branch 'dev' of licailing/wenlvju into master

licailing пре 4 година
родитељ
комит
e7eff414e0

+ 3 - 0
src/main/java/com/izouma/wenlvju/domain/Organization.java

@@ -86,4 +86,7 @@ public class Organization extends BaseEntity {
     @ExcelProperty(value = "编码")
     private String code;
 
+    @ApiModelProperty(value = "联盟id")
+    private Long allianceId;
+
 }

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

@@ -7,6 +7,7 @@ import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 
 import javax.transaction.Transactional;
+import java.util.List;
 import java.util.Optional;
 
 public interface OrganizationRepo extends JpaRepository<Organization, Long>, JpaSpecificationExecutor<Organization> {
@@ -22,4 +23,10 @@ public interface OrganizationRepo extends JpaRepository<Organization, Long>, Jpa
 
     Organization findByUscc(String uscc);
 
+    Optional<Organization> findByAllianceId(Long allianceId);
+
+    Optional<Organization> findByAllianceIdAndIdIsNot(Long allianceId, Long id);
+
+    List<Organization> findAllByNameEquals(String name);
+
 }

+ 3 - 0
src/main/java/com/izouma/wenlvju/repo/SettingRepo.java

@@ -8,6 +8,7 @@ import org.springframework.data.jpa.repository.Query;
 
 import javax.transaction.Transactional;
 import java.util.List;
+import java.util.Optional;
 
 public interface SettingRepo extends JpaRepository<Setting, Long>, JpaSpecificationExecutor<Setting> {
     @Query("update Setting t set t.del = true where t.id = ?1")
@@ -19,4 +20,6 @@ public interface SettingRepo extends JpaRepository<Setting, Long>, JpaSpecificat
     int nextSort();
 
     List<Setting> findAllByFlag(int flag);
+
+    Optional<Setting> findByNameLikeAndFlag(String name, int flag);
 }

+ 1 - 0
src/main/java/com/izouma/wenlvju/service/SettingService.java

@@ -43,6 +43,7 @@ public class SettingService {
                 }
             }
         }
+        resultList.sort(Comparator.comparing(Setting::getId));
         return resultList;
     }
 

+ 21 - 12
src/main/java/com/izouma/wenlvju/service/UserService.java

@@ -5,6 +5,7 @@ import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
 import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.izouma.wenlvju.config.Constants;
 import com.izouma.wenlvju.domain.*;
 import com.izouma.wenlvju.dto.ExpertDTO;
@@ -46,7 +47,6 @@ public class UserService {
     private final UserRepo                userRepo;
     private final WxMaService             wxMaService;
     private final WxMpService             wxMpService;
-    //    private final SmsService       smsService;
     private final StorageService          storageService;
     private final JwtTokenUtil            jwtTokenUtil;
     private final CaptchaService          captchaService;
@@ -56,6 +56,7 @@ public class UserService {
     private final GradingOrganizationRepo gradingOrganizationRepo;
     private final RateRepo                rateRepo;
     private final OrganizationService     organizationService;
+    private final SettingRepo             settingRepo;
 
     public Page<User> all(PageQuery pageQuery) {
         return userRepo.findAll(JpaUtils.toSpecification(pageQuery, User.class), JpaUtils.toPageRequest(pageQuery));
@@ -298,17 +299,25 @@ public class UserService {
         }
         code += String.format("%04d", sort);
 
-        organizationRepo.save(
-                Organization.builder()
-                        .businessLicense(dto.getBusinessLicense())
-                        .userId(save.getId())
-                        .name(dto.getOrganizationName())
-//                        .district1(dto.getDistrict1())
-                        .district(dto.getDistrict())
-                        .gradingOrganizationId(dto.getGradingOrganizationId())
-                        .sort(sort)
-                        .code(code)
-                        .build());
+        Organization organization = Organization.builder()
+                .businessLicense(dto.getBusinessLicense())
+                .userId(save.getId())
+                .name(dto.getOrganizationName())
+                .district(dto.getDistrict())
+                .gradingOrganizationId(dto.getGradingOrganizationId())
+                .sort(sort)
+                .code(code)
+                .build();
+
+        //艺考联盟
+        settingRepo.findByNameLikeAndFlag(dto.getOrganizationName(), 5)
+                .ifPresent(setting -> {
+                    if (!organizationRepo.findByAllianceId(setting.getId()).isPresent()) {
+                        organization.setAllianceId(setting.getId());
+                    }
+                });
+
+        organizationRepo.save(organization);
 
         return user;
     }

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

@@ -3,6 +3,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.repo.SettingRepo;
 import com.izouma.wenlvju.service.OrganizationService;
 import com.izouma.wenlvju.dto.PageQuery;
 import com.izouma.wenlvju.exception.BusinessException;
@@ -25,22 +26,36 @@ import java.util.List;
 public class OrganizationController extends BaseController {
     private OrganizationService organizationService;
     private OrganizationRepo    organizationRepo;
+    private SettingRepo         settingRepo;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
     public Organization save(@RequestBody Organization record) {
         if (record.getId() != null) {
             Organization orig = organizationRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
-            ObjUtils.merge(orig, record);
+
+            // 艺考联盟
+            if (!orig.getName().equals(record.getName())) {
+                settingRepo.findByNameLikeAndFlag(record.getName(), 5)
+                        .ifPresent(setting -> {
+                            if (!organizationRepo.findByAllianceIdAndIdIsNot(setting.getId(), record.getId())
+                                    .isPresent()) {
+                                record.setAllianceId(setting.getId());
+                            }
+
+                        });
+            }
+
             if (StrUtil.isNotBlank(record.getUscc())) {
                 Organization byUscc = organizationRepo.findByUscc(record.getUscc());
                 if (ObjectUtil.isNotNull(byUscc)) {
-                    if (!byUscc.getId().equals(orig.getId())) {
+                    if (!byUscc.getId().equals(record.getId())) {
                         throw new BusinessException("该统一社会信用代码已被注册");
                     }
                 }
             }
 
+            ObjUtils.merge(orig, record);
             return organizationRepo.save(orig);
         }
         record.setUserId(SecurityUtils.getAuthenticatedUser().getId());

+ 47 - 7
src/main/java/com/izouma/wenlvju/web/SettingController.java

@@ -1,11 +1,14 @@
 package com.izouma.wenlvju.web;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.izouma.wenlvju.domain.Organization;
 import com.izouma.wenlvju.domain.Setting;
-import com.izouma.wenlvju.service.SettingService;
 import com.izouma.wenlvju.dto.PageQuery;
 import com.izouma.wenlvju.exception.BusinessException;
+import com.izouma.wenlvju.repo.OrganizationRepo;
 import com.izouma.wenlvju.repo.SettingRepo;
+import com.izouma.wenlvju.service.SettingService;
 import com.izouma.wenlvju.utils.ObjUtils;
 import com.izouma.wenlvju.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
@@ -21,21 +24,58 @@ import java.util.List;
 @RequestMapping("/setting")
 @AllArgsConstructor
 public class SettingController extends BaseController {
-    private SettingService settingService;
-    private SettingRepo    settingRepo;
+    private SettingService   settingService;
+    private SettingRepo      settingRepo;
+    private OrganizationRepo organizationRepo;
 
-    //@PreAuthorize("hasRole('ADMIN')")
+    @PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
     public Setting save(@RequestBody Setting record) {
         if (record.getId() != null) {
             Setting orig = settingRepo.findById(record.getId()).orElseThrow(new BusinessException("无记录"));
             ObjUtils.merge(orig, record);
-            return settingRepo.save(orig);
+            Setting save = settingRepo.save(orig);
+
+            //艺考联盟
+            if (orig.getFlag() == 5) {
+                Organization organization = organizationRepo.findByAllianceId(record.getId()).orElse(null);
+                if (ObjectUtil.isNotNull(organization)) {
+                    if (!organization.getName().equals(save.getName())) {
+                        organization.setAllianceId(null);
+                        organizationRepo.save(organization);
+                        List<Organization> organizations = organizationRepo.findAllByNameEquals(record.getName());
+                        if (CollUtil.isNotEmpty(organizations)) {
+                            organization = organizations.get(0);
+                            organization.setAllianceId(record.getId());
+                            organizationRepo.save(organization);
+                        }
+                    }
+                } else {
+                    List<Organization> organizations = organizationRepo.findAllByNameEquals(record.getName());
+                    if (CollUtil.isNotEmpty(organizations)) {
+                        organization = organizations.get(0);
+                        organization.setAllianceId(record.getId());
+                        organizationRepo.save(organization);
+                    }
+                }
+            }
+            return save;
         }
         if (record.getParent() == null) {
             record.setFlag(settingRepo.nextSort());
         }
-        return settingRepo.save(record);
+        record = settingRepo.save(record);
+
+        if (record.getFlag() == 5) {
+            List<Organization> organizations = organizationRepo.findAllByNameEquals(record.getName());
+            if (organizations.size() > 0) {
+                Organization organization = organizations.get(0);
+                organization.setAllianceId(record.getId());
+                organizationRepo.save(organization);
+            }
+        }
+
+        return record;
     }
 
 
@@ -70,7 +110,7 @@ public class SettingController extends BaseController {
     @PostMapping("/byFlag")
     public List<Setting> byFlag(int flag) {
         List<Setting> tree = settingService.getTree(settingRepo.findAllByFlag(flag));
-        if (CollUtil.isEmpty(tree)){
+        if (CollUtil.isEmpty(tree)) {
             return null;
         }
         return tree.get(0).getChildren();

+ 1 - 1
src/main/vue/src/views/Settings.vue

@@ -135,7 +135,7 @@ export default {
                         '/setting/save',
                         {
                             ...data,
-                            active: false,
+                            del: true,
                             children: null
                         },
                         { body: 'json' }

+ 6 - 1
src/main/vue/src/views/organization/OrganizationEdit.vue

@@ -75,7 +75,12 @@
                     <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="请输入统一社会信用代码" readonly></el-input>
+                    <el-input
+                        v-model="formData.uscc"
+                        placeholder="请输入统一社会信用代码"
+                        readonly
+                        style="width: 180px"
+                    ></el-input>
                 </el-form-item>
                 <el-form-item label="地址" prop="district" class="address">
                     <el-select v-model="formData.district" style="width:100%">

+ 4 - 4
src/main/vue/src/views/organization/OrganizationInfo.vue

@@ -34,7 +34,7 @@
 
             <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="请输入承办单位名称" style="width:490px"></el-input>
                 </el-form-item>
                 <el-form-item label="负责人" prop="owner">
                     <el-input v-model="formData.owner" placeholder="请输入负责人"></el-input>
@@ -55,7 +55,7 @@
                     <el-input
                         v-model="formData.uscc"
                         placeholder="请输入统一社会信用代码"
-                        style="width:488px"
+                        style="width: 180px"
                     ></el-input>
                 </el-form-item>
                 <el-form-item label="地址" prop="district" class="address">
@@ -197,7 +197,7 @@ export default {
             this.$refs.form.validate(valid => {
                 if (valid) {
                     this.submit();
-                    this.submitUser();
+                    // this.submitUser();
                 } else {
                     return false;
                 }
@@ -211,7 +211,7 @@ export default {
                 .post('/organization/save', data, { body: 'json' })
                 .then(res => {
                     this.saving = false;
-                    // this.submitUser();
+                    this.submitUser();
                     // this.$router.go(-1);
                 })
                 .catch(e => {

+ 28 - 4
src/test/java/com/izouma/wenlvju/repo/RepoTest.java

@@ -1,13 +1,12 @@
 package com.izouma.wenlvju.repo;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.izouma.wenlvju.ApplicationTests;
-import com.izouma.wenlvju.domain.Collaborate;
-import com.izouma.wenlvju.domain.Organization;
-import com.izouma.wenlvju.domain.Rate;
-import com.izouma.wenlvju.domain.RateAudit;
+import com.izouma.wenlvju.domain.*;
 import com.izouma.wenlvju.enums.RateStatus;
+import com.izouma.wenlvju.exception.BusinessException;
 import com.izouma.wenlvju.service.storage.StorageService;
 import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +29,8 @@ public class RepoTest extends ApplicationTests {
     private RateRepo         rateRepo;
     @Autowired
     private RateAuditRepo    rateAuditRepo;
+    @Autowired
+    private SettingRepo      settingRepo;
 
     @Test
     public void test() {
@@ -156,4 +157,27 @@ public class RepoTest extends ApplicationTests {
             rateRepo.save(rate);
         });
     }
+
+    @Test
+    public void test3() {
+//        settingRepo.findAllByFlag(5);
+//        System.out.println(settingRepo.findAllByNameLikeAndFlag("%一枝梅%", 5));
+        Map<String, Long> settingMap = settingRepo.findAllByFlag(5)
+                .stream()
+                .collect(Collectors.toMap(Setting::getName, Setting::getId));
+
+        List<Organization> all = organizationRepo.findAll();
+        all.forEach(organization -> organization.setAllianceId(settingMap.get(organization.getName())));
+        organizationRepo.saveAll(all);
+    }
+
+    @Test
+    public void test4(){
+        Organization byUscc = organizationRepo.findByUscc("91320115302475327Q");
+//        if (ObjectUtil.isNotNull(byUscc)) {
+//            if (!byUscc.getId().equals(orig.getId())) {
+//                throw new BusinessException("该统一社会信用代码已被注册");
+//            }
+//        }
+    }
 }