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
package com.panzhihua.applets.api;
 
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
 
import javax.annotation.Resource;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
 
import org.hibernate.validator.constraints.Length;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
import com.panzhihua.common.constants.HttpStatus;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseDonatesDTO;
import com.panzhihua.common.model.dtos.community.warehouse.PageDonatesDTO;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseDonatesVO;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.validated.AddGroup;
import com.panzhihua.common.validated.PutGroup;
 
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
 
/**
 * @title: ComActWarehouseApi
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
 * @description: 爱心义仓捐赠小程序相关接口
 * @author: hans
 * @date: 2021/10/11 15:45
 */
 
@Slf4j
@Api(tags = {"爱心义仓捐赠相关"})
@RestController
@RequestMapping("/warehouse/donates")
public class ComActWarehouseDonatesApi extends BaseController {
 
    @Resource
    private CommunityService communityService;
 
    @ApiOperation(value = "分页查询捐赠物品", response = ComActWarehouseDonatesVO.class)
    @PostMapping("/page")
    public R pageDonates(@RequestBody PageDonatesDTO pageDonatesDTO) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfoSureNoLogin();
        Integer isWhich = pageDonatesDTO.getIsWhich();
        if (isNull(isWhich)) {
            return R.fail("缺少isWhich参数");
        }
        if (isNull(pageDonatesDTO.getCommunityId())) {
            return R.fail("社区id不能为空");
        }
        if (isNull(loginUserInfo) && isWhich.intValue() != 3) {
            return R.fail(HttpStatus.UNAUTHORIZED,  "未登录");
        }
        if (isWhich.intValue() == 2 && loginUserInfo.getIsCommunityWorker().intValue() != 1) {
            return R.fail("非社区工作人员");
        }
        if (nonNull(loginUserInfo)) {
            pageDonatesDTO.setUserId(loginUserInfo.getUserId());
        }
        return communityService.pageDonates(pageDonatesDTO);
    }
 
    @ApiOperation(value = "新增物品捐赠")
    @PostMapping("/add")
    public R addDonates(@RequestBody @Validated(AddGroup.class) ComActWarehouseDonatesDTO comActWarehouseDonatesDTO) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        Long userId = loginUserInfo.getUserId();
        comActWarehouseDonatesDTO.setCommunityId(loginUserInfo.getCommunityId());
        comActWarehouseDonatesDTO.setRegisterBy(userId);
        comActWarehouseDonatesDTO.setUserId(userId);
        comActWarehouseDonatesDTO.setName(loginUserInfo.getName());
        comActWarehouseDonatesDTO.setPhone(loginUserInfo.getPhone());
        return communityService.addDonates(comActWarehouseDonatesDTO);
    }
 
    @ApiOperation(value = "查看物品捐赠详情", response = ComActWarehouseDonatesVO.class)
    @ApiImplicitParam(name = "isWhich", value = "1.个人中心捐赠详情 2.捐赠物品管理详情 3.爱心义仓捐赠列表详情", required = true)
    @GetMapping("/get")
    public R getDonates(@RequestParam("donatesId") Long donatesId, @RequestParam("isWhich") Integer isWhich) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfoSureNoLogin();
        if (isNull(isWhich)) {
            return R.fail("缺少isWhich参数");
        }
        if (isNull(loginUserInfo) && isWhich.intValue() != 3) {
            return R.fail(HttpStatus.UNAUTHORIZED,  "未登录");
        }
        if (isWhich.intValue() == 2 && loginUserInfo.getIsCommunityWorker().intValue() != 1) {
            return R.fail("非社区工作人员");
        }
        Long userId = 0L;
        if (nonNull(loginUserInfo)) {
            userId = loginUserInfo.getUserId();
        }
        return communityService.getDonates(donatesId, isWhich, userId);
    }
 
    @ApiOperation(value = "捐赠物品签收")
    @PostMapping("/signing")
    public R signingDonates(@RequestBody @Validated(PutGroup.class) ComActWarehouseDonatesDTO comActWarehouseDonatesDTO) {
        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
        Integer isCommunityWorker = loginUserInfo.getIsCommunityWorker();
        if (isCommunityWorker.intValue() == 2) {
            return R.fail("非社区工作人员");
        }
        comActWarehouseDonatesDTO.setSigningBy(loginUserInfo.getUserId());
        return communityService.signingDonates(comActWarehouseDonatesDTO);
    }
 
    @ApiOperation(value = "用户取消捐赠")
    @GetMapping("/cancel")
    public R cancelDonates(@RequestParam("donatesId") Long donatesId) {
        return communityService.cancelDonates(donatesId, getUserId());
    }
}