浏览代码

完成个人微信公众号登录【自动登录】

seyason 2 年之前
父节点
当前提交
2525999d60
共有 14 个文件被更改,包括 243 次插入54 次删除
  1. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java
  2. 50 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WXController.java
  3. 5 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserService.java
  4. 3 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  5. 0 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  6. 153 31
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java
  7. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java
  8. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml
  9. 1 0
      fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/CommonUploadController.java
  10. 3 3
      fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue
  11. 1 1
      fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue
  12. 12 9
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue
  13. 10 3
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/login/index.vue
  14. 2 1
      fhKeeper/formulahousekeeper/timesheet_h5/src/views/my/children/center.vue

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ReportController.java

@@ -875,7 +875,7 @@ public class ReportController {
                     double sum = reportList.stream().filter(rl -> rl.getCreateDate().equals(report.getCreateDate()) && rl.getCreatorId().equals(report.getCreatorId())).mapToDouble(Report::getWorkingTime).sum();
                     BigDecimal bigDecimal=new BigDecimal(sum);
                     bigDecimal=bigDecimal.subtract(new BigDecimal(comTimeType.getAllday()));
-                    if(report.getOvertimeHours()>0&&report.getOvertimeHours()>bigDecimal.doubleValue()){
+                    if(report.getOvertimeHours() != null && report.getOvertimeHours()>0 && report.getOvertimeHours()>bigDecimal.doubleValue()){
                         httpRespMsg.setError("加班时长不得超过总工作时长-正常工作时长");
                         return httpRespMsg;
                     }

+ 50 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WXController.java

@@ -1,8 +1,11 @@
 package com.management.platform.controller;
 
+import com.alibaba.fastjson.JSONObject;
+import com.management.platform.entity.User;
 import com.management.platform.service.UserService;
 import com.management.platform.util.HttpRespMsg;
 import com.management.platform.util.MessageUtils;
+import com.management.platform.util.UserAgentUtils;
 import me.chanjar.weixin.mp.api.WxMpInMemoryConfigStorage;
 import me.chanjar.weixin.mp.api.WxMpService;
 import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
@@ -12,8 +15,13 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.view.RedirectView;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
 
 @RestController
 @RequestMapping("/wechat")
@@ -28,12 +36,53 @@ public class WXController {
 
     @Resource
     public UserService userService;
-
+    @Resource
+    HttpServletRequest request;
 
     @GetMapping("/bindWeiXin")
     public HttpRespMsg bindWeiXin(String code, String userId) {
         return userService.bindWeiXin(code, userId);
     }
+
+    @GetMapping("/loginByWXCode")
+    public ModelAndView loginByWXCode(String code, String state) {
+        return userService.loginByWXCode(code, state);
+    }
+
+
+
+    /**
+     * 新版绑定微信接口,直接跳转到微信公众号首页
+     * @param code
+     * @param userId
+     * @param state
+     * @return
+     */
+    @RequestMapping(value = "/bindWeiXin2")
+    public ModelAndView bindWeiXin2(String code, String userId, Integer state) {
+        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 redirecUrl = null;
+        if (isMobile) {
+            redirecUrl = "http://mobworktime.ttkuaiban.com";
+        } else {
+            redirecUrl = "http://worktime.ttkuaiban.com";
+        }
+
+        HttpRespMsg msg = userService.bindWeiXin2(code, userId, state);
+        if (!msg.code.equals("ok")) {
+            reqParam.put("errorMsg",msg.getMsg());
+        }
+
+        ModelAndView modelAndView = new ModelAndView(
+                new RedirectView(redirecUrl), reqParam);
+
+        return modelAndView;
+    }
+
     /*
      * 微信测试账号推送
      * */

+ 5 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/UserService.java

@@ -5,6 +5,7 @@ import com.management.platform.entity.User;
 import com.management.platform.entity.vo.UserVO;
 import com.management.platform.util.HttpRespMsg;
 import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -48,6 +49,8 @@ public interface UserService extends IService<User> {
 
     HttpRespMsg bindWeiXin(String code, String userId);
 
+    HttpRespMsg bindWeiXin2(String code, String userId, Integer state);
+
     HttpRespMsg exportUsers(Integer containInvalid, HttpServletRequest request);
 
     HttpRespMsg sendVcode(String mobile);
@@ -83,4 +86,6 @@ public interface UserService extends IService<User> {
     HttpRespMsg mobSkipGuidance(HttpServletRequest request);
 
     HttpRespMsg moveUserData(String sourceId, String targetId, HttpServletRequest request);
+
+    ModelAndView loginByWXCode(String code, String state);
 }

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -2170,6 +2170,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         //String[] titles = {"项目编号", "项目名称", "人工成本", "一般费用", "差旅费用","外包费用", "总费用"};
         String[] titles = {MessageUtils.message("entry.projectId"), MessageUtils.message("entry.projectName"), MessageUtils.message("entry.laborCost"), MessageUtils.message("excel.genExp"), MessageUtils.message("excel.traExp"),MessageUtils.message("excel.OutExp"), MessageUtils.message("excel.totalExp")};
         exportList.add(Lists.list(titles));
+        DecimalFormat df = new DecimalFormat("#.00");
         for (Project project : projectList) {
             List<String> data = new ArrayList<>();
             data.add(project.getProjectCode());
@@ -2179,6 +2180,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             data.add(project.getFeeTravel().toString());
             data.add(project.getFeeOutsourcing().toString());
             double totalFee = project.getFeeMan() + project.getFeeNormal()+ project.getFeeTravel()+ project.getFeeOutsourcing();
+            //totalFee保留小数点后两位
+            totalFee = Double.parseDouble(df.format(totalFee));
             data.add(totalFee+"");
             exportList.add(data);
         }

+ 0 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -691,8 +691,6 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                 }
             }
 
-            //顺便返回该公司全部的项目
-            resultMap.put("project", allProjectList);
             //顺便返回公司的工作时间设置
             resultMap.put("timeType",timeType);
             //返回公司的项目工时预警的成本项列表

+ 153 - 31
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/UserServiceImpl.java

@@ -36,6 +36,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.view.RedirectView;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -1760,45 +1762,61 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
             System.out.println("返回信息==" + resp);
             dataMap.put("resp", resp);
             JSONObject OpenidJSONO = JSONObject.parseObject(resp);
-            result = OpenidJSONO;
-            //{"access_token":"32_sheMcGJRDYXVaBoc06o8iT9CyxquudqHl90qGKHg_MGxFhpFA5S8WKUL_mCnfY7O1gcJpS_gBFa4w5Vqb8pCHA","expires_in":7200,"refresh_token":"32_c4ocyhmbbbKyEmG4pS-ywgbV7FkK3A29F_GdZdHKrcvidy0amQeGmhBAo1WBcEWn0T7kSxjbp0BI4lYYtY4wAw","openid":"o1L3L5lOrOl3_UEJjONaoT2Rne1I","scope":"snsapi_userinfo"}
             if (OpenidJSONO.containsKey("access_token")) {
                 // OpenidJSONO可以得到的内容:access_token expires_in refresh_token openid scope
                 String openid = String.valueOf(OpenidJSONO.get("openid"));
-                String accessToken = String.valueOf(OpenidJSONO.get("access_token"));
-                // 用户保存的作用域
-                String scope = String.valueOf(OpenidJSONO.get("scope"));
-                String refresh_token = String.valueOf(OpenidJSONO.get("refresh_token"));
 
-                // 第四步:拉取用户信息(需scope为 snsapi_userinfo)
-//                String url = GET_USERINFO_URL.replaceAll("accessToken", accessToken).replaceAll("openId", openid);
-//                responseEntity = this.restTemplate.exchange(url,
-//                        HttpMethod.GET, null, String.class);
-//                resp = responseEntity.getBody();
-//                log.debug("获取微信个人信息返回==" + resp);
-//                System.out.println("获取微信个人信息返回==" + resp);
-//                JSONObject json = JSONObject.parseObject(resp);
                 User user = new User();
                 user.setId(userId);
                 user.setWxOpenid(openid);
                 userMapper.updateById(user);
-//                if (!json.containsKey("errcode")) {
-//                    user.setWxOpenid(openid);
-//                }
-                //创建用户
-//                int cnt = wechatUserMapper.selectCount(new QueryWrapper<WechatUser>().eq("open_id", openid));
-//                if (cnt == 0) {
-//                    //检查昵称是否存在
-//                    WechatUser one = wechatUserMapper.selectOne(new QueryWrapper<WechatUser>().eq("nickname", user.getNickname()));
-//                    if (one != null) {
-//                        //按昵称更新
-//                        one.setAvatar(user.getAvatar());
-//                        one.setOpenId(user.getOpenId());
-//                        wechatUserMapper.updateById(one);
-//                    } else {
-//                        wechatUserMapper.insert(user);
-//                    }
-//                }
+                //检测密码正确时
+                User u = userMapper.selectById(userId);
+
+                Company company = companyMapper.selectById(u.getCompanyId());
+                UserVO userVO = new UserVO().setCompanyName(company.getCompanyName());
+                userVO.setCompany(company);
+                BeanUtils.copyProperties(u, userVO);
+                //还要多返回一个公司名字
+                userVO.setPassword("");
+                LocalDateTime remainingTime = company.getExpirationDate() == null ? LocalDateTime.now() : company.getExpirationDate();
+                userVO.setRemainingTime(remainingTime.toInstant(ZoneOffset.of("+8")).toEpochMilli() -
+                        LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli());
+                userVO.setLeader(judgeIsLeader(userVO.getId()));
+
+                setUserRoleMenu(userVO);
+                respMsg.data = userVO;
+            } else {
+                respMsg.setError(OpenidJSONO.getString("errcode") + ":" + OpenidJSONO.getString("errmsg"));
+            }
+        }
+        return respMsg;
+    }
+
+    public HttpRespMsg bindWeiXin2(String code, String userId, Integer state) {
+        HttpRespMsg respMsg = new HttpRespMsg();
+        System.out.println("code==" + code);
+        // 拼接用户授权接口信息
+        String requestUrl = GET_TOKEN_URL.replace("APPID", appId).replace("SECRET", appSecret)
+                .replace("CODE", code);
+        // 存储获取到的授权字段信息
+        JSONObject result = new JSONObject();
+        Map<String, String> dataMap = new HashMap<>();
+        ResponseEntity<String> responseEntity = this.restTemplate.exchange(requestUrl,
+                HttpMethod.GET, null, String.class);
+        if (responseEntity.getStatusCode() == HttpStatus.OK) {
+            String resp = responseEntity.getBody();
+            System.out.println("返回信息==" + resp);
+            dataMap.put("resp", resp);
+            JSONObject OpenidJSONO = JSONObject.parseObject(resp);
+            if (OpenidJSONO.containsKey("access_token")) {
+                // OpenidJSONO可以得到的内容:access_token expires_in refresh_token openid scope
+                String openid = String.valueOf(OpenidJSONO.get("openid"));
+
+                User user = new User();
+                user.setId(userId);
+                user.setWxOpenid(openid);
+                userMapper.updateById(user);
                 //检测密码正确时
                 User u = userMapper.selectById(userId);
 
@@ -2702,4 +2720,108 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         }
         return httpRespMsg;
     }
+
+    @Override
+    public ModelAndView loginByWXCode(String code, String state) {
+        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 requestUrl = GET_TOKEN_URL.replace("APPID", appId).replace("SECRET", appSecret)
+                .replace("CODE", code);
+        // 存储获取到的授权字段信息
+        JSONObject result = new JSONObject();
+        Map<String, String> dataMap = new HashMap<>();
+        ResponseEntity<String> responseEntity = this.restTemplate.exchange(requestUrl,
+                HttpMethod.GET, null, String.class);
+        List<User> userList = new ArrayList<>();
+        if (responseEntity.getStatusCode() == HttpStatus.OK) {
+            String resp = responseEntity.getBody();
+            log.debug("返回信息==" + resp);
+            System.out.println("返回信息==" + resp);
+            dataMap.put("resp", resp);
+            JSONObject OpenidJSONO = JSONObject.parseObject(resp);
+            if (OpenidJSONO.containsKey("access_token")) {
+                // OpenidJSONO可以得到的内容:access_token expires_in refresh_token openid scope
+                String openid = String.valueOf(OpenidJSONO.get("openid"));
+                userList = userMapper.selectList(new QueryWrapper<User>().eq("wx_openid", openid));
+            }
+        }
+        Integer companyId = null;
+        if (userList.size() > 0) {
+            //该用户已存在
+            User curUser = userList.get(0);
+            companyId = curUser.getCompanyId();
+            if (curUser.getIsActive() == 1) {
+                reqParam.put("userId", curUser.getId());
+            } else {
+                //提示账号已停用
+                //reqParam.put("errorMsg", "您的账号已停用,无法登录");
+                reqParam.put("errorMsg", MessageUtils.message("user.inactive"));
+            }
+        } else {
+            //该用户不存在
+            reqParam.put("errorMsg", "您的账号不存在,无法登录");
+        }
+        reqParam.put("hasTriedAutoLogin", 1);
+        if (!org.apache.commons.lang3.StringUtils.isEmpty(state) && state.length() > 1) {
+            reqParam.put("path", state);
+        }
+
+        String redirecUrl = null;
+        String router = "index";
+        if (companyId > 0) {
+            HashMap compExpireInfo = getCompExpireInfo(companyId);
+            if (compExpireInfo != null) {
+                //过期了
+                router = "expire";
+                reqParam.put("expDate", compExpireInfo.get("expDate"));
+                reqParam.put("version", compExpireInfo.get("version"));
+            }
+        }
+        if (isMobile) {
+            redirecUrl = "https://mobworktime.ttkuaiban.com/#/" + router;
+        } else {
+            redirecUrl = "https://worktime.ttkuaiban.com/#/" + router;
+        }
+        ModelAndView modelAndView = new ModelAndView(
+                new RedirectView(redirecUrl), reqParam);
+
+        return modelAndView;
+    }
+
+
+    private HashMap getCompExpireInfo(Integer companyId) {
+        Company company = companyMapper.selectById(companyId);
+        int version = 1;
+        if (company.getPackageProject() == 1) {
+            version = 2;
+        }
+        if (company.getPackageOa() == 1) {
+            version = 3;
+        }
+        if (company.getPackageEngineering() == 1) {
+            version = 4;
+        }
+        boolean hasExp = false;
+        LocalDateTime expirationDate = company.getExpirationDate();
+        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        if (null != company.getExpirationDate()) {
+            if (expirationDate.isBefore(LocalDateTime.now())) {
+                hasExp = true;
+            }
+        }
+
+        if (hasExp) {
+            String format = dtf.format(expirationDate);
+            HashMap map = new HashMap();
+            map.put("version", version);
+            map.put("expDate", format);
+            return map;
+        } else {
+            return null;
+        }
+    }
 }

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/WxCorpInfoServiceImpl.java

