Bladeren bron

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper

zhouyy 4 maanden geleden
bovenliggende
commit
77871adf90
30 gewijzigde bestanden met toevoegingen van 32991 en 3094 verwijderingen
  1. 6 3
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/analysis/components/TrendCard.vue
  2. 7 0
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/analysis/index.vue
  3. 13 18
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/login.vue
  4. 6 1
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/tasks/index.vue
  5. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/customer.html
  6. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/customerNew.html
  7. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/followup.html
  8. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/index.html
  9. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/project.html
  10. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/workshop.html
  11. 32774 2983
      fhKeeper/formulahousekeeper/management-crm/crm.log
  12. 55 58
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/AuthRedirectController.java
  13. 79 1
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/WeiXinCorpController.java
  14. 3 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/WxCorpInfoService.java
  15. 25 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java
  16. 1 0
      fhKeeper/formulahousekeeper/management-crm/src/main/resources/application.yml
  17. 0 11
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/BeanChangeUtil.java
  18. 4 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml
  19. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/customer.html
  20. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/customerNew.html
  21. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/followup.html
  22. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/index.html
  23. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/project.html
  24. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/workshop.html
  25. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/customer.html
  26. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/customerNew.html
  27. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/followup.html
  28. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/index.html
  29. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/project.html
  30. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/workshop.html

+ 6 - 3
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/analysis/components/TrendCard.vue

@@ -8,10 +8,10 @@
         }}</span>
         {{ unit }}
       </div>
-      <div>
-        <span>较上月 </span>
+      <div v-if="selectVal?.date != 'ignore'">
+        <span>较{{ valArray[selectVal?.date] }} </span>
         <span
-          class="text-xs text-red-600 inline-flex items-center"
+          class="text-xs text-red-600 inline-flex items-center ml-2"
           v-if="compare"
         >
           <span>{{ compare.includes('-') ? compare.slice(1) : compare }}</span>
@@ -40,8 +40,11 @@ type Props = {
   compare?: string;
   title: string;
   number?: number;
+  selectVal?: any;
   unit: '个' | '人' | '元';
 };
 
 defineProps<Props>();
+
+const valArray = ['上月', '上周', '上年']
 </script>

+ 7 - 0
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/analysis/index.vue

