18792927508 2 лет назад
Родитель
Сommit
6662a05a6c

+ 3
- 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java Просмотреть файл

55
         IdentityAuthentication identityAuthentication=new IdentityAuthentication();
55
         IdentityAuthentication identityAuthentication=new IdentityAuthentication();
56
         identityAuthentication.setUserName(loginBody.getUsername());
56
         identityAuthentication.setUserName(loginBody.getUsername());
57
         String status = identityAuthenticationService.checkIsAuthentication(identityAuthentication);
57
         String status = identityAuthenticationService.checkIsAuthentication(identityAuthentication);
58
+
58
         ajax.put("certificationStatus", status);
59
         ajax.put("certificationStatus", status);
60
+        ajax.put("userId", SecurityUtils.getUserId());
61
+        ajax.put("userName", SecurityUtils.getUsername());
59
         return ajax;
62
         return ajax;
60
     }
63
     }
61
 
64
 

+ 25
- 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/CaseApplicationController.java Просмотреть файл

12
 import com.ruoyi.common.exception.ServiceException;
12
 import com.ruoyi.common.exception.ServiceException;
13
 import com.ruoyi.common.utils.WxAppletNotifyUtils;
13
 import com.ruoyi.common.utils.WxAppletNotifyUtils;
14
 import com.ruoyi.wisdomarbitrate.domain.*;
14
 import com.ruoyi.wisdomarbitrate.domain.*;
15
+import com.ruoyi.wisdomarbitrate.domain.vo.ReservedConferenceVO;
15
 import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO;
16
 import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO;
16
 import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount;
17
 import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount;
17
 import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
18
 import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
349
         List<SmsSendRecord> list = caseApplicationService.getSmsSendRecord(smsSendRecord);
350
         List<SmsSendRecord> list = caseApplicationService.getSmsSendRecord(smsSendRecord);
350
         return getDataTable(list);
351
         return getDataTable(list);
351
     }
352
     }
353
+    /**
354
+     * 获取userSign
355
+     * @param userId
356
+     * @return
357
+     */
358
+    @Anonymous
359
+    @GetMapping("/generateUserSign")
360
+    public AjaxResult generateUserSign(@RequestParam(required = true) String userId){
361
+        if(StrUtil.isEmpty(userId)){
362
+            error("参数校验失败");
363
+        }
364
+        return AjaxResult.success(caseApplicationService.generateUserSign(userId));
365
+    }
366
+    /**
367
+     * 预约会议
368
+     * @param reservedConferenceVO
369
+     * @return
370
+     */
371
+    @Anonymous
372
+    @PostMapping("/reservedConference")
373
+    public AjaxResult reservedConference(@Validated @RequestBody ReservedConferenceVO reservedConferenceVO) throws Exception {
374
+
375
+        return caseApplicationService.reservedConference(reservedConferenceVO);
376
+    }
352
 
377
 
353
 }
378
 }

+ 7
- 1
ruoyi-admin/src/main/resources/application.yml Просмотреть файл

172
   credentialSecretId: AKID3xfHgroY4MQHvLXUXMwIQL1UjmbBX1Tv
172
   credentialSecretId: AKID3xfHgroY4MQHvLXUXMwIQL1UjmbBX1Tv
173
   credentialSecretKey: INDrIXcT8YmomZBcsy0oNirnU0LTN4X7
173
   credentialSecretKey: INDrIXcT8YmomZBcsy0oNirnU0LTN4X7
174
   merchantId: 0NSJ2309281116194321
174
   merchantId: 0NSJ2309281116194321
175
-  privateKeyHexDecodeinfo: 4c3b311bf7b98969994e85928e069574a1e95777f24d1c510679cc3c2f460faf
175
+  privateKeyHexDecodeinfo: 4c3b311bf7b98969994e85928e069574a1e95777f24d1c510679cc3c2f460faf
176
+# 腾讯云即时通信相关配置
177
+imConfig:
178
+  # sdkAppId
179
+  sdkAppId: 1600011167
180
+  # 密钥
181
+  secretKey: 17d136d9327576a247f991bdfed3a6d14cebc7d540a52245086829c3a1421a86

