| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package com.ylx.order.controller;
- import cn.hutool.core.collection.CollUtil;
- import cn.hutool.core.util.ObjectUtil;
- import com.ylx.common.core.domain.R;
- import com.ylx.common.core.domain.entity.SysDictData;
- import com.ylx.common.utils.DictUtils;
- import com.ylx.order.domain.dto.AfterSalesServiceDTO;
- import com.ylx.order.domain.vo.RefundCalculationVO;
- import com.ylx.order.domain.vo.RegulationConfigVO;
- import com.ylx.order.enums.AfterSaleServiceDictTypeEnum;
- import com.ylx.order.service.IAfterSalesServiceService;
- import com.ylx.order.service.RegulationService;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.*;
- import javax.annotation.Resource;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- @RestController
- @RequestMapping("/order/after/sale")
- @Api(tags = {"订单售后模块"})
- @Slf4j
- public class AfterSalesServiceController {
- @Resource
- private RegulationService regulationService;
- @Resource
- private IAfterSalesServiceService afterSalesServiceService;
- @PreAuthorize("@customerAuth.isCustomer()")
- @ApiOperation("客户端获取售后原因接口:退款=1, 取消订单=2")
- @GetMapping("/dict/{type}/reason")
- public R<List<String>> getReasonList(@PathVariable("type") Integer type) {
- String dictType = AfterSaleServiceDictTypeEnum.getDictTypeByCode(type);
- if (ObjectUtil.isNull(dictType)) {
- return R.fail("无效的type类型参数");
- }
- List<SysDictData> reasonDictDataList = DictUtils.getSortedDictCache(dictType);
- if (CollUtil.isEmpty(reasonDictDataList)) {
- return R.ok(Collections.emptyList());
- }
- List<String> list = new ArrayList<>(reasonDictDataList.size());
- for (SysDictData data : reasonDictDataList) {
- list.add(data.getDictValue());
- }
- return R.ok(list);
- }
- @PreAuthorize("@customerAuth.isCustomer()")
- @ApiOperation("客户端用户提交退款")
- @PostMapping("/submit")
- public R<?> submitAfterSale(@Validated @RequestBody AfterSalesServiceDTO dto) {
- this.afterSalesServiceService.submitAfterSale(dto);
- return R.ok();
- }
- @PreAuthorize("@customerAuth.isCustomer()")
- @ApiOperation("客户端发起售后计算退款金额")
- @PostMapping("/calculate/refund")
- public R<RefundCalculationVO> calculateRefund(@Validated @RequestBody AfterSalesServiceDTO dto) {
- RefundCalculationVO vo = this.afterSalesServiceService.calculateRefund(dto);
- return R.ok(vo);
- }
- @ApiOperation("根据商户履约状态获取退款描述")
- @GetMapping("/desc/list")
- public R<List<RegulationConfigVO>> getDescList(Integer execStatus) {
- List<RegulationConfigVO> list = this.regulationService.getDescListByExecStatus(execStatus);
- return R.ok(list);
- }
- }
|