You've already forked FrameTour-BE
refactor(order): 优化订单相关代码
- 修改了多个模块中的方法名称,使其更加准确地反映功能 - 优化了部分代码逻辑,提高了可读性和维护性 - 增加了获取
This commit is contained in:
@@ -13,17 +13,14 @@ import com.ycwl.basic.model.pc.couponRecord.resp.CouponRecordQueryResp;
|
|||||||
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
||||||
import com.ycwl.basic.model.pc.order.entity.OrderEntity;
|
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.entity.OrderItemEntity;
|
||||||
import com.ycwl.basic.model.pc.order.req.OrderUpdateReq;
|
|
||||||
import com.ycwl.basic.model.pc.order.resp.OrderAppRespVO;
|
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.OrderItemVO;
|
||||||
import com.ycwl.basic.model.pc.order.resp.OrderRespVO;
|
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
|
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
|
||||||
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
import com.ycwl.basic.model.pc.source.entity.SourceEntity;
|
||||||
import com.ycwl.basic.model.pc.task.entity.TaskEntity;
|
import com.ycwl.basic.model.pc.task.entity.TaskEntity;
|
||||||
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
|
||||||
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
|
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
|
||||||
import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
|
|
||||||
import com.ycwl.basic.pricing.dto.PriceCalculationRequest;
|
import com.ycwl.basic.pricing.dto.PriceCalculationRequest;
|
||||||
import com.ycwl.basic.pricing.dto.PriceCalculationResult;
|
import com.ycwl.basic.pricing.dto.PriceCalculationResult;
|
||||||
import com.ycwl.basic.pricing.dto.ProductItem;
|
import com.ycwl.basic.pricing.dto.ProductItem;
|
||||||
@@ -38,13 +35,11 @@ import com.ycwl.basic.repository.TemplateRepository;
|
|||||||
import com.ycwl.basic.repository.VideoRepository;
|
import com.ycwl.basic.repository.VideoRepository;
|
||||||
import com.ycwl.basic.repository.VideoTaskRepository;
|
import com.ycwl.basic.repository.VideoTaskRepository;
|
||||||
import com.ycwl.basic.service.printer.PrinterService;
|
import com.ycwl.basic.service.printer.PrinterService;
|
||||||
import com.ycwl.basic.utils.ApiResponse;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@@ -121,7 +116,7 @@ public class OrderBiz {
|
|||||||
ProductItem vlogProductItem = new ProductItem();
|
ProductItem vlogProductItem = new ProductItem();
|
||||||
vlogProductItem.setProductType(ProductType.VLOG_VIDEO);
|
vlogProductItem.setProductType(ProductType.VLOG_VIDEO);
|
||||||
vlogProductItem.setProductId(template.getId().toString());
|
vlogProductItem.setProductId(template.getId().toString());
|
||||||
vlogProductItem.setQuantity(videoTaskRepository.getTaskDeviceCount(video.getTaskId()));
|
vlogProductItem.setQuantity(videoTaskRepository.getTaskLensNum(video.getTaskId()));
|
||||||
vlogProductItem.setScenicId(scenic.getId().toString());
|
vlogProductItem.setScenicId(scenic.getId().toString());
|
||||||
vlogCalculationRequest.setProducts(Collections.singletonList(vlogProductItem));
|
vlogCalculationRequest.setProducts(Collections.singletonList(vlogProductItem));
|
||||||
vlogCalculationRequest.setFaceId(priceObj.getFaceId());
|
vlogCalculationRequest.setFaceId(priceObj.getFaceId());
|
||||||
|
@@ -4,8 +4,6 @@ import com.github.pagehelper.PageInfo;
|
|||||||
import com.ycwl.basic.constant.BaseContextHandler;
|
import com.ycwl.basic.constant.BaseContextHandler;
|
||||||
import com.ycwl.basic.mapper.SourceMapper;
|
import com.ycwl.basic.mapper.SourceMapper;
|
||||||
import com.ycwl.basic.mapper.VideoMapper;
|
import com.ycwl.basic.mapper.VideoMapper;
|
||||||
import com.ycwl.basic.model.pc.order.req.CreateOrderReqVO;
|
|
||||||
import com.ycwl.basic.model.pc.source.entity.MemberSourceEntity;
|
|
||||||
import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
|
import com.ycwl.basic.model.pc.source.req.SourceReqQuery;
|
||||||
import com.ycwl.basic.model.pc.task.entity.TaskEntity;
|
import com.ycwl.basic.model.pc.task.entity.TaskEntity;
|
||||||
import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity;
|
import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity;
|
||||||
@@ -29,17 +27,13 @@ import com.ycwl.basic.order.dto.OrderV2PageRequest;
|
|||||||
import com.ycwl.basic.order.dto.PaymentParamsRequest;
|
import com.ycwl.basic.order.dto.PaymentParamsRequest;
|
||||||
import com.ycwl.basic.order.dto.PaymentParamsResponse;
|
import com.ycwl.basic.order.dto.PaymentParamsResponse;
|
||||||
import com.ycwl.basic.order.dto.PaymentCallbackResponse;
|
import com.ycwl.basic.order.dto.PaymentCallbackResponse;
|
||||||
import com.ycwl.basic.utils.JacksonUtil;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 移动端订单控制器V2
|
* 移动端订单控制器V2
|
||||||
@@ -111,7 +105,7 @@ public class AppOrderV2Controller {
|
|||||||
case VLOG_VIDEO:
|
case VLOG_VIDEO:
|
||||||
List<MemberVideoEntity> videoEntities = videoMapper.listRelationByFaceAndTemplate(face.getId(), Long.valueOf(product.getProductId()));
|
List<MemberVideoEntity> videoEntities = videoMapper.listRelationByFaceAndTemplate(face.getId(), Long.valueOf(product.getProductId()));
|
||||||
if (videoEntities != null && !videoEntities.isEmpty()) {
|
if (videoEntities != null && !videoEntities.isEmpty()) {
|
||||||
product.setQuantity(videoTaskRepository.getTaskDeviceCount(videoEntities.getFirst().getTaskId()));
|
product.setQuantity(videoTaskRepository.getTaskLensNum(videoEntities.getFirst().getTaskId()));
|
||||||
} else {
|
} else {
|
||||||
product.setQuantity(1);
|
product.setQuantity(1);
|
||||||
}
|
}
|
||||||
|
@@ -50,6 +50,7 @@ public class VideoGoodsDetailVO {
|
|||||||
// 是否已购买 0否 1是
|
// 是否已购买 0否 1是
|
||||||
private Integer isBuy;
|
private Integer isBuy;
|
||||||
// 镜头数
|
// 镜头数
|
||||||
|
private Integer devicesNum;
|
||||||
private Integer lensNum;
|
private Integer lensNum;
|
||||||
private Long faceId;
|
private Long faceId;
|
||||||
private boolean share = false;
|
private boolean share = false;
|
||||||
|
@@ -3,7 +3,6 @@ package com.ycwl.basic.repository;
|
|||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.ycwl.basic.utils.JacksonUtil;
|
import com.ycwl.basic.utils.JacksonUtil;
|
||||||
import com.ycwl.basic.mapper.TaskMapper;
|
import com.ycwl.basic.mapper.TaskMapper;
|
||||||
import com.ycwl.basic.mapper.VideoMapper;
|
|
||||||
import com.ycwl.basic.model.pc.task.entity.TaskEntity;
|
import com.ycwl.basic.model.pc.task.entity.TaskEntity;
|
||||||
import com.ycwl.basic.model.pc.task.resp.TaskRespVO;
|
import com.ycwl.basic.model.pc.task.resp.TaskRespVO;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -11,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -68,7 +68,35 @@ public class VideoTaskRepository {
|
|||||||
return shotTime;
|
return shotTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getTaskDeviceCount(Long taskId) {
|
public Integer getTaskDeviceNum(Long taskId) {
|
||||||
|
TaskEntity task = getTaskById(taskId);
|
||||||
|
if (task == null) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
Map<String, Object> paramJson = JacksonUtil.parseObject(task.getTaskParams(), Map.class);
|
||||||
|
if (paramJson == null) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
List<String> deviceIds = new ArrayList<>();
|
||||||
|
List<String> templatePlaceholder = templateRepository.getTemplatePlaceholder(task.getTemplateId());
|
||||||
|
paramJson.entrySet().stream()
|
||||||
|
.filter(entry -> StringUtils.isNumeric(entry.getKey()))
|
||||||
|
.forEach(entry -> {
|
||||||
|
List<Object> jsonArray = JacksonUtil.parseArray(JacksonUtil.toJSONString(entry.getValue()), Object.class);
|
||||||
|
if (jsonArray != null && !jsonArray.isEmpty()) {
|
||||||
|
for (Object ignored : jsonArray) {
|
||||||
|
if (templatePlaceholder.contains(entry.getKey())) {
|
||||||
|
if (!deviceIds.contains(entry.getKey())) {
|
||||||
|
deviceIds.add(entry.getKey());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return deviceIds.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getTaskLensNum(Long taskId) {
|
||||||
TaskEntity task = getTaskById(taskId);
|
TaskEntity task = getTaskById(taskId);
|
||||||
if (task == null) {
|
if (task == null) {
|
||||||
return 1;
|
return 1;
|
||||||
|
@@ -1,10 +1,8 @@
|
|||||||
package com.ycwl.basic.service.mobile.impl;
|
package com.ycwl.basic.service.mobile.impl;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.extra.qrcode.QrCodeUtil;
|
|
||||||
import cn.hutool.http.HttpUtil;
|
import cn.hutool.http.HttpUtil;
|
||||||
import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2DTO;
|
import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2DTO;
|
||||||
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
|
|
||||||
import com.ycwl.basic.utils.JacksonUtil;
|
import com.ycwl.basic.utils.JacksonUtil;
|
||||||
import com.ycwl.basic.biz.CouponBiz;
|
import com.ycwl.basic.biz.CouponBiz;
|
||||||
import com.ycwl.basic.biz.OrderBiz;
|
import com.ycwl.basic.biz.OrderBiz;
|
||||||
@@ -37,7 +35,6 @@ import com.ycwl.basic.model.pc.video.req.VideoReqQuery;
|
|||||||
import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
|
import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
|
||||||
import com.ycwl.basic.repository.DeviceRepository;
|
import com.ycwl.basic.repository.DeviceRepository;
|
||||||
import com.ycwl.basic.repository.FaceRepository;
|
import com.ycwl.basic.repository.FaceRepository;
|
||||||
import com.ycwl.basic.repository.OrderRepository;
|
|
||||||
import com.ycwl.basic.repository.ScenicRepository;
|
import com.ycwl.basic.repository.ScenicRepository;
|
||||||
import com.ycwl.basic.repository.VideoTaskRepository;
|
import com.ycwl.basic.repository.VideoTaskRepository;
|
||||||
import com.ycwl.basic.service.mobile.GoodsService;
|
import com.ycwl.basic.service.mobile.GoodsService;
|
||||||
@@ -54,15 +51,12 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.net.MalformedURLException;
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URL;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -308,7 +302,8 @@ public class GoodsServiceImpl implements GoodsService {
|
|||||||
return ApiResponse.fail("该vlog不存在或已失效");
|
return ApiResponse.fail("该vlog不存在或已失效");
|
||||||
}
|
}
|
||||||
goodsDetailVO.setShotTime(taskTaskService.getTaskShotDate(task.getId()));
|
goodsDetailVO.setShotTime(taskTaskService.getTaskShotDate(task.getId()));
|
||||||
goodsDetailVO.setLensNum(videoTaskRepository.getTaskDeviceCount(task.getId()));
|
goodsDetailVO.setLensNum(videoTaskRepository.getTaskLensNum(task.getId()));
|
||||||
|
goodsDetailVO.setDevicesNum(videoTaskRepository.getTaskDeviceNum(task.getId()));
|
||||||
CouponRecordQueryResp couponRecord = couponBiz.queryUserCouponRecord(task.getScenicId(), userId, task.getFaceId(), task.getTemplateId().toString());
|
CouponRecordQueryResp couponRecord = couponBiz.queryUserCouponRecord(task.getScenicId(), userId, task.getFaceId(), task.getTemplateId().toString());
|
||||||
if (couponRecord != null) {
|
if (couponRecord != null) {
|
||||||
if (couponRecord.isUsable()) {
|
if (couponRecord.isUsable()) {
|
||||||
|
@@ -11,7 +11,6 @@ import com.ycwl.basic.pricing.dto.PriceCalculationResult;
|
|||||||
import com.ycwl.basic.pricing.dto.ProductItem;
|
import com.ycwl.basic.pricing.dto.ProductItem;
|
||||||
import com.ycwl.basic.pricing.service.ICouponService;
|
import com.ycwl.basic.pricing.service.ICouponService;
|
||||||
import com.ycwl.basic.pricing.service.IVoucherService;
|
import com.ycwl.basic.pricing.service.IVoucherService;
|
||||||
import com.ycwl.basic.utils.JacksonUtil;
|
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import com.ycwl.basic.biz.CouponBiz;
|
import com.ycwl.basic.biz.CouponBiz;
|
||||||
@@ -64,7 +63,6 @@ import com.ycwl.basic.service.task.impl.TaskTaskServiceImpl;
|
|||||||
import com.ycwl.basic.utils.ApiResponse;
|
import com.ycwl.basic.utils.ApiResponse;
|
||||||
import com.ycwl.basic.utils.SnowFlakeUtil;
|
import com.ycwl.basic.utils.SnowFlakeUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
@@ -342,7 +340,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
goods.setGoodsType(0);
|
goods.setGoodsType(0);
|
||||||
goods.setTemplateCoverUrl(template.getCoverUrl());
|
goods.setTemplateCoverUrl(template.getCoverUrl());
|
||||||
goods.setCreateTime(videoTaskRepository.getTaskShotDate(task.getId()));
|
goods.setCreateTime(videoTaskRepository.getTaskShotDate(task.getId()));
|
||||||
goods.setParts(videoTaskRepository.getTaskDeviceCount(task.getId()));
|
goods.setParts(videoTaskRepository.getTaskLensNum(task.getId()));
|
||||||
goodsList.add(goods);
|
goodsList.add(goods);
|
||||||
item.setShootingTime(videoTaskRepository.getTaskShotDate(videoMapperById.getTaskId()));
|
item.setShootingTime(videoTaskRepository.getTaskShotDate(videoMapperById.getTaskId()));
|
||||||
item.setVideoUrl(videoMapperById.getVideoUrl());
|
item.setVideoUrl(videoMapperById.getVideoUrl());
|
||||||
|
Reference in New Issue
Block a user