+ 5
- 0
ruoyi-system/pom.xml Просмотреть файл

27
             <artifactId>pay</artifactId>
27
             <artifactId>pay</artifactId>
28
             <version>1.0.0-SNAPSHOT</version>
28
             <version>1.0.0-SNAPSHOT</version>
29
         </dependency>
29
         </dependency>
30
+        <dependency>
31
+            <groupId>com.github.tencentyun</groupId>
32
+            <artifactId>tls-sig-api-v2</artifactId>
33
+            <version>1.2</version>
34
+        </dependency>
30
     </dependencies>
35
     </dependencies>
31
 
36
 
32
 </project>
37
 </project>

+ 37
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/domain/vo/ReservedConferenceVO.java Просмотреть файл

1
+package com.ruoyi.wisdomarbitrate.domain.vo;
2
+
3
+import lombok.Data;
4
+
5
+import javax.validation.constraints.NotEmpty;
6
+import javax.validation.constraints.NotNull;
7
+
8
+/**
9
+ * @author wangqiong
10
+ * @description 预约会议
11
+ * @date 2023-11-08 11:05
12
+ */
13
+@Data
14
+public class ReservedConferenceVO {
15
+    /**
16
+     * 房主id
17
+     */
18
+    @NotEmpty(message = "房主id不能为空")
19
+    private String ownerId;
20
+    /**
21
+     * 房间号id
22
+     */
23
+    @NotEmpty(message = "房主id不能为空")
24
+    private String roomId;
25
+    /**
26
+     * 会议开始时间
27
+     */
28
+    @NotNull(message = "会议开始时间不能为空")
29
+    private Integer scheduleStartTime;
30
+    /**
31
+     * 会议结束时间
32
+     */
33
+    @NotNull(message = "会议结束时间不能为空")
34
+    private Integer scheduleEndTime;
35
+    @NotNull(message = "案件id不能为空")
36
+    private Long caseId;
37
+}

+ 16
- 0
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/ICaseApplicationService.java Просмотреть файл

3
 import com.ruoyi.common.core.domain.AjaxResult;
3
 import com.ruoyi.common.core.domain.AjaxResult;
4
 import com.ruoyi.common.exception.EsignDemoException;
4
 import com.ruoyi.common.exception.EsignDemoException;
5
 import com.ruoyi.wisdomarbitrate.domain.*;
5
 import com.ruoyi.wisdomarbitrate.domain.*;
6
+import com.ruoyi.wisdomarbitrate.domain.vo.ReservedConferenceVO;
6
 import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO;
7
 import com.ruoyi.wisdomarbitrate.domain.vo.SendRoomNoMessageVO;
7
 import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount;
8
 import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount;
8
 import org.springframework.web.multipart.MultipartFile;
9
 import org.springframework.web.multipart.MultipartFile;
78
      * @return
79
      * @return
79
      */
80
      */
80
     List<SmsSendRecord> getSmsSendRecord(SmsSendRecord smsSendRecord);
81
     List<SmsSendRecord> getSmsSendRecord(SmsSendRecord smsSendRecord);
82
+
83
+    /**
84
+     * 获取userSign
85
+     * @param userId
86
+     * @return
87
+     */
88
+    String generateUserSign(String userId);
89
+
90
+    /**
91
+     * 预约会议
92
+     * @param reservedConferenceVO
93
+     * @return
94
+     * @throws Exception
95
+     */
96
+     AjaxResult reservedConference(ReservedConferenceVO reservedConferenceVO) throws Exception;
81
 }
97
 }

+ 82
- 72
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/CaseApplicationServiceImpl.java Просмотреть файл

3
 
3
 
4
 import cn.hutool.core.collection.CollectionUtil;
4
 import cn.hutool.core.collection.CollectionUtil;
5
 import cn.hutool.core.util.StrUtil;
5
 import cn.hutool.core.util.StrUtil;
6
-
7
-
8
 import com.alibaba.fastjson.JSONArray;
6
 import com.alibaba.fastjson.JSONArray;
9
 import com.alibaba.fastjson.JSONObject;
7
 import com.alibaba.fastjson.JSONObject;
10
 import com.google.gson.Gson;
