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..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,13 +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.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; /** @@ -23,14 +24,28 @@ 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); } + + @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..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,12 +1,11 @@ package com.ycwl.basic.controller.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.jwt.JwtInfo; +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; +import com.ycwl.basic.utils.JwtTokenUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -42,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); } @@ -51,4 +50,30 @@ 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 getAllTaskStatus(@PathVariable("scenicId") Long scenicId) { + JwtInfo worker = JwtTokenUtil.getWorker(); + 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/controller/mobile/AppOrderController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppOrderController.java index 1051e5e..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,8 +30,7 @@ public class AppOrderController { @ApiOperation("用户端订单列表查询") @PostMapping("/page") - @IgnoreToken - 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); @@ -38,7 +38,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/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/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/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/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/mapper/pc/FaceMapper.java b/src/main/java/com/ycwl/basic/mapper/pc/FaceMapper.java index 8ea2a79..d9e95cc 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(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/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/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/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/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/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/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/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/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/resp/OrderAppRespVO.java b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderAppRespVO.java index 704d5bc..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 @@ -83,6 +83,15 @@ public class OrderAppRespVO { private String goodsName; @ApiModelProperty("拍摄时间") private Date shootingTime; + /** + * 商品类型,0其他,1成片,2原片,3模板成片 + */ + @ApiModelProperty("商品类型,1成片,2源素材") + 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/model/pc/order/resp/OrderItemVO.java b/src/main/java/com/ycwl/basic/model/pc/order/resp/OrderItemVO.java index d76f6cf..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,10 +19,7 @@ public class OrderItemVO { */ @ApiModelProperty("订单id") private Long orderId; - /** - * 商品类型,0其他,1成片,2原片,3模板成片 - */ - @ApiModelProperty("商品类型,0其他,1成片,2源素材") + @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/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/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/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 907f3e3..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 @@ -98,15 +98,15 @@ 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 { 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..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 @@ -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; @@ -56,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); } @@ -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..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,20 +1,19 @@ 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.VideoMapper; -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.mapper.pc.*; +import com.ycwl.basic.model.jwt.JwtInfo; +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; +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 +32,20 @@ public class GoodsServiceImpl implements GoodsService { private SourceMapper sourceMapper; @Autowired private ScenicMapper scenicMapper; + @Autowired + private TaskMapper taskMapper; + @Autowired + private DeviceMapper deviceMapper; 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 -> { @@ -164,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()); @@ -177,6 +184,44 @@ 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); } + + /** + * 查询用户当前景区的视频合成任务状态 + * @param scenicId 景区id + * @return 1 合成中 2 合成成功 + */ + @Override + public ApiResponse getAllTaskStatus(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); + } + } + + @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/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java index c3bfcf9..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 @@ -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(Long.parseLong(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,31 @@ 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, faceEntity.getId()); + float score = faceRespVo.getScore(); + if (score getFaceByMemberId(Long memberId) { + return ApiResponse.success(faceMapper.getByMemberId(memberId)); } /** 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 cba0dcc..4cb9d21 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,12 +11,15 @@ 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; 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; @@ -23,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; @@ -68,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) { @@ -207,9 +214,9 @@ public class OrderServiceImpl implements OrderService { //如果订单未支付就把商品状态更改成未购买 if (state != OrderStateEnum.PAID.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(); @@ -225,9 +232,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(); @@ -254,7 +261,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) { @@ -263,6 +270,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); @@ -277,6 +285,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); } @@ -301,4 +310,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/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..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,5 +39,14 @@ public interface GoodsService { * @param goodsId 商品(vlog)id * @return */ - ApiResponse videoGoodsDetail(Long goodsId); + ApiResponse videoGoodsDetail(Long goodsId); + + /** + * 查询当前用户的成片合成任务状态 + * @param userId + * @return + */ + ApiResponse getAllTaskStatus(Long userId ,Long scenicId); + + ApiResponse getTemplateTaskStatus(Long userId, Long templateId); } 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..f1edb52 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,7 @@ public interface FaceService { ApiResponse deleteByIds(List ids); ApiResponse update(FaceEntity face); - ApiResponse faceUPload(MultipartFile file); + 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..d3a8ef8 100644 --- a/src/main/java/com/ycwl/basic/service/pc/OrderService.java +++ b/src/main/java/com/ycwl/basic/service/pc/OrderService.java @@ -2,7 +2,9 @@ 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.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; @@ -32,7 +34,7 @@ public interface OrderService { ApiResponse getOrderCountByUserId(Long userId); - ApiResponse> appPageQuery(OrderReqQuery orderReqQuery); + ApiResponse> appPageQuery(OrderAppPageReq orderReqQuery); ApiResponse appDetail(Long id); @@ -52,4 +54,6 @@ public interface OrderService { * @return */ ApiResponse auditRefundOrder(RefundOrderReq refundOrderReq); + + void remarkOrder(Long orderId, OrderEntity query); } 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/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/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 @@ 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..e5873a6 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 @@ + @@ -45,10 +46,10 @@ - + + - - + @@ -57,14 +58,29 @@ + + - 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_type, goods_id) VALUES - (#{item.id}, #{item.orderId}, #{item.goodsType}, #{item.goodsId}) + (#{item.id}, #{item.orderId}, #{item.goodsType},#{item.goodsId}) @@ -105,12 +121,12 @@ - + \ No newline at end of file diff --git a/src/main/resources/mapper/pc/OrderOperationMapper.xml b/src/main/resources/mapper/pc/OrderOperationMapper.xml new file mode 100644 index 0000000..ae1da7a --- /dev/null +++ b/src/main/resources/mapper/pc/OrderOperationMapper.xml @@ -0,0 +1,13 @@ + + + + + insert into order_operation (order_id, type, remark, `user`, user_id, create_time) + values (#{orderId}, #{type}, #{remark}, #{user}, #{userId}, now()); + + + \ No newline at end of file diff --git a/src/main/resources/mapper/pc/TaskMapper.xml b/src/main/resources/mapper/pc/TaskMapper.xml index e9284a7..7f67abb 100644 --- a/src/main/resources/mapper/pc/TaskMapper.xml +++ b/src/main/resources/mapper/pc/TaskMapper.xml @@ -70,4 +70,16 @@ from task from task where status = 0 and worker_id is null + \ 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}