浏览代码

OKR业务代码提交

hcst_sunzhen 5 年之前
父节点
当前提交
848cca0f50
共有 23 个文件被更改,包括 542 次插入49 次删除
  1. 1 0
      src/main/java/cn/com/ctop/okr/config/ShiroConfig.java
  2. 19 6
      src/main/java/cn/com/ctop/okr/controller/FeishuController.java
  3. 152 16
      src/main/java/cn/com/ctop/okr/controller/OkrController.java
  4. 19 0
      src/main/java/cn/com/ctop/okr/dto/OkrDto.java
  5. 15 0
      src/main/java/cn/com/ctop/okr/dto/UserInfoDto.java
  6. 1 0
      src/main/java/cn/com/ctop/okr/entity/OkrContentStatus.java
  7. 2 0
      src/main/java/cn/com/ctop/okr/entity/OkrTaskInfo.java
  8. 3 1
      src/main/java/cn/com/ctop/okr/mapper/CorpUserInfoMapper.java
  9. 4 0
      src/main/java/cn/com/ctop/okr/mapper/OkrContentStatusMapper.java
  10. 4 0
      src/main/java/cn/com/ctop/okr/mapper/OkrKrInfoMapper.java
  11. 10 0
      src/main/java/cn/com/ctop/okr/mapper/OkrMemberMapper.java
  12. 2 1
      src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoMapper.java
  13. 3 0
      src/main/java/cn/com/ctop/okr/mapper/OkrTaskInfoMapper.java
  14. 7 7
      src/main/java/cn/com/ctop/okr/mapper/xml/CorpUserInfoMapper.xml
  15. 31 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrContentStatusMapper.xml
  16. 31 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrKrInfoMapper.xml
  17. 61 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrMemberMapper.xml
  18. 26 0
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrObjectInfoMapper.xml
  19. 33 12
      src/main/java/cn/com/ctop/okr/mapper/xml/OkrTaskInfoMapper.xml
  20. 2 1
      src/main/java/cn/com/ctop/okr/service/CorpUserInfoService.java
  21. 15 1
      src/main/java/cn/com/ctop/okr/service/OkrService.java
  22. 2 1
      src/main/java/cn/com/ctop/okr/service/impl/CorpUserInfoServiceImpl.java
  23. 99 3
      src/main/java/cn/com/ctop/okr/service/impl/OkrServiceImpl.java

+ 1 - 0
src/main/java/cn/com/ctop/okr/config/ShiroConfig.java

