Quellcode durchsuchen

Merge remote-tracking branch 'origin/dev' into dev2

wangmh vor 7 Jahren
Ursprung
Commit
922c416444

+ 67 - 15
sso-manage-console-web/src/components/accounts/appeals/AppealHome.vue

@@ -172,6 +172,16 @@
               <div class="message-value" v-text="selectedAppeal.contactEmail"></div>
             </div>
           </div>
+          <div class="row">
+            <div class="col-lg-6">
+              <div class="message-label">原手机号</div>
+              <div class="message-value" v-text="selectedAppeal.oldMobile"></div>
+            </div>
+            <div class="col-lg-6">
+              <div class="message-label">绑定邮箱</div>
+              <div class="message-value" v-text="selectedAppeal.oldEmail"></div>
+            </div>
+          </div>
         </div>
         <!-- 验证手机 -->
         <div class="validate-mobile" v-if="approveType === 'validAccount'">
@@ -208,37 +218,39 @@
           <div class="row">
             <div class="col-lg-6">
               <div class="message-label">企业UU</div>
-              <div class="message-value" v-text="selectedAppeal.spaceUU"></div>
+              <div class="message-value" v-text="selectedAppeal.userspace.spaceUU"></div>
             </div>
             <div class="col-lg-6">
               <div class="message-label">申诉来源</div>
-              <div class="message-value" v-text="selectedAppeal.fromApp || '无'"></div>
+              <div class="message-value" v-text="selectedAppeal.userspace.fromApp || '无'"></div>
             </div>
           </div>
           <div class="row">
             <div class="col-lg-6">
               <div class="message-label">企业名称</div>
-              <div class="message-value" v-text="selectedAppeal.spaceName"></div>
+              <div class="message-value" v-text="selectedAppeal.userspace.spaceName"></div>
             </div>
             <div class="col-lg-6">
               <div class="message-label">法定代表人</div>
-              <div class="message-value" v-text="selectedAppeal.corporation"></div>
+              <div class="message-value" v-text="selectedAppeal.userspace.corporation"></div>
             </div>
           </div>
           <div class="row">
             <div class="col-lg-6">
               <div class="message-label">营业执照号</div>
-              <div class="message-value" v-text="selectedAppeal.businessCode"></div>
+              <div class="message-value" v-text="selectedAppeal.userspace.businessCode"></div>
             </div>
             <div class="col-lg-6">
               <div class="message-label">营业执照附件</div>
-              <div class="message-value" v-text="selectedAppeal.businessCodeImage"></div>
+              <div class="message-value">
+                <a :href="selectedAppeal.userspace.businessCodeImage" target="_blank">附件</a>
+              </div>
             </div>
           </div>
           <div class="row">
             <div class="col-lg-6" style="width: 840px;">
               <div class="message-label">注册地址</div>
-              <div class="message-value" v-text="selectedAppeal.regAddress"></div>
+              <div class="message-value" v-text="selectedAppeal.userspace.regAddress"></div>
             </div>
           </div>
           <!-- 申诉说明 -->
@@ -250,18 +262,40 @@
         <div style="border-bottom: 1px solid #E5E5E5;padding: 26px 0;">
           <div class="row">
             <div class="col-lg-6">
-              <div class="message-label">管理员UU</div>
-              <div class="message-value" v-text="selectedAppeal.admin.userUU"></div>
+              <div class="message-label">原管理员UU</div>
+              <div class="message-value" v-text="selectedAppeal.userspace.admin.userUU"></div>
+            </div>
+            <div class="col-lg-6">
+              <div class="message-label">原管理员姓名</div>
+              <div class="message-value" v-text="selectedAppeal.userspace.admin.vipName"></div>
             </div>
           </div>
           <div class="row">
             <div class="col-lg-6">
