huanghongfa
2020-12-10 f76377ffd111434d90c5aaf5507cd33a982d4aa6
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
package com.panzhihua.service_community.service.impl;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
import com.panzhihua.service_community.dao.ComActMicroWishDAO;
import com.panzhihua.service_community.dao.ComActMicroWishUserDAO;
import com.panzhihua.service_community.model.dos.ComActMicroWishDO;
import com.panzhihua.service_community.model.dos.ComActMicroWishUserDO;
import com.panzhihua.service_community.service.ComActMicroWishService;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
 
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
 
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
 * @description: 微心愿
 * @author: huang.hongfa weixin hhf9596 qq 959656820
 * @create: 2020-12-07 14:34
 **/
@Service
public class ComActMicroWishServiceImpl extends ServiceImpl<ComActMicroWishDAO, ComActMicroWishDO> implements ComActMicroWishService {
    @Resource
    private ComActMicroWishDAO comActMicroWishDAO;
    @Resource
    private ComActMicroWishUserDAO comActMicroWishUserDAO;
 
    /**
     * 分页查询微心愿
     *
     * @param comActMicroWishVO 查询参数
     * @return 心愿列表
     */
    @Override
    public R pageMicroWish(ComActMicroWishVO comActMicroWishVO) {
        Long userId = comActMicroWishVO.getResponsibleId();
        Page page = new Page<>();
        Long pageNum = comActMicroWishVO.getPageNum();
        Long pageSize = comActMicroWishVO.getPageSize();
        if (ObjectUtils.isEmpty(pageNum) || 0 == pageNum) {
            pageNum = 1l;
        }
        if (ObjectUtils.isEmpty(pageSize) || 0 == pageSize) {
            pageSize = 10l;
        }
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<ComActMicroWishVO> iPage = comActMicroWishDAO.pageMicroWish(page, comActMicroWishVO);
        List<ComActMicroWishVO> records = iPage.getRecords();
        if (!ObjectUtils.isEmpty(records)) {
            records.forEach(comActMicroWishVO1 -> {
                Long id = comActMicroWishVO1.getId();
                ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, id).eq(ComActMicroWishUserDO::getUserId, userId));
                if (ObjectUtils.isEmpty(comActMicroWishUserDO)) {
                    comActMicroWishVO1.setHaveGiveThumbsUp(0);
                } else {
                    comActMicroWishVO1.setHaveGiveThumbsUp(1);
                }
            });
            iPage.setRecords(records);
        }
        return R.ok(iPage);
    }
 
    /**
     * 心愿详情
     *
     * @param id 查询主键
     * @param userId 登录用户id
     * @return 心愿内容
     */
    @Override
    public R detailMicroWish(Long id, Long userId) {
        ComActMicroWishVO comActMicroWishVO = comActMicroWishDAO.detailMicroWish(id);
        if (ObjectUtils.isEmpty(comActMicroWishVO)) {
            return R.fail();
        }
        ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getUserId, userId).eq(ComActMicroWishUserDO::getMicroWishId, id));
        if (ObjectUtils.isEmpty(comActMicroWishUserDO)) {
            comActMicroWishVO.setHaveGiveThumbsUp(0);
        }else {
            comActMicroWishVO.setHaveGiveThumbsUp(1);
        }
        return R.ok(comActMicroWishVO);
    }
 
    /**
     * 审核、分配、反馈心愿
     *
     * @param comActMicroWishVO 具体操作
     * @return 操作结果
     */
    @Override
    public R putlMicroWish(ComActMicroWishVO comActMicroWishVO) {
        Long id = comActMicroWishVO.getId();
        Integer type = comActMicroWishVO.getType();
        if (ObjectUtils.isEmpty(type)||type>5||type<1) {
            return R.fail("操作类型不对");
        }
        String rejectReason = comActMicroWishVO.getRejectReason();
        Long responsibleId = comActMicroWishVO.getResponsibleId();
        String feedback = comActMicroWishVO.getFeedback();
        String feedbackPhotoPathList = comActMicroWishVO.getFeedbackPhotoPathList();
        ComActMicroWishDO comActMicroWishDO=new ComActMicroWishDO();
        comActMicroWishDO.setId(id);
//        1 审核通过 2驳回 3分配人员 4发起活动 5反馈
        switch (type){
            case 1:
                comActMicroWishDO.setExamineAt(new Date());
                comActMicroWishDO.setStatus(2);//待分配
                break;
            case 2:
                comActMicroWishDO.setExamineAt(new Date());
                comActMicroWishDO.setRejectReason(rejectReason);
                comActMicroWishDO.setStatus(4);//驳回
                break;
            case 3:
                comActMicroWishDO.setDistributionAt(new Date());
                comActMicroWishDO.setResponsibleId(responsibleId);
                comActMicroWishDO.setStatus(3);//进行中
                comActMicroWishDO.setForm(1);
                break;
            case 4:
                comActMicroWishDO.setDistributionAt(new Date());
                comActMicroWishDO.setResponsibleId(responsibleId);
                comActMicroWishDO.setStatus(3);//进行中
                comActMicroWishDO.setForm(2);
//                todo 给负责人增加一个待办事件
                break;
            case 5:
                comActMicroWishDO.setFeedbackAt(new Date());
                comActMicroWishDO.setStatus(5);//待确认
                comActMicroWishDO.setFeedback(feedback);
                comActMicroWishDO.setFeedbackPhotoPathList(feedbackPhotoPathList);
                break;
            default:
                break;
        }
        int update = comActMicroWishDAO.updateById(comActMicroWishDO);
        if (update>0) {
            return R.ok();
        }
        return R.fail();
    }
 
    /**
     * 点赞/取消点赞微心愿
     *
     * @param comActMicroWishVO 操作参数
     * @return 操作结果
     */
    @Override
    public R comActMicroWishVO(ComActMicroWishVO comActMicroWishVO) {
        Integer haveGiveThumbsUp = comActMicroWishVO.getHaveGiveThumbsUp();
        Long userId = comActMicroWishVO.getSponsorId();
        Long microWishId = comActMicroWishVO.getId();
        ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, microWishId).eq(ComActMicroWishUserDO::getUserId, userId));
        boolean empty = ObjectUtils.isEmpty(comActMicroWishUserDO);
        int num=0;
        if (haveGiveThumbsUp.intValue()==1) {
            if (empty) {
                ComActMicroWishUserDO comActMicroWishUserDO1=new ComActMicroWishUserDO();
                comActMicroWishUserDO1.setMicroWishId(microWishId);
                comActMicroWishUserDO1.setUserId(userId);
                num=comActMicroWishUserDAO.insert(comActMicroWishUserDO1);
            }else{
                return R.ok();
            }
        }else {
            if (empty) {
                return R.ok();
            } else {
                num= comActMicroWishUserDAO.deleteById(comActMicroWishUserDO.getId());
            }
        }
        if (num>0) {
            return R.ok();
        }
        return R.fail();
    }
 
 
}