From 4c51e1be0811ee579d87c61fdc2998be46c677a7 Mon Sep 17 00:00:00 2001 From: longbinbin <2284496322@qq.com> Date: Tue, 10 Dec 2024 14:17:01 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=94=B1=E8=AE=A2=E5=8D=95=E6=98=8E=E7=BB=86=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E8=87=B3=E8=AE=A2=E5=8D=95=E6=9C=AC=E4=BD=93=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/mobile/AppFaceController.java | 21 +++-- .../controller/mobile/AppOrderController.java | 2 - .../com/ycwl/basic/mapper/pc/FaceMapper.java | 2 + .../model/mobile/order/OrderAppPageReq.java | 87 +++++++++++++++++++ .../pc/order/req/OrderAddOrUpdateReq.java | 4 + .../model/pc/order/req/OrderReqQuery.java | 2 +- .../model/pc/order/resp/OrderAppRespVO.java | 5 ++ .../model/pc/order/resp/OrderItemVO.java | 5 -- .../model/pc/order/resp/OrderRespVO.java | 2 + .../impl/mobile/AppMemberServiceImpl.java | 2 +- .../service/impl/pc/FaceServiceImpl.java | 48 +++++++--- .../service/impl/pc/OrderServiceImpl.java | 4 +- .../ycwl/basic/service/pc/FaceService.java | 2 +- .../com/ycwl/basic/utils/JwtTokenUtil.java | 11 +-- src/main/resources/mapper/pc/FaceMapper.xml | 5 ++ src/main/resources/mapper/pc/OrderMapper.xml | 75 ++++++++-------- 16 files changed, 206 insertions(+), 71 deletions(-) create mode 100644 src/main/java/com/ycwl/basic/model/mobile/order/OrderAppPageReq.java diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java index 74e0339..b161bbd 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java @@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; @@ -23,14 +24,22 @@ AppFaceController { @Autowired private FaceService faceService; + /** + * 1、上传人脸照片 + * 2、人脸照片有效性校验 + * 3、校验失败,删除,提示重新上传 + * 4、校验成功,保存用户人脸信息,将访问人脸照片访问地址响应给前端 + * @param file + * @param scenicId + * @return + */ @ApiOperation("人脸照片上传") @PostMapping("/faceUPload") - public ApiResponse faceUPload(MultipartFile file) { - //1、上传人脸照片 - //2、人脸照片有效性校验 - //3、校验失败,删除,提示重新上传 - //4、校验成功,保存用户人脸信息,将访问人脸照片访问地址响应给前端 + public ApiResponse faceUPload(@RequestParam("file")MultipartFile file, @RequestParam("scenicId") Long scenicId) { - return faceService.faceUPload(file); + return faceService.faceUPload(file,scenicId); } + + + } diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java index 1051e5e..72a977a 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java @@ -29,7 +29,6 @@ public class AppOrderController { @ApiOperation("用户端订单列表查询") @PostMapping("/page") - @IgnoreToken public ApiResponse> pageQuery(@RequestBody OrderReqQuery orderReqQuery) { String userId = BaseContextHandler.getUserId(); orderReqQuery.setMemberId(Long.valueOf(userId)); @@ -38,7 +37,6 @@ public class AppOrderController { @ApiOperation("用户端订单详情查询") @GetMapping("getOrderDetails/{id}") - @IgnoreToken public ApiResponse getOrderDetails(@PathVariable("id") Long id) { return orderService.appDetail(id); } diff --git a/src/main/java/com/ycwl/basic/mapper/pc/FaceMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/FaceMapper.java index 8ea2a79..b326b7c 100644 --- a/src/main/java/com/ycwl/basic/mapper/pc/FaceMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/pc/FaceMapper.java @@ -21,4 +21,6 @@ public interface FaceMapper { int deleteById(Long id); int deleteByIds(@Param("list") List ids); int update(FaceEntity face); + + FaceRespVO getByMemberId(String userId); } diff --git a/src/main/java/com/ycwl/basic/model/mobile/order/OrderAppPageReq.java b/src/main/java/com/ycwl/basic/model/mobile/order/OrderAppPageReq.java new file mode 100644 index 0000000..1a8ad88 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/mobile/order/OrderAppPageReq.java @@ -0,0 +1,87 @@ +package com.ycwl.basic.model.mobile.order; + +import com.ycwl.basic.model.common.BaseQueryParameterReq; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Author:longbinbin + * @Date:2024/11/29 16:33 + */ +@Data +@ApiModel(value = "移动端订单查询对象") +public class OrderAppPageReq extends BaseQueryParameterReq { + @ApiModelProperty(value = "用户id",hidden = true) + private Long memberId; +// /** +// * 微信openId +// */ +// @ApiModelProperty("微信openId") +// private Long openId; +// /** +// * 价格 +// */ +// @ApiModelProperty("价格") +// private BigDecimal price; +// /** +// * 实际支付价格 +// */ +// @ApiModelProperty("实际支付价格") +// private BigDecimal payPrice; +// /** +// * 推客id +// */ +// @ApiModelProperty("推客id") +// private Long brokerId; +// /** +// * 推客优惠码 +// */ +// @ApiModelProperty("推客优惠码") +// private String promoCode; +// /** +// * 退款原因 +// */ +// @ApiModelProperty("退款原因") +// private String refundReason; +// /** +// * 退款状态,0未提出,1已通过,2待审核 +// */ +// @ApiModelProperty("退款状态,0未提出,1已通过,2待审核") +// private Integer refundStatus; +// /** +// * 状态,0未支付,1已支付,2已退款,9已取消 +// */ +// @ApiModelProperty("状态,0未支付,1已支付,2已退款,9已取消") +// private Integer status; +// /** +// * 订单创建时间 +// */ +// @ApiModelProperty("订单创建时间") +// private Date startCreateTime; +// private Date endCreateTime; +// /** +// * 订单支付时间 +// */ +// @ApiModelProperty("订单支付时间") +// private Date startPayTime; +// private Date endPayTime; +// /** +// * 订单取消时间 +// */ +// @ApiModelProperty("订单取消时间") +// private Date startCancelTime; +// private Date endCancelTime; +// /** +// * 订单退款时间 +// */ +// @ApiModelProperty("订单退款时间") +// private Date startRefundTime; +// private Date endRefundTime; + + @ApiModelProperty("订单类型 0成片(vlog) 1原片 2照片") + private Integer type; +} diff --git a/src/main/java/com/ycwl/basic/model/pc/order/req/OrderAddOrUpdateReq.java b/src/main/java/com/ycwl/basic/model/pc/order/req/OrderAddOrUpdateReq.java index 02f5120..f084cab 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/req/OrderAddOrUpdateReq.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/req/OrderAddOrUpdateReq.java @@ -27,6 +27,8 @@ public class OrderAddOrUpdateReq { */ @ApiModelProperty("微信openId") private Long openId; + @ApiModelProperty("景区id") + private Long scenicId; /** * 价格 */ @@ -52,6 +54,8 @@ public class OrderAddOrUpdateReq { */ @ApiModelProperty("推客优惠码") private String promoCode; + @ApiModelProperty("订单商品类型 1成片,2源素材") + private Integer goodsType; /** * 退款原因 */ diff --git a/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java index 55940f4..78568ed 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java @@ -17,7 +17,7 @@ import java.util.Date; @Data @ApiModel(value = "订单查询对象") public class OrderReqQuery extends BaseQueryParameterReq { - private Long id; +// private Long id; private Long memberId; @ApiModelProperty("用户昵称") private String memberNickname; diff --git a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java index 704d5bc..f1ad828 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java @@ -83,6 +83,11 @@ public class OrderAppRespVO { private String goodsName; @ApiModelProperty("拍摄时间") private Date shootingTime; + /** + * 商品类型,0其他,1成片,2原片,3模板成片 + */ + @ApiModelProperty("商品类型,1成片,2源素材") + private Integer goodsType; @ApiModelProperty("订单明细") private List orderItemList; } diff --git a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderItemVO.java b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderItemVO.java index d76f6cf..57a9df8 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderItemVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderItemVO.java @@ -19,11 +19,6 @@ public class OrderItemVO { */ @ApiModelProperty("订单id") private Long orderId; - /** - * 商品类型,0其他,1成片,2原片,3模板成片 - */ - @ApiModelProperty("商品类型,0其他,1成片,2源素材") - private Integer goodsType; /** * 商品ID,goods_type=1关联video.id,=2关联source.id,=3关联template.id */ diff --git a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderRespVO.java b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderRespVO.java index 5d1a15b..b61d74d 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderRespVO.java @@ -53,6 +53,8 @@ public class OrderRespVO { */ @ApiModelProperty("推客优惠码") private String promoCode; + @ApiModelProperty("订单商品类型 1成片,2源素材") + private Integer goodsType; /** * 退款原因 */ diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/AppMemberServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/AppMemberServiceImpl.java index 907f3e3..2699cc7 100644 --- a/src/main/java/com/ycwl/basic/service/impl/mobile/AppMemberServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/mobile/AppMemberServiceImpl.java @@ -98,9 +98,9 @@ public class AppMemberServiceImpl implements AppMemberService { List list = memberMapper.list(memberReqQuery); if (list.isEmpty()) { MemberEntity memberEntity = new MemberEntity(); + BeanCopierUtils.copyProperties(userInfoDTO, memberEntity); memberEntity.setId(SnowFlakeUtil.getLongId()); memberEntity.setOpenId(openId.toString()); - BeanCopierUtils.copyProperties(userInfoDTO, memberEntity); memberMapper.add(memberEntity); BeanCopierUtils.copyProperties(memberEntity, memberRespVO); } else { diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java index c3bfcf9..2651f6c 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java @@ -1,5 +1,6 @@ package com.ycwl.basic.service.impl.pc; +import cn.hutool.core.bean.BeanUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ycwl.basic.constant.BaseContextHandler; @@ -9,11 +10,16 @@ import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.pc.face.entity.FaceEntity; import com.ycwl.basic.model.pc.face.req.FaceReqQuery; import com.ycwl.basic.model.pc.face.resp.FaceRespVO; +import com.ycwl.basic.model.task.resp.SearchFaceRespVo; +import com.ycwl.basic.service.impl.task.TaskFaceServiceImpl; import com.ycwl.basic.service.pc.FaceService; +import com.ycwl.basic.service.task.TaskFaceService; import com.ycwl.basic.utils.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -32,6 +38,11 @@ public class FaceServiceImpl implements FaceService { private FaceMapper faceMapper; @Autowired private OssUtil ossUtil; + @Autowired + private TaskFaceService faceService; + + @Value("${face.score}") + private float faceScore; @Override public ApiResponse> pageQuery(FaceReqQuery faceReqQuery) { @@ -89,20 +100,21 @@ public class FaceServiceImpl implements FaceService { } @Override - public ApiResponse faceUPload(MultipartFile file) { - //TODO 获取用户信息 +// @Transactional(rollbackFor = Exception.class) + public ApiResponse faceUPload(MultipartFile file,Long scenicId) { + //获取用户id String userId = BaseContextHandler.getUserId(); + JwtInfo worker = JwtTokenUtil.getWorker(); + log.info("当前登录用户信息:{}",worker); + //1、上传人脸照片 String facaeUrl = uploadFileALiOss(file, userId); - //TODO 2、人脸照片有效性校验 - Boolean isValid=true; + // 2、查看人脸是否已上传 + FaceRespVO faceRespVO=faceMapper.getByMemberId(userId); - - - if(isValid){ - //校验成功,保存用户人脸信息,将访问人脸照片访问地址响应给前端 - - FaceEntity faceEntity = new FaceEntity(); + FaceEntity faceEntity = new FaceEntity(); + if (faceRespVO==null) { + //新增人脸 faceEntity.setId(SnowFlakeUtil.getLongId()); faceEntity.setMemberId(Long.parseLong(userId)); faceEntity.setFaceUrl(facaeUrl); @@ -112,14 +124,26 @@ public class FaceServiceImpl implements FaceService { // faceEntity.setMatchResult(); //TODO 人脸数据存库 faceMapper.add(faceEntity); - - return ApiResponse.success(facaeUrl); }else { + //2、更新人脸 + faceRespVO.setFaceUrl(facaeUrl); + BeanUtil.copyProperties(faceRespVO,faceEntity); + faceMapper.update(faceEntity); + } + SearchFaceRespVo faceRespVo = faceService.searchFace(scenicId, faceRespVO.getId()); + float score = faceRespVo.getScore(); + if (score orderItemList = orderRespVO.getOrderItemList(); orderItemList.forEach(orderItemVO -> { - Integer goodsType = orderItemVO.getGoodsType(); Long goodsId = orderItemVO.getGoodsId(); if (Objects.equals(goodsType, GoodsTypeEnum.VIDEO.code)) { VideoEntity videoEntity = new VideoEntity(); @@ -225,9 +225,9 @@ public class OrderServiceImpl implements OrderService { }); } else if (state == OrderStateEnum.REFUNDED.getState()) {//订单退款成功就把商品状态更改成未购买 OrderRespVO orderRespVO = orderMapper.getById(orderSn); + Integer goodsType = orderRespVO.getGoodsType(); List orderItemList = orderRespVO.getOrderItemList(); orderItemList.forEach(orderItemVO -> { - Integer goodsType = orderItemVO.getGoodsType(); Long goodsId = orderItemVO.getGoodsId(); if (Objects.equals(goodsType, GoodsTypeEnum.VIDEO.code)) { VideoEntity videoEntity = new VideoEntity(); diff --git a/src/main/java/com/ycwl/basic/service/pc/FaceService.java b/src/main/java/com/ycwl/basic/service/pc/FaceService.java index b5aff94..957d77b 100644 --- a/src/main/java/com/ycwl/basic/service/pc/FaceService.java +++ b/src/main/java/com/ycwl/basic/service/pc/FaceService.java @@ -22,5 +22,5 @@ public interface FaceService { ApiResponse deleteByIds(List ids); ApiResponse update(FaceEntity face); - ApiResponse faceUPload(MultipartFile file); + ApiResponse faceUPload(MultipartFile file,Long scrnicId); } diff --git a/src/main/java/com/ycwl/basic/utils/JwtTokenUtil.java b/src/main/java/com/ycwl/basic/utils/JwtTokenUtil.java index 90930cd..9a7fba2 100644 --- a/src/main/java/com/ycwl/basic/utils/JwtTokenUtil.java +++ b/src/main/java/com/ycwl/basic/utils/JwtTokenUtil.java @@ -71,11 +71,7 @@ public class JwtTokenUtil { public static JwtInfo getWorker() { ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = servletRequestAttributes.getRequest(); - String token = getToken(request); - return parsingToken(token); - } - public static String getToken(HttpServletRequest request) { String token = request.getHeader("token"); if (StringUtils.isEmpty(token)) { if (request.getCookies() != null) { @@ -84,8 +80,13 @@ public class JwtTokenUtil { token = cookie.getValue(); } } + if(StringUtils.isEmpty(token)){ + throw new CheckTokenException("用户未登录或登录状态已过期"); + } + }else { + throw new CheckTokenException("用户未登录或登录状态已过期"); } } - return token; + return parsingToken(token); } } diff --git a/src/main/resources/mapper/pc/FaceMapper.xml b/src/main/resources/mapper/pc/FaceMapper.xml index ba8fb9f..c74d2f1 100644 --- a/src/main/resources/mapper/pc/FaceMapper.xml +++ b/src/main/resources/mapper/pc/FaceMapper.xml @@ -70,4 +70,9 @@ from face where id = #{id} + \ No newline at end of file diff --git a/src/main/resources/mapper/pc/OrderMapper.xml b/src/main/resources/mapper/pc/OrderMapper.xml index cbc6fb8..5b475d5 100644 --- a/src/main/resources/mapper/pc/OrderMapper.xml +++ b/src/main/resources/mapper/pc/OrderMapper.xml @@ -12,6 +12,7 @@ + @@ -23,7 +24,6 @@ - @@ -37,6 +37,7 @@ + @@ -48,7 +49,6 @@ - @@ -58,13 +58,13 @@ - insert into `order`(id, member_id, openid,price, pay_price, remark, broker_id, promo_code) - VALUES (#{id}, #{memberId}, #{openid},#{price}, #{payPrice}, #{remark}, #{brokerId}, #{promoCode}) + insert into `order`(id, member_id, openid,price, pay_price, remark, broker_id, promo_code,goods_type,scenic_id) + VALUES (#{id}, #{memberId}, #{openid},#{price}, #{payPrice}, #{remark}, #{brokerId}, #{promoCode},#{goodsType},#{scenicId}) - insert into order_item(id, order_id, goods_type, goods_id) VALUES + insert into order_item(id, order_id, goods_id) VALUES - (#{item.id}, #{item.orderId}, #{item.goodsType}, #{item.goodsId}) + (#{item.id}, #{item.orderId}, #{item.goodsId}) @@ -105,12 +105,12 @@ \ No newline at end of file From 3b94b34cf6cd96703f1c87b8d2f368a43f8a68f7 Mon Sep 17 00:00:00 2001 From: longbinbin <2284496322@qq.com> Date: Tue, 10 Dec 2024 16:16:43 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E2=80=9C=E6=99=AF?= =?UTF-8?q?=E5=8C=BA=E5=86=85=E5=AE=B9=EF=BC=88=E6=88=90=E7=89=87=E3=80=81?= =?UTF-8?q?=E6=9C=AA=E6=88=90=E7=89=87=E6=A8=A1=E7=89=88=E3=80=81=E6=BA=90?= =?UTF-8?q?=E7=B4=A0=E6=9D=90)=E5=88=97=E8=A1=A8=E2=80=9D=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/mobile/AppFaceController.java | 14 +++- .../controller/mobile/AppGoodsController.java | 14 ++++ .../controller/mobile/AppOrderController.java | 3 +- .../mobile/AppScenicController.java | 11 +++ .../basic/interceptor/AuthInterceptor.java | 2 +- .../com/ycwl/basic/mapper/pc/FaceMapper.java | 2 +- .../com/ycwl/basic/mapper/pc/OrderMapper.java | 3 +- .../com/ycwl/basic/mapper/pc/TaskMapper.java | 3 + .../com/ycwl/basic/model/jwt/JwtInfo.java | 2 +- .../model/mobile/goods/GoodsReqQuery.java | 2 +- .../mobile/scenic/content/ContentPageVO.java | 34 +++++++++ .../pc/adminUser/entity/LoginEntity.java | 2 +- .../model/pc/order/resp/OrderAppRespVO.java | 2 + .../pc/template/req/TemplateReqQuery.java | 2 + .../impl/mobile/AppMemberServiceImpl.java | 2 +- .../impl/mobile/AppScenicServiceImpl.java | 74 +++++++++++++++++++ .../service/impl/mobile/GoodsServiceImpl.java | 29 +++++++- .../service/impl/pc/FaceServiceImpl.java | 9 ++- .../service/impl/pc/OrderServiceImpl.java | 3 +- .../impl/task/TaskFaceServiceImpl.java | 8 +- .../impl/task/TaskTaskServiceImpl.java | 4 +- .../service/mobile/AppScenicService.java | 3 + .../basic/service/mobile/GoodsService.java | 7 ++ .../ycwl/basic/service/pc/FaceService.java | 2 + .../ycwl/basic/service/pc/OrderService.java | 3 +- .../com/ycwl/basic/utils/JwtAnalysisUtil.java | 6 +- src/main/resources/mapper/pc/OrderMapper.xml | 57 +------------- src/main/resources/mapper/pc/TaskMapper.xml | 12 +++ .../resources/mapper/pc/TemplateMapper.xml | 7 +- 29 files changed, 246 insertions(+), 76 deletions(-) create mode 100644 src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java index b161bbd..abd013c 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java @@ -1,14 +1,14 @@ package com.ycwl.basic.controller.mobile; +import com.ycwl.basic.model.jwt.JwtInfo; +import com.ycwl.basic.model.pc.face.resp.FaceRespVO; import com.ycwl.basic.service.pc.FaceService; import com.ycwl.basic.utils.ApiResponse; +import com.ycwl.basic.utils.JwtTokenUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; /** @@ -40,6 +40,12 @@ AppFaceController { return faceService.faceUPload(file,scenicId); } + @GetMapping("/getFaceData") + public ApiResponse getFaceData() { + JwtInfo worker = JwtTokenUtil.getWorker(); + return faceService.getFaceByMemberId(worker.getUserId()); + } + } diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java index 81531fc..0ae16c2 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java @@ -1,5 +1,6 @@ package com.ycwl.basic.controller.mobile; +import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.mobile.goods.GoodsDetailVO; import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq; import com.ycwl.basic.model.mobile.goods.GoodsReqQuery; @@ -7,6 +8,7 @@ import com.ycwl.basic.model.mobile.goods.GoodsPageVO; import com.ycwl.basic.model.pc.source.resp.SourceRespVO; import com.ycwl.basic.service.mobile.GoodsService; import com.ycwl.basic.utils.ApiResponse; +import com.ycwl.basic.utils.JwtTokenUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -51,4 +53,16 @@ public class AppGoodsController { public ApiResponse queryPrice(@RequestBody GoodsPriceQueryReq queryPriceData) { return goodsService.queryPrice(queryPriceData); } + + /** + * 查询用户当前景区的视频合成任务状态 + * @param scenicId 景区id + * @return 1 合成中 2 合成成功 + */ + @ApiOperation("查询用户当前景区的视频合成任务状态 1 合成中 2 合成成功 ") + @GetMapping("/getTaskStatus/{scenicId}") + public ApiResponse getTaskStatus(@PathVariable("scenicId") Long scenicId) { + JwtInfo worker = JwtTokenUtil.getWorker(); + return goodsService.getTaskStatus(worker.getUserId(),scenicId); + } } diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java index 72a977a..28fea4c 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java @@ -3,6 +3,7 @@ package com.ycwl.basic.controller.mobile; import com.github.pagehelper.PageInfo; import com.ycwl.basic.annotation.IgnoreToken; import com.ycwl.basic.constant.BaseContextHandler; +import com.ycwl.basic.model.mobile.order.OrderAppPageReq; import com.ycwl.basic.model.mobile.order.RefundOrderReq; import com.ycwl.basic.model.pc.order.req.OrderAddOrUpdateReq; import com.ycwl.basic.model.pc.order.req.OrderReqQuery; @@ -29,7 +30,7 @@ public class AppOrderController { @ApiOperation("用户端订单列表查询") @PostMapping("/page") - public ApiResponse> pageQuery(@RequestBody OrderReqQuery orderReqQuery) { + public ApiResponse> pageQuery(@RequestBody OrderAppPageReq orderReqQuery) { String userId = BaseContextHandler.getUserId(); orderReqQuery.setMemberId(Long.valueOf(userId)); return orderService.appPageQuery(orderReqQuery); diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java index 439095c..e757d20 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java @@ -1,8 +1,11 @@ package com.ycwl.basic.controller.mobile; import com.github.pagehelper.PageInfo; +import com.ycwl.basic.model.mobile.goods.GoodsPageVO; +import com.ycwl.basic.model.mobile.goods.GoodsReqQuery; import com.ycwl.basic.model.mobile.scenic.ScenicAppVO; import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO; +import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO; import com.ycwl.basic.service.mobile.AppScenicService; @@ -13,6 +16,8 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * @Author:longbinbin * @Date:2024/12/5 10:22 @@ -42,5 +47,11 @@ public class AppScenicController { return appScenicService.deviceCountByScenicId(scenicId); } + @ApiOperation("景区视频源素材列表") + @GetMapping("/contentList/{scenicId}") + public ApiResponse> contentList(@PathVariable Long scenicId) { + return appScenicService.contentList(scenicId); + } + } diff --git a/src/main/java/com/ycwl/basic/interceptor/AuthInterceptor.java b/src/main/java/com/ycwl/basic/interceptor/AuthInterceptor.java index 34a4daf..13c686b 100644 --- a/src/main/java/com/ycwl/basic/interceptor/AuthInterceptor.java +++ b/src/main/java/com/ycwl/basic/interceptor/AuthInterceptor.java @@ -82,7 +82,7 @@ public class AuthInterceptor extends HandlerInterceptorAdapter { } BaseContextHandler.setToken(token); BaseContextHandler.setName(jwtInfo.getName()); - BaseContextHandler.setUserId(jwtInfo.getUserId()); + BaseContextHandler.setUserId(String.valueOf(jwtInfo.getUserId())); BaseContextHandler.setAccount(jwtInfo.getAccount()); BaseContextHandler.setPhone(jwtInfo.getPhone()); BaseContextHandler.setRoleId(jwtInfo.getRoleId()); diff --git a/src/main/java/com/ycwl/basic/mapper/pc/FaceMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/FaceMapper.java index b326b7c..d9e95cc 100644 --- a/src/main/java/com/ycwl/basic/mapper/pc/FaceMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/pc/FaceMapper.java @@ -22,5 +22,5 @@ public interface FaceMapper { int deleteByIds(@Param("list") List ids); int update(FaceEntity face); - FaceRespVO getByMemberId(String userId); + FaceRespVO getByMemberId(Long userId); } diff --git a/src/main/java/com/ycwl/basic/mapper/pc/OrderMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/OrderMapper.java index 2274718..ae0607a 100644 --- a/src/main/java/com/ycwl/basic/mapper/pc/OrderMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/pc/OrderMapper.java @@ -1,5 +1,6 @@ package com.ycwl.basic.mapper.pc; +import com.ycwl.basic.model.mobile.order.OrderAppPageReq; import com.ycwl.basic.model.pc.order.entity.OrderItemEntity; import com.ycwl.basic.model.pc.order.req.OrderAddOrUpdateReq; import com.ycwl.basic.model.pc.order.req.OrderReqQuery; @@ -31,7 +32,7 @@ public interface OrderMapper { int getOrderCount(OrderReqQuery query); - List appList(OrderReqQuery orderReqQuery); + List appList(OrderAppPageReq orderReqQuery); OrderAppRespVO appDetail(Long id); } diff --git a/src/main/java/com/ycwl/basic/mapper/pc/TaskMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/TaskMapper.java index bf8d260..3fcf20e 100644 --- a/src/main/java/com/ycwl/basic/mapper/pc/TaskMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/pc/TaskMapper.java @@ -3,6 +3,7 @@ package com.ycwl.basic.mapper.pc; import com.ycwl.basic.model.pc.task.entity.TaskEntity; import com.ycwl.basic.model.pc.task.req.TaskReqQuery; import com.ycwl.basic.model.pc.task.resp.TaskRespVO; +import com.ycwl.basic.utils.ApiResponse; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -47,4 +48,6 @@ public interface TaskMapper { void assignToWorker(@Param("taskId") Long taskId, @Param("workerId") Long workerId); void deassign(@Param("taskId") Long taskId); + + int countTask(TaskReqQuery taskReqQuery); } diff --git a/src/main/java/com/ycwl/basic/model/jwt/JwtInfo.java b/src/main/java/com/ycwl/basic/model/jwt/JwtInfo.java index 773a0cb..436292d 100644 --- a/src/main/java/com/ycwl/basic/model/jwt/JwtInfo.java +++ b/src/main/java/com/ycwl/basic/model/jwt/JwtInfo.java @@ -28,7 +28,7 @@ public class JwtInfo implements Serializable { /** * 用户ID */ - private String userId; + private Long userId; /** * 角色ID diff --git a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsReqQuery.java b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsReqQuery.java index 4828ab1..f4ad2fd 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsReqQuery.java @@ -13,7 +13,7 @@ import lombok.Data; public class GoodsReqQuery { @ApiModelProperty("是否已购买 0否 1是") private Integer isBuy; - @ApiModelProperty("用户id") + @ApiModelProperty(value = "用户id", hidden = true) private Long memberId; @ApiModelProperty("景区id") private Long scenicId; 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 new file mode 100644 index 0000000..3358454 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java @@ -0,0 +1,34 @@ +package com.ycwl.basic.model.mobile.scenic.content; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @Author:longbinbin + * @Date:2024/12/5 15:10 + */ +@Data +@ApiModel("景区内容(成片、待成片模版、源素材)列表响应信息") +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("内容类型 0模版 1:成片视频 2:源素材 ") + private Integer contentType; + @ApiModelProperty("源素材类型 1:视频 2:图片") + private Integer sourceType; + @ApiModelProperty("内容id contentType为0或1时才有值") + private Long contentId; + @ApiModelProperty("模版封面图片 contentType为0或1时才有值") + private String templateCoverUrl; +} diff --git a/src/main/java/com/ycwl/basic/model/pc/adminUser/entity/LoginEntity.java b/src/main/java/com/ycwl/basic/model/pc/adminUser/entity/LoginEntity.java index 41b4281..06f076c 100644 --- a/src/main/java/com/ycwl/basic/model/pc/adminUser/entity/LoginEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/adminUser/entity/LoginEntity.java @@ -4,7 +4,7 @@ import lombok.Data; @Data public class LoginEntity { - private String staffId; + private Long staffId; private String staffName; private String account; private String password; diff --git a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java index f1ad828..8f12d25 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java @@ -88,6 +88,8 @@ public class OrderAppRespVO { */ @ApiModelProperty("商品类型,1成片,2源素材") private Integer goodsType; + @ApiModelProperty("封面图片(来自模版封面图片)") + private String coverUrl; @ApiModelProperty("订单明细") private List orderItemList; } diff --git a/src/main/java/com/ycwl/basic/model/pc/template/req/TemplateReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/template/req/TemplateReqQuery.java index 71a3456..b180c91 100644 --- a/src/main/java/com/ycwl/basic/model/pc/template/req/TemplateReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/template/req/TemplateReqQuery.java @@ -19,6 +19,8 @@ import java.util.Date; @Data @ApiModel("模版查询请求类") public class TemplateReqQuery extends BaseQueryParameterReq { + @ApiModelProperty("景区id") + private Long scenicId; /** * 模版名称 */ diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/AppMemberServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/AppMemberServiceImpl.java index 2699cc7..9099f02 100644 --- a/src/main/java/com/ycwl/basic/service/impl/mobile/AppMemberServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/mobile/AppMemberServiceImpl.java @@ -106,7 +106,7 @@ public class AppMemberServiceImpl implements AppMemberService { } else { BeanCopierUtils.copyProperties(list.get(NumberConstant.ZERO), memberRespVO); } - jwtInfo.setUserId(memberRespVO.getId().toString()); + jwtInfo.setUserId(memberRespVO.getId()); jwtInfo.setName(memberRespVO.getNickname()); jwtInfo.setPhone(memberRespVO.getPhone()); 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 f7ecec8..7da34ab 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 @@ -5,16 +5,26 @@ import com.github.pagehelper.PageInfo; import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.constant.NumberConstant; import com.ycwl.basic.mapper.pc.*; +import com.ycwl.basic.model.jwt.JwtInfo; +import com.ycwl.basic.model.mobile.goods.GoodsPageVO; import com.ycwl.basic.model.mobile.index.TopStateResp; import com.ycwl.basic.model.mobile.scenic.ScenicAppVO; import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO; import com.ycwl.basic.model.mobile.scenic.ScenicIndexVO; +import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO; import com.ycwl.basic.model.pc.face.req.FaceReqQuery; import com.ycwl.basic.model.pc.face.resp.FaceRespVO; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; 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.template.req.TemplateReqQuery; +import com.ycwl.basic.model.pc.template.resp.TemplateRespVO; +import com.ycwl.basic.model.pc.video.req.VideoReqQuery; +import com.ycwl.basic.model.pc.video.resp.VideoRespVO; import com.ycwl.basic.service.mobile.AppScenicService; import com.ycwl.basic.utils.ApiResponse; +import com.ycwl.basic.utils.JwtTokenUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -22,6 +32,8 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** @@ -42,6 +54,10 @@ public class AppScenicServiceImpl implements AppScenicService { private SourceMapper sourceMapper; @Autowired private TaskMapper taskMapper; + @Autowired + private VideoMapper videoMapper; + @Autowired + private TemplateMapper templateMapper; @Value("${face.score}") private BigDecimal faceScore; @@ -103,4 +119,62 @@ public class AppScenicServiceImpl implements AppScenicService { return ApiResponse.success(topStateResp); } + + @Override + public ApiResponse> contentList(Long scenicId) { + JwtInfo worker = JwtTokenUtil.getWorker(); + //查询原素材 + List contentList = new ArrayList<>(); + + HashMap videoMap = new HashMap<>(); + VideoReqQuery videoReqQuery = new VideoReqQuery(); + videoReqQuery.setScenicId(scenicId); + 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()); + contentList.add(contentPageVO); + videoMap.put(videoRespVO.getTemplateId(),""); + }); + + TemplateReqQuery templateReqQuery = new TemplateReqQuery(); + templateReqQuery.setScenicId(scenicId); + 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); + } + }); + + SourceReqQuery sourceReqQuery = new SourceReqQuery(); + videoReqQuery.setScenicId(scenicId); + videoReqQuery.setMemberId(worker.getUserId()); + //查询源素材 + List sourceList = sourceMapper.listGroupByType(sourceReqQuery); + sourceList.forEach(sourceRespVO -> { + ContentPageVO contentPageVO = new ContentPageVO(); + Integer type = sourceRespVO.getType(); + if(type==1){ + contentPageVO.setName("原片集"); + }else { + contentPageVO.setName("照片集"); + } + contentPageVO.setContentType(2); + contentPageVO.setSourceType(type); + contentList.add(contentPageVO); + }); + + return ApiResponse.success(contentList); + } } 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 09a8467..3f5bbac 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 @@ -2,7 +2,9 @@ package com.ycwl.basic.service.impl.mobile; import com.ycwl.basic.mapper.pc.ScenicMapper; import com.ycwl.basic.mapper.pc.SourceMapper; +import com.ycwl.basic.mapper.pc.TaskMapper; import com.ycwl.basic.mapper.pc.VideoMapper; +import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.mobile.goods.GoodsDetailVO; import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq; import com.ycwl.basic.model.mobile.goods.GoodsReqQuery; @@ -10,11 +12,13 @@ import com.ycwl.basic.model.mobile.goods.GoodsPageVO; 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.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.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -33,15 +37,18 @@ public class GoodsServiceImpl implements GoodsService { private SourceMapper sourceMapper; @Autowired private ScenicMapper scenicMapper; + @Autowired + private TaskMapper taskMapper; public ApiResponse> goodsList(GoodsReqQuery query) { + JwtInfo worker = JwtTokenUtil.getWorker(); //查询原素材 List goodsList = new ArrayList<>(); VideoReqQuery videoReqQuery = new VideoReqQuery(); videoReqQuery.setScenicId(query.getScenicId()); videoReqQuery.setIsBuy(query.getIsBuy()); - videoReqQuery.setMemberId(query.getMemberId()); + videoReqQuery.setMemberId(worker.getUserId()); //查询成片vlog List videoList = videoMapper.list(videoReqQuery); videoList.forEach(videoRespVO -> { @@ -179,4 +186,24 @@ public class GoodsServiceImpl implements GoodsService { goodsDetailVO.setCreateTime(videoRespVO.getCreateTime()); return ApiResponse.success(goodsDetailVO); } + + /** + * 查询用户当前景区的视频合成任务状态 + * @param scenicId 景区id + * @return 1 合成中 2 合成成功 + */ + @Override + public ApiResponse getTaskStatus(Long userId, Long scenicId) { + TaskReqQuery taskReqQuery = new TaskReqQuery(); + taskReqQuery.setMemberId(userId); + taskReqQuery.setScenicId(scenicId); + taskReqQuery.setStatus(2); + int count=taskMapper.countTask(taskReqQuery); + if(count>0){ + return ApiResponse.success(1); + }else { + return ApiResponse.success(2); + } + } + } diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java index 2651f6c..32bf13c 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java @@ -110,7 +110,7 @@ public class FaceServiceImpl implements FaceService { //1、上传人脸照片 String facaeUrl = uploadFileALiOss(file, userId); // 2、查看人脸是否已上传 - FaceRespVO faceRespVO=faceMapper.getByMemberId(userId); + FaceRespVO faceRespVO=faceMapper.getByMemberId(Long.parseLong(userId)); FaceEntity faceEntity = new FaceEntity(); if (faceRespVO==null) { @@ -130,7 +130,7 @@ public class FaceServiceImpl implements FaceService { BeanUtil.copyProperties(faceRespVO,faceEntity); faceMapper.update(faceEntity); } - SearchFaceRespVo faceRespVo = faceService.searchFace(scenicId, faceRespVO.getId()); + SearchFaceRespVo faceRespVo = faceService.searchFace(scenicId, faceEntity.getId()); float score = faceRespVo.getScore(); if (score getFaceByMemberId(Long memberId) { + return ApiResponse.success(faceMapper.getByMemberId(memberId)); + } + /** * 阿里oss图片上传 * 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 fe651ca..191492c 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 @@ -14,6 +14,7 @@ import com.ycwl.basic.mapper.pc.SourceMapper; import com.ycwl.basic.mapper.pc.VideoMapper; import com.ycwl.basic.model.mobile.goods.GoodsDetailVO; import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq; +import com.ycwl.basic.model.mobile.order.OrderAppPageReq; import com.ycwl.basic.model.mobile.order.RefundOrderReq; import com.ycwl.basic.model.pc.member.resp.MemberRespVO; import com.ycwl.basic.model.pc.order.entity.OrderItemEntity; @@ -254,7 +255,7 @@ public class OrderServiceImpl implements OrderService { } @Override - public ApiResponse> appPageQuery(OrderReqQuery orderReqQuery) { + public ApiResponse> appPageQuery(OrderAppPageReq orderReqQuery) { PageHelper.startPage(orderReqQuery.getPageNum(), orderReqQuery.getPageSize()); List list = orderMapper.appList(orderReqQuery); for (OrderAppRespVO appRespVO : list) { diff --git a/src/main/java/com/ycwl/basic/service/impl/task/TaskFaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/task/TaskFaceServiceImpl.java index bc79db3..a0e0476 100644 --- a/src/main/java/com/ycwl/basic/service/impl/task/TaskFaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/task/TaskFaceServiceImpl.java @@ -10,6 +10,8 @@ import com.aliyuncs.facebody.model.v20191230.DeleteFaceEntityRequest; import com.aliyuncs.facebody.model.v20191230.SearchFaceRequest; import com.aliyuncs.facebody.model.v20191230.SearchFaceResponse; import com.ycwl.basic.config.FaceDetectConfig; +import com.ycwl.basic.exception.BaseException; +import com.ycwl.basic.exception.BizException; import com.ycwl.basic.mapper.pc.DeviceMapper; import com.ycwl.basic.mapper.pc.FaceMapper; import com.ycwl.basic.mapper.pc.FaceSampleMapper; @@ -22,6 +24,7 @@ import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO; import com.ycwl.basic.model.task.resp.AddFaceRespVo; import com.ycwl.basic.model.task.resp.SearchFaceRespVo; import com.ycwl.basic.service.task.TaskFaceService; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,6 +37,7 @@ import java.util.Date; import java.util.List; import java.util.stream.Collectors; +@Slf4j @Service public class TaskFaceServiceImpl implements TaskFaceService { @Autowired @@ -87,8 +91,10 @@ public class TaskFaceServiceImpl implements TaskFaceService { return respVo; } catch (Exception e) { e.printStackTrace(); + log.error("人脸搜索失败:{}", e.getMessage()); + throw new BaseException(e.getMessage()); } - return null; +// return null; } @Override diff --git a/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java index 4265a19..f72d384 100644 --- a/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java @@ -99,7 +99,9 @@ public class TaskTaskServiceImpl implements TaskService { // Template String cacheJson = redisTemplate.opsForValue().get(TaskConstant.TASK_TEMPLATE_KEY_PFX + worker.getId()); if (cacheJson == null) { - List templateList = templateMapper.list(new TemplateReqQuery()); + TemplateReqQuery templateReqQuery = new TemplateReqQuery(); + templateReqQuery.setPid(0L); + List templateList = templateMapper.list(templateReqQuery); for (TemplateRespVO template : templateList) { template.setChildren(templateMapper.getByPid(template.getId())); } diff --git a/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java b/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java index 334fcd9..14208a6 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java +++ b/src/main/java/com/ycwl/basic/service/mobile/AppScenicService.java @@ -5,6 +5,7 @@ import com.ycwl.basic.model.mobile.index.TopStateResp; import com.ycwl.basic.model.mobile.scenic.ScenicAppVO; import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO; import com.ycwl.basic.model.mobile.scenic.ScenicIndexVO; +import com.ycwl.basic.model.mobile.scenic.content.ContentPageVO; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO; import com.ycwl.basic.utils.ApiResponse; @@ -36,4 +37,6 @@ public interface AppScenicService { * @return */ ApiResponse topState(); + + ApiResponse> contentList(Long scenicId); } diff --git a/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java b/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java index 65866cf..8202f84 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java +++ b/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java @@ -43,4 +43,11 @@ public interface GoodsService { * @return */ ApiResponse videoGoodsDetail(Long goodsId); + + /** + * 查询当前用户的成片合成任务状态 + * @param userId + * @return + */ + ApiResponse getTaskStatus(Long userId ,Long scenicId); } diff --git a/src/main/java/com/ycwl/basic/service/pc/FaceService.java b/src/main/java/com/ycwl/basic/service/pc/FaceService.java index 957d77b..f1edb52 100644 --- a/src/main/java/com/ycwl/basic/service/pc/FaceService.java +++ b/src/main/java/com/ycwl/basic/service/pc/FaceService.java @@ -23,4 +23,6 @@ public interface FaceService { ApiResponse update(FaceEntity face); ApiResponse faceUPload(MultipartFile file,Long scrnicId); + + ApiResponse getFaceByMemberId(Long memberId); } 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 1087941..65c93ce 100644 --- a/src/main/java/com/ycwl/basic/service/pc/OrderService.java +++ b/src/main/java/com/ycwl/basic/service/pc/OrderService.java @@ -2,6 +2,7 @@ package com.ycwl.basic.service.pc; import com.github.pagehelper.PageInfo; import com.ycwl.basic.enums.OrderStateEnum; +import com.ycwl.basic.model.mobile.order.OrderAppPageReq; import com.ycwl.basic.model.mobile.order.RefundOrderReq; import com.ycwl.basic.model.pc.order.req.OrderAddOrUpdateReq; import com.ycwl.basic.model.pc.order.req.OrderReqQuery; @@ -32,7 +33,7 @@ public interface OrderService { ApiResponse getOrderCountByUserId(Long userId); - ApiResponse> appPageQuery(OrderReqQuery orderReqQuery); + ApiResponse> appPageQuery(OrderAppPageReq orderReqQuery); ApiResponse appDetail(Long id); diff --git a/src/main/java/com/ycwl/basic/utils/JwtAnalysisUtil.java b/src/main/java/com/ycwl/basic/utils/JwtAnalysisUtil.java index 36521ff..64dcbe6 100644 --- a/src/main/java/com/ycwl/basic/utils/JwtAnalysisUtil.java +++ b/src/main/java/com/ycwl/basic/utils/JwtAnalysisUtil.java @@ -72,8 +72,12 @@ public class JwtAnalysisUtil { } catch (Exception e) { e.printStackTrace(); } + Long userId = null; + if (body.get("userId")!=null) { + userId= (Long) body.get("userId"); + } return new JwtInfo(StringUtil.a(body.get("name")), - StringUtil.a(body.get("userId")), + userId, StringUtil.a(body.get("roleId")), body.getSubject(), StringUtil.a(body.get("phone")), diff --git a/src/main/resources/mapper/pc/OrderMapper.xml b/src/main/resources/mapper/pc/OrderMapper.xml index 5b475d5..d0322f6 100644 --- a/src/main/resources/mapper/pc/OrderMapper.xml +++ b/src/main/resources/mapper/pc/OrderMapper.xml @@ -46,6 +46,7 @@ + @@ -258,7 +259,7 @@ + \ No newline at end of file diff --git a/src/main/resources/mapper/pc/TemplateMapper.xml b/src/main/resources/mapper/pc/TemplateMapper.xml index f9143d2..c73340e 100644 --- a/src/main/resources/mapper/pc/TemplateMapper.xml +++ b/src/main/resources/mapper/pc/TemplateMapper.xml @@ -48,7 +48,12 @@ select t.id, t.scenic_id, s.name as scenic_name, t.`name`, cover_url, t.status, t.create_time, t.update_time from template t left join scenic s on s.id = t.scenic_id - pid = 0 + + pid = #{pid} + + + and scenic_id = #{scenicId} + and locate(#{name},t.`name`) > 0 and is_placeholder = #{isPlaceholder} and t.`status` = #{status} From 48c285d3ed77f7dde5835f6b2e547ba43bf46009 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Mon, 9 Dec 2024 14:42:19 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=A4=87=E6=B3=A8?= =?UTF-8?q?=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/controller/pc/OrderController.java | 8 +++++++ .../basic/mapper/pc/OrderOperationMapper.java | 12 +++++++++++ .../orderOp/entity/OrderOperationEntity.java | 18 ++++++++++++++++ .../service/impl/pc/OrderServiceImpl.java | 21 +++++++++++++++++++ .../ycwl/basic/service/pc/OrderService.java | 3 +++ .../resources/mapper/pc/AdminUserMapper.xml | 2 ++ .../mapper/pc/OrderOperationMapper.xml | 13 ++++++++++++ 7 files changed, 77 insertions(+) create mode 100644 src/main/java/com/ycwl/basic/mapper/pc/OrderOperationMapper.java create mode 100644 src/main/java/com/ycwl/basic/model/pc/orderOp/entity/OrderOperationEntity.java create mode 100644 src/main/resources/mapper/pc/OrderOperationMapper.xml diff --git a/src/main/java/com/ycwl/basic/controller/pc/OrderController.java b/src/main/java/com/ycwl/basic/controller/pc/OrderController.java index 7e7c1ee..42b32f2 100644 --- a/src/main/java/com/ycwl/basic/controller/pc/OrderController.java +++ b/src/main/java/com/ycwl/basic/controller/pc/OrderController.java @@ -2,6 +2,7 @@ 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; @@ -49,4 +50,11 @@ public class OrderController { 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/pc/OrderOperationMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/OrderOperationMapper.java new file mode 100644 index 0000000..7a1531f --- /dev/null +++ b/src/main/java/com/ycwl/basic/mapper/pc/OrderOperationMapper.java @@ -0,0 +1,12 @@ +package com.ycwl.basic.mapper.pc; + +import com.ycwl.basic.model.pc.orderOp.entity.OrderOperationEntity; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface OrderOperationMapper { + int add(OrderOperationEntity order); + List list(Long orderId); +} diff --git a/src/main/java/com/ycwl/basic/model/pc/orderOp/entity/OrderOperationEntity.java b/src/main/java/com/ycwl/basic/model/pc/orderOp/entity/OrderOperationEntity.java new file mode 100644 index 0000000..b75a398 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/pc/orderOp/entity/OrderOperationEntity.java @@ -0,0 +1,18 @@ +package com.ycwl.basic.model.pc.orderOp.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("order_operation") +public class OrderOperationEntity { + private Long id; + private Long orderId; + private String type; + private String remark; + private String user; + private String userId; + private Date createTime; +} 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 191492c..af5fc53 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 @@ -3,6 +3,7 @@ package com.ycwl.basic.service.impl.pc; import cn.hutool.core.bean.BeanUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.constant.NumberConstant; import com.ycwl.basic.enums.BizCodeEnum; import com.ycwl.basic.enums.GoodsTypeEnum; @@ -10,6 +11,7 @@ import com.ycwl.basic.enums.OrderStateEnum; import com.ycwl.basic.enums.SourceTypeNameEnum; import com.ycwl.basic.exception.AppException; import com.ycwl.basic.mapper.pc.OrderMapper; +import com.ycwl.basic.mapper.pc.OrderOperationMapper; import com.ycwl.basic.mapper.pc.SourceMapper; import com.ycwl.basic.mapper.pc.VideoMapper; import com.ycwl.basic.model.mobile.goods.GoodsDetailVO; @@ -17,6 +19,7 @@ import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq; import com.ycwl.basic.model.mobile.order.OrderAppPageReq; import com.ycwl.basic.model.mobile.order.RefundOrderReq; import com.ycwl.basic.model.pc.member.resp.MemberRespVO; +import com.ycwl.basic.model.pc.order.entity.OrderEntity; import com.ycwl.basic.model.pc.order.entity.OrderItemEntity; import com.ycwl.basic.model.pc.order.req.OrderAddOrUpdateReq; import com.ycwl.basic.model.pc.order.req.OrderItemDTO; @@ -24,6 +27,7 @@ import com.ycwl.basic.model.pc.order.req.OrderReqQuery; import com.ycwl.basic.model.pc.order.resp.OrderAppRespVO; import com.ycwl.basic.model.pc.order.resp.OrderItemVO; import com.ycwl.basic.model.pc.order.resp.OrderRespVO; +import com.ycwl.basic.model.pc.orderOp.entity.OrderOperationEntity; import com.ycwl.basic.model.pc.source.entity.SourceEntity; import com.ycwl.basic.model.pc.source.resp.SourceRespVO; import com.ycwl.basic.model.pc.video.entity.VideoEntity; @@ -69,6 +73,8 @@ public class OrderServiceImpl implements OrderService { private AppMemberService memberService; @Autowired private GoodsService goodsService; + @Autowired + private OrderOperationMapper orderOperationMapper; @Override public ApiResponse> pageQuery(OrderReqQuery query) { @@ -302,4 +308,19 @@ public class OrderServiceImpl implements OrderService { return ApiResponse.buildResult(BizCodeEnum.REQUEST_OK); } + @Override + public void remarkOrder(Long orderId, OrderEntity query) { + OrderAddOrUpdateReq updateOrder = new OrderAddOrUpdateReq(); + updateOrder.setId(orderId); + updateOrder.setRemark(query.getRemark()); + orderMapper.update(updateOrder); + OrderOperationEntity orderOperationEntity = new OrderOperationEntity(); + orderOperationEntity.setOrderId(orderId); + orderOperationEntity.setType("修改备注"); + orderOperationEntity.setRemark("备注修改为:"+query.getRemark()); + orderOperationEntity.setUser(BaseContextHandler.getAccount()); + orderOperationEntity.setUserId(BaseContextHandler.getUserId()); + orderOperationMapper.add(orderOperationEntity); + } + } 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 65c93ce..d3a8ef8 100644 --- a/src/main/java/com/ycwl/basic/service/pc/OrderService.java +++ b/src/main/java/com/ycwl/basic/service/pc/OrderService.java @@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo; import com.ycwl.basic.enums.OrderStateEnum; import com.ycwl.basic.model.mobile.order.OrderAppPageReq; 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.OrderAddOrUpdateReq; import com.ycwl.basic.model.pc.order.req.OrderReqQuery; import com.ycwl.basic.model.pc.order.resp.OrderAppRespVO; @@ -53,4 +54,6 @@ public interface OrderService { * @return */ ApiResponse auditRefundOrder(RefundOrderReq refundOrderReq); + + void remarkOrder(Long orderId, OrderEntity query); } diff --git a/src/main/resources/mapper/pc/AdminUserMapper.xml b/src/main/resources/mapper/pc/AdminUserMapper.xml index 6db54dc..1d7d72a 100644 --- a/src/main/resources/mapper/pc/AdminUserMapper.xml +++ b/src/main/resources/mapper/pc/AdminUserMapper.xml @@ -74,6 +74,8 @@ + select * from order_operation + where order_id = #{orderId} + order by create_time desc + + \ No newline at end of file From 3c502c600c8711f029e0ec35050896c421c75b82 Mon Sep 17 00:00:00 2001 From: longbinbin <2284496322@qq.com> Date: Wed, 11 Dec 2024 09:32:55 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E2=80=9C=E5=8D=95?= =?UTF-8?q?=E6=A8=A1=E7=89=88=E6=88=90=E7=89=87=E4=BB=BB=E5=8A=A1=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E2=80=9D=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/mobile/AppGoodsController.java | 20 ++++++++++++++++--- .../model/pc/order/req/OrderReqQuery.java | 2 +- .../model/pc/order/resp/OrderAppRespVO.java | 2 ++ .../service/impl/mobile/GoodsServiceImpl.java | 16 ++++++++++++++- .../service/impl/pc/OrderServiceImpl.java | 1 + .../basic/service/mobile/GoodsService.java | 4 +++- 6 files changed, 39 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java index 0ae16c2..1a4ba27 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java @@ -59,10 +59,24 @@ public class AppGoodsController { * @param scenicId 景区id * @return 1 合成中 2 合成成功 */ - @ApiOperation("查询用户当前景区的视频合成任务状态 1 合成中 2 合成成功 ") + @ApiOperation("查询用户当前景区的整体视频合成任务状态 1 合成中 2 合成成功 ") @GetMapping("/getTaskStatus/{scenicId}") - public ApiResponse getTaskStatus(@PathVariable("scenicId") Long scenicId) { + public ApiResponse getAllTaskStatus(@PathVariable("scenicId") Long scenicId) { JwtInfo worker = JwtTokenUtil.getWorker(); - return goodsService.getTaskStatus(worker.getUserId(),scenicId); + return goodsService.getAllTaskStatus(worker.getUserId(),scenicId); } + + /** + * 查询用户当前景区的具体模版视频合成任务状态 + * @param templateId 模版id + * @return 1 合成中 2 合成成功 + */ + @ApiOperation("查询用户当前景区的具体模版视频合成任务状态 1 合成中 2 合成成功 ") + @GetMapping("/getTemplateTaskStatus/{templateId}") + public ApiResponse getTemplateTaskStatus(@PathVariable("templateId") Long templateId) { + JwtInfo worker = JwtTokenUtil.getWorker(); + return goodsService.getTemplateTaskStatus(worker.getUserId(),templateId); + } + + } diff --git a/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java index 78568ed..55940f4 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java @@ -17,7 +17,7 @@ import java.util.Date; @Data @ApiModel(value = "订单查询对象") public class OrderReqQuery extends BaseQueryParameterReq { -// private Long id; + private Long id; private Long memberId; @ApiModelProperty("用户昵称") private String memberNickname; diff --git a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java index 8f12d25..321b968 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java @@ -90,6 +90,8 @@ public class OrderAppRespVO { private Integer goodsType; @ApiModelProperty("封面图片(来自模版封面图片)") private String coverUrl; + @ApiModelProperty("原素材类型:1视频,2图像") + private Integer sourceType; @ApiModelProperty("订单明细") private List orderItemList; } 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 3f5bbac..2313e19 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 @@ -193,7 +193,7 @@ public class GoodsServiceImpl implements GoodsService { * @return 1 合成中 2 合成成功 */ @Override - public ApiResponse getTaskStatus(Long userId, Long scenicId) { + public ApiResponse getAllTaskStatus(Long userId, Long scenicId) { TaskReqQuery taskReqQuery = new TaskReqQuery(); taskReqQuery.setMemberId(userId); taskReqQuery.setScenicId(scenicId); @@ -206,4 +206,18 @@ public class GoodsServiceImpl implements GoodsService { } } + @Override + public ApiResponse getTemplateTaskStatus(Long userId, Long templateId) { + TaskReqQuery taskReqQuery = new TaskReqQuery(); + taskReqQuery.setMemberId(userId); + taskReqQuery.setScenicId(templateId); + taskReqQuery.setStatus(2); + int count=taskMapper.countTask(taskReqQuery); + if(count>0){ + return ApiResponse.success(1); + }else { + return ApiResponse.success(2); + } + } + } 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 191492c..a6f4c2b 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 @@ -278,6 +278,7 @@ public class OrderServiceImpl implements OrderService { OrderItemVO itemVO = orderItemList.get(NumberConstant.ZERO); orderAppRespVO.setScenicName(itemVO.getScenicName()); orderAppRespVO.setGoodsName(itemVO.getGoodsName()); + orderAppRespVO.setSourceType(itemVO.getSourceType()); } return ApiResponse.success(orderAppRespVO); } diff --git a/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java b/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java index 8202f84..b2b85b5 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java +++ b/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java @@ -49,5 +49,7 @@ public interface GoodsService { * @param userId * @return */ - ApiResponse getTaskStatus(Long userId ,Long scenicId); + ApiResponse getAllTaskStatus(Long userId ,Long scenicId); + + ApiResponse getTemplateTaskStatus(Long userId, Long templateId); } From 6ad8541b2e27019abb302a993b2f269d1acd3d74 Mon Sep 17 00:00:00 2001 From: longbinbin <2284496322@qq.com> Date: Wed, 11 Dec 2024 11:35:32 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/mobile/AppGoodsController.java | 7 +-- .../ycwl/basic/mapper/pc/DeviceMapper.java | 3 +- .../model/mobile/goods/GoodsDetailVO.java | 4 ++ .../mobile/goods/VideoGoodsDetailVO.java | 48 ++++++++++++++++ .../model/pc/order/resp/OrderItemVO.java | 2 + .../impl/mobile/AppScenicServiceImpl.java | 4 +- .../service/impl/mobile/GoodsServiceImpl.java | 24 ++++---- .../service/impl/pc/OrderServiceImpl.java | 1 + .../basic/service/mobile/GoodsService.java | 7 +-- src/main/resources/mapper/pc/DeviceMapper.xml | 2 +- src/main/resources/mapper/pc/OrderMapper.xml | 55 +++++++++++-------- 11 files changed, 109 insertions(+), 48 deletions(-) create mode 100644 src/main/java/com/ycwl/basic/model/mobile/goods/VideoGoodsDetailVO.java diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java index 1a4ba27..8ffbf29 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java @@ -1,10 +1,7 @@ package com.ycwl.basic.controller.mobile; import com.ycwl.basic.model.jwt.JwtInfo; -import com.ycwl.basic.model.mobile.goods.GoodsDetailVO; -import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq; -import com.ycwl.basic.model.mobile.goods.GoodsReqQuery; -import com.ycwl.basic.model.mobile.goods.GoodsPageVO; +import com.ycwl.basic.model.mobile.goods.*; import com.ycwl.basic.model.pc.source.resp.SourceRespVO; import com.ycwl.basic.service.mobile.GoodsService; import com.ycwl.basic.utils.ApiResponse; @@ -44,7 +41,7 @@ public class AppGoodsController { @ApiOperation("成片vlog商品详情") @GetMapping("/getVideoGoodsDetail/{goodId}") - public ApiResponse videoGoodsDetail(@PathVariable("goodId") Long goodsId) { + public ApiResponse videoGoodsDetail(@PathVariable("goodId") Long goodsId) { return goodsService.videoGoodsDetail(goodsId); } diff --git a/src/main/java/com/ycwl/basic/mapper/pc/DeviceMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/DeviceMapper.java index d496826..86f81df 100644 --- a/src/main/java/com/ycwl/basic/mapper/pc/DeviceMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/pc/DeviceMapper.java @@ -6,6 +6,7 @@ import com.ycwl.basic.model.pc.device.req.DeviceAddOrUpdateReq; import com.ycwl.basic.model.pc.device.req.DeviceReqQuery; import com.ycwl.basic.model.pc.device.resp.DeviceRespVO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -25,5 +26,5 @@ public interface DeviceMapper { List listByScenicId(Long scenicId); - ScenicDeviceCountVO deviceCountByScenicId(Long scenicId, String userId); + ScenicDeviceCountVO deviceCountByScenicId(@Param("scenicId") Long scenicId,@Param("userId") Long userId); } diff --git a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailVO.java b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailVO.java index 60d24d0..bf22a23 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailVO.java +++ b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailVO.java @@ -39,4 +39,8 @@ public class GoodsDetailVO { private String videoUrl; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; + @ApiModelProperty("价格") + private BigDecimal price; + @ApiModelProperty("是否已购买 0否 1是") + private Integer isBuy; } 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 new file mode 100644 index 0000000..2cf15be --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/mobile/goods/VideoGoodsDetailVO.java @@ -0,0 +1,48 @@ +package com.ycwl.basic.model.mobile.goods; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Author:longbinbin + * @Date:2024/12/5 15:10 + */ +@Data +@ApiModel("vlog商品详情") +public class VideoGoodsDetailVO { + @ApiModelProperty("商品名称") + private String goodsName; + @ApiModelProperty("景区id") + private Long scenicId; + @ApiModelProperty("景区名称") + private String scenicName; + @ApiModelProperty("经度") + private BigDecimal longitude; + @ApiModelProperty("纬度") + private BigDecimal latitude; + @ApiModelProperty("商品类型 1:成片视频 2:源素材") + private Integer goodsType; + @ApiModelProperty("源素材类型 1:视频 2:图片") + private Integer sourceType; + @ApiModelProperty("商品id goodsType=1时为videoId,goodsType=2时为sourceId") + private Long goodsId; + @ApiModelProperty("模版封面图片") + private String templateCoverUrl; + @ApiModelProperty("图片文件存储地址") + private String url; + @ApiModelProperty("视频文件存储地址") + private String videoUrl; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + @ApiModelProperty("价格") + private BigDecimal price; + @ApiModelProperty("是否已购买 0否 1是") + private Integer isBuy; + @ApiModelProperty("镜头数") + private Integer lensNum; +} diff --git a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderItemVO.java b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderItemVO.java index 57a9df8..1e790a6 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderItemVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderItemVO.java @@ -19,6 +19,8 @@ public class OrderItemVO { */ @ApiModelProperty("订单id") private Long orderId; + @ApiModelProperty("商品类型,1成片,2源素材") + private Integer goodsType; /** * 商品ID,goods_type=1关联video.id,=2关联source.id,=3关联template.id */ 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 7da34ab..68afd1d 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 @@ -72,8 +72,8 @@ public class AppScenicServiceImpl implements AppScenicService { @Override public ApiResponse deviceCountByScenicId(Long scenicId) { - String userId = BaseContextHandler.getUserId(); - ScenicDeviceCountVO scenicDeviceCountVO = deviceMapper.deviceCountByScenicId(scenicId, userId); + JwtInfo worker = JwtTokenUtil.getWorker(); + ScenicDeviceCountVO scenicDeviceCountVO = deviceMapper.deviceCountByScenicId(scenicId, worker.getUserId()); return ApiResponse.success(scenicDeviceCountVO); } 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 2313e19..cf4c69a 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,14 +1,9 @@ package com.ycwl.basic.service.impl.mobile; -import com.ycwl.basic.mapper.pc.ScenicMapper; -import com.ycwl.basic.mapper.pc.SourceMapper; -import com.ycwl.basic.mapper.pc.TaskMapper; -import com.ycwl.basic.mapper.pc.VideoMapper; +import com.ycwl.basic.mapper.pc.*; import com.ycwl.basic.model.jwt.JwtInfo; -import com.ycwl.basic.model.mobile.goods.GoodsDetailVO; -import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq; -import com.ycwl.basic.model.mobile.goods.GoodsReqQuery; -import com.ycwl.basic.model.mobile.goods.GoodsPageVO; +import com.ycwl.basic.model.mobile.goods.*; +import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO; 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; @@ -39,6 +34,8 @@ public class GoodsServiceImpl implements GoodsService { private ScenicMapper scenicMapper; @Autowired private TaskMapper taskMapper; + @Autowired + private DeviceMapper deviceMapper; public ApiResponse> goodsList(GoodsReqQuery query) { JwtInfo worker = JwtTokenUtil.getWorker(); @@ -171,9 +168,12 @@ public class GoodsServiceImpl implements GoodsService { } @Override - public ApiResponse videoGoodsDetail(Long goodsId) { - GoodsDetailVO goodsDetailVO = new GoodsDetailVO(); + public ApiResponse videoGoodsDetail(Long goodsId) { + VideoGoodsDetailVO goodsDetailVO = new VideoGoodsDetailVO(); VideoRespVO videoRespVO = videoMapper.getById(goodsId); + if(videoRespVO==null){ + return ApiResponse.fail("该vlog不存在或已失效"); + } goodsDetailVO.setGoodsName(videoRespVO.getTemplateName()); goodsDetailVO.setScenicId(videoRespVO.getScenicId()); goodsDetailVO.setScenicName(videoRespVO.getScenicName()); @@ -184,6 +184,10 @@ public class GoodsServiceImpl implements GoodsService { goodsDetailVO.setVideoUrl(videoRespVO.getVideoUrl()); goodsDetailVO.setTemplateCoverUrl(videoRespVO.getTemplateCoverUrl()); goodsDetailVO.setCreateTime(videoRespVO.getCreateTime()); + goodsDetailVO.setPrice(videoRespVO.getTemplatePrice()); + goodsDetailVO.setIsBuy(videoRespVO.getIsBuy()); + ScenicDeviceCountVO scenicDeviceCountVO = deviceMapper.deviceCountByScenicId(videoRespVO.getScenicId(), -1L); + goodsDetailVO.setLensNum(scenicDeviceCountVO.getTotalDeviceCount()); 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 a6f4c2b..51ca65e 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 @@ -264,6 +264,7 @@ public class OrderServiceImpl implements OrderService { OrderItemVO itemVO = orderItemList.get(NumberConstant.ZERO); appRespVO.setScenicName(itemVO.getScenicName()); appRespVO.setGoodsName(itemVO.getGoodsName()); + appRespVO.setSourceType(itemVO.getSourceType()); } } PageInfo pageInfo = new PageInfo<>(list); diff --git a/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java b/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java index b2b85b5..4cf84c9 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java +++ b/src/main/java/com/ycwl/basic/service/mobile/GoodsService.java @@ -1,9 +1,6 @@ package com.ycwl.basic.service.mobile; -import com.ycwl.basic.model.mobile.goods.GoodsDetailVO; -import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq; -import com.ycwl.basic.model.mobile.goods.GoodsReqQuery; -import com.ycwl.basic.model.mobile.goods.GoodsPageVO; +import com.ycwl.basic.model.mobile.goods.*; import com.ycwl.basic.model.pc.source.resp.SourceRespVO; import com.ycwl.basic.utils.ApiResponse; @@ -42,7 +39,7 @@ public interface GoodsService { * @param goodsId 商品(vlog)id * @return */ - ApiResponse videoGoodsDetail(Long goodsId); + ApiResponse videoGoodsDetail(Long goodsId); /** * 查询当前用户的成片合成任务状态 diff --git a/src/main/resources/mapper/pc/DeviceMapper.xml b/src/main/resources/mapper/pc/DeviceMapper.xml index 59de37b..d805506 100644 --- a/src/main/resources/mapper/pc/DeviceMapper.xml +++ b/src/main/resources/mapper/pc/DeviceMapper.xml @@ -68,7 +68,7 @@ left join ( select count(1) shotDeviceCount,scenic_id from source - where scenic_id = #{scenicId} + where scenic_id = #{scenicId} and member_id=#{userId} group by device_id )b on a.scenic_id = b.scenic_id diff --git a/src/main/resources/mapper/pc/OrderMapper.xml b/src/main/resources/mapper/pc/OrderMapper.xml index d0322f6..e5873a6 100644 --- a/src/main/resources/mapper/pc/OrderMapper.xml +++ b/src/main/resources/mapper/pc/OrderMapper.xml @@ -47,9 +47,9 @@ - + - + @@ -58,14 +58,29 @@ + + insert into `order`(id, member_id, openid,price, pay_price, remark, broker_id, promo_code,goods_type,scenic_id) VALUES (#{id}, #{memberId}, #{openid},#{price}, #{payPrice}, #{remark}, #{brokerId}, #{promoCode},#{goodsType},#{scenicId}) - insert into order_item(id, order_id, goods_id) VALUES + insert into order_item(id, order_id,goods_type, goods_id) VALUES - (#{item.id}, #{item.orderId}, #{item.goodsId}) + (#{item.id}, #{item.orderId}, #{item.goodsType},#{item.goodsId}) @@ -107,7 +122,7 @@