张延森 5 年之前
父節點
當前提交
2f82f077d9

+ 11
- 0
src/main/java/com/huiju/estateagents/center/taUser/controller/TaUserController.java 查看文件

@@ -16,14 +16,18 @@ import com.huiju.estateagents.common.CommConstant;
16 16
 import com.huiju.estateagents.common.JWTUtils;
17 17
 import com.huiju.estateagents.common.MD5Utils;
18 18
 import com.huiju.estateagents.entity.TaPerson;
19
+import com.huiju.estateagents.entity.TaRole;
20
+import com.huiju.estateagents.service.ITaRoleService;
19 21
 import org.slf4j.Logger;
20 22
 import org.slf4j.LoggerFactory;
21 23
 import org.springframework.beans.factory.annotation.Autowired;
22 24
 import org.springframework.web.bind.annotation.*;
25
+import sun.dc.pr.PRError;
23 26
 
24 27
 import javax.servlet.http.HttpServletRequest;
25 28
 import java.time.LocalDateTime;
26 29
 import java.util.HashMap;
30
+import java.util.List;
27 31
 import java.util.Map;
28 32
 
29 33
 /**
@@ -46,6 +50,8 @@ public class TaUserController extends BaseController {
46 50
     @Autowired
47 51
     private ISysTokenService sysTokenService;
48 52
 
53
+    @Autowired
54
+    private ITaRoleService iTaRoleService;
49 55
 
50 56
     /**
51 57
      * 分页查询列表
@@ -191,6 +197,8 @@ public class TaUserController extends BaseController {
191 197
         Map map = JWTUtils.getUserIdAndOrgId(request);
192 198
         try {
193 199
             TaUser taUser = iTaUserService.getById(map.get("userId").toString());
200
+            List<TaRole> roles = iTaRoleService.getRolesByUser(taUser.getUserId());
201
+            taUser.setRoles(roles);
194 202
             taUser.setLoginPassword("");
195 203
             responseBean.addSuccess(taUser);
196 204
         }catch (Exception e){
@@ -228,6 +236,9 @@ public class TaUserController extends BaseController {
228 236
         if (taUser.getStatus() != CommConstant.STATUS_NORMAL) {
229 237
             return ResponseBean.error("用户状态异常", ResponseBean.ERROR_UNAVAILABLE);
230 238
         }
239
+
240
+        List<TaRole> roles = iTaRoleService.getRolesByUser(taUser.getUserId());
241
+        taUser.setRoles(roles);
231 242
         taUser.setLoginPassword("");
232 243
         Map map = new HashMap();
233 244
         map.put("userId",taUser.getUserId().toString());

+ 8
- 0
src/main/java/com/huiju/estateagents/center/taUser/entity/TaUser.java 查看文件

@@ -4,12 +4,14 @@ import com.baomidou.mybatisplus.annotation.IdType;
4 4
 import com.baomidou.mybatisplus.annotation.TableField;
5 5
 import com.baomidou.mybatisplus.annotation.TableId;
6 6
 import com.huiju.estateagents.entity.TaMiniapp;
7
+import com.huiju.estateagents.entity.TaRole;
7 8
 import lombok.Data;
8 9
 import lombok.EqualsAndHashCode;
9 10
 import lombok.experimental.Accessors;
10 11
 
11 12
 import java.io.Serializable;
12 13
 import java.time.LocalDateTime;
14
+import java.util.List;
13 15
 
14 16
 /**
15 17
  * <p>
@@ -119,4 +121,10 @@ public class TaUser implements Serializable {
119 121
      */
120 122
     @TableField(exist = false)
121 123
     private TaMiniapp miniapp;
124
+
125
+    /**
126
+     * 授权角色列表
127
+     */
128
+    @TableField(exist = false)
129
+    private List<TaRole> roles;
122 130
 }

+ 24
- 44
src/main/java/com/huiju/estateagents/common/WxUtils.java 查看文件

@@ -2,67 +2,47 @@ package com.huiju.estateagents.common;
2 2
 
3 3
 import cn.binarywang.wx.miniapp.api.WxMaService;
4 4
 import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
5
-import cn.binarywang.wx.miniapp.bean.WxMaTemplateData;
6
-import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage;
7 5
 import cn.binarywang.wx.miniapp.config.WxMaInMemoryConfig;