@@ -1491,7 +1491,7 @@ public class WxCorpInfoServiceImpl extends ServiceImpl<WxCorpInfoMapper, WxCorpI
                         }
                         if (showLog) System.out.println("校正后请假时长=" + ct.getAskLeaveTime());
                         //如果有出差的,但是没有打卡,则用出差的时间作为timeDelta
-                        if (timeDelta < 8.0 && ct.getOutdoorTime() > 0) {
+                        if (timeDelta < 7.5 && ct.getOutdoorTime() > 0) {
                             timeDelta += ct.getOutdoorTime();
                         }
                         double workHours = timeDelta - ct.getAskLeaveTime();

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

@@ -15,7 +15,7 @@ spring:
       location: C:/upload/
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://47.101.180.183:3306/man_hour_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
+    url: jdbc:mysql://47.101.180.183:3306/man_dev?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
     username: root
     password: HuoshiDB@2022
     hikari:

+ 1 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/CommonUploadController.java

@@ -85,6 +85,7 @@ public class CommonUploadController {
     public ResponseEntity<byte[]> downLoadLog() throws IOException {
         // 🧐🧐🧐读取本地的文件
         // 获取File对象
+        System.out.println("读取目录=="+logDownLoadPath);
         File readFile=new File(logDownLoadPath);
         // 🐳🐳🐳设置响应头,把文件名称放入响应头中,确保文件可下载
         HttpHeaders headers = new HttpHeaders();

+ 3 - 3
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -417,7 +417,7 @@
                 <el-form ref="form1" :model="addForm" :rules="rules" label-width="120px">
                     <el-form-item :label="$t('Itemno')" :class="title == $t('newproject') && user.companyId == 936 ? 'wpgCssClass' : ''">
                         <!-- <el-input v-model="addForm.code" :disabled="!permissions.projectManagement && addForm.creatorId != user.id" placeholder="请输入项目编号" clearable></el-input> -->
-                        <el-input v-model="addForm.code" :placeholder="$t('peaseenterthe')" clearable :disabled="canOnlyModParticipator || (!permissions.projectManagement && addForm.creatorId != user.id && !permissions.projectCodeAndName)"></el-input>
+                        <el-input v-model="addForm.code" :placeholder="$t('peaseenterthe')" clearable :disabled="canOnlyModParticipator || (!permissions.projectManagement && addForm.creatorId != user.id && !permissions.projectCodeAndName)" maxlength="50" show-word-limit="true"></el-input>
                     </el-form-item>
                     <el-form-item :label="$t('zhu-xiang-mu')" :class="title == $t('newproject') && user.companyId == 936 ? 'wpgCssClass' : ''" v-if="user.timeType.mainProjectState == '1'">
                         <!-- <el-select v-model="addForm.projectMainId" clearable :disabled="!permissions.projectManagement && addForm.creatorId != user.id" @change="projectManagementChange"> -->
@@ -436,11 +436,11 @@
                     </el-form-item>
                     <el-form-item :label="$t('headerTop.projectName')" prop="name">
                         <!-- <el-input v-model="addForm.name" :disabled="!permissions.projectManagement && addForm.creatorId != user.id" placeholder="请输入项目名称" clearable></el-input> -->
-                        <el-input v-model="addForm.name" :placeholder="$t('peaseenterthe')" clearable :disabled="canOnlyModParticipator || (!permissions.projectManagement && addForm.creatorId != user.id && !permissions.projectCodeAndName)"></el-input>
+                        <el-input v-model="addForm.name" :placeholder="$t('peaseenterthe')" clearable :disabled="canOnlyModParticipator || (!permissions.projectManagement && addForm.creatorId != user.id && !permissions.projectCodeAndName)" maxlength="255" show-word-limit="true"></el-input>
                     </el-form-item>
                     <el-form-item :label="$t('other.projectDescription')" prop="projectDesc">
                         <!-- <el-input v-model="addForm.projectDesc" :disabled="!permissions.projectManagement && addForm.creatorId != user.id" placeholder="请输入项目描述" clearable maxlength="4000"></el-input> -->
-                        <el-input v-model="addForm.projectDesc" :placeholder="$t('peaseenterthe')" clearable maxlength="4000" :disabled="canOnlyModParticipator"></el-input>
+                        <el-input v-model="addForm.projectDesc" :placeholder="$t('peaseenterthe')" clearable maxlength="4000" :disabled="canOnlyModParticipator" show-word-limit></el-input>
                     </el-form-item>
                     <el-form-item :label="$t('projecttype')" :class="title == $t('newproject') && user.companyId == 936 ? 'wpgCssClass' : ''" prop="isPublic">
                         <!-- <el-select v-model="addForm.isPublic" style="width:32%;" @change="selectPublic" :disabled="!permissions.projectManagement && addForm.creatorId != user.id"> -->

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -4864,7 +4864,7 @@
                     });
                     return;
                 }
