From eaf16c48c47b855672e667fa0ac0977f2aca6d6e Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Thu, 19 Dec 2024 10:35:25 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=80=E6=AC=BE=E5=88=97=E8=A1=A8=E3=80=81?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/controller/pc/RefundController.java | 65 +++++++++++++++++ .../com/ycwl/basic/mapper/OrderMapper.java | 2 + .../com/ycwl/basic/mapper/TemplateMapper.java | 4 + .../mobile/goods/VideoGoodsDetailVO.java | 1 + .../mobile/scenic/content/ContentPageVO.java | 14 ++-- .../basic/model/pc/task/resp/TaskRespVO.java | 1 + .../pc/template/resp/TemplateRespVO.java | 2 + .../impl/mobile/AppScenicServiceImpl.java | 49 ++++--------- .../service/impl/mobile/GoodsServiceImpl.java | 17 ++++- .../service/impl/pc/OrderServiceImpl.java | 8 ++ .../ycwl/basic/service/pc/OrderService.java | 2 + src/main/resources/application-prod.yml | 2 +- src/main/resources/logback-spring-prod.xml | 23 +----- src/main/resources/mapper/OrderMapper.xml | 73 ++++++++++++++++++- src/main/resources/mapper/TaskMapper.xml | 4 +- src/main/resources/mapper/TemplateMapper.xml | 14 +++- 16 files changed, 211 insertions(+), 70 deletions(-) create mode 100644 src/main/java/com/ycwl/basic/controller/pc/RefundController.java diff --git a/src/main/java/com/ycwl/basic/controller/pc/RefundController.java b/src/main/java/com/ycwl/basic/controller/pc/RefundController.java new file mode 100644 index 0000000..ce82aa2 --- /dev/null +++ b/src/main/java/com/ycwl/basic/controller/pc/RefundController.java @@ -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; + +/** + * @Author:longbinbin + * @Date:2024/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> pageQuery(@RequestBody OrderReqQuery query) { + return orderService.refundPageQuery(query); + } + + @ApiOperation("订单列表查询") + @PostMapping("list") + public ApiResponse> list(@RequestBody OrderReqQuery query) { + return orderService.list(query); + } + @ApiOperation("订单详情查询") + @GetMapping("detail/{id}") + public ApiResponse 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); + } +} diff --git a/src/main/java/com/ycwl/basic/mapper/OrderMapper.java b/src/main/java/com/ycwl/basic/mapper/OrderMapper.java index 9a8bbdd..404f725 100644 --- a/src/main/java/com/ycwl/basic/mapper/OrderMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/OrderMapper.java @@ -36,4 +36,6 @@ public interface OrderMapper { List appList(OrderAppPageReq orderReqQuery); OrderAppRespVO appDetail(Long id); + + List refundList(OrderReqQuery query); } diff --git a/src/main/java/com/ycwl/basic/mapper/TemplateMapper.java b/src/main/java/com/ycwl/basic/mapper/TemplateMapper.java index 0fec19a..4965971 100644 --- a/src/main/java/com/ycwl/basic/mapper/TemplateMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/TemplateMapper.java @@ -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 listByScenicId(Long scenicId); + + List listFor(@Param("scenicId") Long scenicId, @Param("faceId") Long faceId); } diff --git a/src/main/java/com/ycwl/basic/model/mobile/goods/VideoGoodsDetailVO.java b/src/main/java/com/ycwl/basic/model/mobile/goods/VideoGoodsDetailVO.java index c5b591e..3a0e31c 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/goods/VideoGoodsDetailVO.java +++ b/src/main/java/com/ycwl/basic/model/mobile/goods/VideoGoodsDetailVO.java @@ -45,4 +45,5 @@ public class VideoGoodsDetailVO { private Integer isBuy; @ApiModelProperty("镜头数") private Integer lensNum; + private Long faceId; } diff --git a/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java b/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java index fdc877c..f75a201 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java +++ b/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java @@ -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已购买") diff --git a/src/main/java/com/ycwl/basic/model/pc/task/resp/TaskRespVO.java b/src/main/java/com/ycwl/basic/model/pc/task/resp/TaskRespVO.java index dedd282..6ffe1ad 100644 --- a/src/main/java/com/ycwl/basic/model/pc/task/resp/TaskRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/task/resp/TaskRespVO.java @@ -22,6 +22,7 @@ public class TaskRespVO { */ @ApiModelProperty("执行任务的机器ID") private Long workerId; + private Long faceId; /** * 用户ID,可以不和用户关联 */ diff --git a/src/main/java/com/ycwl/basic/model/pc/template/resp/TemplateRespVO.java b/src/main/java/com/ycwl/basic/model/pc/template/resp/TemplateRespVO.java index 2482def..d6deab6 100644 --- a/src/main/java/com/ycwl/basic/model/pc/template/resp/TemplateRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/template/resp/TemplateRespVO.java @@ -84,4 +84,6 @@ public class TemplateRespVO { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; private List children; + private BigDecimal price; + private Integer sort; } diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java index 090b6c0..f47d30e 100644 --- a/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java @@ -133,46 +133,29 @@ public class AppScenicServiceImpl implements AppScenicService { @Override public ApiResponse> contentList(Long faceId) { JwtInfo worker = JwtTokenUtil.getWorker(); - //查询原素材 - List contentList = new ArrayList<>(); FaceRespVO faceRespVO = faceMapper.getById(faceId); + if (StringUtils.isBlank(faceRespVO.getMatchSampleIds())) { + return ApiResponse.success(new ArrayList<>()); + } - HashMap videoMap = new HashMap<>(); - VideoReqQuery videoReqQuery = new VideoReqQuery(); - videoReqQuery.setFaceId(faceId); - videoReqQuery.setMemberId(worker.getUserId()); - //查询成片vlog - List 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 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 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 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 sourceList = sourceMapper.listGroupByType(sourceReqQuery); sourceList.forEach(sourceRespVO -> { diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java index 48f2643..c83e74c 100644 --- a/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java @@ -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); } diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java index 91c4174..bbb6ba4 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/OrderServiceImpl.java @@ -342,4 +342,12 @@ public class OrderServiceImpl implements OrderService { orderOperationMapper.add(orderOperationEntity); } + @Override + public ApiResponse> refundPageQuery(OrderReqQuery query) { + PageHelper.startPage(query.getPageNum(), query.getPageSize()); + List list = orderMapper.refundList(query); + PageInfo pageInfo = new PageInfo<>(list); + return ApiResponse.success(pageInfo); + } + } diff --git a/src/main/java/com/ycwl/basic/service/pc/OrderService.java b/src/main/java/com/ycwl/basic/service/pc/OrderService.java index d6136b2..dbc4a79 100644 --- a/src/main/java/com/ycwl/basic/service/pc/OrderService.java +++ b/src/main/java/com/ycwl/basic/service/pc/OrderService.java @@ -57,4 +57,6 @@ public interface OrderService { ApiResponse auditRefundOrder(RefundOrderReq refundOrderReq); void remarkOrder(Long orderId, OrderEntity query); + + ApiResponse> refundPageQuery(OrderReqQuery query); } diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 80ab562..469925e 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -14,7 +14,7 @@ spring: datasource: # 数据源的相关配置 type: com.zaxxer.hikari.HikariDataSource # 数据源类型:HikariCP driver-class-name: com.mysql.cj.jdbc.Driver # mysql驱动 - url: jdbc:mysql://106.14.162.214:3306/zt?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true + url: jdbc:mysql://127.0.0.1:3306/zt?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true username: zt password: ZhEnTuAi2024zHeNtUaI hikari: diff --git a/src/main/resources/logback-spring-prod.xml b/src/main/resources/logback-spring-prod.xml index 5566fda..824c44c 100644 --- a/src/main/resources/logback-spring-prod.xml +++ b/src/main/resources/logback-spring-prod.xml @@ -1,22 +1,9 @@ - - - - - - - - - - - - %d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) --- [%15.15(%thread)] %cyan(%-40.40(%logger{40})) : %msg%n - + %d{yyyy-MM-dd HH:mm:ss.SSS} (%-5level) (%-40.40(%logger{40})) : %msg%n UTF-8 @@ -116,13 +103,7 @@ - - - + diff --git a/src/main/resources/mapper/OrderMapper.xml b/src/main/resources/mapper/OrderMapper.xml index a3f2ce6..e5865ff 100644 --- a/src/main/resources/mapper/OrderMapper.xml +++ b/src/main/resources/mapper/OrderMapper.xml @@ -131,7 +131,7 @@ + \ No newline at end of file diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml index 64c0068..31a9929 100644 --- a/src/main/resources/mapper/TaskMapper.xml +++ b/src/main/resources/mapper/TaskMapper.xml @@ -54,7 +54,7 @@ delete from task where id = #{id} diff --git a/src/main/resources/mapper/TemplateMapper.xml b/src/main/resources/mapper/TemplateMapper.xml index 184dd0a..db003b1 100644 --- a/src/main/resources/mapper/TemplateMapper.xml +++ b/src/main/resources/mapper/TemplateMapper.xml @@ -63,7 +63,7 @@ delete from template_config where id = #{id} @@ -96,4 +96,14 @@ from template where scenic_id = #{scenicId} and pid = 0 +