cloudroam
2024-12-09 96abc87da07408ef817d9086ea71ba4c287aa474
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
package com.mzl.flower.web.partner;
 
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mzl.flower.base.BaseController;
import com.mzl.flower.base.R;
import com.mzl.flower.base.ReturnDataDTO;
import com.mzl.flower.base.cache.StringCacheClient;
import com.mzl.flower.config.exception.ValidationException;
import com.mzl.flower.constant.Constants;
import com.mzl.flower.dto.request.partner.*;
import com.mzl.flower.dto.response.partner.PartnerDTO;
import com.mzl.flower.entity.system.User;
import com.mzl.flower.service.partner.PartnerService;
import com.mzl.flower.service.system.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
import javax.validation.constraints.NotNull;
 
@RestController
@RequestMapping("/api/partner")
@Api(value = "合伙人管理", tags = "合伙人管理")
@Validated
@Slf4j
public class PartnerController extends BaseController {
 
    private final PartnerService partnerService;
 
    @Autowired
    private StringCacheClient stringCacheClient;
    public static final String SMS_CODE_KEY = "SMS-CODE-KEY";
    public static final String TOKEN_KEY = "TOKEN-KEY";
 
    public static final String SEPARATOR = ":";
 
    public PartnerController(PartnerService partnerService) {
        this.partnerService = partnerService;
    }
 
 
    @PostMapping("/base/update")
    @ApiOperation(value = "合伙人基本信息修改", notes = "合伙人基本信息修改")
    public ResponseEntity<ReturnDataDTO> baseUpdate(@Validated @RequestBody UpdatePartnerBaseDTO dto) {
        partnerService.baseUpdate(dto);
        return returnData(R.SUCCESS.getCode(),null);
    }
 
 
    @PostMapping("/addOrUpdate")
    @ApiOperation(value = "合伙人信息登记、修改", notes = "合伙人信息登记、修改")
    public ResponseEntity<ReturnDataDTO> addOrUpdatePartner(@Validated @RequestBody UpdatePartnerDTO dto) {
        partnerService.addOrUpdatePartner(dto);
        return returnData(R.SUCCESS.getCode(),null);
    }
 
    @GetMapping("/page")
    @ApiOperation(value = "运营端-合伙人分页查询", notes = "运营端-合伙人分页查询")
    public ResponseEntity<ReturnDataDTO<Page<PartnerDTO>>> queryPartner(QueryPartnerDTO dto, Page page) {
        return returnData(R.SUCCESS.getCode(),partnerService.queryPartner(dto,page));
    }
 
    @GetMapping("/page/view")
    @ApiOperation(value = "合伙人详情", notes = "合伙人详情")
    public ResponseEntity<ReturnDataDTO<PartnerDTO>> findPartnerDetail(@NotNull(message = "id不能为空") Long id) {
        return returnData(R.SUCCESS.getCode(),partnerService.findPartnerDetail(id));
    }
 
    @PostMapping("/page/audit")
    @ApiOperation(value = "运营端-合伙人审核", notes = "运营端-合伙人审核")
    public ResponseEntity<ReturnDataDTO> auditPartner(@Validated @RequestBody AuditPartnerDTO dto) {
        partnerService.auditPartner(dto);
        return returnData(R.SUCCESS.getCode(),null);
    }
 
 
    @PostMapping("/page/change/area")
    @ApiOperation(value = "运营端-修改服务区域", notes = "运营端-修改服务区域")
    public ResponseEntity<ReturnDataDTO> changePartnerArea(@Validated @RequestBody ChangePartnerAreaDTO dto) {
        partnerService.changePartnerArea(dto);
        return returnData(R.SUCCESS.getCode(),null);
    }
 
    @PostMapping("/page/upload/code")
    @ApiOperation(value = "运营端-下载小程序二维码", notes = "运营端-下载小程序二维码")
    public ResponseEntity<ReturnDataDTO> generateCodeDTO(@Validated @RequestBody GenerateCodeDTO dto) {
        return returnData(R.SUCCESS.getCode(),partnerService.generateCodeDTO(dto));
    }
 
    @PostMapping("/page/extend/code")
    @ApiOperation(value = "运营端-上传合伙人推广码", notes = "运营端-上传合伙人推广码")
    public ResponseEntity<ReturnDataDTO> uploadCodeDTO(@Validated @RequestBody UploadCodeDTO dto) {
        partnerService.uploadCodeDTO(dto);
        return returnData(R.SUCCESS.getCode(),null);
    }
 
    @GetMapping("/page/isEnable")
    @ApiOperation(value = "启用/禁用", notes = "启用/禁用商品")
    public ResponseEntity<ReturnDataDTO<String>> isEnable(@NotNull(message = "id不能为空") Long id) {
        partnerService.isEnable(id);
        return returnData(R.SUCCESS.getCode(),null);
    }
 
 
    @PostMapping("/phone/update")
    @ApiOperation(value = "合伙人注册手机号修改", notes = "合伙人注册手机号修改")
    public ResponseEntity<ReturnDataDTO> phoneUpdate(@Validated @RequestBody UpdatePhoneDTO dto) {
        // TODO
        String tel = dto.getUsername();
        String smsCode = dto.getSmsCode();
        if (StringUtils.isBlank(tel)) {
            throw new ValidationException("手机号码不能为空");
        }
        if (StringUtils.isBlank(smsCode)) {
            throw new ValidationException("手机验证码不能为空");
        }
        //从缓存中获取验证码
        String smsCacheCode = stringCacheClient.get(SMS_CODE_KEY + SEPARATOR + Constants.USER_TYPE.admin.name() + SEPARATOR + tel);
        if (!StringUtils.equals(smsCode, smsCacheCode)) {
            throw new ValidationException("手机验证码不正确");
        }
 
        partnerService.phoneUpdate(dto);
        return returnData(R.SUCCESS.getCode(),null);
    }
 
}