8
 import com.google.gson.Gson;
12
 import com.google.gson.JsonObject;
10
 import com.google.gson.JsonObject;
13
 import com.ruoyi.common.annotation.DataScope;
11
 import com.ruoyi.common.annotation.DataScope;
14
 import com.ruoyi.common.constant.CaseApplicationConstants;
12
 import com.ruoyi.common.constant.CaseApplicationConstants;
15
-import com.ruoyi.common.constant.Constants;
16
 import com.ruoyi.common.core.domain.AjaxResult;
13
 import com.ruoyi.common.core.domain.AjaxResult;
17
 import com.ruoyi.common.core.domain.entity.*;
14
 import com.ruoyi.common.core.domain.entity.*;
18
-
19
 import com.ruoyi.common.core.domain.model.LoginUser;
15
 import com.ruoyi.common.core.domain.model.LoginUser;
20
 import com.ruoyi.common.exception.EsignDemoException;
16
 import com.ruoyi.common.exception.EsignDemoException;
21
 import com.ruoyi.common.exception.ServiceException;
17
 import com.ruoyi.common.exception.ServiceException;
26
 import com.ruoyi.system.mapper.SysRoleMapper;
22
 import com.ruoyi.system.mapper.SysRoleMapper;
27
 import com.ruoyi.system.mapper.SysUserMapper;
23
 import com.ruoyi.system.mapper.SysUserMapper;
28
 import com.ruoyi.system.mapper.SysUserRoleMapper;
24
 import com.ruoyi.system.mapper.SysUserRoleMapper;
25
+import com.ruoyi.wisdomarbitrate.domain.vo.ReservedConferenceVO;
29
 import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount;
26
 import com.ruoyi.wisdomarbitrate.domain.vo.ToDoCount;
30
 import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
27
 import com.ruoyi.wisdomarbitrate.utils.CaseLogUtils;
31
 import com.ruoyi.system.mapper.SysDeptMapper;
28
 import com.ruoyi.system.mapper.SysDeptMapper;
35
 import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
32
 import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
36
 import com.ruoyi.wisdomarbitrate.utils.SignAward;
33
 import com.ruoyi.wisdomarbitrate.utils.SignAward;
37
 import com.ruoyi.wisdomarbitrate.utils.UnZipFileUtils;
34
 import com.ruoyi.wisdomarbitrate.utils.UnZipFileUtils;
35
+import com.tencentyun.TLSSigAPIv2;
36
+import org.apache.http.HttpEntity;
37
+import org.apache.http.client.methods.CloseableHttpResponse;
38
+import org.apache.http.client.methods.HttpPost;
39
+import org.apache.http.entity.StringEntity;
40
+import org.apache.http.impl.client.CloseableHttpClient;
41
+import org.apache.http.impl.client.HttpClients;
42
+import org.apache.http.util.EntityUtils;
38
 import org.springframework.beans.factory.annotation.Autowired;
43
 import org.springframework.beans.factory.annotation.Autowired;
44
+import org.springframework.beans.factory.annotation.Value;
39
 import org.springframework.stereotype.Service;
45
 import org.springframework.stereotype.Service;
40
 import org.springframework.transaction.annotation.Transactional;
46
 import org.springframework.transaction.annotation.Transactional;
41
-import org.springframework.web.bind.annotation.RequestParam;
42
 import org.springframework.web.multipart.MultipartFile;
47
 import org.springframework.web.multipart.MultipartFile;
43
-
44
 import java.io.*;
48
 import java.io.*;
45
 import java.math.BigDecimal;
49
 import java.math.BigDecimal;
46
 import java.math.RoundingMode;
50
 import java.math.RoundingMode;
51
 import java.time.LocalDate;
55
 import java.time.LocalDate;
52
 import java.time.ZoneId;
56
 import java.time.ZoneId;
53
 import java.util.*;
57
 import java.util.*;
58
+import java.util.concurrent.ThreadLocalRandom;
54
 import java.util.regex.Pattern;
59
 import java.util.regex.Pattern;
55
 import java.util.stream.Collectors;
60
 import java.util.stream.Collectors;
56
 
61
 
61
 
