QuYueTing 4 月之前
父节点
当前提交
41dab45946
共有 26 个文件被更改,包括 32996 次插入3072 次删除
  1. 25 2
      fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/login.vue
  2. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/customer.html
  3. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/customerNew.html
  4. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/followup.html
  5. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/index.html
  6. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/project.html
  7. 1 1
      fhKeeper/formulahousekeeper/inva_4_tivo/workshop.html
  8. 32774 2983
      fhKeeper/formulahousekeeper/management-crm/crm.log
  9. 68 57
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/AuthRedirectController.java
  10. 79 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/WeiXinCorpController.java
  11. 3 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/WxCorpInfoService.java
  12. 25 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java
  13. 0 11
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/util/BeanChangeUtil.java
  14. 4 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml
  15. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/customer.html
  16. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/customerNew.html
  17. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/followup.html
  18. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/index.html
  19. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/project.html
  20. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/static/workshop.html
  21. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/customer.html
  22. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/customerNew.html
  23. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/followup.html
  24. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/index.html
  25. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/project.html
  26. 1 1
      fhKeeper/formulahousekeeper/webttkuaiban/src/main/resources/templates/workshop.html

+ 25 - 2
fhKeeper/formulahousekeeper/customerBuler-crm/src/pages/login.vue

@@ -19,10 +19,10 @@
             @click="login(ruleFormRef)">登录</el-button>
         </div>
       </el-form>
-      <el-divider content-position="center">或</el-divider>
+      <!-- <el-divider content-position="center">或</el-divider>
       <div class="m-auto mb-5" @click="wxworkCli()">
         <img class="w-9 m-auto p-1 rounded-full border-blue-300 border-2 cursor-pointer" :src="qiyeweixin" alt="">
-      </div>
+      </div> -->
       <div class="flex justify-between pb-5">
         <!-- <el-link type="primary" :underline="false">联系客服</el-link> -->
         <el-link type="primary" class="btn" style="float:left;" :underline="false">联系客服
@@ -209,6 +209,29 @@ const wxworkCli = () => {
     // var weixinUrl=`https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect?appid=${appId}&redirect_uri=${url}&state=0&usertype=member`;
     var weixinUrl=`https://login.work.weixin.qq.com/wwlogin/sso/login?login_type=ServiceApp&appid=${appId}&redirect_uri=${url}&state=0`;
     window.location.href = weixinUrl;
+
+    //新版模式
+    // 初始化登录组件
+    // const wwLogin = ww.createWWLoginPanel({
+    //   el: '#ww_login',
+    //   params: {
+    //     login_type: 'CorpApp',
+    //     appid: 'wwbbb6a7b539f2xxxxx',
+    //     agentid: '10000xx',
+    //     redirect_uri: 'https://work.weixin.qq.com',
+    //     state: 'loginState',
+    //     redirect_type: 'callback',
+    //   },
+    //   onCheckWeComLogin({ isWeComLogin }) {
+    //     console.log(isWeComLogin)
+    //   },
+    //   onLoginSuccess({ code }) {
+    //     console.log({ code })
+    //   },
+    //   onLoginFail(err) {
+    //     console.log(err)
+    //   },
+    // })
 }
 
 onMounted(() => {

+ 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">

文件差异内容过多而无法显示
+ 32774 - 2983
fhKeeper/formulahousekeeper/management-crm/crm.log


+ 68 - 57
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,47 @@ public class AuthRedirectController {
         return modelAndView;
     }
 
+    @RequestMapping("/testGetProviderToken")
+    public HttpRespMsg testGetProviderToken() {
+        try {
+            String providerAccessToken = wxCorpInfoService.getNewProviderAccessToken();
+            System.out.println("providerAccessToken=="+providerAccessToken);
+            HttpRespMsg msg = new HttpRespMsg();
+            msg.setData(providerAccessToken);
+            return msg;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return new HttpRespMsg();
+        }
+    }
+
 
     @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 = getNewSuiteAccessToken();
+            System.out.println("suiteAccessToken=="+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 +219,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 +236,15 @@ public class AuthRedirectController {
                     }
                 }
                 redirecUrl = "https://crm.ttkuaiban.com/#/" + router;
+            } else {
+                reqParam.put("errorMsg", MessageUtils.message("access.grant"));
             }
+        } catch (Exception exception) {
+            exception.printStackTrace();
+            reqParam.put("errorMsg",exception.getMessage());
         }
         ModelAndView modelAndView = new ModelAndView(
                 new RedirectView(redirecUrl), reqParam);
-
         return modelAndView;
     }
 
@@ -435,7 +420,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 +429,32 @@ public class AuthRedirectController {
         return WeiXinCorpController.SUITE_ACCESS_TOKEN;
     }
 
+    private String getNewSuiteAccessToken() {
+        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", "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 {

文件差异内容过多而无法显示
+ 79 - 0
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 {

+ 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">