-              <div class="message-label">管理员姓名</div>
-              <div class="message-value" v-text="selectedAppeal.admin.vipName"></div>
+              <div class="message-label">原管理员手机</div>
+              <div class="message-value" v-text="selectedAppeal.userspace.admin.mobile"></div>
             </div>
             <div class="col-lg-6">
-              <div class="message-label">管理员手机号</div>
-              <div class="message-value" v-text="selectedAppeal.admin.mobile"></div>
+              <div class="message-label">原管理员邮箱</div>
+              <div class="message-value" v-text="selectedAppeal.userspace.admin.email"></div>
+            </div>
+          </div>
+        </div>
+        <div style="border-bottom: 1px solid #E5E5E5;padding: 26px 0;">
+          <div class="row">
+            <div class="col-lg-6">
+              <div class="message-label">新管理员姓名</div>
+              <div class="message-value" v-text="selectedAppeal.newAdminName"></div>
+            </div>
+            <div class="col-lg-6">
+              <div class="message-label">新管理员手机</div>
+              <div class="message-value" v-text="selectedAppeal.newAdminMobile"></div>
+            </div>
+          </div>
+          <div class="row">
+            <div class="col-lg-6">
+              <div class="message-label">新管理员邮箱</div>
+              <div class="message-value" v-text="selectedAppeal.newAdminEmail"></div>
             </div>
           </div>
         </div>
@@ -462,9 +496,10 @@
         this.approveType = appeal.type
         const submitInfo = JSON.parse(appeal.submitInfo)
         this.selectedAppeal = _.defaultsDeep({}, appeal, submitInfo)
-        if (appeal.type === 'changeAdmin' && !this.selectedAppeal.admin) {
-          this.selectedAppeal.admin = {}
+        if (appeal.type === 'changeAdmin' && !this.selectedAppeal.userspace) {
+          this.selectedAppeal.userspace = {}
         }
+        console.log('appeal', this.selectedAppeal)
       },
       approveRequest (appeal) {
         this.handleAppeal(appeal)
@@ -546,6 +581,23 @@
   }
   .change-admin {
     width: 840px;
+    height: 350px;
+    overflow-y: auto;
+  }
+  .change-admin::-webkit-scrollbar-track-piece {
+    background-color: #EAEAEA;
+  }
+  .change-admin::-webkit-scrollbar {
+    width:9px;
+    height:9px;
+  }
+  .change-admin::-webkit-scrollbar-thumb {
+    background-color: #545454;
+    background-clip:padding-box;
+    min-height:28px;
+  }
+  .change-admin::-webkit-scrollbar-thumb:hover {
+    background-color:#bbb;
   }
 </style>
 

+ 6 - 4
sso-manage-console-web/src/components/accounts/users/UserBasicInfo.vue

@@ -60,12 +60,10 @@
           </el-select>
         </el-form-item>
         <el-form-item label="注册时间">
-          <!-- TODO 注册时间 -->
-          <div>2017-06-11 12:51:44</div>
+          <div v-text="formatDate(userInfo.registerDate)"></div>
         </el-form-item>
         <el-form-item label="上次登录">
-          <!-- TODO 上次登录 -->
-          <div>2017-06-11 12:51:44</div>
+          <div v-text="formatDate(userInfo.lastLoginTime)"></div>
         </el-form-item>
         <el-form-item label="注册来源">
           <div>{{ userInfo.fromApp }}</div>
@@ -84,6 +82,7 @@
 <script>
   import _ from 'lodash'
   import axios from '@/assets/js/axios'
+  import { formatDate } from '@/assets/js/utils'
 
   export default {
     name: 'user-basic-info',
@@ -120,6 +119,9 @@
         }
 
         axios.put('/api/user//modifyUserInfo', data).then(success).catch(error)