@@ -232,42 +232,49 @@ watchEffect(() => {
           <TrendCard
             title="新增客户"
             unit="人"
+            :selectVal="bulletinPrompt"
             :number="requestData?.bulletin?.custom.customCount"
             :compare="requestData?.bulletin?.custom.customPromote"
           />
           <TrendCard
             title="新增联系人"
             unit="人"
+            :selectVal="bulletinPrompt"
             :number="requestData?.bulletin?.contacts.contactsCount"
             :compare="requestData?.bulletin?.contacts.contactsPromote"
           />
           <TrendCard
             title="新增商机"
             unit="个"
+            :selectVal="bulletinPrompt"
             :number="requestData?.bulletin?.businessOpportunity.businessOpportunityCount"
             :compare="requestData?.bulletin?.businessOpportunity.businessOpportunityPromote"
           />
           <TrendCard
             title="新增销售订单"
             unit="个"
+            :selectVal="bulletinPrompt"
             :number="requestData?.bulletin?.salesOrder.salesOrderCount"
             :compare="requestData?.bulletin?.salesOrder.salesOrderPromote"
           />
           <TrendCard
             title="销售订单金额"
             unit="元"
+            :selectVal="bulletinPrompt"
             :number="requestData?.bulletin?.salesOrdersPrice.salesOrdersPrice"
             :compare="requestData?.bulletin?.salesOrdersPrice.salesOrderPricePromote"
           />
           <TrendCard
             title="商机金额"
             unit="元"
+            :selectVal="bulletinPrompt"
             :number="requestData?.bulletin?.businessOpportunityPrice.businessOpportunityPrice"
             :compare="requestData?.bulletin?.businessOpportunityPrice.businessOpportunityPromote"
           />
           <TrendCard
             title="新增线索"
             unit="个"
+            :selectVal="bulletinPrompt"
             :number="requestData?.bulletin?.clue.clueCount"
             :compare="requestData?.bulletin?.clue.cluePromote"
           />

+ 13 - 18
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/login.vue

@@ -29,7 +29,7 @@
           <div class="service">
             <p style="color: #333">联系客服</p>
             <img src="../assets/code.jpg">
-            <p><span style="color: #333">QQ:</span><span id="QQ">3052894409</span></p>
+            <p><span style="color: #333">电话:</span><span id="QQ">15895914665</span></p>
           </div>
         </el-link>
         <div class="flex justify-around">
@@ -166,24 +166,19 @@ const checkLogin = () => { // 检查登录
     isCorpWX.value = true;
   }
 
-  if (isCorpWX.value) {
-    //企业微信环境下,尝试自动登录
-    //判断企业微信,是否存在授权
-    //尝试自动登录
-    if (href.indexOf('hasTriedAutoLogin') == -1) {
-      tryAutoLogin()
-    } else if (href.indexOf("userId") > 0) {
-      //后台经过验证后,重定向过来带上了userId
-      var loginUserId = href.substring(href.indexOf("userId=") + "userId=".length);
-      if (loginUserId.includes('#/')) {
-        loginUserId = loginUserId.substring(0, loginUserId.indexOf('#/'));
-      }
-      if (loginUserId.includes('&')) {
-        loginUserId = loginUserId.substring(0, loginUserId.indexOf('&'));
-      }
-      loginByUserId(loginUserId);
+  //直接使用userId进入系统,可能是后端授权成功后跳转过来的,也能方便开发人员调试
+  if (href.indexOf("userId") > 0) {
+    isCorpWX.value = true;
+    //后台经过验证后,重定向过来带上了userId
+    var loginUserId = href.substring(href.indexOf("userId=") + "userId=".length);
+    if (loginUserId.includes('#/')) {
+      loginUserId = loginUserId.substring(0, loginUserId.indexOf('#/'));
     }
-  }
+    if (loginUserId.includes('&')) {
+      loginUserId = loginUserId.substring(0, loginUserId.indexOf('&'));
+    }
+    loginByUserId(loginUserId);
+  } 
 }
 
 const loginByUserId = (userId: any) => {

+ 6 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/tasks/index.vue

@@ -88,7 +88,11 @@
             <el-table-column prop="startDate" label="开始时间" width="200" :sortable="true" header-align="center"
               align="center" value-format="YYYY-MM-DD" />
             <el-table-column prop="endDate" label="截止时间" width="200" :sortable="true" header-align="center"
-              align="center" value-format="YYYY-MM-DD" />
+              align="center" value-format="YYYY-MM-DD">
+              <template #default="scope">
+                <div :class="`${scope.row.endDate && scope.row.endDate < dateOfTheDay ? 'text-[#F56C6C]' : '' }`">{{ scope.row.endDate }}</div>
+              </template>
+            </el-table-column>
             <el-table-column prop="customName" label="客户名称" header-align="center" align="center" width="120">
               <template #default="scope">
                 <el-link :underline="false" type="primary" @click="goDetail(scope.row, 'customer', 'customId')">
@@ -215,6 +219,7 @@ const len = computed(() => {
 const taskLoading = ref<saveLoadingType>("1");
 const restartPopUpWindowVisable = ref(false);
 const restartFrom = ref<any>({});
+const dateOfTheDay = ref<any>(dayjs().format('YYYY-MM-DD'))
 
 function closeTaskModal() {
   taskModalVisible.value = false;

+ 1 - 1
fhKeeper/formulahousekeeper/inva_4_tivo/customer.html

@@ -46,7 +46,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/inva_4_tivo/customerNew.html

@@ -35,7 +35,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
       <p>微信扫码咨询</p>
       <img src="./image/codecopy.jpg" alt="">
-      <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+      <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/inva_4_tivo/followup.html

@@ -30,7 +30,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/inva_4_tivo/index.html

@@ -47,7 +47,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
 
     <!-- 咨询的图标 -->

+ 1 - 1
fhKeeper/formulahousekeeper/inva_4_tivo/project.html

@@ -40,7 +40,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/inva_4_tivo/workshop.html

@@ -42,7 +42,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
       <p>微信扫码咨询</p>
       <img src="./image/codecopy.jpg" alt="" />
-      <p><span style="color: #595959">客服QQ:</span>3052894409</p>
+      <p><span style="color: #595959">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

File diff suppressed because it is too large
+ 32774 - 2983
fhKeeper/formulahousekeeper/management-crm/crm.log


+ 55 - 58
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/AuthRedirectController.java

@@ -34,6 +34,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static com.management.platform.controller.WeiXinCorpController.GET_CORP_USERINFO_URL;
+
 @Controller
 public class AuthRedirectController {
     @Resource
@@ -74,7 +76,7 @@ public class AuthRedirectController {
         //获取设备类型
         String deviceType = UserAgentUtils.getDeviceType(userAgent);
         boolean isMobile = "MOBILE".equals(deviceType);
-        String url = WeiXinCorpController.GET_CORP_USERINFO_URL.replace("SUITE_ACCESS_TOKEN", getSuiteAccessToken()).replace("CODE", code);
+        String url = GET_CORP_USERINFO_URL.replace("SUITE_ACCESS_TOKEN", getSuiteAccessToken()).replace("CODE", code);
         String forObject = this.restTemplate.getForObject(url, String.class);
         JSONObject obj = JSONObject.parseObject(forObject);
         System.out.println(obj.toString());
@@ -166,42 +168,32 @@ public class AuthRedirectController {
         return modelAndView;
     }
 
-
     @RequestMapping("/corpWXScanningAuth")
-    public ModelAndView scanningAuth(String auth_code, String state)throws Exception {
+    public ModelAndView corpWXScanningAuth(String code, String state)throws Exception {
         Map<String,Object> reqParam = new HashMap<String,Object>(16);
         String userAgent = request.getHeader("User-Agent");
         //获取设备类型
         String deviceType = UserAgentUtils.getDeviceType(userAgent);
         boolean isMobile = "MOBILE".equals(deviceType);
-        String url = WeiXinCorpController.GET_CORP_SCANNING_CODE_LOGININFO_URL.replace("PROVIDER_ACCESS_TOKEN",wxCorpInfoService.getProviderAccessToken());
-        HttpHeaders headers = new HttpHeaders();
-        RestTemplate restTemplate = new RestTemplate();
-        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
-        headers.setContentType(type);
-        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
-        JSONObject ob = new JSONObject();
-        ob.put("auth_code", auth_code);
-        HttpEntity<JSONObject> Entity = new HttpEntity<>(ob, headers);
-        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, Entity, String.class);
+        String url = null;
         String redirecUrl = null;
-        if (responseEntity.getStatusCode() == HttpStatus.OK) {
-            String resp = responseEntity.getBody();
-            System.err.println(resp);
-            JSONObject obj = JSONObject.parseObject(resp);
-            if (obj.getIntValue("errcode") == 0) {
-                JSONObject userInfo = obj.getJSONObject("user_info");
-                System.out.println(obj.toString());
-                String wxUserId = userInfo.getString("userid");
-                String openUserId = userInfo.getString("open_userid");
-                JSONObject corpInfo = obj.getJSONObject("corp_info");
-                String corpId = corpInfo.getString("corpid");
-                System.out.println("登录 wxUserId="+wxUserId+", openUserId="+openUserId);
-                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("corpwx_userid", openUserId));
-                Integer companyId = 0;
+        try {
+            String suiteAccessToken = getLoginSuiteAccessToken();
+            System.out.println("loginSuiteAccessToken=="+suiteAccessToken);
+            url = GET_CORP_USERINFO_URL.replace("SUITE_ACCESS_TOKEN", suiteAccessToken).replace("CODE", code);
+            String forObject = this.restTemplate.getForObject(url, String.class);
+            JSONObject obj = JSONObject.parseObject(forObject);
+            System.out.println("获取授权的用户身份信息:"+obj.toString());
+            String openId = obj.getString("open_userid");
+            String corpId = obj.getString("CorpId");
+            WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectById(corpId);
+            if (wxCorpInfo != null) {
+                User curUser = null;
+                Integer companyId = wxCorpInfo.getCompanyId();
+                List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("corpwx_userid", openId).eq("company_id", companyId));
                 if (userList.size() > 0) {
                     //该用户已存在
-                    User curUser = userList.get(0);
+                    curUser = userList.get(0);
                     System.out.println("找到用户corpwxUserid=="+curUser.getCorpwxUserid());
                     companyId = curUser.getCompanyId();
                     if (curUser.getIsActive() == 1) {
@@ -212,34 +204,8 @@ public class AuthRedirectController {
                         reqParam.put("errorMsg", MessageUtils.message("user.inactive"));
                     }
                 } else {
-                    //使用UserId比对,之前有的老用户存的是UserId
-                    WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectById(corpId);
-                    if (wxCorpInfo == null) {
-                        reqParam.put("errorMsg", MessageUtils.message("user.accountNoExist"));
-                    } else {
-                        User curUser = userMapper.selectOne(new QueryWrapper<User>().eq("company_id", wxCorpInfo.getCompanyId()).eq("corpwx_userid", wxUserId));
-                        if (curUser == null) {
-//                    reqParam.put("errorMsg", MessageUtils.message("user.accountNoExist"));
-                            //用户不存在,去生成该用户
-                            if (wxCorpInfo.getSaasSyncContact() == 1) {
-                                curUser = wxCorpInfoService.generateUserInfo(wxCorpInfo.getCompanyId(), openUserId);
-                            }
-                        }
-                        if (curUser != null) {
-                            if (curUser.getIsActive() == 1) {
-                                companyId = curUser.getCompanyId();
-                                reqParam.put("userId", curUser.getId());
-                            } else {
-                                //提示账号已停用
-                                //reqParam.put("errorMsg", "您的账号已停用,无法登录");
-                                reqParam.put("errorMsg", MessageUtils.message("user.inactive"));
-                            }
-                        } else {
-                            System.err.println("==生成企业微信User失败==");
-                            reqParam.put("errorMsg", "尚未绑定企业微信,请使用账号密码登录。");
-                        }
-
-                    }
+                    curUser = wxCorpInfoService.generateUserInfo(wxCorpInfo.getCompanyId(), openId);
+                    reqParam.put("userId", curUser.getId());
                 }
                 if (!StringUtils.isEmpty(state) && state.length() > 1) {
                     reqParam.put("path", state);
@@ -255,11 +221,16 @@ public class AuthRedirectController {
                     }
                 }
                 redirecUrl = "https://crm.ttkuaiban.com/#/" + router;
+            } else {
+                reqParam.put("errorMsg", "该企业尚未授权开通应用,请联系管理员。");
+                redirecUrl = "https://crm.ttkuaiban.com/#/login";
             }
+        } catch (Exception exception) {
+            exception.printStackTrace();
+            reqParam.put("errorMsg",exception.getMessage());
         }
         ModelAndView modelAndView = new ModelAndView(
                 new RedirectView(redirecUrl), reqParam);
-
         return modelAndView;
     }
 
@@ -435,7 +406,7 @@ public class AuthRedirectController {
                 String resp = responseEntity.getBody();
                 System.out.println("获取企业微信suitAccessToken返回"+resp);
                 JSONObject obj = JSONObject.parseObject(resp);
-                if (obj.getIntValue("errcode") == 0) {
+                if (obj.getIntValue("errcode") == 0 || obj.getString("suite_access_token") != null) {
                     WeiXinCorpController.SUITE_ACCESS_TOKEN = obj.getString("suite_access_token");
                     WeiXinCorpController.suiteTokenExpireTime = System.currentTimeMillis() + obj.getIntValue("expires_in")*1000;
                 }
@@ -444,6 +415,32 @@ public class AuthRedirectController {
         return WeiXinCorpController.SUITE_ACCESS_TOKEN;
     }
 
+    private String getLoginSuiteAccessToken() {
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        JSONObject reqParam = new JSONObject();
+        reqParam.put("suite_id",  "ww19f9868980b9bb43");
+        reqParam.put("suite_secret", "OeOqoMPGJH2X3k5j_wltO54q9mnXqKoJx6GkCLmOXdQ");
+        SysConfig param = sysConfigMapper.selectOne(new QueryWrapper<SysConfig>().eq("param_key", "login_wx_suite_ticket"));
+        if (param != null) {
+            reqParam.put("suite_ticket",param.getParamValue());
+        }
+
+        HttpEntity<String> requestEntity = new HttpEntity<String>(reqParam.toJSONString(), headers);
+        ResponseEntity<String> responseEntity = this.restTemplate.exchange(WeiXinCorpController.GET_SUITE_ACCESS_TOKEN_URL,
+                HttpMethod.POST, requestEntity, String.class);
+        if (responseEntity.getStatusCode() == HttpStatus.OK) {
+            String resp = responseEntity.getBody();
+            System.out.println("获取企业微信suitAccessToken返回"+resp);
+            JSONObject obj = JSONObject.parseObject(resp);
+            if (obj.getIntValue("errcode") == 0 || obj.getString("suite_access_token") != null) {
+                return obj.getString("suite_access_token");
+//                WeiXinCorpController.suiteTokenExpireTime = System.currentTimeMillis() + obj.getIntValue("expires_in")*1000;
+            }
+        }
+        return null;
+    }
+
 
     //获取企业通讯录的accessToken,在私有化部署的企业内部服务器上跑
     private String getCorpConcactAccessToken(WxCorpInfo corpInfo) throws Exception {

File diff suppressed because it is too large
+ 79 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/WeiXinCorpController.java


+ 3 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/WxCorpInfoService.java

@@ -45,6 +45,9 @@ public interface WxCorpInfoService extends IService<WxCorpInfo> {
 
     public String getProviderAccessToken() throws Exception;
 
+    //新版登录授权
+    public String getNewProviderAccessToken() throws Exception;
+
     public String getTranslationMediaId(String fileName) throws Exception;
 
     public String syncTranslation(String authCorpid,String mediaId,String outPutFileName,String outputFileFormat) throws Exception;

+ 25 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java

@@ -175,6 +175,31 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
         return access_token;
     }
 
+    //获取服务商provider_access_token
+    @Override
+    public String getNewProviderAccessToken() throws Exception {
+        String access_token="";
+        String url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_provider_token";
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_JSON);
+        JSONObject jsonObject=new JSONObject();
+        //新版登录授权参数
+        jsonObject.put("corpid","ww19f9868980b9bb43");
+        jsonObject.put("provider_secret","OeOqoMPGJH2X3k5j_wltO54q9mnXqKoJx6GkCLmOXdQ");
+        HttpEntity<String> requestEntity = new HttpEntity<String>(jsonObject.toJSONString(), headers);
+        ResponseEntity<String> responseEntity = this.restTemplate.exchange(url,
+                HttpMethod.POST, requestEntity, String.class);
+        if (responseEntity.getStatusCode() == HttpStatus.OK) {
+            String resp = responseEntity.getBody();
+            JSONObject json = JSONObject.parseObject(resp);
+            if(json.getIntValue("errcode")>0){
+                throw new Exception(json.toJSONString());
+            }
+            access_token= json.getString("provider_access_token");
+        }
+        return access_token;
+    }
+
     //获取上传转移文件 获得的media_ia
     @Override
     public String getTranslationMediaId(String fileName) throws Exception {

+ 1 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/resources/application.yml

@@ -148,6 +148,7 @@ excludeUrls: /wxcorp/*,/wxcorp/*/*,/dingding/*,/feishu-info/*,/error,/testClient
 #企业微信相关参数
 suitId: wwdd1137a65ce0fc87
 suitSecret: whAD0XKOmaJW4SwrIpu6BBwKAJbqOriHfPIKrvJ02Ic
+loginSuitId: ww19f9868980b9bb43
 #平台作为服务商的参数
 corpId: wwf11426cf618e1703
 token: aXLyq2JL1nRFFLhblHL2RX23SN46z4Q5

+ 0 - 11
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/BeanChangeUtil.java

@@ -16,17 +16,6 @@ public class BeanChangeUtil<T> {
     private OperationRecordService operationRecordService;
 
     public String contrastObj(Object oldBean, Object newBean) {
-        /*// 创建字符串拼接对象
-        StringBuilder str = new StringBuilder();
-        // 转换为传入的泛型T
-        T pojo1 = (T) oldBean;
-        T pojo2 = (T) newBean;
-        // 通过反射获取类的Class对象
-        Class clazz = pojo1.getClass();
-        // 获取类型及字段属性
-        Field[] fields = clazz.getDeclaredFields();
-        return jdk8Before(fields, pojo1, pojo2, str,clazz);*/
-//        return jdk8OrAfter(fields, pojo1, pojo2, str,clazz);
         Field[] fields = newBean.getClass().getDeclaredFields();
         StringBuilder builder = new StringBuilder();
         for(Field field : fields) {

+ 4 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml

@@ -15,9 +15,12 @@ spring:
       location: C:/upload/
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://47.101.180.183:17089/man_dev?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
+    url: jdbc:mysql://47.101.180.183:17089/man_hour_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
     username: root
     password: P011430@Huoshi*
+#    url: jdbc:mysql://47.100.37.243:7644/man_hour_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
+#    username: root
+#    password: Ziyu20141026!@@
     hikari:
       maximum-pool-size: 60
       minimum-idle: 10

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/customer.html

@@ -46,7 +46,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/customerNew.html

@@ -35,7 +35,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
       <p>微信扫码咨询</p>
       <img src="./image/codecopy.jpg" alt="">
-      <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+      <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/followup.html

@@ -30,7 +30,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/index.html

@@ -47,7 +47,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
 
     <!-- 咨询的图标 -->

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/project.html

@@ -40,7 +40,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/workshop.html

@@ -42,7 +42,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
       <p>微信扫码咨询</p>
       <img src="./image/codecopy.jpg" alt="" />
-      <p><span style="color: #595959">客服QQ:</span>3052894409</p>
+      <p><span style="color: #595959">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/customer.html

@@ -46,7 +46,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/customerNew.html

@@ -35,7 +35,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
       <p>微信扫码咨询</p>
       <img src="./image/codecopy.jpg" alt="">
-      <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+      <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/followup.html

@@ -30,7 +30,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/index.html

@@ -47,7 +47,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
 
     <!-- 咨询的图标 -->

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/project.html

@@ -40,7 +40,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
         <p>微信扫码咨询</p>
         <img src="./image/codecopy.jpg" alt="">
-        <p><span style="color: #595959;">客服QQ:</span>3052894409</p>
+        <p><span style="color: #595959;">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">

+ 1 - 1
fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/workshop.html

@@ -42,7 +42,7 @@
     <div class="zhixun" id="zhixun" style="display: none">
       <p>微信扫码咨询</p>
       <img src="./image/codecopy.jpg" alt="" />
-      <p><span style="color: #595959">客服QQ:</span>3052894409</p>
+      <p><span style="color: #595959">联系电话:</span>15895914665</p>
     </div>
     <!-- 咨询的图标 -->
     <div class="consulting" id="consulting">