8
-import com.huiju.estateagents.config.WxProperties;
9
-import com.huiju.estateagents.entity.TaBuilding;
10
-import com.huiju.estateagents.service.ITaBuildingService;
11
-import me.chanjar.weixin.common.error.WxErrorException;
6
+import com.huiju.estateagents.entity.TaMiniapp;
7
+import com.huiju.estateagents.service.IMiniAppService;
12 8
 import org.springframework.beans.factory.annotation.Autowired;
13
-import org.springframework.boot.context.properties.EnableConfigurationProperties;
14
-import org.springframework.context.annotation.Configuration;
9
+import org.springframework.stereotype.Component;
15 10
 
16 11
 import javax.annotation.PostConstruct;
17
-import java.time.LocalDateTime;
18
-import java.util.ArrayList;
19
-import java.util.Arrays;
20 12
 import java.util.List;
21
-import java.util.Map;
13
+import java.util.concurrent.ConcurrentHashMap;
22 14
 
23
-@Configuration
24
-@EnableConfigurationProperties(WxProperties.class)
15
+@Component
25 16
 public class WxUtils {
26
-    static WxMaService miniApp;
27
-
28
-    static WxProperties properties;
17
+    private ConcurrentHashMap<String, WxMaService> serives = new ConcurrentHashMap();
29 18
 
30 19
     @Autowired
31
-    public WxUtils(WxProperties properties) { WxUtils.properties = properties; }
20
+    IMiniAppService iMiniAppService;
32 21
 
33
-    public static WxMaService getMiniApp() {
34
-        return miniApp;
22
+    public WxMaService getMiniApp(String appid) {
23
+        return serives.get(appid);
35 24
     }
36 25
 
37
-    @Autowired
38
-    ITaBuildingService iTaBuildingService;
39
-
40 26
     @PostConstruct
41 27
     public void init() {
42 28
         System.out.println("-------------PostConstruct----------------");
43 29
 
44
-        WxMaInMemoryConfig config = new WxMaInMemoryConfig();
45
-
46
-        WxProperties.Miniapp miniProperty = WxUtils.properties.getMiniapp();
47
-
48
-        config.setAppid(miniProperty.getAppid());
49
-        config.setSecret(miniProperty.getSecret());
50
-        config.setToken(miniProperty.getToken());
51
-        config.setAesKey(miniProperty.getAesKey());
52
-        config.setMsgDataFormat(miniProperty.getMsgDataFormat());
53
-
54
-        WxUtils.miniApp = new WxMaServiceImpl();
55
-        WxUtils.miniApp.setWxMaConfig(config);
56
-        System.out.println("-------------PostConstruct- 222---------------");
57
-        System.out.println(WxUtils.miniApp);
58
-    }
30
+        List<TaMiniapp> taMiniappList = iMiniAppService.getAllAvaliableMiniapps();
31
+        if (null != taMiniappList) {
32
+            return;
33
+        }
59 34
 
60
-    public static WxProperties.Tpl getTplByName(String name) {
61
-        for ( WxProperties.Tpl t: properties.getTpls()) {
62
-            if (t.getName().equals(name)) {
63
-                return t;
64
-            }
35
+        for (TaMiniapp taMiniapp : taMiniappList) {
36
+            WxMaInMemoryConfig config = new WxMaInMemoryConfig();
37
+            config.setAppid(taMiniapp.getMiniappId());
38
+            config.setSecret(taMiniapp.getSecret());
39
+            config.setToken(taMiniapp.getToken());
40
+            config.setAesKey(taMiniapp.getAesKey());
41
+            config.setMsgDataFormat("JSON");
42
+
43
+            WxMaService service = new WxMaServiceImpl();
44
+            service.setWxMaConfig(config);
45
+            serives.put(taMiniapp.getMiniappId(), service);
65 46
         }
66
-        return null;
67 47
     }
68 48
 }

+ 23
- 16
src/main/java/com/huiju/estateagents/controller/MiniAppController.java 查看文件

@@ -34,23 +34,15 @@ public class MiniAppController {
34 34
     @Autowired
35 35
     private ITaPersonService taPersonService;
36 36
 
37
-    final WxMaService wxService = WxUtils.getMiniApp();
38
-
39 37
     @Autowired
40 38
     private IMiniAppService miniAppService;
41 39
 
42 40
     @Autowired
43 41
     private ITaRecommendCustomerService taRecommendCustomerService;
44 42
 
45
-    @Autowired
46
-    private ITaCustomerPersonService taCustomerPersonService;
47
-
48 43
     @Resource
49 44
     private ApplicationContext applicationContext;
50 45
 
51
-    @Autowired
52
-    private TaShareMapper taShareMapper;
53
-
54 46
     @Autowired
55 47
     private ITaOrgService taOrgService;
56 48
 
@@ -71,12 +63,23 @@ public class MiniAppController {
71 63
      * 登陆接口
72 64
      */
73 65
     @PostMapping("/login")
74
-    public ResponseBean login(String code,@RequestParam(required = false) String from,@RequestParam(required = false)String recommender,HttpServletRequest request) {
66
+    public ResponseBean login(
67
+            String code,
68
+            @RequestParam(required = false) String from,
69
+            @RequestParam(required = false)String recommender,
70
+            HttpServletRequest request) {
71
+        String appid = request.getHeader("appid");
72
+
75 73
         if (StringUtils.isBlank(code)) {
76 74
             return ResponseBean.error("参数 code 不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
77 75
         }
76
+        if (StringUtils.isBlank(appid)) {
77
+            return ResponseBean.error("Header 参数 appid 不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
78
+        }
79
+
78 80
         try {
79
-            WxMaJscode2SessionResult session = miniAppService.getSessionInfo(code);
81
+
82
+            WxMaJscode2SessionResult session = miniAppService.getSessionInfo(code, appid);
80 83
             Integer orgId =getOrgId(request);
81 84
             Map<String, String> miniResp = new HashMap<>();
82 85
             miniResp.put("openid", session.getOpenid());
@@ -93,7 +96,7 @@ public class MiniAppController {
93 96
                 // 添加积分
94 97
                  applicationContext.publishEvent(new EventBus(recommender, EventBus.EventType.SharePosterAll));
95 98
             }
96
-            TaPerson taPerson = taPersonService.newPersonByOpenid(session.getOpenid(),orgId);
99
+            TaPerson taPerson = taPersonService.newPersonByOpenid(session.getOpenid(), orgId);
97 100
             if (null == taPerson) {
98 101
                 return ResponseBean.error("发生未知错误", ResponseBean.ERROR_UNAVAILABLE);
99 102
             }
@@ -109,6 +112,7 @@ public class MiniAppController {
109 112
                     }
110 113
                 }
111 114
             }
115
+            taPerson.setMiniappId(appid);
112 116
             taPersonService.updateById(taPerson);
113 117
 
114 118
             taPerson.setPassword(null);
@@ -155,6 +159,7 @@ public class MiniAppController {
155 159
      */
156 160
     @PostMapping("/signup")
157 161
     public ResponseBean info(@RequestBody String paramStr, HttpServletRequest request) {
162
+        String appid = request.getHeader("appid");
158 163
         TaPerson person = null;
159 164
 
160 165
         if (null == paramStr || "".equals(paramStr.trim()) || "{}".equals(paramStr.trim())) {
@@ -178,12 +183,12 @@ public class MiniAppController {
178 183
             String iv = params.getString("iv");
179 184
 
180 185
             // 用户信息校验
181
-            if (!miniAppService.checkUserInfo(sessionKey, rawData, signature)) {
186
+            if (!miniAppService.checkUserInfo(sessionKey, rawData, signature, appid)) {
182 187
                 return ResponseBean.error("校验参数失败", ResponseBean.ERROR_ILLEGAL_PARAMS);
183 188
             }
184 189
 
185 190
             // 解密用户信息
186
-            WxMaUserInfo userInfo = miniAppService.getUserInfo(sessionKey, encryptedData, iv);
191
+            WxMaUserInfo userInfo = miniAppService.getUserInfo(sessionKey, encryptedData, iv, appid);
187 192
 
188 193
             // 更新或保存用户信息
189 194
             person = taPersonService.mergePersonWxInfo(userInfo);
@@ -208,6 +213,7 @@ public class MiniAppController {
208 213
      */
209 214
     @PostMapping("/userPhone")
210 215
     public ResponseBean phone(@RequestBody String paramStr, HttpServletRequest request) {
216
+        String appid = request.getHeader("appid");
211 217
         JSONObject params = JSONObject.parseObject(paramStr);
212 218
         if (null == params) {
213 219
             return ResponseBean.error("校验参数失败", ResponseBean.ERROR_ILLEGAL_PARAMS);
@@ -218,7 +224,7 @@ public class MiniAppController {
218 224
         String iv = params.getString("iv");
219 225
 
220 226
         // 解密
221
-        WxMaPhoneNumberInfo phoneNoInfo = miniAppService.getPhoneNoInfo(sessionKey, encryptedData, iv);
227
+        WxMaPhoneNumberInfo phoneNoInfo = miniAppService.getPhoneNoInfo(sessionKey, encryptedData, iv, appid);
222 228
 
223 229
         // 更新用户绑定手机
224 230
         String openid = JWTUtils.getSubject(request);
@@ -271,8 +277,9 @@ public class MiniAppController {
271 277
      * @return
272 278
      */
273 279
     @PostMapping("/qrcode")
274
-    public ResponseBean qrcode(@RequestBody String paramsStr) {
275
-        return miniAppService.getQrCode(paramsStr);
280
+    public ResponseBean qrcode(@RequestBody String paramsStr, HttpServletRequest request) {
281
+        String appid = request.getHeader("appid");
282
+        return miniAppService.getQrCode(paramsStr, appid);
276 283
     }
277 284
 
278 285
     /**

+ 3
- 0
src/main/java/com/huiju/estateagents/entity/TaMiniapp.java 查看文件

@@ -56,6 +56,9 @@ public class TaMiniapp implements Serializable {
56 56
      */
57 57
     private Integer orgId;
58 58
 
59
+
60
+    private String aesKey;
61
+
59 62
     @TableField(exist = false)
60 63
     private List<TaMiniappTemplate> tpls;
61 64
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/entity/TaPerson.java 查看文件

@@ -258,4 +258,6 @@ public class TaPerson implements Serializable {
258 258
      */
259 259
     @TableField(exist = false)
260 260
     private int inviteCount;
261
+
262
+    private String miniappId;
261 263
 }

+ 4
- 0
src/main/java/com/huiju/estateagents/mapper/TaMiniappMapper.java 查看文件

@@ -2,8 +2,11 @@ package com.huiju.estateagents.mapper;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.estateagents.entity.TaMiniapp;
5
+import com.huiju.estateagents.entity.TaMiniappTemplate;
5 6
 import org.apache.ibatis.annotations.Mapper;
6 7
 
8
+import java.util.List;
9
+
7 10
 /**
8 11
  * <p>
9 12
  * 小程序表  Mapper 接口
@@ -15,4 +18,5 @@ import org.apache.ibatis.annotations.Mapper;
15 18
 @Mapper
16 19
 public interface TaMiniappMapper extends BaseMapper<TaMiniapp> {
17 20
 
21
+    List<TaMiniapp> getAllAvaliableMiniapps();
18 22
 }

+ 2
- 1
src/main/java/com/huiju/estateagents/mapper/TaMiniappTemplateMapper.java 查看文件

@@ -3,6 +3,7 @@ package com.huiju.estateagents.mapper;
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.estateagents.entity.TaMiniappTemplate;
5 5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
6 7
 
7 8
 /**
8 9
  * <p>
@@ -14,5 +15,5 @@ import org.apache.ibatis.annotations.Mapper;
14 15
  */
15 16
 @Mapper
16 17
 public interface TaMiniappTemplateMapper extends BaseMapper<TaMiniappTemplate> {
17
-
18
+    TaMiniappTemplate selectTplByType(@Param("type") String type, @Param("appid") String appid);
18 19
 }

+ 4
- 0
src/main/java/com/huiju/estateagents/mapper/TaRoleMapper.java 查看文件

@@ -3,6 +3,9 @@ package com.huiju.estateagents.mapper;
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.estateagents.entity.TaRole;
5 5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
7
+
8
+import java.util.List;
6 9
 
7 10
 /**
8 11
  * <p>
@@ -15,4 +18,5 @@ import org.apache.ibatis.annotations.Mapper;
15 18
 @Mapper
16 19
 public interface TaRoleMapper extends BaseMapper<TaRole> {
17 20
 
21
+    List<TaRole> getRolesByUser(@Param("user") Integer userId);
18 22
 }

+ 13
- 8
src/main/java/com/huiju/estateagents/service/IMiniAppService.java 查看文件

@@ -4,27 +4,32 @@ import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
4 4
 import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
5 5
 import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
6 6
 import com.huiju.estateagents.base.ResponseBean;
7
+import com.huiju.estateagents.entity.TaMiniapp;
7 8
 import com.huiju.estateagents.entity.TaMiniappQrcode;
9
+import com.huiju.estateagents.entity.TaPerson;
8 10
 import me.chanjar.weixin.common.error.WxErrorException;
9 11
 
10 12
 import java.time.LocalDateTime;
13
+import java.util.List;
11 14
 
12 15
 public interface IMiniAppService {
13
-    WxMaJscode2SessionResult getSessionInfo(String code) throws WxErrorException;
16
+    WxMaJscode2SessionResult getSessionInfo(String code, String appid) throws WxErrorException;
14 17
 
15
-    boolean checkUserInfo(String sessionKey, String rawData, String signature);
18
+    boolean checkUserInfo(String sessionKey, String rawData, String signature, String appid);
16 19
 
17
-    WxMaUserInfo getUserInfo(String sessionKey, String encryptedData, String iv);
20
+    WxMaUserInfo getUserInfo(String sessionKey, String encryptedData, String iv, String appid);
18 21
 
19
-    WxMaPhoneNumberInfo getPhoneNoInfo(String sessionKey, String encryptedData, String iv);
22
+    WxMaPhoneNumberInfo getPhoneNoInfo(String sessionKey, String encryptedData, String iv, String appid);
20 23
 
21
-    void sendNoticeMessage(String toUser, String link, String name, String phone, String content, LocalDateTime dt);
24
+    void sendNoticeMessage(TaPerson toUser, String link, String name, String phone, String content, LocalDateTime dt);
22 25
 
23
-    void sendMainBizMessage(String toUser, String link, String custName, String phone, String sex, String fromName, String bizType, String content);
26
+    void sendMainBizMessage(TaPerson toUser, String link, String custName, String phone, String sex, String fromName, String bizType, String content);
24 27
 
25
-    void sendNewCustomerMessage(String toUser, String link, String custName, String phone, String sex, String fromName);
28
+    void sendNewCustomerMessage(TaPerson toUser, String link, String custName, String phone, String sex, String fromName);
26 29
 
27
-    ResponseBean getQrCode(String paramsStr);
30
+    ResponseBean getQrCode(String paramsStr, String appid);
28 31
 
29 32
     TaMiniappQrcode getQrCodeBySerialNo(Integer id);
33
+
34
+    List<TaMiniapp> getAllAvaliableMiniapps();
30 35
 }

+ 3
- 1
src/main/java/com/huiju/estateagents/service/ITaRoleService.java 查看文件

@@ -3,6 +3,8 @@ package com.huiju.estateagents.service;
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4 4
 import com.huiju.estateagents.entity.TaRole;
5 5
 
6
+import java.util.List;
7
+
6 8
 /**
7 9
  * <p>
8 10
  * 角色表 角色表,每个org的角色可以单独设置。但是都共有一个admin角色。这个角色在创建用户的时候创建好了 服务类
@@ -12,5 +14,5 @@ import com.huiju.estateagents.entity.TaRole;
12 14
  * @since 2019-09-11
13 15
  */
14 16
 public interface ITaRoleService extends IService<TaRole> {
15
-
17
+    List<TaRole> getRolesByUser(Integer userId);
16 18
 }

+ 68
- 22
src/main/java/com/huiju/estateagents/service/impl/MiniAppServiceImpl.java 查看文件

@@ -7,13 +7,19 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
7 7
 import com.huiju.estateagents.base.ResponseBean;
8 8
 import com.huiju.estateagents.common.*;
9 9
 import com.huiju.estateagents.config.WxProperties;
10
+import com.huiju.estateagents.entity.TaMiniapp;
10 11
 import com.huiju.estateagents.entity.TaMiniappQrcode;
12
+import com.huiju.estateagents.entity.TaMiniappTemplate;
13
+import com.huiju.estateagents.entity.TaPerson;
11 14
 import com.huiju.estateagents.mapper.TaMiniFormidsMapper;
15
+import com.huiju.estateagents.mapper.TaMiniappMapper;
12 16
 import com.huiju.estateagents.mapper.TaMiniappQrcodeMapper;
17
+import com.huiju.estateagents.mapper.TaMiniappTemplateMapper;
13 18
 import com.huiju.estateagents.service.IMiniAppService;
14 19
 import com.huiju.estateagents.service.ITaMiniFormidsService;
15 20
 import lombok.extern.slf4j.Slf4j;
16 21
 import me.chanjar.weixin.common.error.WxErrorException;
22
+import org.checkerframework.checker.units.qual.A;
17 23
 import org.springframework.beans.factory.annotation.Autowired;
18 24
 import org.springframework.stereotype.Service;
19 25
 
@@ -35,34 +41,43 @@ public class MiniAppServiceImpl implements IMiniAppService {
35 41
     @Autowired
36 42
     ITaMiniFormidsService taMiniFormidsService;
37 43
 
44
+    @Autowired
45
+    TaMiniappMapper taMiniappMapper;
46
+
47
+    @Autowired
48
+    TaMiniappTemplateMapper taMiniappTemplateMapper;
49
+
50
+    @Autowired
51
+    WxUtils wxUtils;
52
+
38 53
     @Override
39
-    public WxMaJscode2SessionResult getSessionInfo(String code) throws WxErrorException {
40
-        WxMaService wxService = WxUtils.getMiniApp();
54
+    public WxMaJscode2SessionResult getSessionInfo(String code, String appid) throws WxErrorException {
55
+        WxMaService wxService = wxUtils.getMiniApp(appid);
41 56
         System.out.println(wxService);
42 57
         System.out.println(wxService.getUserService());
43 58
         return wxService.getUserService().getSessionInfo(code);
44 59
     }
45 60
 
46 61
     @Override
47
-    public boolean checkUserInfo(String sessionKey, String rawData, String signature) {
48
-        WxMaService wxService = WxUtils.getMiniApp();
62
+    public boolean checkUserInfo(String sessionKey, String rawData, String signature, String appid) {
63
+        WxMaService wxService = wxUtils.getMiniApp(appid);
49 64
         return wxService.getUserService().checkUserInfo(sessionKey, rawData, signature);
50 65
     }
51 66
 
52 67
     @Override
53
-    public WxMaUserInfo getUserInfo(String sessionKey, String encryptedData, String iv) {
54
-        WxMaService wxService = WxUtils.getMiniApp();
68
+    public WxMaUserInfo getUserInfo(String sessionKey, String encryptedData, String iv, String appid) {
69
+        WxMaService wxService = wxUtils.getMiniApp(appid);
55 70
         return wxService.getUserService().getUserInfo(sessionKey, encryptedData, iv);
56 71
     }
57 72
 
58 73
     @Override
59
-    public WxMaPhoneNumberInfo getPhoneNoInfo(String sessionKey, String encryptedData, String iv) {
60
-        WxMaService wxService = WxUtils.getMiniApp();
74
+    public WxMaPhoneNumberInfo getPhoneNoInfo(String sessionKey, String encryptedData, String iv, String appid) {
75
+        WxMaService wxService = wxUtils.getMiniApp(appid);
61 76
         return wxService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv);
62 77
     }
63 78
 
64 79
     @Override
65
-    public void sendNoticeMessage(String toUser, String link, String name, String phone, String content, LocalDateTime dt) {
80
+    public void sendNoticeMessage(TaPerson toUser, String link, String name, String phone, String content, LocalDateTime dt) {
66 81
         List<WxMaTemplateData> data = new ArrayList<>();
67 82
         data.add(new WxMaTemplateData("keyword1", name, "#fffff"));
68 83
         data.add(new WxMaTemplateData("keyword2", phone, "#fffff"));
@@ -73,7 +88,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
73 88
     }
74 89
 
75 90
     @Override
76
-    public void sendMainBizMessage(String toUser, String link, String custName, String phone, String sex, String fromName, String bizType, String content) {
91
+    public void sendMainBizMessage(TaPerson toUser, String link, String custName, String phone, String sex, String fromName, String bizType, String content) {
77 92
         List<WxMaTemplateData> data = new ArrayList<>();
78 93
         data.add(new WxMaTemplateData("keyword1", custName, "#fffff"));
79 94
         data.add(new WxMaTemplateData("keyword2", StringUtils.ifNull(phone, "未知"), "#fffff"));
@@ -86,7 +101,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
86 101
     }
87 102
 
88 103
     @Override
89
-    public void sendNewCustomerMessage(String toUser, String link, String custName, String phone, String sex, String fromName) {
104
+    public void sendNewCustomerMessage(TaPerson toUser, String link, String custName, String phone, String sex, String fromName) {
90 105
         List<WxMaTemplateData> data = new ArrayList<>();
91 106
         data.add(new WxMaTemplateData("keyword1", custName, "#fffff"));
92 107
         data.add(new WxMaTemplateData("keyword2", StringUtils.ifNull(phone, "未知"), "#fffff"));
@@ -97,11 +112,10 @@ public class MiniAppServiceImpl implements IMiniAppService {
97 112
     }
98 113
 
99 114
     @Override
100
-    public ResponseBean getQrCode(String paramsStr) {
115
+    public ResponseBean getQrCode(String paramsStr, String appid) {
101 116
         if (null == paramsStr) return ResponseBean.error("请指定二维码生成参数", ResponseBean.ERROR_MISSING_PARAMS);
102 117
 
103
-        WxMaService wxService = WxUtils.getMiniApp();
104
-        String appid = wxService.getWxMaConfig().getAppid();
118
+        WxMaService wxService = wxUtils.getMiniApp(appid);
105 119
 
106 120
         // 先去数据库中查询
107 121
         QueryWrapper<TaMiniappQrcode> queryWrapper = new QueryWrapper<>();
@@ -166,29 +180,61 @@ public class MiniAppServiceImpl implements IMiniAppService {
166 180
         return taMiniappQrcodeMapper.selectById(id);
167 181
     }
168 182
 
169
-    private void sendMessage(String tplName, String toUser, String link, List<WxMaTemplateData> data) {
170
-        WxProperties.Tpl tpl = WxUtils.getTplByName(tplName);
183
+    @Override
184
+    public List<TaMiniapp> getAllAvaliableMiniapps() {
185
+        List<TaMiniapp> taMiniappList = taMiniappMapper.getAllAvaliableMiniapps();
186
+
187
+        if (null != taMiniappList) {
188
+            for (TaMiniapp miniapp : taMiniappList) {
189
+                QueryWrapper<TaMiniappTemplate> queryWrapper = new QueryWrapper<>();
190
+                queryWrapper.eq("miniapp_id", miniapp.getMiniappId());
191
+                miniapp.setTpls(taMiniappTemplateMapper.selectList(queryWrapper));
192
+            }
193
+        }
194
+
195
+        return taMiniappList;
196
+    }
197
+
198
+    private void sendMessage(String tplName, TaPerson toUser, String link, List<WxMaTemplateData> data) {
199
+        String appid = toUser.getMiniappId();
200
+        if (StringUtils.isEmpty(appid)) {
201
+            log.error("人员 {} 无对应来源小程序信息", toUser);
202
+        }
203
+
204
+        TaMiniappTemplate tpl = getTplByType(tplName, toUser.getMiniappId());
171 205
         if (null == tpl) return ;
172 206
 
173
-        String formid = taMiniFormidsService.getFormidBy(toUser, true);
207
+        String formid = taMiniFormidsService.getFormidBy(toUser.getMiniOpenid(), true);
174 208
         if (StringUtils.isEmpty(formid)) {
175
-            log.error("發送消息失敗, 沒有有效的 formid");
209
+            log.error("送消息失敗, 沒有有效的 formid");
176 210
             return;
177 211
         }
178 212
 
179 213
         WxMaTemplateMessage message = WxMaTemplateMessage.builder()
180
-                .templateId(tpl.getId())
214
+                .templateId(tpl.getTplId())
181 215
                 .data(data)
182 216
                 .formId(formid)
183 217
                 .page(StringUtils.ifNull(link, CommConstant.MINIAPP_INDEX))
184
-                .toUser(toUser)
218
+                .toUser(toUser.getMiniOpenid())
185 219
                 .build();
186 220
         try {
187
-
188
-            WxMaService wxService = WxUtils.getMiniApp();
221
+            WxMaService wxService = wxUtils.getMiniApp(appid);
189 222
             wxService.getMsgService().sendTemplateMsg(message);
190 223
         } catch (WxErrorException e) {
191 224
             e.printStackTrace();
192 225
         }
193 226
     }
227
+
228
+    private TaMiniappTemplate getTplByType(String type, String appid) {
229
+        TaMiniappTemplate tpl = taMiniappTemplateMapper.selectTplByType(type, appid);
230
+        return tpl;
231
+    }
232
+
233
+    public TaMiniapp getMinappByOrg(Integer org) {
234
+        QueryWrapper<TaMiniapp> queryWrapper = new QueryWrapper<>();
235
+        queryWrapper.eq("org_id", org);
236
+        queryWrapper.last("limit 1");
237
+
238
+        return taMiniappMapper.selectOne(queryWrapper);
239
+    }
194 240
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/service/impl/TaChatServiceImpl.java 查看文件

@@ -147,7 +147,7 @@ public class TaChatServiceImpl extends ServiceImpl<TaChatMapper, TaChat> impleme
147 147
                 };
148 148
                 String link = "/pages/im/index?"+String.join("&", its);
149 149
 
150
-                miniAppService.sendNoticeMessage(to.getMiniOpenid(), link, StringUtils.ifNull(from.getName(), from.getNickname()), StringUtils.ifNull(from.getTel(), from.getPhone()), "给您发送了一条新消息, 请查收", LocalDateTime.now());
150
+                miniAppService.sendNoticeMessage(to, link, StringUtils.ifNull(from.getName(), from.getNickname()), StringUtils.ifNull(from.getTel(), from.getPhone()), "给您发送了一条新消息, 请查收", LocalDateTime.now());
151 151
             } else {
152 152
                 taChat.setIsRead(CommConstant.MESSAGE_READED);
153 153
             }

+ 1
- 1
src/main/java/com/huiju/estateagents/service/impl/TaRecommendCustomerServiceImpl.java 查看文件

@@ -290,7 +290,7 @@ public class TaRecommendCustomerServiceImpl extends ServiceImpl<TaRecommendCusto
290 290
         TaPerson saleMan = taPersonMapper.getSalesExecutive();
291 291
         if (null != saleMan && !StringUtils.isEmpty(saleMan.getMiniOpenid())) {
292 292
             // 发送消息
293
-            iMiniAppService.sendNewCustomerMessage(saleMan.getMiniOpenid(), CommConstant.MINIAPP_INDEX, taRecommendCustomer.getName(), taRecommendCustomer.getPhone(), "", taPerson.getName());
293
+            iMiniAppService.sendNewCustomerMessage(saleMan, CommConstant.MINIAPP_INDEX, taRecommendCustomer.getName(), taRecommendCustomer.getPhone(), "", taPerson.getName());
294 294
         }
295 295
 
296 296
         return ResponseBean.success(taRecommendCustomer);

+ 9
- 0
src/main/java/com/huiju/estateagents/service/impl/TaRoleServiceImpl.java 查看文件

@@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4 4
 import com.huiju.estateagents.entity.TaRole;
5 5
 import com.huiju.estateagents.mapper.TaRoleMapper;
6 6
 import com.huiju.estateagents.service.ITaRoleService;
7
+import org.springframework.beans.factory.annotation.Autowired;
7 8
 import org.springframework.stereotype.Service;
8 9
 
10
+import java.util.List;
11
+
9 12
 /**
10 13
  * <p>
11 14
  * 角色表 角色表,每个org的角色可以单独设置。但是都共有一个admin角色。这个角色在创建用户的时候创建好了 服务实现类
@@ -16,5 +19,11 @@ import org.springframework.stereotype.Service;
16 19
  */
17 20
 @Service
18 21
 public class TaRoleServiceImpl extends ServiceImpl<TaRoleMapper, TaRole> implements ITaRoleService {
22
+    @Autowired
23
+    TaRoleMapper taRoleMapper;
19 24
 
25
+    @Override
26
+    public List<TaRole> getRolesByUser(Integer userId) {
27
+        return taRoleMapper.getRolesByUser(userId);
28
+    }
20 29
 }

+ 10
- 1
src/main/resources/mapper/TaMiniappMapper.xml 查看文件

@@ -1,5 +1,14 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3
 <mapper namespace="com.huiju.estateagents.mapper.TaMiniappMapper">
4
-
4
+    <select id="getAllAvaliableMiniapps" resultType="com.huiju.estateagents.entity.TaMiniapp">
5
+        SELECT
6
+            s.*
7
+        FROM
8
+            ta_user t
9
+        INNER JOIN ta_miniapp s ON t.org_id = s.org_id
10
+        WHERE
11
+            t.`status` = 1
12
+        AND t.exp_date &gt;= now()
13
+    </select>
5 14
 </mapper>

+ 10
- 1
src/main/resources/mapper/TaMiniappTemplateMapper.xml 查看文件

@@ -1,5 +1,14 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3
 <mapper namespace="com.huiju.estateagents.mapper.TaMiniappTemplateMapper">
4
-
4
+    <select id="selectTplByType" resultType="com.huiju.estateagents.entity.TaMiniappTemplate">
5
+        SELECT
6
+            s.*
7
+        FROM
8
+            ta_miniapp t
9
+        INNER JOIN ta_miniapp_template s ON t.miniapp_id = s.miniapp_id
10
+        WHERE
11
+            t.miniapp_id = #{appid}
12
+        AND s.tpl_type = #{type}
13
+    </select>
5 14
 </mapper>

+ 9
- 1
src/main/resources/mapper/TaRoleMapper.xml 查看文件

@@ -1,5 +1,13 @@
1 1
 <?xml version="1.0" encoding="UTF-8"?>
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3
 <mapper namespace="com.huiju.estateagents.mapper.TaRoleMapper">
4
-
4
+    <select id="getRolesByUser" resultType="com.huiju.estateagents.entity.TaRole">
5
+        SELECT
6
+            t.*
7
+        FROM
8
+            ta_role t
9
+        INNER JOIN ta_user_role s ON t.role_id = s.role_id
10
+        WHERE
11
+            s.user_id = #{user}
12
+    </select>
5 13
 </mapper>