+      },
+      formatDate (timestamp) {
+        return formatDate(null, null, timestamp)
       }
     },
     mounted () {

+ 3 - 2
sso-manage-console-web/src/components/accounts/users/UserHome.vue

@@ -78,8 +78,9 @@
           width="160">
         </el-table-column>
         <el-table-column
-          prop="lastLogin"
-          label="上次登录">
+          prop="lastLoginTime"
+          label="上次登录"
+          :formatter="formatDate">
         </el-table-column>
         <el-table-column
           prop="fromApp"

+ 32 - 33
sso-manage-console/src/main/java/com/uas/sso/sso/backend/service/impl/AppealServiceImpl.java

@@ -131,23 +131,20 @@ public class AppealServiceImpl implements AppealService {
         Assert.notNull(isPass, "审核状态不能为空");
         Appeal appeal = assertAppealExist(appealId);
 
-        // UserAccount account = SystemSession.getUserAccount();
-
         appeal.setAuditor("系统管理员");
         appeal.setAuditDate(new Timestamp(System.currentTimeMillis()));
         appeal.setStatus((short) (isPass ? 2 : 3));
         appealDao.save(appeal);
 
-
         if (!isPass) {
             return;
         }
 
         // 审核通过之后,更新用户和企业信息
-        Map map = JacksonUtils.fromJson(appeal.getSubmitInfo(), Map.class);
-        Assert.notNull(map, "申诉提交信息不能为空");
-
         if (RESET_PASS.equals(appeal.getType()) || VALID_MOBILE.equals(appeal.getType())) {
+            Map map = JacksonUtils.fromJson(appeal.getSubmitInfo(), Map.class);
+            Assert.notNull(map, "申诉提交信息不能为空");
+
             User user = assertUserExist(appeal.getSubmitterUU());
             user.setMobile(appeal.getMobile());
 
@@ -161,32 +158,36 @@ public class AppealServiceImpl implements AppealService {
             }
             userDao.save(user);
         } else if (CHANGE_ADMIN.equals(appeal.getType())) {
-            Long spaceUU = ((Integer) map.get("spaceUU")).longValue();
-            Assert.notNull(map, "更换管理员申诉企业UU不能为空");
+            JSONObject jsonObject = JacksonUtils.fromJson(appeal.getSubmitInfo(), JSONObject.class);
+            Assert.notNull(jsonObject, "更换管理员提交信息不能为空");
 
-            Userspace space = assertSpaceExist(spaceUU);
-            User user = userDao.findByMobile(appeal.getMobile());
+            Userspace userSpace = jsonObject.getObject("userspace", Userspace.class);
+            Assert.notNull(userSpace, "更换管理员的企业信息不能为空");
+            Assert.notNull(userSpace.getSpaceUU(), "更换管理员申诉企业UU不能为空");
+
+            String newAdminMobile = jsonObject.getString("newAdminMobile");
+            Assert.hasText(newAdminMobile, "更换的管理员手机不能为空");
+
+            Userspace space = assertSpaceExist(userSpace.getSpaceUU());
+            User user = userDao.findByMobile(newAdminMobile);
             if (user == null) {
-                JSONObject jsonObject = JacksonUtils.fromJson(appeal.getSubmitInfo(), JSONObject.class);
-                Assert.notNull(jsonObject, "必需更新的新管理员信息");
-
-                User adminUser = JacksonUtils.fromJson(jsonObject.getString("admin"), User.class);
-                Assert.notNull(adminUser, "更新的新管理员信息无效");
-
-                user = userDao.findByMobile(adminUser.getMobile());
-                if (user == null) {
-                    AddNewUserInfo newUserInfo = new AddNewUserInfo();
-                    newUserInfo.setVipName(adminUser.getVipName());
-                    newUserInfo.setEmail(adminUser.getEmail());
-                    newUserInfo.setMobile(adminUser.getMobile());
-                    newUserInfo.setPassword("123456");
-                    user = userService.addNewUser(newUserInfo);
-                }
+                String newAdminName = jsonObject.getString("newAdminName");
+                Assert.hasText(newAdminName, "更换的管理员姓名不能为空");
+
+                String newAdminEmail = jsonObject.getString("newAdminEmail");
+                Assert.hasText(newAdminEmail, "更换的管理员邮件不能为空");
+
+                AddNewUserInfo newUserInfo = new AddNewUserInfo();
+                newUserInfo.setVipName(newAdminName);
+                newUserInfo.setEmail(newAdminEmail);
+                newUserInfo.setMobile(newAdminMobile);
+                newUserInfo.setPassword("111111");
+                user = userService.addNewUser(newUserInfo);
             }
 
             // 记录管理员更换记录
             AdminChangeRecord record = new AdminChangeRecord();
-            record.setSpaceUU(spaceUU);
+            record.setSpaceUU(userSpace.getSpaceUU());
 
             User oldAdmin = space.getAdmin();
             record.setSponsorName(appeal.getContactName());
@@ -195,8 +196,6 @@ public class AppealServiceImpl implements AppealService {
             record.setOldAdminName(oldAdmin.getVipName());
             record.setOldAdminTel(oldAdmin.getMobile());
 
-            // UserAccount accountUser = SystemSession.getUserAccount();
-
             record.setAuditorName("系统管理员");
             record.setAuditorTel("123456789");
             record.setAuditTime(new Date());
@@ -209,11 +208,11 @@ public class AppealServiceImpl implements AppealService {
             space.setAdmin(user);
             space.setAdminUU(user.getUserUU());
             // 更新企业信息
-            space.setSpaceName((String) map.get("spaceName"));
-            space.setCorporation((String) map.get("corporation"));
-            space.setBusinessCode((String) map.get("businessCode"));
-            space.setBusinessCodeImage((String) map.get("businessCodeImage"));
-            space.setRegAddress((String) map.get("regAddress"));
+            space.setSpaceName(userSpace.getSpaceName());
+            space.setCorporation(userSpace.getCorporation());
+            space.setBusinessCode(userSpace.getBusinessCode());
+            space.setBusinessCodeImage(userSpace.getBusinessCodeImage());
+            space.setRegAddress(userSpace.getRegAddress());
             // 更新企业认证状态
             space.setValidCode((short) 2);
             spaceDao.save(space);

+ 2 - 1
sso-manage-console/src/main/java/com/uas/sso/sso/backend/service/impl/UserBackendServiceImpl.java

@@ -221,8 +221,9 @@ public class UserBackendServiceImpl implements UserBackendService {
         user.setIdentityValidCode((short) Status.NOT_APPLYING.getCode());
         user.setPassword(InfoAsyncUtils.encryptePassword(Const.ENCRY_FORMAT, user.getPassword(), user.getSalt()));
         user.setUserRecord(new UserRecord());
+        user.getUserRecord().setUser(user);
+        user.getUserRecord().setUserUU(user.getUserUU());
         user.setFromApp("sso");
-        user  = userDao.save(user);
 
         List<App> appList = appDao.findAll();
         List<String> urlsFromApps = InfoAsyncUtils.getUserBackUrlsFromApps(appList);

+ 9 - 0
sso-server/src/main/java/com/uas/sso/entity/User.java

@@ -11,6 +11,7 @@ import javax.persistence.*;
 
 import com.uas.sso.core.Const;
 import org.codehaus.jackson.annotate.JsonIgnore;
+import org.springframework.transaction.annotation.Transactional;
 
 /**
  * 用户信息
@@ -472,6 +473,14 @@ public class User implements Serializable {
         this.questions = questions;
     }
 
+    public Timestamp getLastLoginTime() {
+        if (userRecord != null && userRecord.getLastLoginTime() != null) {
+            return userRecord.getLastLoginTime();
+        } else {
+            return null;
+        }
+    }
+
     @JsonIgnore
     @JSONField(serialize = false)
     public Set<Userspace> getUserSpaces() {