@@ -149,6 +149,7 @@ public class ShiroConfig {
 
         filterChainDefinitionMap.put("/corp/*", "anon");
         filterChainDefinitionMap.put("/okr/*", "anon");
+        filterChainDefinitionMap.put("/feishu/*", "anon");
 
 
         // 添加自己的过滤器并且取名为jwt

+ 19 - 6
src/main/java/cn/com/ctop/okr/controller/FeishuController.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.okr.controller;
 
 import cn.com.ctop.okr.dto.FeishuUserInfoDto;
+import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.service.CorpUserInfoService;
 import cn.com.ctop.okr.vo.Result;
 import org.apache.commons.lang.StringUtils;
@@ -13,6 +14,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 @Controller
 @RequestMapping("/feishu")
@@ -50,16 +52,27 @@ public class FeishuController {
      */
     @ResponseBody
     @RequestMapping(value = "/getUserListByName")
-    public Result getUserListByName(@RequestBody FeishuUserInfoDto dto, HttpServletRequest request,
-                                    HttpServletResponse response){
-        Result result = new Result();
+    public Result<List<UserInfoDto>> getUserListByName(@RequestBody UserInfoDto dto, HttpServletRequest request,
+                                                             HttpServletResponse response){
+        logger.info("/feishu/getUserListByName 方法开始");
+        Result<List<UserInfoDto>> result = new Result();
         result.setSuccess(true);
 
-        if(StringUtils.isBlank(dto.getName())){
+        //if(StringUtils.isBlank(dto.getName())){
+        //    result.setSuccess(false);
+        //    result.setMessage("名字不能为空");
+        //}
+        try {
+            List<UserInfoDto> userInfoList = corpUserInfoService.getUserListByName(dto.getName());
+            result.setResult(userInfoList);
+        }catch (Exception e){
+            logger.error(e.getMessage());
             result.setSuccess(false);
-            result.setMessage("名字不能为空");
+            result.setMessage("error");
+        }finally {
+            logger.info("/feishu/getUserListByName 方法结束");
         }
-        corpUserInfoService.getUserListByName(dto.getName());
+
         return result;
     }
 

+ 152 - 16
src/main/java/cn/com/ctop/okr/controller/OkrController.java

@@ -1,17 +1,22 @@
 package cn.com.ctop.okr.controller;
 
-import cn.com.ctop.okr.service.CorpUserInfoService;
+import cn.com.ctop.okr.dto.OkrDto;
+import cn.com.ctop.okr.dto.UserInfoDto;
+import cn.com.ctop.okr.entity.OkrTaskInfo;
 import cn.com.ctop.okr.service.OkrService;
-import cn.com.ctop.okr.utils.RedisUtil;
 import cn.com.ctop.okr.vo.Result;
+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;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 import java.util.Map;
 
 @Controller
@@ -19,25 +24,74 @@ import java.util.Map;
 public class OkrController {
     private static Logger logger = Logger.getLogger(OkrController.class);
     @Autowired
-    private RedisUtil redisUtil;
-    @Autowired
     private OkrService okrService;
 
-
     @ResponseBody
-    @RequestMapping(value = "/saveOrUpdateObject")
-    public Result saveOrUpdateObject(HttpServletRequest request,
-                                     HttpServletResponse response){
+    @RequestMapping(value = "/insertTaskInfo")
+    public Result insertTaskInfo(@RequestBody OkrDto dto ,
+                                 HttpServletRequest request,
+                                 HttpServletResponse response){
+
+        logger.info("okr/insertTaskInfo 方法开始");
+        Result result = new Result();
+        result.setSuccess(true);
+
+        OkrTaskInfo taskInfo = dto.getTaskInfo();
+        if(dto == null || dto.getTaskInfo() == null || StringUtils.isBlank(taskInfo.getTaskTitle()) ||
+          taskInfo.getType() == null || taskInfo.getPriority() == null
+        ){
+            result.setSuccess(false);
+            result.setMessage("任务标题、类型、优先级均不可为空");
+        }
+
+        try {
+            okrService.insertTaskInfo(taskInfo);
+        }catch(Exception e){
+            logger.error(e.getMessage());
+            result.setSuccess(false);
+            result.setMessage("error");
+        }finally {
+            logger.info("okr/insertTaskInfo 方法结束");
+        }
+
+        return result;
 
-        return null;
     }
 
     @ResponseBody
-    @RequestMapping(value = "/saveOrUpdateKR")
-    public Result saveOrUpdateKR(HttpServletRequest request,
+    @RequestMapping(value = "/updateTaskInfo")
+    public Result updateTaskInfo(@RequestBody OkrDto dto,
+                                 HttpServletRequest request,
                                  HttpServletResponse response){
 
-        return null;
+        logger.info("okr/updateTaskInfo 方法开始");
+        Result result = new Result();
+        result.setSuccess(true);
+
+        if(dto == null || dto.getTaskInfo() ==null){
+            result.setSuccess(false);
+            result.setMessage("参数为空");
+            return result;
+        }
+
+        OkrTaskInfo taskInfo = dto.getTaskInfo();
+        if(taskInfo.getId() == null || StringUtils.isBlank(taskInfo.getTaskTitle())){
+            result.setSuccess(false);
+            result.setMessage("主键、任务标题均不可为空");
+            return result;
+        }
+
+        try {
+            okrService.updateTaskInfo(taskInfo);
+        }catch(Exception e){
+            logger.error(e.getMessage());
+            result.setSuccess(false);
+            result.setMessage("error");
+        }finally {
+            logger.info("okr/updateTaskInfo 方法结束");
+        }
+
+        return result;
     }
 
 
@@ -46,6 +100,7 @@ public class OkrController {
     public Result saveOrUpdateWeekTask(HttpServletRequest request,
                                        HttpServletResponse response){
 
+
         return null;
     }
 
@@ -73,19 +128,20 @@ public class OkrController {
 
     @ResponseBody
     @RequestMapping(value = "/getOkrInfo")
-    public Result getOkrInfo(HttpServletRequest request,
-                                     HttpServletResponse response){
+    public Result getOkrInfo(@RequestBody UserInfoDto dto,
+                             HttpServletRequest request,
+                             HttpServletResponse response){
         logger.info("okr/getOkrInfo 方法开始");
         Result<Map<String,Object>> result = new Result();
         result.setSuccess(true);
 
         try {
-            Map<String, Object> map = okrService.getOkrInfo();
+            Map<String, Object> map = okrService.getOkrInfo(dto.getUserId());
             result.setResult(map);
         }catch(Exception e){
             logger.error(e.getMessage());
             result.setSuccess(false);
-            result.setMessage("出错");
+            result.setMessage("error");
         }finally {
             logger.info("okr/getOkrInfo 方法结束");
         }
@@ -93,8 +149,88 @@ public class OkrController {
         return result;
     }
 
+    @ResponseBody
+    @RequestMapping(value = "/saveOkrMember")
+    public Result saveOkrMember(@RequestBody UserInfoDto dto,
+                             HttpServletRequest request,
+                             HttpServletResponse response){
+        logger.info("/okr/getOkrInfo 方法开始");
+        Result result = new Result();
+        List<String> userIdList = dto.getUserIdList();
+        if(userIdList == null || userIdList.size() == 0){
+            result.setSuccess(false);
+            result.setMessage("同步人员不能为空");
+            return result;
+        }
 
+        try {
+            okrService.insertOkrMember(userIdList);
+        }catch (Exception e){
+            logger.error(e.getMessage());
+            result.setSuccess(false);
+            result.setMessage("error");
+        }finally{
+            logger.info("/okr/getOkrInfo 方法结束");
+        }
+
+        return result;
+    }
 
+    /**
+     * @param dto
+     * @param request
+     * @param response
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/getMemberListByUserId")
+    public Result<List<UserInfoDto>> getMemberListByUserId(@RequestBody UserInfoDto dto,
+                                HttpServletRequest request,
+                                HttpServletResponse response){
+        logger.info("/okr/getMemberListByUserId 方法开始");
+        Result<List<UserInfoDto>> result = new Result();
+
+        try {
+            List<UserInfoDto> userInfoList = okrService.getMemberListByUserId(dto.getName());
+            result.setResult(userInfoList);
+        }catch (Exception e){
+            logger.error(e.getMessage());
+            result.setSuccess(false);
+            result.setMessage("error");
+        }finally{
+            logger.info("/okr/getMemberListByUserId 方法结束");
+        }
+
+        return result;
+    }
+
+
+    /**
+     * 获取本季度同步给我OKR的同事的列表
+     * @param request
+     * @param response
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/getSyncUserListByMemberId")
+    public Result<List<UserInfoDto>> getSyncUserListByMemberId(HttpServletRequest request,
+                                                           HttpServletResponse response){
+        logger.info("/okr/getSyncUserListByMemberId 方法开始");
+        Result<List<UserInfoDto>> result = new Result();
+
+        try {
+            List<UserInfoDto> userInfoList = okrService.getSyncUserListByMemberId();
+            result.setResult(userInfoList);
+        }catch (Exception e){
+            logger.error(e.getMessage());
+            result.setSuccess(false);
+            result.setMessage("error");
+        }finally{
+            logger.info("/okr/getSyncUserListByMemberId 方法结束");
+        }
+
+        return result;
+    }
 
 
 }

+ 19 - 0
src/main/java/cn/com/ctop/okr/dto/OkrDto.java

@@ -0,0 +1,19 @@
+package cn.com.ctop.okr.dto;
+
+import cn.com.ctop.okr.entity.OkrContentStatus;
+import cn.com.ctop.okr.entity.OkrKrInfo;
+import cn.com.ctop.okr.entity.OkrObjectInfo;
+import cn.com.ctop.okr.entity.OkrTaskInfo;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class OkrDto {
+
+    private OkrContentStatus content;
+    private OkrTaskInfo taskInfo;
+    private OkrObjectInfo objectInfo;
+    private List<OkrKrInfo> krList;
+
+}

+ 15 - 0
src/main/java/cn/com/ctop/okr/dto/UserInfoDto.java

@@ -0,0 +1,15 @@
+package cn.com.ctop.okr.dto;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class UserInfoDto {
+
+    private String userId;
+    private String name;
+    private String departName;
+    private List<String> userIdList;
+
+}

+ 1 - 0
src/main/java/cn/com/ctop/okr/entity/OkrContentStatus.java

@@ -12,6 +12,7 @@ import java.util.Date;
 public class OkrContentStatus {
     @TableId(value = "id",type = IdType.AUTO)
     private Long id;
+    private String userId;
     private Integer quarter;
     private Integer year;
     private String content;

+ 2 - 0
src/main/java/cn/com/ctop/okr/entity/OkrTaskInfo.java

@@ -12,11 +12,13 @@ import java.util.Date;
 public class OkrTaskInfo {
     @TableId(value = "id",type = IdType.AUTO)
     private Long id;
+    private String userId;
     private String taskTitle;
     private String taskInfo;
     private Integer quarter;
     private Integer year;
     private Integer type;
+    private Integer priority;
     private Date createTime;
     private Date updateTime;
 }

+ 3 - 1
src/main/java/cn/com/ctop/okr/mapper/CorpUserInfoMapper.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.okr.mapper;
 
 import cn.com.ctop.okr.dto.FeishuUserInfoDto;
+import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.entity.CorpUserInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
@@ -13,5 +14,6 @@ public interface CorpUserInfoMapper extends BaseMapper<CorpUserInfo> {
 
     void replaceInfoUserInfo(@Param("user")CorpUserInfo userInfo);
 
-    List<FeishuUserInfoDto> getUserListByName(@Param("name")String name);
+    List<UserInfoDto> getUserListByName(@Param("name")String name);
+
 }

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

@@ -11,4 +11,8 @@ public interface OkrContentStatusMapper extends BaseMapper<OkrContentStatus> {
 
     List<OkrContentStatus> getContentStatusList(@Param("userId")String userId, @Param("year")Integer year, @Param("quarter")Integer quarter);
 
+    void insertContentStatus(@Param("content")OkrContentStatus content);
+
+    void updateContentStatus(@Param("content")OkrContentStatus content);
+
 }

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

@@ -10,4 +10,8 @@ import java.util.List;
 public interface OkrKrInfoMapper extends BaseMapper<OkrContentStatus> {
 
     List<OkrKrInfo> getKrByObjectId(@Param("objectId")Long objectId, @Param("userId")String userId, @Param("year")Integer year, @Param("quarter")Integer quarter);
+
+    void updateKrInfo(@Param("kr")OkrKrInfo kr);
+
+    void insertBatchOkrKrInfo(@Param("krList")List<OkrKrInfo> krList, @Param("userId")String userId, @Param("year")Integer year, @Param("quarter")Integer quarter);
 }

+ 10 - 0
src/main/java/cn/com/ctop/okr/mapper/OkrMemberMapper.java

@@ -1,8 +1,18 @@
 package cn.com.ctop.okr.mapper;
 
+import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.entity.OkrContentStatus;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface OkrMemberMapper extends BaseMapper<OkrContentStatus> {
+    void deleteOkrMemberByUserId(@Param("userId")String userId);
+
+    void insertOkrMember(@Param("userId")String userId, @Param("memberList") List<String> memberList, @Param("year")Integer year, @Param("quarter")Integer quarter);
+
+    List<UserInfoDto> getMemberListByUserId(@Param("userId")String userId, @Param("name")String name, @Param("year")Integer year, @Param("quarter")Integer quarter);
 
+    List<UserInfoDto> getSyncUserListByMemberId(@Param("memberId")String memberId, @Param("year")Integer year, @Param("quarter")Integer quarter);
 }

+ 2 - 1
src/main/java/cn/com/ctop/okr/mapper/OkrObjectInfoMapper.java

@@ -1,6 +1,5 @@
 package cn.com.ctop.okr.mapper;
 
-import cn.com.ctop.okr.entity.OkrContentStatus;
 import cn.com.ctop.okr.entity.OkrObjectInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
@@ -10,5 +9,7 @@ import java.util.List;
 public interface OkrObjectInfoMapper extends BaseMapper<OkrObjectInfo> {
    List<OkrObjectInfo> getQuarterObject(@Param("userId")String userId, @Param("year")Integer year, @Param("quarter")Integer quarter);
 
+   void insertObjectInfo(@Param("object")OkrObjectInfo object);
 
+   void updateObjectInfo(@Param("object")OkrObjectInfo object);
 }

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

@@ -9,5 +9,8 @@ import java.util.List;
 public interface OkrTaskInfoMapper extends BaseMapper<OkrTaskInfo> {
     List<OkrTaskInfo> getTaskInfo(@Param("userId")String userId, @Param("year")Integer year, @Param("quarter")Integer quarter, @Param("type")Integer type);
 
+    void insertTaskInfo(@Param("taskInfo")OkrTaskInfo taskInfo);
+
+    void updateTaskInfo(@Param("taskInfo")OkrTaskInfo taskInfo);
 
 }

+ 7 - 7
src/main/java/cn/com/ctop/okr/mapper/xml/CorpUserInfoMapper.xml

@@ -70,17 +70,17 @@
         )
     </insert>
 
-    <select id="getUserListByName" resultType="cn.com.ctop.okr.dto.FeishuUserInfoDto">
+    <select id="getUserListByName" resultType="cn.com.ctop.okr.dto.UserInfoDto">
             select
-            open_id,
-            name
+            open_id as userId,
+            name as name
         from
         feishu_corp_user_info
         where
-        name like concat('%', #{name}, '%');
+        <if test="name != null">
+            name like concat('%', #{name}, '%') and
+        </if>
+         1=1
     </select>
 
-
-
-
 </mapper>

+ 31 - 0
src/main/java/cn/com/ctop/okr/mapper/xml/OkrContentStatusMapper.xml

@@ -15,5 +15,36 @@
         quarter = #{quarter}
     </select>
 
+    <insert id="insertContentStatus">
+        insert into
+        okr_content_status
+            (
+                user_id,
+                year,
+                quarter,
+                content,
+                status
+            )
+        values
+            (
+                #{content.userId},
+                #{content.year},
+                #{content.quarter},
+                #{content.content},
+                #{content.status}
+            )
+    </insert>
+
+    <update id="updateContentStatus">
+        update
+        okr_content_status
+        set
+        content = #{content.content}
+        and
+        status = #{content.status}
+        where
+        id = #{content.id}
+    </update>
+
 
 </mapper>

+ 31 - 0
src/main/java/cn/com/ctop/okr/mapper/xml/OkrKrInfoMapper.xml

@@ -17,4 +17,35 @@
         quarter = #{quarter}
     </select>
 
+    <insert id="insertBatchOkrKrInfo">
+        insert into
+        okr_kr_info
+        (
+            user_id,
+            object_id,
+            kr_info,
+            year,
+            quarter
+        )
+        values
+        <foreach collection="krList" item="kr" separator=",">
+            (
+                #{userId},
+                #{kr.objectId},
+                #{kr.krInfo},
+                #{year},
+                #{quarter}
+            )
+        </foreach>
+    </insert>
+
+    <update id="updateKrInfo">
+        update
+        okr_kr_info
+        set
+        kr_info = #{kr.krInfo}
+        where
+        id = #{kr.id}
+    </update>
+
 </mapper>

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

@@ -2,4 +2,65 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="cn.com.ctop.okr.mapper.OkrMemberMapper">
 
+    <select id="getMemberListByUserId" resultType="cn.com.ctop.okr.dto.UserInfoDto">
+        select
+        a.member_id as userId,
+        b.name as name
+        from
+        okr_member a
+        left join feishu_corp_user_info b on a.member_id = b.open_id
+        where
+        user_id = #{userId}
+        and
+        year = #{year}
+        and quarter = #{quarter}
+        <if test="name">
+            and b.name like concat('%',#{name},'%')
+        </if>
+    </select>
+
+    <delete id="deleteOkrMemberByUserId">
+        delete
+        from
+        okr_member
+        where user_id = #{userId}
+    </delete>
+
+    <insert id="insertOkrMember">
+        insert into
+        okr_member
+        (
+            user_id,
+            member_id,
+            year,
+            quarter
+        )
+        values
+        <foreach collection="memberList" item="memberId" separator=",">
+        (
+            #{userId},
+            #{memberId},
+            #{year},
+            #{quarter}
+        )
+        </foreach>
+    </insert>
+
+    <!-- 获取本季度同步给我OKR的同事的列表 -->
+    <select id="getSyncUserListByMemberId" resultType="cn.com.ctop.okr.dto.UserInfoDto">
+        select
+        a.user_id as userId,
+        b.name as name,
+        d.department_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
+        where
+        a.year = #{year} and
+        a.quarter = #{quarter} and
+        a.member_id = #{memberId}
+    </select>
+
 </mapper>

+ 26 - 0
src/main/java/cn/com/ctop/okr/mapper/xml/OkrObjectInfoMapper.xml

@@ -15,5 +15,31 @@
         quarter = #{quarter}
     </select>
 
+    <insert id="insertObjectInfo">
+        insert into
+        okr_object_info
+        (
+            user_id,
+            object_info,
+            year,
+            quarter
+        )
+        values
+        (
+            #{object.userId},
+            #{object.objectInfo},
+            #{object.year},
+            #{object.quarter}
+        )
+    </insert>
+
+    <update id="updateObjectInfo">
+        update
+        okr_object_info
+        set
+        object_info = #{object.objectInfo}
+        where
+        id = #{object.id}
+    </update>
 
 </mapper>

+ 33 - 12
src/main/java/cn/com/ctop/okr/mapper/xml/OkrTaskInfoMapper.xml

@@ -17,22 +17,43 @@
         type = #{type}
     </select>
 
+    <!-- 增加任务 -->
     <insert id="insertTaskInfo">
         insert into
         okr_task_info
-        (
-        task_title,
-        task_info,
-        year,
-        quarter,
-        )
+            (
+            user_id,
+            task_title,
+            task_info,
+            year,
+            quarter,
+            type,
+            priority
+            )
         values
-        (
-        #{info.taskTitle},
-        #{info.taskInfo},
-        #{info.year},
-        #{info.quarter}
-        )
+            (
+            #{taskInfo.userId},
+            #{taskInfo.taskTitle},
+            #{taskInfo.taskInfo},
+            #{taskInfo.year},
+            #{taskInfo.quarter},
+            #{taskInfo.type},
+            #{taskInfo.priority}
+            )
     </insert>
 
+    <!-- 更新任务 -->
+    <update id="updateTaskInfo">
+        update
+        okr_task_info
+            set
+            task_title = #{taskInfo.taskTitle}
+            ,
+            task_info = #{taskInfo.taskInfo}
+            ,
+            priority = #{taskInfo.priority}
+        where
+        id = #{taskInfo.id}
+    </update>
+
 </mapper>

+ 2 - 1
src/main/java/cn/com/ctop/okr/service/CorpUserInfoService.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.okr.service;
 
 import cn.com.ctop.okr.dto.FeishuUserInfoDto;
+import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.entity.CorpDepartInfo;
 import cn.com.ctop.okr.entity.CorpUserInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -15,6 +16,6 @@ public interface CorpUserInfoService extends IService<CorpUserInfo> {
 
     void loadFeishuDepartAndUserInfo() throws Exception;
 
-    List<FeishuUserInfoDto> getUserListByName(String name);
+    List<UserInfoDto> getUserListByName(String name);
 
 }

+ 15 - 1
src/main/java/cn/com/ctop/okr/service/OkrService.java

@@ -1,8 +1,22 @@
 package cn.com.ctop.okr.service;
 
+import cn.com.ctop.okr.dto.UserInfoDto;
+import cn.com.ctop.okr.entity.OkrTaskInfo;
+
+import java.util.List;
 import java.util.Map;
 
 public interface OkrService{
 
-    Map<String, Object> getOkrInfo();
+    Map<String, Object> getOkrInfo(String userId);
+
+    void insertOkrMember(List<String> memberList);
+
+    List<UserInfoDto> getMemberListByUserId(String name);
+
+    List<UserInfoDto> getSyncUserListByMemberId();
+
+    void insertTaskInfo(OkrTaskInfo taskInfo);
+
+    void updateTaskInfo(OkrTaskInfo taskInfo);
 }

+ 2 - 1
src/main/java/cn/com/ctop/okr/service/impl/CorpUserInfoServiceImpl.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.okr.service.impl;
 
 import cn.com.ctop.okr.dto.FeishuUserInfoDto;
+import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.entity.CorpDepartInfo;
 import cn.com.ctop.okr.entity.CorpUserDepartMap;
 import cn.com.ctop.okr.entity.CorpUserInfo;
@@ -176,7 +177,7 @@ public class CorpUserInfoServiceImpl extends ServiceImpl<CorpUserInfoMapper, Cor
 
     //根据名字模糊查询飞书用户
     @Override
-    public List<FeishuUserInfoDto> getUserListByName(String name){
+    public List<UserInfoDto> getUserListByName(String name){
         return corpUserInfoMapper.getUserListByName(name);
     }
 

+ 99 - 3
src/main/java/cn/com/ctop/okr/service/impl/OkrServiceImpl.java

@@ -1,5 +1,7 @@
 package cn.com.ctop.okr.service.impl;
 
+import cn.com.ctop.okr.dto.OkrDto;
+import cn.com.ctop.okr.dto.UserInfoDto;
 import cn.com.ctop.okr.entity.OkrContentStatus;
 import cn.com.ctop.okr.entity.OkrKrInfo;
 import cn.com.ctop.okr.entity.OkrObjectInfo;
@@ -9,6 +11,7 @@ import cn.com.ctop.okr.service.OkrService;
 import cn.com.ctop.okr.utils.DateUtils;
 import cn.com.ctop.okr.vo.LoginUser;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.crypto.hash.Hash;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,10 +37,12 @@ public class OkrServiceImpl implements OkrService {
     private OkrTaskInfoMapper okrTaskInfoMapper;
 
     @Override
-    public Map<String, Object> getOkrInfo(){
+    public Map<String, Object> getOkrInfo(String userId){
         Map<String, Object> map = new HashMap<>();
-        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        if(StringUtils.isBlank(userId)){
+            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+            userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        }
 
         //季度
         Map<String, Object> timeMap = new HashMap<>();
@@ -75,4 +80,95 @@ public class OkrServiceImpl implements OkrService {
         return map;
     }
 
+
+    @Override
+    public void insertOkrMember(List<String> memberList){
+        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+
+        Integer quarter = DateUtils.getQuarter(new Date());
+        Integer year = DateUtils.getYear(new Date());
+
+        okrMemberMapper.deleteOkrMemberByUserId(userId);
+        okrMemberMapper.insertOkrMember(userId, memberList, year, quarter);
+    }
+
+    @Override
+    public List<UserInfoDto> getMemberListByUserId(String name){
+        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+
+        Integer quarter = DateUtils.getQuarter(new Date());
+        Integer year = DateUtils.getYear(new Date());
+
+        return okrMemberMapper.getMemberListByUserId(userId, name, year, quarter);
+    }
+
+    //保存任务
+    @Override
+    public void insertTaskInfo(OkrTaskInfo taskInfo){
+        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        taskInfo.setUserId(userId);
+        taskInfo.setYear(DateUtils.getYear(new Date()));
+        taskInfo.setQuarter(DateUtils.getQuarter(new Date()));
+        okrTaskInfoMapper.insertTaskInfo(taskInfo);
+    }
+
+    //更新任务
+    @Override
+    public void updateTaskInfo(OkrTaskInfo taskInfo){
+        okrTaskInfoMapper.updateTaskInfo(taskInfo);
+    }
+
+    //保存任务
+    public void insertContentStatus(OkrContentStatus content){
+        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+        content.setUserId(userId);
+        content.setYear(DateUtils.getQuarter(new Date()));
+        content.setQuarter(DateUtils.getYear(new Date()));
+        okrContentStatusMapper.insertContentStatus(content);
+    }
+
+    //更新任务
+    public void updateContentStatus(OkrContentStatus content){
+        okrContentStatusMapper.updateContentStatus(content);
+    }
+
+    //同时保存O和krList
+    public void insertObjectAndKrList(OkrDto okr){
+        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String userId = "ou_03c4826ae66623a53f2af456ff3661a1";
+
+        Integer quarter = DateUtils.getQuarter(new Date());
+        Integer year = DateUtils.getYear(new Date());
+
+        okrObjectInfoMapper.insertObjectInfo(okr.getObjectInfo());
+        okrKrInfoMapper.insertBatchOkrKrInfo(okr.getKrList(),userId, year,quarter);
+    }
+
+    public void updateObject(OkrObjectInfo objectInfo){
+        okrObjectInfoMapper.updateObjectInfo(objectInfo);
+    }
+
+    public void updateKr(OkrKrInfo okrKrInfo){
+        okrKrInfoMapper.updateKrInfo(okrKrInfo);
+    }
+
+    //获取本季度同步给我OKR的同事的列表
+    @Override
+    public List<UserInfoDto> getSyncUserListByMemberId(){
+        //LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        String memberId = "ou_03c4826ae66623a53f2af456ff3661a1";
+
+        Integer quarter = DateUtils.getQuarter(new Date());
+        Integer year = DateUtils.getYear(new Date());
+
+        return okrMemberMapper.getSyncUserListByMemberId(memberId, year, quarter);
+    }
+
+
+
+
 }