退款列表、部分接口修改

This commit is contained in:
2024-12-19 10:35:25 +08:00
parent 19e9d547fa
commit eaf16c48c4
16 changed files with 211 additions and 70 deletions

View File

@ -0,0 +1,65 @@
package com.ycwl.basic.controller.pc;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.model.mobile.order.RefundOrderReq;
import com.ycwl.basic.model.pc.order.entity.OrderEntity;
import com.ycwl.basic.model.pc.order.req.OrderReqQuery;
import com.ycwl.basic.model.pc.order.resp.OrderRespVO;
import com.ycwl.basic.service.pc.OrderService;
import com.ycwl.basic.utils.ApiResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import java.util.List;
/**
* @Authorlongbinbin
* @Date2024/12/3 13:49
*/
@RestController
@RequestMapping("/api/refund/v1")
@Api(tags = "退款订单管理")
public class RefundController {
@Autowired
private OrderService orderService;
@ApiOperation(value = "审核退款", notes = "审核退款")
@PostMapping("/auditRefundOrder")
public ApiResponse<?> auditRefundOrder(@RequestBody RefundOrderReq refundOrderReq) {
return orderService.auditRefundOrder(refundOrderReq);
}
@ApiOperation("分页查询订单")
@PostMapping("page")
public ApiResponse<PageInfo<OrderRespVO>> pageQuery(@RequestBody OrderReqQuery query) {
return orderService.refundPageQuery(query);
}
@ApiOperation("订单列表查询")
@PostMapping("list")
public ApiResponse<List<OrderRespVO>> list(@RequestBody OrderReqQuery query) {
return orderService.list(query);
}
@ApiOperation("订单详情查询")
@GetMapping("detail/{id}")
public ApiResponse<OrderRespVO> detail(@PathVariable("id") Long orderId) {
return orderService.detail(orderId);
}
@ApiOperation("订单备注")
@PostMapping("remark/{id}")
public ApiResponse<?> updateRemark(@PathVariable("id") Long orderId, @RequestBody OrderEntity query) {
orderService.remarkOrder(orderId, query);
return ApiResponse.success(null);
}
}

View File

@ -36,4 +36,6 @@ public interface OrderMapper {
List<OrderAppRespVO> appList(OrderAppPageReq orderReqQuery);
OrderAppRespVO appDetail(Long id);
List<OrderRespVO> refundList(OrderReqQuery query);
}

View File

@ -1,10 +1,12 @@
package com.ycwl.basic.mapper;
import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO;
import com.ycwl.basic.model.pc.template.entity.TemplateConfigEntity;
import com.ycwl.basic.model.pc.template.entity.TemplateEntity;
import com.ycwl.basic.model.pc.template.req.TemplateReqQuery;
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -30,4 +32,6 @@ public interface TemplateMapper {
int deleteConfigByTemplateId(Long templateId);
int deleteConfigById(Long id);
List<TemplateEntity> listByScenicId(Long scenicId);
List<ContentPageVO> listFor(@Param("scenicId") Long scenicId, @Param("faceId") Long faceId);
}

View File

@ -45,4 +45,5 @@ public class VideoGoodsDetailVO {
private Integer isBuy;
@ApiModelProperty("镜头数")
private Integer lensNum;
private Long faceId;
}

View File

