Browse Source

OKR业务代码提交--基本完成版本

hcst_sunzhen 4 years ago
parent
commit
d822824f38

+ 5 - 0
pom.xml

@@ -181,6 +181,11 @@
             <artifactId>commons-lang</artifactId>
             <version>2.6</version>
         </dependency>
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-cp</artifactId>
+            <version>3.6.0</version>
+        </dependency>
     </dependencies>
     <build>
         <plugins>

+ 5 - 4
src/main/java/cn/com/ctop/okr/config/ShiroConfig.java

@@ -147,10 +147,11 @@ public class ShiroConfig {
         //filterChainDefinitionMap.put("/ctop/performance/show/**", "anon");
         filterChainDefinitionMap.put("/job/test/*", "anon");
 
-        filterChainDefinitionMap.put("/corp/*", "anon");
-        filterChainDefinitionMap.put("/okr/*", "anon");
-        filterChainDefinitionMap.put("/feishu/*", "anon");
-        filterChainDefinitionMap.put("/qywx/*", "anon");
+        //filterChainDefinitionMap.put("/corp/*", "anon");
+        //filterChainDefinitionMap.put("/okr/*", "anon");
+        //filterChainDefinitionMap.put("/feishu/*", "anon");
+        //filterChainDefinitionMap.put("/qywx/*", "anon");
+        //filterChainDefinitionMap.put("/wxlogin", "anon");
 
 
         // 添加自己的过滤器并且取名为jwt

+ 22 - 0
src/main/java/cn/com/ctop/okr/controller/CommonController.java

@@ -0,0 +1,22 @@
+package cn.com.ctop.okr.controller;
+
+import cn.com.ctop.okr.vo.Result;
+import lombok.extern.slf4j.Slf4j;
+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;
+
+@Slf4j
+@RestController
+@RequestMapping("/sys/common")
+public class CommonController {
+
+    @GetMapping("/403")
+    public Result<?> noauth() {
+        return Result.error("没有权限,请联系管理员授权");
+    }
+
+
+
+}

+ 74 - 37
src/main/java/cn/com/ctop/okr/controller/LoginController.java

@@ -1,41 +1,39 @@
 package cn.com.ctop.okr.controller;
 
-import cn.com.ctop.okr.constant.CommonConstant;
-import cn.com.ctop.okr.entity.CorpDepartInfo;
-import cn.com.ctop.okr.entity.CorpUserInfo;
-import cn.com.ctop.okr.feishu.provider.AuthProvider;
+import cn.com.ctop.okr.entity.QYWxUserInfo;
+import cn.com.ctop.okr.qywx.constant.QYWxConstant;
 import cn.com.ctop.okr.service.CorpUserInfoService;
+import cn.com.ctop.okr.service.QYWxService;
 import cn.com.ctop.okr.utils.JwtUtil;
 import cn.com.ctop.okr.utils.RedisUtil;
-import cn.com.ctop.okr.utils.ResultMapUtils;
-import cn.com.ctop.okr.utils.StatusCode;
 import cn.com.ctop.okr.vo.Result;
 import com.alibaba.fastjson.JSONObject;
+import lombok.val;
+import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.cp.api.WxCpOAuth2Service;
+import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
+import me.chanjar.weixin.cp.bean.WxCpOauth2UserInfo;
+import me.chanjar.weixin.cp.config.impl.WxCpDefaultConfigImpl;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 @Controller
-@RequestMapping("/")
+@RequestMapping("/sys")
 public class LoginController {
     private static Logger logger = Logger.getLogger(LoginController.class);
     @Autowired
     private RedisUtil redisUtil;
     @Autowired
     private CorpUserInfoService corpUserInfoService;
+    @Autowired
+    private QYWxService qyWxService;
 
-    @GetMapping("feishu/url")
+   /* @GetMapping("feishu/url")
     public Map<String,Object> getUrl(){
         Map<String,Object>result = new HashMap<>();
         try {
@@ -92,6 +90,49 @@ public class LoginController {
             e.printStackTrace();
             return result.error500(StatusCode.COMMON_SERVER_ERROR.getDesc());
         }
+    }*/
+
+    @ResponseBody
+    @RequestMapping(value = "/wxlogin", method = RequestMethod.POST)
+    public Result<JSONObject> wxlogin(@RequestParam(name = "code") String code) throws Exception {
+        Result<JSONObject> result = new Result<>();
+        val configStorage = new WxCpDefaultConfigImpl();
+        //configStorage.setCorpId(QYWxConstant.QYWX_CORP_ID);
+        //configStorage.setAgentId(QYWxConstant.QYWX_AGENT_ID);
+        //configStorage.setCorpSecret(QYWxConstant.QYWX_CORP_SECRET);
+        //configStorage.setToken("hcst2019");
+        //configStorage.setAesKey("hcst2019");
+
+        configStorage.setCorpId("ww24b8a47826f5875f");
+        configStorage.setAgentId(1000002);
+        configStorage.setCorpSecret("MJIlySADGPlgvADnkFQPUpfZD4yV-4WN6066OgNnb0s");
+        configStorage.setToken("hcst2019");
+        configStorage.setAesKey("hcst2019");
+        val service = new WxCpServiceImpl();
+
+        service.setWxCpConfigStorage(configStorage);
+        WxCpOAuth2Service wxCpOAuth2Service = service.getOauth2Service();
+        try {
+            WxCpOauth2UserInfo userInfo = wxCpOAuth2Service.getUserInfo(1000002, code);
+            if (userInfo != null && userInfo.getUserId() != null) {
+                //WxCpUserService wxCpUserService = new WxCpUserServiceImpl(service);
+                //WxCpUser user = wxCpUserService.getById(userInfo.getUserId());
+                QYWxUserInfo user = qyWxService.getUserInfoByUserid(userInfo.getUserId());
+                if(user.getStatus() != 1){
+                    result.error500("该用户处于非正常状态!");
+                    return result;
+                }
+
+                //用户登录信息
+                Result<JSONObject> getResult = userInfo(user, result);
+                return getResult;
+
+            }
+        } catch (WxErrorException e) {
+            result.error500("企业微信授权错误");
+            e.printStackTrace();
+        }
+        return result;
     }
 
     /**
@@ -101,27 +142,27 @@ public class LoginController {
      * @param result
      * @return
      */
-    private Result<JSONObject> userInfo(CorpUserInfo user, Result<JSONObject> result) {
-        String name = user.getOpenId();
-        String email = user.getEmail();
+    private Result<JSONObject> userInfo(QYWxUserInfo user, Result<JSONObject> result) {
+        String openId = user.getOpenId();  //openId
+        String userid = user.getUserid();  //userId
         // 生成token
-        String token = JwtUtil.sign(name, email);
-        redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
+        String token = JwtUtil.sign(openId, userid);
+        //redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
         // 设置超时时间
-        redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 1000);
+        //redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 1000);
 
         // 获取用户部门信息
         JSONObject obj = new JSONObject();
-        List<CorpDepartInfo> departs = corpUserInfoService.queryUserDeparts(user.getOpenId());
-        obj.put("departs", departs);
-        if (departs == null || departs.size() == 0) {
-            obj.put("multi_depart", 0);
-        } else if (departs.size() == 1) {
-            //sysUserService.updateUserDepart(username, departs.get(0).getOrgCode());
-            obj.put("multi_depart", 1);
-        } else {
-            obj.put("multi_depart", 2);
-        }
+        //List<CorpDepartInfo> departs = corpUserInfoService.queryUserDeparts(user.getOpenId());
+        //obj.put("departs", departs);
+        //if (departs == null || departs.size() == 0) {
+        //    obj.put("multi_depart", 0);
+        //} else if (departs.size() == 1) {
+        //    //sysUserService.updateUserDepart(username, departs.get(0).getOrgCode());
+        //    obj.put("multi_depart", 1);
+        //} else {
+        //    obj.put("multi_depart", 2);
+        //}
         obj.put("token", token);
         obj.put("userInfo", user);
         result.setResult(obj);
@@ -130,8 +171,4 @@ public class LoginController {
     }
 
 
-
-
-
-
 }

+ 1 - 2
src/main/java/cn/com/ctop/okr/controller/OkrController.java

@@ -12,7 +12,6 @@ import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.util.StopWatch;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
@@ -261,7 +260,7 @@ public class OkrController {
     }
 
     /**
-     * 更新状态指标
+     * 同时保存O和krList
      * @param request
      * @param response
      * @return

+ 4 - 0
src/main/java/cn/com/ctop/okr/entity/QYWxUserInfo.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
+import java.util.Date;
+
 @Data
 @TableName("wx_user_info")
 public class QYWxUserInfo {
@@ -19,4 +21,6 @@ public class QYWxUserInfo {
     private String qrCode;
     private String email;
     private Integer status;
+    private Date createTime;
+    private Date updateTime;
 }

+ 4 - 0
src/main/java/cn/com/ctop/okr/mapper/QYWxUserInfoMapper.java

@@ -28,4 +28,8 @@ public interface QYWxUserInfoMapper extends BaseMapper<QYWxUserInfo> {
 
     List<UserInfoDto> getUserListByName(@Param("name")String name);
 
+    QYWxUserInfo getUserInfoByUserid(@Param("userid")String userid);
+
+    QYWxUserInfo getUserInfoByOpenId(@Param("openId")String openId);
+
 }

+ 5 - 5
src/main/java/cn/com/ctop/okr/mapper/xml/OkrMemberMapper.xml

@@ -8,7 +8,7 @@
         b.name as name
         from
         okr_member a
-        left join feishu_corp_user_info b on a.member_id = b.open_id
+        left join wx_user_info b on a.member_id = b.open_id
         where
         user_id = #{userId}
         and
@@ -51,12 +51,12 @@
         select
         a.user_id as userId,
         b.name as name,
-        d.department_name as departName
+        d.depart_name as departName
         from
         okr_member a
-        left join feishu_corp_user_info b on a.user_id = b.open_id
-        left join feishu_corp_user_depart_map c on b.open_id = c.open_id
-        left join feishu_corp_depart_info d on c.department_id = d.department_id
+        left join wx_user_info b on a.user_id = b.open_id
+        -- left join feishu_corp_user_depart_map c on b.open_id = c.open_id
+        left join wx_depart_info d on b.main_department = d.id
         where
         a.year = #{year} and
         a.quarter = #{quarter} and

+ 3 - 0
src/main/java/cn/com/ctop/okr/mapper/xml/QYWxDepartInfoMapper.xml

@@ -22,4 +22,7 @@
     </insert>
 
 
+
+
+
 </mapper>

+ 16 - 0
src/main/java/cn/com/ctop/okr/mapper/xml/QYWxUserInfoMapper.xml

@@ -93,4 +93,20 @@
         1=1
     </select>
 
+    <select id="getUserInfoByOpenId" resultType="cn.com.ctop.okr.entity.QYWxUserInfo">
+        select
+        *
+        from
+        wx_user_info
+        where open_id = #{openId}
+    </select>
+
+    <select id="getUserInfoByUserid" resultType="cn.com.ctop.okr.entity.QYWxUserInfo">
+        select
+        *
+        from
+        wx_user_info
+        where userid = #{userid}
+    </select>
+
 </mapper>

+ 1 - 0
src/main/java/cn/com/ctop/okr/qywx/constant/QYWxConstant.java

@@ -11,5 +11,6 @@ public class QYWxConstant {
     public static final String QYWX_USER_SIMPLELIST = "/cgi-bin/user/simplelist";  //获取部门下员工简单信息
     public static final String QYWX_USER_LIST = "/cgi-bin/user/list";  //获取部门下员工详细信息
     public static final String QYWX_CONVERT_TO_OPENID = "/cgi-bin/user/convert_to_openid";  //获取部门下员工详细信息
+    public static final String QYWX_GET_LOGIN_USERINFO = "/cgi-bin/user/getuserinfo";  //获取当前登录员工USERID
 
 }

+ 20 - 0
src/main/java/cn/com/ctop/okr/qywx/provider/AuthProvider.java

@@ -23,6 +23,26 @@ public class AuthProvider {
         }
     }
 
+    /**
+     * 获取企业微信当前登录用户信息
+     * @param code
+     * @param token
+     */
+    public static String getQYWXLoginUserinfo(String code, String token) throws Exception {
+        TreeMap<String,Object> params = new TreeMap<>();
+        params.put("access_token", token);
+        params.put("code", code);
+
+        String resultStr = HttpUtils.httpGetRequest(QYWxConstant.QYWX_API_URL+QYWxConstant.QYWX_GET_LOGIN_USERINFO,null,params);
+        //System.out.println(resultStr);
+        JSONObject resultJson = JSONObject.parseObject(resultStr);
+        Integer errcode = resultJson.getInteger("errcode");
+        if(errcode == 0){
+            return resultJson.getString("UserId");
+        }else{
+            throw new Exception("获取企业微信当前登录用户信息,result:" + resultStr);
+        }
+    }
 
     public static void main(String[] args) throws Exception {
         getQYWXAccessToken();

+ 3 - 0
src/main/java/cn/com/ctop/okr/service/QYWxService.java

@@ -2,6 +2,7 @@ package cn.com.ctop.okr.service;
 
 import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.entity.CorpUserInfo;
+import cn.com.ctop.okr.entity.QYWxUserInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
@@ -12,4 +13,6 @@ public interface QYWxService extends IService<CorpUserInfo> {
 
     List<UserInfoDto> getUserListByName(String name);
 
+    QYWxUserInfo getUserInfoByUserid(String userid);
+
 }

+ 51 - 32
src/main/java/cn/com/ctop/okr/service/impl/OkrServiceImpl.java

@@ -38,8 +38,9 @@ public class OkrServiceImpl implements OkrService {
     public Map<String, Object> getOkrInfo(String userId){
         Map<String, Object> map = new HashMap<>();
         if(StringUtils.isBlank(userId)){
-            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-            userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+            QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+            userId = sysUser.getOpenId();
+            //userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         }
 
         //季度
@@ -81,8 +82,9 @@ public class OkrServiceImpl implements OkrService {
 
     @Override
     public void insertOkrMember(List<String> memberList){
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
 
         Integer quarter = DateUtils.getQuarter(new Date());
         Integer year = DateUtils.getYear(new Date());
@@ -93,8 +95,9 @@ public class OkrServiceImpl implements OkrService {
 
     @Override
     public List<UserInfoDto> getMemberListByUserId(String name){
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
 
         Integer quarter = DateUtils.getQuarter(new Date());
         Integer year = DateUtils.getYear(new Date());
@@ -105,8 +108,11 @@ public class OkrServiceImpl implements OkrService {
     //保存任务
     @Override
     public void insertTaskInfo(OkrTaskInfo taskInfo){
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        System.out.println("sysUser:"+ sysUser.getOpenId() + " name:" + sysUser.getName() );
+
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        String userId = sysUser.getOpenId();
         Integer year = DateUtils.getYear(new Date());
         Integer quarter = DateUtils.getQuarter(new Date());
         taskInfo.setUserId(userId);
@@ -135,8 +141,9 @@ public class OkrServiceImpl implements OkrService {
     public void updateTaskInfo(OkrTaskInfo taskInfo){
         okrTaskInfoMapper.updateTaskInfo(taskInfo);
 
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         //日志留存
         OkrLog okrLog = new OkrLog();
         okrLog.setType(2); //操作:1.创建2.修改3.删除
@@ -156,8 +163,9 @@ public class OkrServiceImpl implements OkrService {
     //保存任务
     @Override
     public void insertContentStatus(OkrContentStatus content){
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         content.setUserId(userId);
         content.setYear(DateUtils.getYear(new Date()));
         content.setQuarter(DateUtils.getQuarter(new Date()));
@@ -180,8 +188,9 @@ public class OkrServiceImpl implements OkrService {
     public void updateContentStatus(OkrContentStatus content){
         okrContentStatusMapper.updateContentStatus(content);
 
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         //日志留存
         OkrLog okrLog = new OkrLog();
         okrLog.setType(2); //操作:1.创建2.修改3.删除
@@ -197,8 +206,9 @@ public class OkrServiceImpl implements OkrService {
     //同时保存O和krList
     @Override
     public void insertObjectAndKrList(OkrObjectInfo objectInfo, List<OkrKrInfo> krList){
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
 
         Integer quarter = DateUtils.getQuarter(new Date());
         Integer year = DateUtils.getYear(new Date());
@@ -245,8 +255,9 @@ public class OkrServiceImpl implements OkrService {
     public void updateObject(OkrObjectInfo objectInfo){
         okrObjectInfoMapper.updateObjectInfo(objectInfo);
 
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         //日志留存
         OkrLog okrLog = new OkrLog();
         okrLog.setType(2); //操作:1.创建2.修改3.删除
@@ -263,8 +274,9 @@ public class OkrServiceImpl implements OkrService {
     public void updateKr(OkrKrInfo okrKrInfo){
         okrKrInfoMapper.updateKrInfo(okrKrInfo);
 
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         //日志留存
         OkrLog okrLog = new OkrLog();
         okrLog.setType(2); //操作:1.创建2.修改3.删除
@@ -280,8 +292,9 @@ public class OkrServiceImpl implements OkrService {
     //获取本季度同步给我OKR的同事的列表
     @Override
     public Map<String, Object> getSyncUserListByMemberId(Integer year, Integer quarter){
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String memberId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String memberId = sysUser.getOpenId();
+        //String memberId = "ou_03c4826ae66623a53f2af456ff3661a1";
         Integer isCurrentQuarter = null;
         Map<String, Object> map = new HashMap<>();
         //List<List<Map<String, Object>>> list = new ArrayList<>();
@@ -325,8 +338,9 @@ public class OkrServiceImpl implements OkrService {
     public void deleteObjectInfoById(OkrObjectInfo objectInfo){
         okrObjectInfoMapper.deleteObjectInfoById(objectInfo);
 
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         //日志留存
         OkrLog okrLog = new OkrLog();
         okrLog.setType(3); //操作:1.创建2.修改3.删除
@@ -343,8 +357,9 @@ public class OkrServiceImpl implements OkrService {
     public void deleteKrById(OkrKrInfo krInfo){
         okrKrInfoMapper.deleteKrById(krInfo);
 
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         //日志留存
         OkrLog okrLog = new OkrLog();
         okrLog.setType(3); //操作:1.创建2.修改3.删除
@@ -361,8 +376,9 @@ public class OkrServiceImpl implements OkrService {
     public void deleteContentStatusById(OkrContentStatus content){
         okrContentStatusMapper.deleteContentStatuaById(content);
 
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         //日志留存
         OkrLog okrLog = new OkrLog();
         okrLog.setType(3); //操作:1.创建2.修改3.删除
@@ -379,8 +395,9 @@ public class OkrServiceImpl implements OkrService {
     public void deleteTaskInfoById(OkrTaskInfo okrTaskInfo){
         okrTaskInfoMapper.deleteTaskInfoById(okrTaskInfo);
 
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
         //日志留存
         OkrLog okrLog = new OkrLog();
         okrLog.setType(3); //操作:1.创建2.修改3.删除
@@ -400,8 +417,9 @@ public class OkrServiceImpl implements OkrService {
 
     @Override
     public void insertOkrKrInfo(OkrKrInfo krInfo){
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        QYWxUserInfo sysUser = (QYWxUserInfo) SecurityUtils.getSubject().getPrincipal();
+        String userId = sysUser.getOpenId();
+        //String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
 
         Integer quarter = DateUtils.getQuarter(new Date());
         Integer year = DateUtils.getYear(new Date());
@@ -430,4 +448,5 @@ public class OkrServiceImpl implements OkrService {
     }
 
 
+
 }

+ 5 - 0
src/main/java/cn/com/ctop/okr/service/impl/QYWxServiceImpl.java

@@ -149,6 +149,11 @@ public class QYWxServiceImpl extends ServiceImpl<CorpUserInfoMapper, CorpUserInf
         return wxUserInfoMapper.getUserListByName(name);
     }
 
+    //根据名字模糊查询企业微信用户
+    @Override
+    public QYWxUserInfo getUserInfoByUserid(String userid){
+        return wxUserInfoMapper.getUserInfoByUserid(userid);
+    }
 
 
 }

+ 15 - 9
src/main/java/cn/com/ctop/okr/shiro/authc/ShiroRealm.java

@@ -2,7 +2,9 @@ package cn.com.ctop.okr.shiro.authc;
 
 import cn.com.ctop.okr.constant.CommonConstant;
 import cn.com.ctop.okr.entity.CorpUserInfo;
+import cn.com.ctop.okr.entity.QYWxUserInfo;
 import cn.com.ctop.okr.mapper.CorpUserInfoMapper;
+import cn.com.ctop.okr.mapper.QYWxUserInfoMapper;
 import cn.com.ctop.okr.utils.Check;
 import cn.com.ctop.okr.utils.JwtUtil;
 import cn.com.ctop.okr.utils.RedisUtil;
@@ -33,6 +35,9 @@ public class ShiroRealm extends AuthorizingRealm {
 
     @Autowired
     @Lazy
+    private QYWxUserInfoMapper wxUserInfoMapper;
+    @Autowired
+    @Lazy
     private CorpUserInfoMapper corpUserInfoMapper;
     @Autowired
     @Lazy
@@ -54,11 +59,11 @@ public class ShiroRealm extends AuthorizingRealm {
     @Override
     protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
         log.info("————权限认证 [ roles、permissions]————");
-        CorpUserInfo sysUser = null;
+        QYWxUserInfo sysUser = null;
         String username = null;
         if (principals != null) {
-            sysUser = (CorpUserInfo) principals.getPrimaryPrincipal();
-            username = sysUser.getName();
+            sysUser = (QYWxUserInfo) principals.getPrimaryPrincipal();
+            username = sysUser.getOpenId();
         }
         SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
 
@@ -83,7 +88,7 @@ public class ShiroRealm extends AuthorizingRealm {
         if (!Check.isNull(auth)) {
             String token = (String) auth.getCredentials();
             if (token != null) {
-                CorpUserInfo loginUser = this.checkUserTokenIsEffect(token);
+                QYWxUserInfo loginUser = this.checkUserTokenIsEffect(token);
                 return new SimpleAuthenticationInfo(loginUser, token, getName());
             }
         }
@@ -95,7 +100,7 @@ public class ShiroRealm extends AuthorizingRealm {
      *
      * @param token
      */
-    public CorpUserInfo checkUserTokenIsEffect(String token) throws AuthenticationException {
+    public QYWxUserInfo checkUserTokenIsEffect(String token) throws AuthenticationException {
         if (Check.isNull(token)) {
             log.error("token为空");
             return null;
@@ -103,14 +108,15 @@ public class ShiroRealm extends AuthorizingRealm {
         }
 
         // 解密获得username,用于和数据库进行对比
-        String username = JwtUtil.getUsername(token);  //username即为open_id
-        if (username == null) {
+        String openId = JwtUtil.getUsername(token);  //username即为open_id
+        if (openId == null) {
             log.error("token非法无效!");
             // throw new AuthenticationException("token非法无效!");
         }
         // 查询用户信息
-        CorpUserInfo loginUser = new CorpUserInfo();
-        CorpUserInfo userInfo = corpUserInfoMapper.getUserInfoByOpenId(username);
+        QYWxUserInfo loginUser = new QYWxUserInfo();
+        //CorpUserInfo userInfo = corpUserInfoMapper.getUserInfoByOpenId(openId);
+        QYWxUserInfo userInfo = wxUserInfoMapper.getUserInfoByOpenId(openId);
         if (userInfo == null) {
             throw new AuthenticationException("用户不存在!");
         }

+ 8 - 8
src/main/java/cn/com/ctop/okr/utils/JwtUtil.java

@@ -70,14 +70,14 @@ public class JwtUtil {
         return JWT.create().withClaim("username", username).withExpiresAt(date).sign(algorithm);
 
     }
-
-    /**
+/*
+    *//**
      * 根据request中的token获取用户账号
      *
      * @param request
      * @return
      * @throws Exception
-     */
+     *//*
     public static String getUserNameByToken(HttpServletRequest request) throws Exception {
         String accessToken = request.getHeader("X-Access-Token");
         String username = getUsername(accessToken);
@@ -87,12 +87,12 @@ public class JwtUtil {
         return username;
     }
 
-    /**
+    *//**
      * 从session中获取变量
      *
      * @param key
      * @return
-     */
+     *//*
     public static String getSessionData(String key) {
         //${myVar}%
         //得到${} 后面的值
@@ -115,13 +115,13 @@ public class JwtUtil {
         return returnValue;
     }
 
-    /**
+    *//**
      * 从当前用户中获取变量
      *
      * @param key
      * @param user
      * @return
-     */
+     *//*
     //
     ////TODO 急待改造 sckjkdsjsfjdk
     //public static String getUserSystemData(String key, SysUserCacheInfo user) {
@@ -194,5 +194,5 @@ public class JwtUtil {
     //        returnValue = returnValue + moshi;
     //    }
     //    return returnValue;
-    //}
+    //}*/
 }