diff --git a/src/main/java/com/zh/project0512/controller/QYWXController.java b/src/main/java/com/zh/project0512/controller/QYWXController.java index ec233bc..3c32f24 100644 --- a/src/main/java/com/zh/project0512/controller/QYWXController.java +++ b/src/main/java/com/zh/project0512/controller/QYWXController.java @@ -5,8 +5,10 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.zh.project0512.annotation.tokenValid; +import com.zh.project0512.model.QywxDepartmentUserLink; import com.zh.project0512.model.User; import com.zh.project0512.service.IQywxDepartmentService; +import com.zh.project0512.service.IQywxDepartmentUserLinkService; import com.zh.project0512.service.IUserService; import com.zh.project0512.utils.HttpUtil; import com.zh.project0512.utils.JwtUtil; @@ -18,6 +20,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.List; @@ -31,6 +34,8 @@ public class QYWXController { private IQywxDepartmentService qywxDepartmentService; @Autowired private IUserService userService; + @Resource + private IQywxDepartmentUserLinkService qywxDepartmentUserLinkService; @Operation(summary = "刷新企业部门信息") @PostMapping("/departmentRefresh") @@ -57,9 +62,24 @@ public class QYWXController { JSONObject res1 = httpUtil.qywxUser(access_token, userid); Integer main_department = res1.getInteger("main_department"); JSONArray department = res1.getJSONArray("department"); + if (null == userid || null == main_department) { return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION, "获取企业用户信息失败"); } + + //先删除部门-用户关联项 + qywxDepartmentUserLinkService.delete(Integer.valueOf(userid)); + //再添加部门-用户关联项 + if (department != null && department.size() >0){ + for (Object departmentId : department) { + QywxDepartmentUserLink qywxDepartmentUserLink = new QywxDepartmentUserLink(); + qywxDepartmentUserLink.setUserId(Integer.valueOf(userid)); + qywxDepartmentUserLink.setDepartmentId((Integer) departmentId); + qywxDepartmentUserLinkService.insert(qywxDepartmentUserLink); + } + } + + Integer sub_department = main_department; if (sub_department != null && sub_department != 1 && sub_department != 0) { sub_department = httpUtil.qywxDepartmentParentid(access_token, main_department, 0); diff --git a/src/main/java/com/zh/project0512/service/IQywxDepartmentUserLinkService.java b/src/main/java/com/zh/project0512/service/IQywxDepartmentUserLinkService.java new file mode 100644 index 0000000..6fa6ed7 --- /dev/null +++ b/src/main/java/com/zh/project0512/service/IQywxDepartmentUserLinkService.java @@ -0,0 +1,10 @@ +package com.zh.project0512.service; + + +import com.zh.project0512.model.QywxDepartmentUserLink; + +public interface IQywxDepartmentUserLinkService { + int insert(QywxDepartmentUserLink qywxDepartmentUserLink); + + int delete(Integer userId); +} diff --git a/src/main/java/com/zh/project0512/serviceImpl/QywxDepartmentUserLinkServiceImpl.java b/src/main/java/com/zh/project0512/serviceImpl/QywxDepartmentUserLinkServiceImpl.java new file mode 100644 index 0000000..0ee6523 --- /dev/null +++ b/src/main/java/com/zh/project0512/serviceImpl/QywxDepartmentUserLinkServiceImpl.java @@ -0,0 +1,28 @@ +package com.zh.project0512.serviceImpl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.zh.project0512.mapper.QywxDepartmentUserLinkMapper; +import com.zh.project0512.model.QywxDepartmentUserLink; +import com.zh.project0512.service.IQywxDepartmentUserLinkService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class QywxDepartmentUserLinkServiceImpl implements IQywxDepartmentUserLinkService { + @Resource + QywxDepartmentUserLinkMapper qywxDepartmentUserLinkMapper; + + + @Override + public int insert(QywxDepartmentUserLink qywxDepartmentUserLink) { + return qywxDepartmentUserLinkMapper.insert(qywxDepartmentUserLink); + } + + @Override + public int delete(Integer userId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("userId",userId); + return qywxDepartmentUserLinkMapper.delete(queryWrapper); + } +}