张延森 il y a 5 ans
Parent
révision
9e8587515d

+ 2
- 0
src/main/java/com/huiju/estateagents/center/taUser/mapper/TaUserMapper.java Voir le fichier

@@ -31,4 +31,6 @@ public interface TaUserMapper extends BaseMapper<TaUser> {
31 31
     IPage<TaUser> seleUserList(IPage pg,@Param("taUser") TaUser taUser,@Param("personBuildingList") List<TaPersonBuilding> personBuildingList);
32 32
 
33 33
     Integer validateWeight(@Param("buildingIds") List<String> buildingIds, @Param("buildingId") String buildingId, @Param("weight") String weight, @Param("userId")Integer userId);
34
+
35
+    TaUser getAdminByAppID(@Param("appid") String appID);
34 36
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/center/taUser/service/ITaUserService.java Voir le fichier

@@ -38,6 +38,8 @@ public interface ITaUserService extends IService<TaUser> {
38 38
     
39 39
     TaUser updateAdminUser(TaUser taUser) throws Exception;
40 40
 
41
+    TaUser getAdminByAppID(String appid);
42
+
41 43
     /**
42 44
      * 查询所有城市
43 45
      * @return

+ 33
- 6
src/main/java/com/huiju/estateagents/center/taUser/service/impl/TaUserServiceImpl.java Voir le fichier

@@ -1,5 +1,6 @@
1 1
 package com.huiju.estateagents.center.taUser.service.impl;
2 2
 
3
+import cn.binarywang.wx.miniapp.api.WxMaService;
3 4
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 5
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
5 6
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -19,6 +20,7 @@ import com.huiju.estateagents.channel.sysChannel.mapper.TaChannelProxyMapper;
19 20
 import com.huiju.estateagents.common.CommConstant;
20 21
 import com.huiju.estateagents.common.MD5Utils;
21 22
 import com.huiju.estateagents.common.StringUtils;
23
+import com.huiju.estateagents.common.WxUtils;
22 24
 import com.huiju.estateagents.entity.*;
23 25
 import com.huiju.estateagents.mapper.*;
24 26
 import com.huiju.estateagents.service.*;
@@ -99,6 +101,9 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
99 101
 	@Autowired
100 102
 	private TaChannelProxyMapper taChannelProxyMapper;
101 103
 
104
+	@Autowired
105
+	private WxUtils wxUtils;
106
+
102 107
 	@Override
103 108
 	public IPage<Map<String,Object>> getPageList(IPage pg, Integer channelId) {
104 109
 		List<Map<String,Object>> taUserList = taUserMapper.getPageList(pg, channelId);
@@ -282,11 +287,7 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
282 287
 			taUser.setDefaultCityId(taOrg.getDefaultCityId());
283 288
 		}
284 289
 
285
-		QueryWrapper<TaMiniapp> wrapper = new QueryWrapper<>();
286
-		wrapper.eq("org_id", taOrg.getOrgId());
287
-		wrapper.last("limit 1");
288
-
289
-		TaMiniapp taMiniapp = taMiniappMapper.selectOne(wrapper);
290
+		TaMiniapp taMiniapp = getMiniappByOrg(taOrg);
290 291
 		if (null != taMiniapp) {
291 292
 			QueryWrapper<TaMiniappTemplate> query = new QueryWrapper<>();
292 293
 			query.eq("miniapp_id", taMiniapp.getMiniappId());
@@ -323,6 +324,27 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
323 324
 		if (taUserMapper.updateById(taUser) < 1) {
324 325
 			throw new Exception("更新用户信息失败");
325 326
 		}
327
+
328
+		// 如果服务未启动, 则启动服务
329
+		TaMiniapp miniapp = getMiniappByOrg(taOrg);
330
+		if (miniapp != null) {
331
+			WxMaService maService = wxUtils.getMiniApp(miniapp.getMiniappId());
332
+			if (null == maService) {
333
+				TaUser admin = taUserMapper.getAdminByAppID(miniapp.getMiniappId());
334
+
335
+				if (null != admin && CommConstant.STATUS_NORMAL == admin.getStatus() && LocalDateTime.now().isBefore(admin.getExpDate())) {
336
+					wxUtils.newService(miniapp, true);
337
+				}
338
+			}
339
+		}
340
+	}
341
+
342
+	private TaMiniapp getMiniappByOrg(TaOrg taOrg) {
343
+		QueryWrapper<TaMiniapp> wrapper = new QueryWrapper<>();
344
+		wrapper.eq("org_id", taOrg.getOrgId());
345
+		wrapper.last("limit 1");
346
+
347
+		return taMiniappMapper.selectOne(wrapper);
326 348
 	}
327 349
 
328 350
 	@Override
@@ -536,7 +558,12 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
536 558
 		return taUser;
537 559
 	}
538 560
 
539
-    @Override
561
+	@Override
562
+	public TaUser getAdminByAppID(String appid) {
563
+		return taUserMapper.getAdminByAppID(appid);
564
+	}
565
+
566
+	@Override
540 567
     public ResponseBean cityTree() {
541 568
 	   ResponseBean responseBean = new ResponseBean<>();
542 569
 	    // 省份

+ 24
- 0
src/main/java/com/huiju/estateagents/controller/MiniAppController.java Voir le fichier

@@ -182,6 +182,12 @@ public class MiniAppController extends BaseController {
182 182
             return ResponseBean.error("Header 参数 appid 不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
183 183
         }
184 184
 
185
+        // 校验服务过期日期等
186
+        ResponseBean checkResp = checkMiniappStatus(appid);
187
+        if (checkResp != null) {
188
+            return checkResp;
189
+        }
190
+
185 191
         try {
186 192
             TaMiniapp miniapp = taMiniappService.getById(appid);
187 193
             WxMaJscode2SessionResult session = miniAppService.getSessionInfo(code, appid);
@@ -329,6 +335,24 @@ public class MiniAppController extends BaseController {
329 335
         }
330 336
     }
331 337
 
338
+    private ResponseBean checkMiniappStatus(String appid) {
339
+        TaUser taUser = userService.getAdminByAppID(appid);
340
+
341
+        if (null == taUser) {
342
+            return ResponseBean.error("系统尚未添加管理员, 请联系相关人员", ResponseBean.ERROR_UNAVAILABLE);
343
+        }
344
+
345
+        if (null == taUser.getExpDate() || LocalDateTime.now().isAfter(taUser.getExpDate())) {
346
+            return ResponseBean.error("系统服务已到期或者尚未设置到期日期", ResponseBean.ERROR_UNAVAILABLE);
347
+        }
348
+
349
+        if (null == taUser.getStatus() || CommConstant.STATUS_NORMAL != taUser.getStatus()) {
350
+            return ResponseBean.error("系统服务被停止或者出现异常", ResponseBean.ERROR_UNAVAILABLE);
351
+        }
352
+
353
+        return null;
354
+    }
355
+
332 356
     private boolean checkSharePersonFrom(String from, String personId, String targetId, Integer orgId) {
333 357
         QueryWrapper<TaSharePersonFrom> queryWrapper =  new QueryWrapper<>();
334 358
         queryWrapper.eq("target_type",from);

+ 11
- 0
src/main/resources/mapper/TaUserMapper.xml Voir le fichier

@@ -111,4 +111,15 @@
111 111
       </if>
112 112
     </select>
113 113
 
114
+    <select id="getAdminByAppID" resultType="com.huiju.estateagents.center.taUser.entity.TaUser">
115
+        SELECT
116
+        m.*
117
+        FROM
118
+        ta_miniapp t
119
+        JOIN ta_user m USING (org_id)
120
+        WHERE
121
+        t.miniapp_id = #{appid}
122
+        AND m.is_admin = 1
123
+    </select>
124
+
114 125
 </mapper>