浏览代码

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper into master

seyason 2 年之前
父节点
当前提交
a8237a3e02

+ 57 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -197,6 +197,63 @@ public class WeiXinCorpController {
     }
     }
 
 
 
 
+    //"获取企业微信jssdk初始化配置参数"
+    @RequestMapping("/getCorpWXAgentConfig")
+    public HttpRespMsg getCorpWXAgentConfig(String url, String token) {
+        HttpRespMsg msg = new HttpRespMsg();
+        try {
+            User user = userMapper.selectById(token);
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+
+            Item item = corpTicketMap.get(wxCorpInfo.getCorpid());
+            if (item == null || item.expireTime.isBefore(LocalDateTime.now())) {
+                //重新获取
+                String getTicketUrl = "https://qyapi.weixin.qq.com/cgi-bin/ticket/get?access_token=ACCESS_TOKEN&type=agent_config";
+                String corpToken = getCorpAccessToken(wxCorpInfo);
+                getTicketUrl = getTicketUrl.replace("ACCESS_TOKEN", corpToken);
+                String forObject = this.restTemplate.getForObject(getTicketUrl, String.class);
+                JSONObject json = JSONObject.parseObject(forObject);
+                log.info("返回:"+json.toJSONString());
+                if (json.getIntValue("errcode") == 0) {
+                    String ticket = json.getString("ticket");
+                    Item it = new Item();
+                    it.expireTime = LocalDateTime.now().plusSeconds(7200);
+                    it.jsTicket = ticket;
+                    corpTicketMap.put(wxCorpInfo.getCorpid(), it);
+                    item = it;
+                }
+            }
+            if (item == null) {
+                //msg.setError("jsapiTicket获取失败");
+                msg.setError(MessageUtils.message("wx.TicketError"));
+                return msg;
+            }
+            log.info("jsTicket = " + item.jsTicket);
+            // 随机数
+            String nonce_str = Sha1Util.getNonceStr();
+            String timestamp = Sha1Util.getTimeStamp();
+            // 对以下字段进行签名
+            SortedMap<String, String> packageParams = new TreeMap<String, String>();
+            SortedMap<String, String> packageParam = new TreeMap<String, String>();
+            packageParam.put("jsapi_ticket", item.jsTicket);
+            packageParam.put("noncestr", nonce_str);
+            packageParam.put("timestamp", ""+timestamp);
+            packageParam.put("url", url);
+            String sign = Sha1Util.createSHA1Sign(packageParam);
+            packageParams.put("corpid", wxCorpInfo.getCorpid());//这里使用企业微信corpId
+            packageParams.put("agentid",String.valueOf(wxCorpInfo.getAgentid()));
+            packageParams.put("timestamp",""+timestamp);
+            packageParams.put("nonceStr",nonce_str);
+            packageParams.put("signature", sign);
+            msg.data = packageParams;
+        } catch (Exception e) {
+            e.printStackTrace();
+            msg.setError(e.getMessage());
+        }
+        return msg;
+    }
+
+
     //获取企业AccessToken
     //获取企业AccessToken
     private String getCorpAccessToken(WxCorpInfo corpInfo) throws Exception {
     private String getCorpAccessToken(WxCorpInfo corpInfo) throws Exception {
         if (corpInfo.getExpireTime().isBefore(LocalDateTime.now())) {
         if (corpInfo.getExpireTime().isBefore(LocalDateTime.now())) {

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet_h5/src/views/edit/index.vue

@@ -106,7 +106,7 @@
                         <van-stepper v-model="pItem.progress" integer min="0" max="100" />%
                         <van-stepper v-model="pItem.progress" integer min="0" max="100" />%
                     </template>
                     </template>
                     </van-field>
                     </van-field>
-                    <van-field v-if="user.company.packageProject == 1"  readonly name="taskId" :value="item.taskName" label="关联任务" placeholder="请选择关联任务" @click="clickPickerTask(index,item)"
+                    <van-field v-if="user.company.packageProject == 1"  readonly name="taskId" :value="item.taskName" label="任务/里程碑" placeholder="请选择任务/里程碑" @click="clickPickerTask(index,item)"
                     ></van-field>
                     ></van-field>
                     <van-field name="taskFinish" label="是否已完成" v-if="item.taskId != null">
                     <van-field name="taskFinish" label="是否已完成" v-if="item.taskId != null">
                         <template #input>
                         <template #input>