66
 
62
 @Service
67
 @Service
63
 public class CaseApplicationServiceImpl implements ICaseApplicationService {
68
 public class CaseApplicationServiceImpl implements ICaseApplicationService {
69
+    // 腾讯云即时通信sdkAppId
70
+    @Value("${imConfig.sdkAppId}")
71
+    private long sdkAppId;
72
+    // 腾讯云即时通信密钥
73
+    @Value("${imConfig.secretKey}")
74
+    private String secretKey;
64
     @Autowired
75
     @Autowired
65
     private CaseApplicationMapper caseApplicationMapper;
76
     private CaseApplicationMapper caseApplicationMapper;
66
 
77
 
2436
     }
2447
     }
2437
 
2448
 
2438
 
2449
 
2439
-//    @Transactional
2440
-//    public void fixExecuteSelectFlowDetailUtils() throws EsignDemoException {
2441
-//
2442
-//        Gson gson = new Gson();
2443
-//
2444
-//        SealSignRecord sealSignRecordselect = new SealSignRecord();
2445
-//        sealSignRecordselect.setSignFlowStatus(1);
2446
-//
2447
-//        List<SealSignRecord> sealSignRecords = sealSignRecordMapper.selectSealSignRecord(sealSignRecordselect);
2448
-//        if(sealSignRecords!=null&&sealSignRecords.size()>0){
2449
-//            for (int i = 0; i < sealSignRecords.size(); i++) {
2450
-//                SealSignRecord sealSignRecord = sealSignRecords.get(i);
2451
-//                EsignHttpResponse signFlowDetail = SignAward.signFlowDetail(sealSignRecord);
2452
-//                JsonObject signFlowDetailJsonObject = gson.fromJson(signFlowDetail.getBody(),JsonObject.class);
2453
-//                JsonObject flowDetailData = signFlowDetailJsonObject.getAsJsonObject("data");
2454
-//                JsonArray signersArray = flowDetailData.get("signers").getAsJsonArray();
2455
-//                for (int j = 0; j < signersArray.size(); j++) {
2456
-//                    JsonObject signerObject = (JsonObject)signersArray.get(j);
2457
-//                    Integer psnsignStatus ;
2458
-//                    Integer orgsignStatus ;
2459
-//                    if(!(signerObject.get("psnSigner").toString()).equals("null")){
2460
-//                        JsonObject psnSignerData = signerObject.getAsJsonObject("psnSigner");
2461
-//                        if(psnSignerData!=null){
2462
-//                            psnsignStatus = signerObject.get("signStatus").getAsInt();
2463
-//                            sealSignRecord.setPsnsignStatus(psnsignStatus);
2464
-//
2465
-//                            if(psnsignStatus.intValue()==2){
2466
-//                                //更新立案申请状态为待用印
2467
-//                                CaseApplication caseApplication = new CaseApplication();
2468
-//                                caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATED_SEAL);
2469
-//                                caseApplicationMapper.submitCaseApplication(caseApplication);
2470
-//
2471
-//                                //修改"签署用印记录表"的状态为待用印
2472
-//                                sealSignRecord.setSignFlowStatus(2);
2473
-//                                sealSignRecordMapper.updataSealSignRecord(sealSignRecord);
2474
-//
2475
-//                            }
2476
-//                        }
2477
-//                    }
2478
-//                    if(!(signerObject.get("orgSigner").toString()).equals("null")){
2479
-//                        JsonObject orgSignerData = signerObject.getAsJsonObject("orgSigner");
2480
-//                        if(orgSignerData!=null){
2481
-//                            orgsignStatus = signerObject.get("signStatus").getAsInt();
2482
-//                            sealSignRecord.setOrgsignStatus(orgsignStatus);
2483
-//                            //更新立案申请状态为待送达
2484
-//                            CaseApplication caseApplication = new CaseApplication();
2485
-//                            caseApplication.setCaseStatus(CaseApplicationConstants.ARBITRATION_DELIVERY);
2486
-//                            caseApplicationMapper.submitCaseApplication(caseApplication);
2487
-//
2488
-//                            //修改"签署用印记录表"的状态为签署完成
2489
-//                            sealSignRecord.setSignFlowStatus(3);
2490
-//                            sealSignRecordMapper.updataSealSignRecord(sealSignRecord);
2491
-//
2492
-//                            //下载审核完成的裁决书,
2493
-////                    SaaSAPIFileUtils.fileDownloadUrl();
2494
-//
2495
-//                        }
2496
-//
2497
-//                    }
2498
-//
2499
-//                }
2500
-//
2501
-//            }
2502
-//
2503
-//        }
2450
+    /**
2451
+     * 获取userSign,默认过期时间10小时
2452
+     * @param userId
2453
+     * @return
2454
+     */
2455
+    public String generateUserSign(String userId){
2456
+        TLSSigAPIv2 tlsSigAPIv2 = new TLSSigAPIv2(sdkAppId, secretKey);
2457
+        return tlsSigAPIv2.genUserSig(userId, 60 * 60 * 10);
2458
+    }
2504
 
