You've already forked FrameTour-BE
实现商品信息查询和商品价格查询逻辑
This commit is contained in:
@ -0,0 +1,130 @@
|
||||
package com.ycwl.basic.service.impl.mobile;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
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.GoodsPriceQueryReq;
|
||||
import com.ycwl.basic.model.mobile.goods.GoodsReqQuery;
|
||||
import com.ycwl.basic.model.mobile.goods.GoodsVO;
|
||||
import com.ycwl.basic.model.pc.order.resp.OrderItemVO;
|
||||
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.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 org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author:longbinbin
|
||||
* @Date:2024/12/5 15:04
|
||||
*/@Service
|
||||
public class GoodsServiceImpl implements GoodsService {
|
||||
@Autowired
|
||||
private VideoMapper videoMapper;
|
||||
@Autowired
|
||||
private SourceMapper sourceMapper;
|
||||
@Autowired
|
||||
private ScenicMapper scenicMapper;
|
||||
|
||||
public ApiResponse<List<GoodsVO>> goodsList(GoodsReqQuery query) {
|
||||
//查询原素材
|
||||
List<GoodsVO> goodsList = new ArrayList<>();
|
||||
|
||||
VideoReqQuery videoReqQuery = new VideoReqQuery();
|
||||
videoReqQuery.setScenicId(query.getScenicId());
|
||||
videoReqQuery.setIsBuy(query.getIsBuy());
|
||||
videoReqQuery.setMemberId(query.getMemberId());
|
||||
//查询成片vlog
|
||||
List<VideoRespVO> videoList = videoMapper.list(videoReqQuery);
|
||||
videoList.forEach(videoRespVO -> {
|
||||
GoodsVO goodsVO = new GoodsVO();
|
||||
goodsVO.setGoodsName(videoRespVO.getTemplateName());
|
||||
goodsVO.setScenicId(videoRespVO.getScenicId());
|
||||
goodsVO.setScenicName(videoRespVO.getScenicName());
|
||||
goodsVO.setLongitude(videoRespVO.getLongitude());
|
||||
goodsVO.setLatitude(videoRespVO.getLatitude());
|
||||
goodsVO.setGoodsType(1);
|
||||
goodsVO.setGoodsId(videoRespVO.getId());
|
||||
goodsVO.setVideoUrl(videoRespVO.getVideoUrl());
|
||||
goodsList.add(goodsVO);
|
||||
});
|
||||
|
||||
|
||||
SourceReqQuery sourceReqQuery = new SourceReqQuery();
|
||||
videoReqQuery.setScenicId(query.getScenicId());
|
||||
videoReqQuery.setIsBuy(query.getIsBuy());
|
||||
videoReqQuery.setMemberId(query.getMemberId());
|
||||
//查询源素材
|
||||
List<SourceRespVO> sourceList = sourceMapper.listGroupByType(sourceReqQuery);
|
||||
sourceList.forEach(sourceRespVO -> {
|
||||
GoodsVO goodsVO = new GoodsVO();
|
||||
Integer type = sourceRespVO.getType();
|
||||
if(type==1){
|
||||
goodsVO.setGoodsName("原片集");
|
||||
}else {
|
||||
goodsVO.setGoodsName("照片集");
|
||||
}
|
||||
goodsVO.setScenicId(sourceRespVO.getScenicId());
|
||||
goodsVO.setScenicName(sourceRespVO.getScenicName());
|
||||
goodsVO.setLongitude(sourceRespVO.getLongitude());
|
||||
goodsVO.setLatitude(sourceRespVO.getLatitude());
|
||||
goodsVO.setGoodsType(2);
|
||||
goodsVO.setSourceType(type);
|
||||
goodsList.add(goodsVO);
|
||||
});
|
||||
|
||||
return ApiResponse.success(goodsList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResponse<List<SourceRespVO>> sourceGoodsList(GoodsReqQuery query) {
|
||||
SourceReqQuery sourceReqQuery = new SourceReqQuery();
|
||||
sourceReqQuery.setScenicId(query.getScenicId());
|
||||
sourceReqQuery.setIsBuy(query.getIsBuy());
|
||||
sourceReqQuery.setMemberId(query.getMemberId());
|
||||
sourceReqQuery.setType(query.getSourceType());
|
||||
List<SourceRespVO> list = sourceMapper.list(sourceReqQuery);
|
||||
return ApiResponse.success(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResponse queryPrice(GoodsPriceQueryReq queryPriceData) {
|
||||
Integer goodsType = queryPriceData.getGoodsType();
|
||||
|
||||
if(goodsType==1){//成片vlog
|
||||
//成片的价格就是成片所用template的价格
|
||||
Long videoId = queryPriceData.getGoodsId();
|
||||
VideoRespVO videoRespVO = videoMapper.getById(videoId);
|
||||
if(videoRespVO==null){
|
||||
return ApiResponse.fail("该vlog不存在或已失效");
|
||||
}
|
||||
BigDecimal tmplatePrice = videoRespVO.getTmplatePrice();
|
||||
if(tmplatePrice==null){
|
||||
return ApiResponse.fail("该vlog使用的模板价格或状态异常,请联系管理员");
|
||||
}
|
||||
return ApiResponse.success(tmplatePrice);
|
||||
|
||||
}else if(goodsType==2){//原素材
|
||||
//原素材的价格就是原素材对应景区定的价格
|
||||
Long scenicId = queryPriceData.getScenicId();
|
||||
ScenicRespVO scenicRespVO = scenicMapper.getById(scenicId);
|
||||
if(scenicRespVO==null){
|
||||
return ApiResponse.fail("该景区不存在或状态异常,请联系管理员");
|
||||
}
|
||||
BigDecimal price = scenicRespVO.getPrice();
|
||||
if(price==null){
|
||||
return ApiResponse.fail("该景区的原片价格未设定或状态异常,请联系管理员");
|
||||
}
|
||||
return ApiResponse.success(price);
|
||||
}
|
||||
return ApiResponse.fail("不合法的商品,请联系管理员");
|
||||
}
|
||||
}
|
@ -119,4 +119,5 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
return ApiResponse.success(orderAppRespVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,37 @@
|
||||
package com.ycwl.basic.service.mobile;
|
||||
|
||||
import com.ycwl.basic.model.mobile.goods.GoodsPriceQueryReq;
|
||||
import com.ycwl.basic.model.mobile.goods.GoodsReqQuery;
|
||||
import com.ycwl.basic.model.mobile.goods.GoodsVO;
|
||||
import com.ycwl.basic.model.pc.source.resp.SourceRespVO;
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author:longbinbin
|
||||
* @Date:2024/12/5 15:03
|
||||
*/
|
||||
public interface GoodsService {
|
||||
|
||||
/**
|
||||
* 查询商品列表
|
||||
* @param query 查询条件
|
||||
* @return
|
||||
*/
|
||||
ApiResponse<List<GoodsVO>> goodsList(GoodsReqQuery query);
|
||||
|
||||
/**
|
||||
* 查询源素材商品列表
|
||||
* @param query
|
||||
* @return
|
||||
*/
|
||||
ApiResponse<List<SourceRespVO>> sourceGoodsList(GoodsReqQuery query);
|
||||
|
||||
/**
|
||||
* 查询订单应付价格
|
||||
* @param queryPriceData
|
||||
* @return
|
||||
*/
|
||||
ApiResponse queryPrice(GoodsPriceQueryReq queryPriceData);
|
||||
}
|
@ -1,7 +1,6 @@
|
||||
package com.ycwl.basic.service.pc;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
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;
|
||||
@ -26,4 +25,6 @@ public interface OrderService {
|
||||
ApiResponse<PageInfo<OrderAppRespVO>> appPageQuery(OrderReqQuery orderReqQuery);
|
||||
|
||||
ApiResponse<OrderAppRespVO> appDetail(Long id);
|
||||
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user