98 lines
3.2 KiB
Java
98 lines
3.2 KiB
Java
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.ProjectDO;
|
|
import com.jsl.oa.model.doData.info.ProjectShowDO;
|
|
import com.jsl.oa.model.voData.ProjectInfoVO;
|
|
import com.jsl.oa.utils.BaseResponse;
|
|
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
|
|
@RequiredArgsConstructor
|
|
public class ProjectDAO {
|
|
|
|
private final ProjectMapper projectMapper;
|
|
private final Gson gson;
|
|
|
|
public void projectAdd(ProjectInfoVO projectAdd) {
|
|
projectMapper.projectAdd(projectAdd);
|
|
|
|
}
|
|
|
|
public void projectEdit(ProjectInfoVO projectEdit) {
|
|
projectMapper.projectEdit(projectEdit);
|
|
}
|
|
|
|
public boolean isExistProject(Long id) {
|
|
return projectMapper.getProjectById(id) != null;
|
|
}
|
|
|
|
public List<ProjectCuttingDO> projectGetUserInCutting(Long uid) {
|
|
return projectMapper.projectGetUserInCutting(uid);
|
|
}
|
|
|
|
public void projectAddUserForCutting(Long uid, Long pid) {
|
|
projectMapper.projectAddUserInCutting(uid, pid);
|
|
}
|
|
|
|
public ProjectShowDO getHeader() {
|
|
String getProjectShowSql = projectMapper.getHeader();
|
|
ProjectShowDO getProjectShow = null;
|
|
if (getProjectShowSql != null && !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);
|
|
}
|
|
|
|
public List<ProjectDO> get() {
|
|
|
|
return projectMapper.get();
|
|
}
|
|
|
|
public BaseResponse getByName(String name) {
|
|
return projectMapper.getByName(name);
|
|
}
|
|
}
|