-                if (!this.zhoBao.projectAuditorId &&(user.timeType.reportAuditType == 0 || user.timeType.reportAuditType == 4)) {
+                if (!this.zhoBao.projectAuditorId &&(this.user.timeType.reportAuditType == 0 || this.user.timeType.reportAuditType == 4)) {
                     this.$message({
                         message: this.$t('message.Pleaseselectareviewer'),
                         type: "error"

+ 12 - 9
fhKeeper/formulahousekeeper/timesheet_h5/src/views/index/index.vue

@@ -64,8 +64,8 @@
                 this.isWX = true;
             }
             let that = this;
-            //企业微信是从后台授权后跳转过来的
-            if (this.isCorpWX) {
+            //企业微信或个人微信是从后台授权后跳转过来的
+            if (this.isCorpWX || this.isWX) {
                 //后台自动授权登录的用户
                 if(window.location.href.indexOf('userId') != '-1') {
                     let href = window.location.href;
@@ -89,14 +89,17 @@
                     that.getAccountInfo(that.user.id);
                 }
             }
-            let userss = JSON.parse(localStorage.userInfo)
-            if(userss.companyId == '3454') {
-                alert(`isMobFirstLogin = ${userss.isMobFirstLogin} $ userss.createTime = ${userss.createTime[0]} $ userss.roleName = ${userss.roleName}`)
-            }
-            if(userss.isMobFirstLogin == 1 && userss.createTime[0] > '2022' && userss.roleName == '超级管理员') {
-                // 第一次登陆显示
-                this.previewPicture()
+            if (this.user) {
+                let userss = this.user;
+                if(userss.companyId == '3454') {
+                    alert(`isMobFirstLogin = ${userss.isMobFirstLogin} $ userss.createTime = ${userss.createTime[0]} $ userss.roleName = ${userss.roleName}`)
+                }
+                if(userss.isMobFirstLogin == 1 && userss.createTime[0] > '2022' && userss.roleName == '超级管理员') {
+                    // 第一次登陆显示
+                    this.previewPicture()
+                }
             }
+            
         },
         components: {
             Footer

+ 10 - 3
fhKeeper/formulahousekeeper/timesheet_h5/src/views/login/index.vue

@@ -108,6 +108,7 @@
                         console.log('urlRight=' + urlRight);
                         urlRight = urlRight.substring(0, urlRight.indexOf('#/'));
                         // window.location = urlLeft + "#/home" + urlRight;//拼接跳转
+                        alert(url);
                         //获取code
                         var code = urlRight.substring('?code='.length,urlRight.indexOf('&state='));
                         var passUserId = urlRight.substring(urlRight.indexOf('&state=')+'&state='.length);
@@ -165,9 +166,15 @@
                 }
             },
             tryAutoLogin() {
-                console.log('第三方回调')
-                var appId = "ww4e237fd6abb635af";//企业微信第三方的SUIT ID
-                var url = "http://worktime.ttkuaiban.com/api/corpWXAuth";//授权回调页面
+                var appId = "wx749c84daac654e1e";//工时管家公众号
+                var url = "http://mobworktime.ttkuaiban.com/api/wechat/loginByWXCode";//工时管家公众号授权回调页面
+                if (this.isCorpWX) {
+                    appId = "ww4e237fd6abb635af"; //企业微信第三方的SUIT ID
+                    url = "http://worktime.ttkuaiban.com/api/corpWXAuth";//授权回调页面
+                } 
+
+                // var appId = "ww4e237fd6abb635af";//企业微信第三方的SUIT ID
+                // var url = "http://worktime.ttkuaiban.com/api/corpWXAuth";//授权回调页面
                 var weixinUrl="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appId+"&redirect_uri="+encodeURI(url)+"&response_type=code&scope=snsapi_base&state=0#wechat_redirect";
                 window.location.href = weixinUrl;
             },

+ 2 - 1
fhKeeper/formulahousekeeper/timesheet_h5/src/views/my/children/center.vue

@@ -90,11 +90,12 @@
                     return;
                 }
                 var appId = "wx749c84daac654e1e";//工时管家公众号
+                var url = "http://mobworktime.ttkuaiban.com/api/wechat/bindWeiXin2?userId="+this.userInfo.id;//工时管家公众号授权回调页面
                 if (this.isCorpWX) {
                     appId = "ww4e237fd6abb635af"; //企业微信第三方的SUIT ID
+                    url = "http://worktime.ttkuaiban.com/api/wxcorp/bindCorpWeiXin?userId="+this.userInfo.id;//授权回调页面
                 } 
 
-                var url = "http://worktime.ttkuaiban.com/api/wxcorp/bindCorpWeiXin?userId="+this.userInfo.id;//授权回调页面
                 var weixinUrl="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appId+"&redirect_uri="+encodeURI(url)+"&response_type=code&scope=snsapi_base&state=0#wechat_redirect";
                 window.location.href = weixinUrl;
             },