2459
 
2505
 
2460
 
2506
-//    }
2461
+    /**
2462
+     * 预约会议
2463
+     * @param reservedConferenceVO
2464
+     * @return
2465
+     * @throws Exception
2466
+     */
2467
+    @Transactional
2468
+    @Override
2469
+    public AjaxResult reservedConference(ReservedConferenceVO reservedConferenceVO) throws Exception {
2470
+        // 生成administrator的userSig
2471
+        String administrator = "administrator";
2472
+        String userSign = generateUserSign(administrator);
2473
+        if (StrUtil.isEmpty(userSign)) {
2474
+            return AjaxResult.error("生成userSign失败");
2475
+        }
2476
+        int random = ThreadLocalRandom.current().nextInt(0, 214748364);
2477
+        String url="https://roomkit.trtc.tencent-cloud.com/room_api/v1/roomctl/create?usersig=" + userSign + "&identifier=" + administrator + "&sdkappid=" + sdkAppId + "&random=" +random + "&contenttype=json";
2478
+        HttpPost post = new HttpPost(url);
2479
+        String result = "";
2480
+
2481
+
2482
+        //添加参数
2483
+        JSONObject bodyParams = new JSONObject();
2484
+        bodyParams.put("ownerId", reservedConferenceVO.getOwnerId());
2485
+        bodyParams.put("roomId", reservedConferenceVO.getRoomId());
2486
+        bodyParams.put("scheduleStartTime", reservedConferenceVO.getScheduleStartTime());
2487
+        bodyParams.put("scheduleEndTime", reservedConferenceVO.getScheduleEndTime());
2488
+        StringEntity postingString = new StringEntity(bodyParams.toString());
2489
+        post.setEntity(postingString);
2490
+        CloseableHttpClient client = HttpClients.createDefault();
2491
+        //启动执行请求,并获得返回值
2492
+        CloseableHttpResponse response = client.execute(post);
2493
+        //得到返回的entity对象
2494
+        HttpEntity entity = response.getEntity();
2495
+        //把实体对象转换为string
2496
+        result = EntityUtils.toString(entity, "UTF-8");
2497
+        if (StrUtil.isNotEmpty(result)) {
2498
+            JSONObject resJson = JSONObject.parseObject(result);
2499
+            if ((int) resJson.get("errorCode") == 0 ) {
2500
+                // 绑定房间号和案件id
2501
+                caseApplicationMapper.bindCaseId(reservedConferenceVO.getCaseId(),reservedConferenceVO.getRoomId());
2502
+                return AjaxResult.success("预约会议成功");
2503
+            } else if((int) resJson.get("errorCode") == 42003){
2504
+                return AjaxResult.error("请求频繁");
2505
+            }else if((int) resJson.get("errorCode") == 84005){
2506
+                return AjaxResult.error("房间号已被占用");
2507
+            }else {
2508
+                return AjaxResult.error("预约会议失败");
2509
+            }
2510
+
2511
+        }else {
2512
+            return AjaxResult.error("预约会议失败");
2513
+        }
2514
+    }
2507
 
2515
 
2508
 
2516
 
2509
 }
2517
 }
2518
+
2519
+

+ 0
- 18
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/WeChatUserServiceImpl.java Просмотреть файл

