项目查询优化标签查询
Some checks failed
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit

This commit is contained in:
176yunxuan 2024-03-11 09:26:50 +08:00
parent 2494fb38b6
commit 0062854702
6 changed files with 25 additions and 14 deletions

View File

@ -44,9 +44,11 @@ public class ProjectController {
* @return * @return
*/ */
@GetMapping("/project/get") @GetMapping("/project/get")
public BaseResponse projectGet(@RequestParam(required = false) Integer listAll,HttpServletRequest request) { public BaseResponse projectGet(@RequestParam(required = false) Integer listAll,
@RequestParam(required = false) String tags,
HttpServletRequest request) {
log.info("请求接口[GET]: /project/get"); log.info("请求接口[GET]: /project/get");
return projectService.get(listAll,request); return projectService.get(listAll,request,tags);
} }
/** /**

View File

@ -105,9 +105,12 @@ public class ProjectDAO {
return projectMapper.setProjectShow(setProjectShow); return projectMapper.setProjectShow(setProjectShow);
} }
public List<ProjectDO> get(Long userId,Integer listAll) { public List<ProjectDO> get(Long userId,Integer listAll,String tags) {
log.info("\t> 执行 DAO 层 ProjectDAO.get 方法"); log.info("\t> 执行 DAO 层 ProjectDAO.get 方法");
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
if(tags != null){
return projectMapper.getByTags(tags);
}
if(listAll == 0) { if(listAll == 0) {
return projectMapper.get(userId); return projectMapper.get(userId);
}else { }else {

View File

@ -40,6 +40,10 @@ public interface ProjectMapper {
@Update("UPDATE organize_oa.oa_config SET data = #{setProjectShow}, updated_at = CURRENT_TIMESTAMP WHERE value = 'project_show'") @Update("UPDATE organize_oa.oa_config SET data = #{setProjectShow}, updated_at = CURRENT_TIMESTAMP WHERE value = 'project_show'")
boolean setProjectShow(String setProjectShow); boolean setProjectShow(String setProjectShow);
@Select("select * from organize_oa.oa_project where json_extract(tags,'$.tags')" +
"like concat('%',#{tags},'%')")
List<ProjectDO>getByTags(String tags);
@Select("select * from organize_oa.oa_project where is_delete=false and status =1") @Select("select * from organize_oa.oa_project where is_delete=false and status =1")
List<ProjectDO> get(Long userId); List<ProjectDO> get(Long userId);

View File

@ -12,17 +12,12 @@ public class ProjectInfoVO {
private Long id; private Long id;
@NotNull(message = "负责人id不能为空") @NotNull(message = "负责人id不能为空")
private Long principalId; private Long principalId;
@NotBlank(message = "项目名不能为空") @NotBlank(message = "项目名不能为空")
private String name; private String name;
private String description; private String description;
@NotNull(message = "周期不能为空") @NotNull(message = "周期不能为空")
private Long cycle; private Long cycle;
private String file; private String file;
private Timestamp completeTime; private Timestamp completeTime;
private Timestamp deadline; private Timestamp deadline;
private Integer status; private Integer status;

View File

@ -25,7 +25,7 @@ public interface ProjectService {
BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id); BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id);
BaseResponse get(Integer listAll,HttpServletRequest request); BaseResponse get(Integer listAll,HttpServletRequest request,String tags);
BaseResponse getByName(String name); BaseResponse getByName(String name);

View File

@ -4,6 +4,7 @@ import com.jsl.oa.annotations.CheckUserHasPermission;
import com.jsl.oa.dao.ProjectDAO; import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.RoleDAO; import com.jsl.oa.dao.RoleDAO;
import com.jsl.oa.dao.UserDAO; import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.doData.ProjectCuttingDO; import com.jsl.oa.model.doData.ProjectCuttingDO;
import com.jsl.oa.model.doData.ProjectDO; import com.jsl.oa.model.doData.ProjectDO;
import com.jsl.oa.model.doData.UserDO; import com.jsl.oa.model.doData.UserDO;
@ -42,7 +43,7 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class ProjectServiceImpl implements ProjectService { public class ProjectServiceImpl implements ProjectService {
private final RoleDAO roleDAO; private final RoleMapper roleMapper;
private final ProjectDAO projectDAO; private final ProjectDAO projectDAO;
private final UserDAO userDAO; private final UserDAO userDAO;
@ -183,16 +184,22 @@ public class ProjectServiceImpl implements ProjectService {
} }
@Override @Override
public BaseResponse get(Integer listAll,HttpServletRequest request) { public BaseResponse get(Integer listAll,HttpServletRequest request,String tags) {
log.info("\t> 执行 Service 层 ProjectService.get 方法"); log.info("\t> 执行 Service 层 ProjectService.get 方法");
//获取用户 //获取用户
Long userId= Processing.getAuthHeaderToUserId(request); Long userId= Processing.getAuthHeaderToUserId(request);
//根据标签查询
if(tags != null){
List<ProjectDO> projectDOList = projectDAO.get(userId,listAll,tags);
return ResultUtil.success(projectDOList);
}
//判断是否是老师(项目负责人) //判断是否是老师(项目负责人)
if(Processing.checkUserIsTeacher(request,roleDAO.roleMapper)){ if(listAll != null && Processing.checkUserIsAdmin(request,roleMapper)){
List<ProjectDO> projectDOList = projectDAO.get(userId,listAll); List<ProjectDO> projectDOList = projectDAO.get(userId,listAll,tags);
return ResultUtil.success(projectDOList); return ResultUtil.success(projectDOList);
}else { }else {
List<ProjectDO> projectDOList = projectDAO.get(userId,0); List<ProjectDO> projectDOList = projectDAO.get(userId,0,tags);
return ResultUtil.success(projectDOList); return ResultUtil.success(projectDOList);
} }