@ -15,20 +15,18 @@ import java.math.BigDecimal;
public class ContentPageVO {
@ApiModelProperty("内容名称")
private String name;
// @ApiModelProperty("景区id")
// private Long scenicId;
// @ApiModelProperty("景区名称")
// private String scenicName;
// @ApiModelProperty("经度")
// private BigDecimal longitude;
// @ApiModelProperty("纬度")
// private BigDecimal latitude;
@ApiModelProperty("景区id")
private Long scenicId;
@ApiModelProperty("景区名称")
private String scenicName;
@ApiModelProperty("内容类型 0模版 1:成片视频 2:源素材 ")
private Integer contentType;
@ApiModelProperty("源素材类型 1:视频 2:图片")
private Integer sourceType;
@ApiModelProperty("内容id contentType为0或1时才有值")
private Long contentId;
@ApiModelProperty("模版id")
private Long templateId;
@ApiModelProperty("模版封面图片 contentType为0或1时才有值")
private String templateCoverUrl;
@ApiModelProperty("是否购买0未购买1已购买")

View File

@ -22,6 +22,7 @@ public class TaskRespVO {
*/
@ApiModelProperty("执行任务的机器ID")
private Long workerId;
private Long faceId;
/**
* 用户ID可以不和用户关联
*/

View File

@ -84,4 +84,6 @@ public class TemplateRespVO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
private List<TemplateRespVO> children;
private BigDecimal price;
private Integer sort;
}

View File

@ -133,46 +133,29 @@ public class AppScenicServiceImpl implements AppScenicService {
@Override
public ApiResponse<List<ContentPageVO>> contentList(Long faceId) {
JwtInfo worker = JwtTokenUtil.getWorker();
//查询原素材
List<ContentPageVO> contentList = new ArrayList<>();
FaceRespVO faceRespVO = faceMapper.getById(faceId);
if (StringUtils.isBlank(faceRespVO.getMatchSampleIds())) {
return ApiResponse.success(new ArrayList<>());
}
HashMap<Long, String> videoMap = new HashMap<>();
VideoReqQuery videoReqQuery = new VideoReqQuery();
videoReqQuery.setFaceId(faceId);
videoReqQuery.setMemberId(worker.getUserId());
//查询成片vlog
List<VideoRespVO> videoList = videoMapper.list(videoReqQuery);
videoList.forEach(videoRespVO -> {
ContentPageVO contentPageVO = new ContentPageVO();
contentPageVO.setName(videoRespVO.getTemplateName());
contentPageVO.setContentType(1);
contentPageVO.setContentId(videoRespVO.getId());
contentPageVO.setTemplateCoverUrl(videoRespVO.getTemplateCoverUrl());
contentPageVO.setIsBuy(videoRespVO.getIsBuy());
contentList.add(contentPageVO);
videoMap.put(videoRespVO.getTemplateId(),"");
});
TemplateReqQuery templateReqQuery = new TemplateReqQuery();
templateReqQuery.setScenicId(faceRespVO.getScenicId());
List<TemplateRespVO> list = templateMapper.list(templateReqQuery);
list.forEach(templateRespVO -> {
Long templateId = templateRespVO.getId();
if (!videoMap.containsKey(templateId)) {
ContentPageVO contentPageVO = new ContentPageVO();
contentPageVO.setName(templateRespVO.getName());
contentPageVO.setContentType(0);
contentPageVO.setContentId(templateId);
contentPageVO.setTemplateCoverUrl(templateRespVO.getCoverUrl());
contentList.add(contentPageVO);
List<ContentPageVO> contentList = templateMapper.listFor(faceRespVO.getScenicId(), faceId);
contentList.forEach(contentPageVO -> {
if (contentPageVO.getContentType() == 1) {
VideoReqQuery videoReqQuery = new VideoReqQuery();
videoReqQuery.setScenicId(contentPageVO.getScenicId());
videoReqQuery.setTemplateId(contentPageVO.getTemplateId());
videoReqQuery.setMemberId(worker.getUserId());
List<VideoRespVO> videoList = videoMapper.list(videoReqQuery);
if (!videoList.isEmpty()) {
contentPageVO.setContentId(videoList.get(0).getId());
}
}
});
SourceReqQuery sourceReqQuery = new SourceReqQuery();
videoReqQuery.setScenicId(faceRespVO.getScenicId());
videoReqQuery.setMemberId(worker.getUserId());
sourceReqQuery.setScenicId(faceRespVO.getScenicId());
sourceReqQuery.setMemberId(worker.getUserId());
//查询源素材
List<SourceRespVO> sourceList = sourceMapper.listGroupByType(sourceReqQuery);
sourceList.forEach(sourceRespVO -> {

View File

@ -1,5 +1,7 @@
package com.ycwl.basic.service.impl.mobile;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.mapper.*;
import com.ycwl.basic.model.jwt.JwtInfo;
@ -10,12 +12,14 @@ import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
import com.ycwl.basic.model.pc.source.resp.SourceRespVO;
import com.ycwl.basic.model.pc.task.req.TaskReqQuery;
import com.ycwl.basic.model.pc.task.resp.TaskRespVO;
import com.ycwl.basic.model.pc.video.req.VideoReqQuery;
import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
import com.ycwl.basic.service.mobile.GoodsService;
import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.DateUtils;
import com.ycwl.basic.utils.JwtTokenUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -23,6 +27,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
@ -197,8 +202,16 @@ public class GoodsServiceImpl implements GoodsService {
DecimalFormat df = new DecimalFormat("0.00");
goodsDetailVO.setPrice(templatePrice==null?"":df.format(templatePrice.setScale(2, RoundingMode.HALF_UP)));
goodsDetailVO.setIsBuy(videoRespVO.getIsBuy());
ScenicDeviceCountVO scenicDeviceCountVO = deviceMapper.deviceCountByScenicId(videoRespVO.getScenicId(), -1L);
goodsDetailVO.setLensNum(scenicDeviceCountVO.getTotalDeviceCount());
TaskRespVO taskRespVO = taskMapper.getById(videoRespVO.getTaskId());
JSONObject paramJson = JSON.parseObject(taskRespVO.getTaskParams());
long deviceCount;
if (paramJson == null) {
deviceCount = 1;
} else {
deviceCount = paramJson.keySet().stream().filter(StringUtils::isNumeric).count();
}
goodsDetailVO.setLensNum((int) deviceCount);
goodsDetailVO.setFaceId(taskRespVO.getFaceId());
return ApiResponse.success(goodsDetailVO);
}

View File

@ -342,4 +342,12 @@ public class OrderServiceImpl implements OrderService {
orderOperationMapper.add(orderOperationEntity);
}
@Override
public ApiResponse<PageInfo<OrderRespVO>> refundPageQuery(OrderReqQuery query) {
PageHelper.startPage(query.getPageNum(), query.getPageSize());
List<OrderRespVO> list = orderMapper.refundList(query);
PageInfo<OrderRespVO> pageInfo = new PageInfo<>(list);
return ApiResponse.success(pageInfo);
}
}

View File

@ -57,4 +57,6 @@ public interface OrderService {
ApiResponse<?> auditRefundOrder(RefundOrderReq refundOrderReq);
void remarkOrder(Long orderId, OrderEntity query);
ApiResponse<PageInfo<OrderRespVO>> refundPageQuery(OrderReqQuery query);
}