1
 package com.ruoyi.wisdomarbitrate.service.impl;
1
 package com.ruoyi.wisdomarbitrate.service.impl;
2
 
2
 
3
 import cn.hutool.core.util.StrUtil;
3
 import cn.hutool.core.util.StrUtil;
4
-import cn.hutool.http.HttpUtil;
5
-import cn.hutool.json.JSONUtil;
6
-import com.alibaba.fastjson2.JSONArray;
7
-import com.alibaba.fastjson2.JSONObject;
8
 import com.ruoyi.common.constant.CacheConstants;
4
 import com.ruoyi.common.constant.CacheConstants;
9
 import com.ruoyi.common.core.domain.AjaxResult;
5
 import com.ruoyi.common.core.domain.AjaxResult;
10
-import com.ruoyi.common.core.domain.entity.SysDictData;
11
 import com.ruoyi.common.core.domain.entity.SysUser;
6
 import com.ruoyi.common.core.domain.entity.SysUser;
12
-import com.ruoyi.common.core.domain.model.LoginUser;
13
 import com.ruoyi.common.core.redis.RedisCache;
7
 import com.ruoyi.common.core.redis.RedisCache;
14
 import com.ruoyi.common.utils.SecurityUtils;
8
 import com.ruoyi.common.utils.SecurityUtils;
15
 import com.ruoyi.common.utils.SmsUtils;
9
 import com.ruoyi.common.utils.SmsUtils;
16
 import com.ruoyi.common.utils.StringUtils;
10
 import com.ruoyi.common.utils.StringUtils;
17
-import com.ruoyi.common.utils.http.HttpUtils;
18
 import com.ruoyi.common.utils.spring.SpringUtils;
11
 import com.ruoyi.common.utils.spring.SpringUtils;
19
 import com.ruoyi.system.mapper.SysUserMapper;
12
 import com.ruoyi.system.mapper.SysUserMapper;
20
 import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
13
 import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
21
 import com.ruoyi.wisdomarbitrate.domain.vo.WeChatUserVO;
14
 import com.ruoyi.wisdomarbitrate.domain.vo.WeChatUserVO;
22
 import com.ruoyi.wisdomarbitrate.mapper.IdentityAuthenticationMapper;
15
 import com.ruoyi.wisdomarbitrate.mapper.IdentityAuthenticationMapper;
23
-import com.ruoyi.wisdomarbitrate.mapper.WeChatUserMapper;
24
 import com.ruoyi.wisdomarbitrate.service.WeChatUserService;
16
 import com.ruoyi.wisdomarbitrate.service.WeChatUserService;
25
 import lombok.extern.slf4j.Slf4j;
17
 import lombok.extern.slf4j.Slf4j;
26
 import org.springframework.beans.factory.annotation.Autowired;
18
 import org.springframework.beans.factory.annotation.Autowired;
27
 import org.springframework.stereotype.Service;
19
 import org.springframework.stereotype.Service;
28
 import org.springframework.transaction.annotation.Transactional;
20
 import org.springframework.transaction.annotation.Transactional;
29
-
30
-import java.util.HashMap;
31
-import java.util.List;
32
 import java.util.Random;
21
 import java.util.Random;
33
 import java.util.concurrent.TimeUnit;
22
 import java.util.concurrent.TimeUnit;
34
 
23
 
40
 @Service
29
 @Service
41
 @Slf4j
30
 @Slf4j
42
 public class WeChatUserServiceImpl implements WeChatUserService {
31
 public class WeChatUserServiceImpl implements WeChatUserService {
43
-    String appid="wx91cb8459dca561b4";//自行获取
44
-    //小程序secret
45
-    String secret="190aaa3bda96a65d25318fbb0e133fc6";//自己去公众号后台获取
46
-    // 获取openId
47
-    String openIdUrl = "https://api.weixin.qq.com/sns/jscode2session";
48
-    @Autowired
49
-    private WeChatUserMapper weChatUserMapper;
50
     @Autowired
32
     @Autowired
51
     private SysUserMapper sysUserMapper;
33
     private SysUserMapper sysUserMapper;
52
     @Autowired
34
     @Autowired