whyczh
2021-07-01 2e0bc686f2100782fa1d331cc98b5f65ba19c206
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.api.R;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.ProjectStatusCountDTO;
import com.whyc.dto.Response;
import com.whyc.mapper.ProjectMapper;
import com.whyc.mapper.UserMapper;
import com.whyc.pojo.Project;
import com.whyc.pojo.User;
import org.springframework.stereotype.Service;
 
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
/**
 * @author 张辉
 * @since 2021/5/14
 */
@Service
public class ProjectService {
    @Resource
    private ProjectMapper mapper;
 
    @Resource
    private UserMapper userMapper;
 
 
    public Response addProject(Project project){
        project.setCreateTime(new Date());
        project.setStatus(0);
        if (mapper.insert(project)>0){
            return new Response().setMsg(1,"添加成功");
        }else {
            return new Response().setMsg(0,"添加失败");
        }
    }
 
    public Response getAll(){
        List<Project> list =  mapper.selectList(null);
        return new Response().set(1,list);
    }
 
    public Response getProjectById(int id){
        Project project = mapper.selectById(id);
        return new Response().set(1,project);
    }
 
    public Response getProjectStatusData(){
        ProjectStatusCountDTO proDto = new ProjectStatusCountDTO();
        proDto.setTotal(mapper.selectCount(null));
        proDto.setCanceled(getCountByStatus(0));
        proDto.setOngoing(getCountByStatus(1));
        proDto.setFinished(getCountByStatus(2));
        proDto.setPostponed(getCountByStatus(3));
 
        return new Response().set(1,proDto);
    }
    public int getCountByStatus(int status){
        QueryWrapper<Project> queryWrapper = new QueryWrapper();
        return mapper.selectCount(queryWrapper.eq("status",status));
    }
 
 
    public Response<PageInfo<Project>> getPageByCondition(int pageNum,int pageSize,Project project){
        PageHelper.startPage(pageNum,pageSize);
        QueryWrapper<Project> queryWrapper = new QueryWrapper<>(project);
        List<Project> list = mapper.selectList(queryWrapper);
        for (Project p:list) {
            String managers = p.getManager();
            if (StringUtils.isNotEmpty(managers)){
                String[] strings = managers.split(",");
                List<String> managerUser = new ArrayList<>();
                for (int i = 0; i < strings.length; i++) {
                    User user = userMapper.selectById(strings[i]);
                    managerUser.add(user.getRealName());
                }
                p.setManagerInfo(managerUser);
            }
            String parters = p.getParter();
            if (StringUtils.isNotEmpty(parters)){
                String[] strings1 = parters.split(",");
                List<String> parterUser = new ArrayList<>();
                for (int i = 0; i < strings1.length; i++) {
                    User user = userMapper.selectById(strings1[i]);
                    parterUser.add(user.getRealName());
                }
                p.setParterInfo(parterUser);
            }
        }
        PageInfo<Project> pageInfo = new PageInfo<>(list);
        return new Response<PageInfo<Project>>().set(1, pageInfo);
    }
 
    public Response updateProject(Project project){
        if (mapper.updateById(project)>0){
            return new Response().setMsg(1,"更新成功");
        }else {
            return new Response().setMsg(0,"更新失败");
        }
    }
 
    public Response deleteProject(int id){
        if (mapper.deleteById(id)>0){
            return new Response().setMsg(1,"删除成功");
        }else {
            return new Response().setMsg(0,"删除失败");
        }
    }
 
 
}