项目
This commit is contained in:
parent
92e6c2b0a7
commit
de13565551
@ -1,22 +1,69 @@
|
||||
package com.jsl.oa.controllers;
|
||||
|
||||
import com.jsl.oa.model.doData.info.ProjectShowDO;
|
||||
import com.jsl.oa.model.voData.ProjectInfoVO;
|
||||
import com.jsl.oa.model.voData.business.info.CarouselVO;
|
||||
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
|
||||
import com.jsl.oa.services.ProjectService;
|
||||
import com.jsl.oa.utils.BaseResponse;
|
||||
import com.jsl.oa.utils.ErrorCode;
|
||||
import com.jsl.oa.utils.Processing;
|
||||
import com.jsl.oa.utils.ResultUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class ProjectController {
|
||||
|
||||
private final ProjectService projectService;
|
||||
|
||||
@GetMapping("/project/header/get")
|
||||
public BaseResponse projectGetHeader(@RequestParam(required = false) Integer id) {
|
||||
log.info("请求接口[GET]: /project/header/get");
|
||||
return projectService.getHeader(id);
|
||||
}
|
||||
|
||||
@PostMapping("/project/header/add")
|
||||
public BaseResponse projectAddHeader(@RequestBody @Validated ProjectShowVO projectShowVO, HttpServletRequest request, @NotNull BindingResult bindingResult) {
|
||||
log.info("请求接口[POST]: /project/header/add");
|
||||
// 参数校验
|
||||
if (bindingResult.hasErrors()) {
|
||||
log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult));
|
||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||
}
|
||||
return projectService.addHeader(request, projectShowVO);
|
||||
}
|
||||
|
||||
@PutMapping("/project/header/edit")
|
||||
public BaseResponse projectEditHeader(@RequestBody @Validated ProjectShowVO projectShowVO,@RequestParam Integer id,HttpServletRequest request,@NotNull BindingResult bindingResult) {
|
||||
log.info("请求接口[PUT]: /project/header/del");
|
||||
// 参数校验
|
||||
if (bindingResult.hasErrors()) {
|
||||
log.warn("参数校验失败: {}", Processing.getValidatedErrorList(bindingResult));
|
||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||
}
|
||||
if (id == null) {
|
||||
log.warn("参数校验失败: {}", "id不能为空");
|
||||
return ResultUtil.error(ErrorCode.PARAMETER_ERROR, "id不能为空");
|
||||
}
|
||||
return projectService.editHeader(request, projectShowVO, id);
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/project/header/del")
|
||||
public BaseResponse projectDelHeader(@RequestParam Integer id,HttpServletRequest request) {
|
||||
log.info("请求接口[GET]: /project/header/del");
|
||||
return projectService.delHeader(id,request);
|
||||
}
|
||||
|
||||
@PostMapping("/project/add")
|
||||
public BaseResponse projectAdd(@RequestBody @Validated ProjectInfoVO projectAdd, BindingResult bindingResult){
|
||||
// 判断是否有参数错误
|
||||
|
@ -1,11 +1,17 @@
|
||||
package com.jsl.oa.dao;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import com.jsl.oa.mapper.ProjectMapper;
|
||||
import com.jsl.oa.model.doData.ProjectCuttingDO;
|
||||
import com.jsl.oa.model.doData.info.CarouselDO;
|
||||
import com.jsl.oa.model.doData.info.ProjectShowDO;
|
||||
import com.jsl.oa.model.voData.ProjectInfoVO;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.dao.DuplicateKeyException;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
@ -13,6 +19,8 @@ import java.util.List;
|
||||
public class ProjectDAO {
|
||||
|
||||
private final ProjectMapper projectMapper;
|
||||
private final Gson gson;
|
||||
|
||||
public void projectAdd(ProjectInfoVO projectAdd) {
|
||||
projectMapper.projectAdd(projectAdd);
|
||||
|
||||
@ -35,4 +43,47 @@ public class ProjectDAO {
|
||||
public void projectAddUserForCutting(Long uid, Long pid) {
|
||||
projectMapper.projectAddUserInCutting(uid,pid);
|
||||
}
|
||||
|
||||
public ProjectShowDO getHeader() {
|
||||
String getProjectShowSql = projectMapper.getHeader();
|
||||
ProjectShowDO getProjectShow = null;
|
||||
if (!getProjectShowSql.equals("{}")) {
|
||||
getProjectShow = gson.fromJson(getProjectShowSql, ProjectShowDO.class);
|
||||
}
|
||||
if (getProjectShow == null) {
|
||||
// 初始化
|
||||
getProjectShow = new ProjectShowDO();
|
||||
getProjectShow.setOrder("desc");
|
||||
getProjectShow.setData(new ArrayList<>());
|
||||
try {
|
||||
projectMapper.insertProjectShow();
|
||||
} catch (DuplicateKeyException ignored) {
|
||||
}
|
||||
}
|
||||
// 获取排序
|
||||
sortProject(getProjectShow);
|
||||
return getProjectShow;
|
||||
}
|
||||
|
||||
private void sortProject(ProjectShowDO projectShowDO) {
|
||||
for (int i = 0; i < projectShowDO.getData().size(); i++) {
|
||||
for (int j = 0; j < projectShowDO.getData().size(); j++) {
|
||||
if (projectShowDO.getOrder().equals("desc")) {
|
||||
if (projectShowDO.getData().get(i).getDisplayOrder() > projectShowDO.getData().get(j).getDisplayOrder()) {
|
||||
Collections.swap(projectShowDO.getData(), i, j);
|
||||
}
|
||||
} else {
|
||||
if (projectShowDO.getData().get(i).getDisplayOrder() < projectShowDO.getData().get(j).getDisplayOrder()) {
|
||||
Collections.swap(projectShowDO.getData(), i, j);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean setProjectShow(ProjectShowDO projectShowDO) {
|
||||
sortProject(projectShowDO);
|
||||
String setProjectShow = gson.toJson(projectShowDO);
|
||||
return projectMapper.setProjectShow(setProjectShow);
|
||||
}
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ import com.jsl.oa.model.voData.ProjectInfoVO;
|
||||
import org.apache.ibatis.annotations.Insert;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -29,4 +30,13 @@ public interface ProjectMapper {
|
||||
|
||||
@Insert("insert into organize_oa.oa_project_user(uid, pid)value (#{uid},#{pid})")
|
||||
void projectAddUserInCutting(Long uid, Long pid);
|
||||
|
||||
@Select("select data from organize_oa.oa_config where value='project_show'")
|
||||
String getHeader();
|
||||
|
||||
@Insert("insert into organize_oa.oa_config(value, data, created_at)value ('project_show',null,NOW())")
|
||||
void insertProjectShow();
|
||||
|
||||
@Update("UPDATE organize_oa.oa_config SET data = #{setProjectShow} WHERE value = 'project_show'")
|
||||
boolean setProjectShow(String setProjectShow);
|
||||
}
|
||||
|
@ -0,0 +1,25 @@
|
||||
package com.jsl.oa.model.doData.info;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ProjectShowDO {
|
||||
private String order;
|
||||
private List<com.jsl.oa.model.doData.info.ProjectShowDO.DataDO> data;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class DataDO {
|
||||
private Integer displayOrder;
|
||||
private String name;
|
||||
private Long type;
|
||||
private Long status;
|
||||
private Boolean isActive;
|
||||
private String createdAt;
|
||||
private String updatedAt;
|
||||
private String author;
|
||||
}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.jsl.oa.model.voData.business.info;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ProjectShowVO {
|
||||
private Integer displayOrder;
|
||||
private String name;
|
||||
private Long type;
|
||||
private Long status;
|
||||
private Boolean isActive;
|
||||
}
|
@ -1,8 +1,12 @@
|
||||
package com.jsl.oa.services;
|
||||
|
||||
import com.jsl.oa.model.doData.info.ProjectShowDO;
|
||||
import com.jsl.oa.model.voData.ProjectInfoVO;
|
||||
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
|
||||
import com.jsl.oa.utils.BaseResponse;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
public interface ProjectService {
|
||||
BaseResponse projectAdd(ProjectInfoVO projectAdd);
|
||||
|
||||
@ -11,4 +15,12 @@ public interface ProjectService {
|
||||
BaseResponse projectGetUserInCutting(Long uid);
|
||||
|
||||
BaseResponse projectAddUserForCutting(Long uid, Long pid);
|
||||
|
||||
BaseResponse getHeader(Integer id);
|
||||
|
||||
BaseResponse addHeader(HttpServletRequest request, ProjectShowVO projectShowVO);
|
||||
|
||||
BaseResponse delHeader(Integer id, HttpServletRequest request);
|
||||
|
||||
BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id);
|
||||
}
|
||||
|
@ -2,16 +2,27 @@ package com.jsl.oa.services.impl;
|
||||
|
||||
import com.jsl.oa.dao.ProjectDAO;
|
||||
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.UserDO;
|
||||
import com.jsl.oa.model.doData.info.CarouselDO;
|
||||
import com.jsl.oa.model.doData.info.ProjectShowDO;
|
||||
import com.jsl.oa.model.voData.ProjectInfoVO;
|
||||
import com.jsl.oa.model.voData.business.info.ProjectShowVO;
|
||||
import com.jsl.oa.services.ProjectService;
|
||||
import com.jsl.oa.services.UserService;
|
||||
import com.jsl.oa.utils.BaseResponse;
|
||||
import com.jsl.oa.utils.ErrorCode;
|
||||
import com.jsl.oa.utils.Processing;
|
||||
import com.jsl.oa.utils.ResultUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.sql.Timestamp;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@ -20,6 +31,7 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
|
||||
private final ProjectDAO projectDAO;
|
||||
private final UserDAO userDAO;
|
||||
private final RoleMapper roleMapper;
|
||||
|
||||
@Override
|
||||
public BaseResponse projectAdd(ProjectInfoVO projectAdd) {
|
||||
@ -54,4 +66,101 @@ public class ProjectServiceImpl implements ProjectService {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseResponse getHeader(Integer id) {
|
||||
ProjectShowDO projectShowDO = projectDAO.getHeader();
|
||||
if (id != null) {
|
||||
if (id > projectShowDO.getData().size()) {
|
||||
return ResultUtil.error(ErrorCode.ID_NOT_EXIST);
|
||||
}
|
||||
ArrayList<ProjectShowDO.DataDO> newCarouselDO = new ArrayList<>();
|
||||
newCarouselDO.add(projectShowDO.getData().get(id - 1));
|
||||
projectShowDO.setData(newCarouselDO);
|
||||
}
|
||||
return ResultUtil.success(projectShowDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseResponse addHeader(HttpServletRequest request, ProjectShowVO projectShowVO) {
|
||||
// 用户权限校验
|
||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
// 获取用户
|
||||
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||
UserDO userDO = userDAO.getUserById(userId);
|
||||
// 获取展示信息
|
||||
ProjectShowDO projectShowDO = projectDAO.getHeader();
|
||||
// 添加展示
|
||||
ProjectShowDO.DataDO project_show = new ProjectShowDO.DataDO();
|
||||
project_show.setDisplayOrder(projectShowVO.getDisplayOrder())
|
||||
.setName(projectShowVO.getName())
|
||||
.setType(projectShowVO.getType())
|
||||
.setStatus(projectShowVO.getStatus())
|
||||
.setIsActive(projectShowVO.getIsActive())
|
||||
.setAuthor(userDO.getUsername())
|
||||
.setCreatedAt(new Timestamp(System.currentTimeMillis()).toString());
|
||||
projectShowDO.getData().add(project_show);
|
||||
// 保存展示
|
||||
if (projectDAO.setProjectShow(projectShowDO)) {
|
||||
return ResultUtil.success();
|
||||
} else {
|
||||
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseResponse delHeader(Integer id, HttpServletRequest request) {
|
||||
// 用户权限校验
|
||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
// 获取展示信息
|
||||
ProjectShowDO projectShowDO = projectDAO.getHeader();
|
||||
// 删除指定展示id
|
||||
if (id > projectShowDO.getData().size()) {
|
||||
return ResultUtil.error(ErrorCode.ID_NOT_EXIST);
|
||||
}
|
||||
ProjectShowDO.DataDO data = projectShowDO.getData().remove(id - 1);
|
||||
// 保存展示信息
|
||||
if (projectDAO.setProjectShow(projectShowDO)) {
|
||||
return ResultUtil.success(data);
|
||||
} else {
|
||||
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseResponse editHeader(HttpServletRequest request, ProjectShowVO projectShowVO, Integer id) {
|
||||
// 用户权限校验
|
||||
if (!Processing.checkUserIsAdmin(request, roleMapper)) {
|
||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||
}
|
||||
// 获取用户
|
||||
Long userId = Processing.getAuthHeaderToUserId(request);
|
||||
UserDO userDO = userDAO.getUserById(userId);
|
||||
// 获取展示信息
|
||||
ProjectShowDO projectShowDO = projectDAO.getHeader();
|
||||
// 获取指定展示位置
|
||||
if (id > projectShowDO.getData().size()) {
|
||||
return ResultUtil.error(ErrorCode.ID_NOT_EXIST);
|
||||
}
|
||||
ProjectShowDO.DataDO projectShow = projectShowDO.getData().get(id - 1);
|
||||
projectShow.setDisplayOrder(projectShowVO.getDisplayOrder())
|
||||
.setName(projectShowVO.getName())
|
||||
.setType(projectShowVO.getType())
|
||||
.setStatus(projectShowVO.getStatus())
|
||||
.setIsActive(projectShowVO.getIsActive())
|
||||
.setAuthor(userDO.getUsername())
|
||||
.setUpdatedAt(new Timestamp(System.currentTimeMillis()).toString());
|
||||
// 保存展示信息
|
||||
if (projectDAO.setProjectShow(projectShowDO)) {
|
||||
return ResultUtil.success();
|
||||
} else {
|
||||
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ spring:
|
||||
database: 0
|
||||
host: localhost
|
||||
port: 6379
|
||||
password:
|
||||
profiles:
|
||||
active: dev
|
||||
mybatis:
|
||||
|
Loading…
x
Reference in New Issue
Block a user