| 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); | 
|     } | 
|   | 
| } |