Browse Source

企业信息保存bug修复。

tomatozq 5 years ago
parent
commit
b1cfe2bedd

+ 30 - 17
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/CompanyController.java

@@ -77,13 +77,26 @@ public class CompanyController {
             AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();
             CompanyUser companyUser = companyUserService.findByUserName(principal.getName());
 
-            Company company = null;
+            if(companyUser==null){
+                //可能直接通过cas统一登录页面登录,所以没有记录用户信息
+                companyUser = new CompanyUser();
+                companyUser.setId(UUID.randomUUID().toString());
+                companyUser.setUserName(principal.getName());
+                DES3 des3 = new DES3();
+                companyUser.setPassword(des3.encrypt(DES3.DEFAULT_KEY, "123456"));
+                companyUser.setDelFlag(false);
+                companyUser.setCreateTime(new Date());
 
-            if (!StringUtils.isEmpty(companyInfoDTO.getId())){
-                company = companyService.get(companyInfoDTO.getId());
+                companyUserService.insert(companyUser);
             }
 
-            if(company==null && companyUser!=null && StringUtils.isNotEmpty(companyUser.getCompanyId())){
+            Company company = null;
+
+//            if (!StringUtils.isEmpty(companyInfoDTO.getId())){
+//                company = companyService.get(companyInfoDTO.getId());
+//            }
+
+            if(company==null && StringUtils.isNotEmpty(companyUser.getCompanyId())){
                 company = companyService.get(companyUser.getCompanyId());
             }
 
@@ -100,6 +113,19 @@ public class CompanyController {
                 companyInfoDTO.setCompanyStampFile("");
             }
 
+            // 如果不设为null,更新时会将当前的company.id设为null
+            // 从而企业用户的CompanyId会被设置为字符串"null"
+            if ("null".equals(companyInfoDTO.getId())){
+                companyInfoDTO.setId(null);
+            }
+            else if(StringUtils.isNotEmpty(companyInfoDTO.getId())){
+                boolean existed = companyService.exist(companyInfoDTO.getId());
+
+                if (!existed){
+                    companyInfoDTO.setId(null);
+                }
+            }
+
             if (company==null) {
                 company = new Company();
                 PojoUtils.map(companyInfoDTO, company);
@@ -123,19 +149,6 @@ public class CompanyController {
                 messageResult.setData(company.getId());
             }
 
-            if(companyUser==null){
-                //可能直接通过cas统一登录页面登录,所以没有记录用户信息
-                companyUser = new CompanyUser();
-                companyUser.setId(UUID.randomUUID().toString());
-                companyUser.setUserName(principal.getName());
-                DES3 des3 = new DES3();
-                companyUser.setPassword(des3.encrypt(DES3.DEFAULT_KEY, "123456"));
-                companyUser.setDelFlag(false);
-                companyUser.setCreateTime(new Date());
-
-                companyUserService.insert(companyUser);
-            }
-
             companyUser.setCompanyId(company.getId());
             companyUser.setUpdateTime(new Date());
             companyUserService.update(companyUser);