青羊经侦大队-数据平台
wl
2022-07-15 2918688dff476da47f17723ad136149f3bde4add
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
package com.example.jz.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.jz.dao.*;
import com.example.jz.modle.PageParam;
import com.example.jz.modle.dto.CauseDto;
import com.example.jz.modle.entity.*;
import com.example.jz.modle.vo.AnnouncementVo;
import com.example.jz.modle.vo.CauseReportVo;
import com.example.jz.modle.vo.CauseVo;
import com.example.jz.modle.vo.UserVo;
import com.example.jz.service.CauseService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
 
/**
 * °¸¼þ±í(Cause)±í·þÎñʵÏÖÀà
 *
 * @author makejava
 * @since 2022-07-13 11:52:58
 */
@Service("causeService")
public class CauseServiceImpl extends ServiceImpl<CauseDao, Cause> implements CauseService {
 
    @Resource
    CauseDao causeDao;
    @Resource
    UserDao userDao;
    @Resource
    ReportDao reportDao;
    @Resource
    CauseService causeService;
    @Resource
    GroupDao groupDao;
 
    @Resource
    AnnouncementDao announcementDao;
 
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Integer addCause(CauseDto causeDto) {
        //´´½¨°¸¼þ
        Cause cause = new Cause();
        BeanUtils.copyProperties(causeDto, cause);
        cause.setCtime(new Date());
        causeService.save(cause);
        //´´½¨Èº×é
        Group group = new Group();
        group.setCtime(new Date());
        group.setGroupName(causeDto.getName());
        group.setUserId(causeDto.getUserId());
        group.setCauseId(cause.getId());
        return groupDao.insert(group);
    }
 
    @Override
    public PageParam<CauseVo> getCauserListByCondition(String cause, Integer status, Integer size, Integer current) {
        QueryWrapper<Cause> causeQueryWrapper = new QueryWrapper<>();
        if (StringUtils.isNotBlank(cause)) {
            causeQueryWrapper.and(a -> a.like(StringUtils.isNotBlank(cause), "number", cause)
                    .or(StringUtils.isNotBlank(cause))
                    .like(StringUtils.isNotBlank(cause), "name", cause));
        }
        if (status != null) {
            causeQueryWrapper.eq("status", status);
        }
        causeQueryWrapper.orderByDesc("ctime");
        PageParam<Cause> causePageParam = new PageParam<>();
        if (size != null) {
            causePageParam.setSize(size);
        }
        if (current != null) {
            causePageParam.setCurrent(current);
        }
        PageParam<Cause> causePage = causeDao.selectPage(causePageParam, causeQueryWrapper);
        List<CauseVo> causeVos = causePage.getRecords().stream().map(
                a -> {
                    CauseVo causeVo = new CauseVo();
                    BeanUtils.copyProperties(a, causeVo);
                    causeVo.setUserName(userDao.selectOne(new QueryWrapper<User>().eq("id", a.getUserId())).getRealName());
                    causeVo.setReportNumber(reportDao.selectCount(new QueryWrapper<Report>().eq("cause_id", a.getId())));
                    causeVo.setGroupId(groupDao.selectOne(new QueryWrapper<Group>().eq("cause_id", a.getId())).getId());
                    return causeVo;
                }).collect(Collectors.toList());
        PageParam<CauseVo> causeVoPageParam = new PageParam<>();
        BeanUtils.copyProperties(causePage, causeVoPageParam);
        causeVoPageParam.setRecords(causeVos);
        return causeVoPageParam;
    }
 
    @Override
    public List<UserVo> getManagerList() {
        return userDao.selectList(new QueryWrapper<User>().eq("role", 1)).stream().map(a -> {
            UserVo userVo = new UserVo();
            userVo.setUserId(a.getId());
            userVo.setUserName(a.getRealName());
            return userVo;
        }).collect(Collectors.toList());
    }
 
    @Override
    public Integer updateCause(CauseDto causeDto, Integer id) {
        Cause cause = new Cause();
        BeanUtils.copyProperties(causeDto, cause);
        cause.setId(id);
        return causeDao.updateById(cause);
    }
 
    @Override
    public List<CauseReportVo> getReporterList(Integer causeId) {
        return reportDao.selectList(new QueryWrapper<Report>().eq("cause_id", causeId)).stream()
                .map(
                        a -> {
                            CauseReportVo causeReportVo = new CauseReportVo();
                            User user = userDao.selectOne(new QueryWrapper<User>().eq("id", a.getUserId()));
                            BeanUtils.copyProperties(a, causeReportVo);
                            causeReportVo.setUserIdcard(user.getUserIdcard());
                            causeReportVo.setUserMobile(user.getUserMobile());
                            causeReportVo.setUserIdcard(causeReportVo.getUserIdcard().replaceAll("(?<=[\\d]{3})\\d(?=[\\d]{4})", "*"));
                            causeReportVo.setUserName(user.getRealName());
                            return causeReportVo;
                        }
                ).collect(Collectors.toList());
    }
 
    @Override
    public List<AnnouncementVo> getGroupAnnouncement(Integer groupId) {
        return announcementDao.selectList(new QueryWrapper<Announcement>().eq("group_id", groupId)).stream()
                .map(
                        a -> {
                            AnnouncementVo announcementVo = new AnnouncementVo();
                            BeanUtils.copyProperties(a, announcementVo);
                            return announcementVo;
                        }
                ).collect(Collectors.toList());
    }
 
    @Override
    public void deleteCause(Integer id) {
         causeDao.deleteById(id);
    }
}