mitao
2025-02-21 31573d6180d15ef65ed0df9c2732495f40b12663
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
package com.panzhihua.grid_app.api;
 
import javax.annotation.Resource;
 
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.grid.*;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
import com.panzhihua.common.service.grid.GridService;
import com.panzhihua.common.utlis.ClazzUtils;
import com.panzhihua.common.utlis.IdCardUtil;
 
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
 
/**
 *
 * @author cedoo email:cedoo(a)qq.com
 * @version 1.0
 * @since 1.0
 * @date 2021-05-26
 */
@Slf4j
@RestController
@RequestMapping("/event/special")
@Api(tags = {"特殊人群上报(开发中..) @chendong"})
public class SpecialPopulationEventApi extends BaseController {
 
    @Resource
    private GridService gridService;
 
    /**
     * 添加特殊人群
     * 
     * @param specialEventAddDTO
     *            特殊人群信息
     * @return 查找结果
     */
    @PostMapping()
    @ApiOperation(value = "发布特殊人群事件", response = R.class)
    R addSpecial(@Validated @RequestBody SpecialEventAddDTO specialEventAddDTO) {
        ClazzUtils.setIfStringIsEmpty(specialEventAddDTO);
        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
        specialEventAddDTO.setUserId(loginUserInfoVO.getUserId());
        specialEventAddDTO.setUserName(loginUserInfoVO.getName());
        specialEventAddDTO.setPhone(loginUserInfoVO.getPhone());
        return gridService.addSpecial(specialEventAddDTO);
    }
 
    /**
     * 保存特殊人群草稿
     * 
     * @param specialEventEditDTO
     *            保存草稿传递对象
     * @return 新增结果
     */
    @PostMapping("/draft")
    @ApiOperation(value = "保存特殊人群事件草稿", response = R.class)
    R saveSpecialDraft(@Validated @RequestBody SpecialEventEditDTO specialEventEditDTO) {
        ClazzUtils.setIfStringIsEmpty(specialEventEditDTO);
        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
        specialEventEditDTO.setUserId(loginUserInfoVO.getUserId());
        specialEventEditDTO.setUserName(loginUserInfoVO.getNickName());
        specialEventEditDTO.setPhone(loginUserInfoVO.getPhone());
        return gridService.saveSpecialDraft(specialEventEditDTO);
    }
 
    @GetMapping("/{idCard}")
    @ApiOperation(value = "查询特殊人群信息", response = ComMngPopulationVO.class)
    R getSpecialByIdCard(@PathVariable String idCard) {
        if (idCard != null) {
            boolean verified = IdCardUtil.strongVerifyIdNumber(idCard);
            if (!verified) {
                return R.fail("身份证格式错误");
            }
            return gridService.getSpecialPopulation(idCard);
        }
        return R.fail();
    }
 
    /**
     * 上报社区
     * 
     * @param commonEventReportDTO
     *            上报社区传递对象
     * @return 上报结果
     */
    @PutMapping("/report")
    @ApiOperation(value = "上报社区", response = R.class)
    R report(@Validated @RequestBody CommonEventReportDTO commonEventReportDTO) {
        LoginUserInfoVO loginUserInfoVO = getLoginUserInfo();
        ClazzUtils.setIfStringIsEmpty(commonEventReportDTO);
        commonEventReportDTO.setUserId(loginUserInfoVO.getUserId());
        commonEventReportDTO.setUserName(loginUserInfoVO.getNickName());
        commonEventReportDTO.setCommunityId(loginUserInfoVO.getCommunityId());
        return gridService.report(commonEventReportDTO);
    }
 
    /**
     * 处理事件
     * 
     * @param commonEventDealDTO
     *            修改事件传递对象
     * @return 处理结果
     */
    @PutMapping("/deal")
    @ApiOperation(value = "处理事件", response = R.class)
    R deal(@Validated @RequestBody CommonEventDealDTO commonEventDealDTO) {
        ClazzUtils.setIfStringIsEmpty(commonEventDealDTO);
        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
        commonEventDealDTO.setUserId(loginUserInfoVO.getUserId());
        commonEventDealDTO.setUserName(loginUserInfoVO.getNickName());
        commonEventDealDTO.setCommunityId(loginUserInfoVO.getCommunityId());
        commonEventDealDTO.setCommunityName(loginUserInfoVO.getCommunityName());
        return gridService.dealEvent(commonEventDealDTO);
    }
 
    /**
     * 验证事件
     * 
     * @param commonEventVerifyDTO
     *            验证事件传递对象
     * @return 验证结果
     */
    @PutMapping("/verify")
    @ApiOperation(value = "验证事件", response = R.class)
    R verify(@Validated @RequestBody CommonEventVerifyDTO commonEventVerifyDTO) {
        ClazzUtils.setIfStringIsEmpty(commonEventVerifyDTO);
        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
        commonEventVerifyDTO.setUserId(loginUserInfoVO.getUserId());
        commonEventVerifyDTO.setUserName(loginUserInfoVO.getNickName());
        return gridService.verifyEvent(commonEventVerifyDTO);
    }
 
    /**
     * 直接上报社区
     * 
     * @param commonEventDirectReportDTO
     *            上报社区传递对象
     * @return 上报结果
     */
    @PostMapping("/reportDirect")
    @ApiOperation(value = "直接上报社区", response = R.class)
    R reportDirect(@Validated @RequestBody CommonEventDirectReportDTO commonEventDirectReportDTO) {
        LoginUserInfoVO loginUserInfoVO = getLoginUserInfo();
        ClazzUtils.setIfStringIsEmpty(commonEventDirectReportDTO);
        commonEventDirectReportDTO.setUserId(loginUserInfoVO.getUserId());
        commonEventDirectReportDTO.setUserName(loginUserInfoVO.getNickName());
        commonEventDirectReportDTO.setCommunityId(loginUserInfoVO.getCommunityId());
        return gridService.reportDirect(commonEventDirectReportDTO);
    }
 
}