bug修复等

This commit is contained in:
2025-01-08 14:45:17 +08:00
parent cfc870edb6
commit a329100212
8 changed files with 124 additions and 108 deletions

View File

@ -41,8 +41,7 @@ public class AppGoodsController {
@ApiOperation("源素材(原片/照片)商品列表") @ApiOperation("源素材(原片/照片)商品列表")
@PostMapping("/sourceGoodsList") @PostMapping("/sourceGoodsList")
public ApiResponse<List<GoodsDetailVO>> sourceGoodsList(@RequestBody GoodsReqQuery query) { public ApiResponse<List<GoodsDetailVO>> sourceGoodsList(@RequestBody GoodsReqQuery query) {
query.setMemberId(Long.valueOf(BaseContextHandler.getUserId())); return goodsService.sourceGoodsList(Long.valueOf(BaseContextHandler.getUserId()), query);
return goodsService.sourceGoodsList(query);
} }
@ApiOperation("成片vlog商品详情") @ApiOperation("成片vlog商品详情")

View File

@ -14,8 +14,6 @@ public class GoodsReqQuery {
@ApiModelProperty("是否已购买 0否 1是") @ApiModelProperty("是否已购买 0否 1是")
private Integer isBuy; private Integer isBuy;
private Long faceId; private Long faceId;
@ApiModelProperty(value = "用户id", hidden = true)
private Long memberId;
@ApiModelProperty("景区id") @ApiModelProperty("景区id")
private Long scenicId; private Long scenicId;
@ApiModelProperty("源素材商品类型 1视频 2图像") @ApiModelProperty("源素材商品类型 1视频 2图像")

View File

@ -7,6 +7,7 @@ import com.ycwl.basic.biz.OrderBiz;
import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.mapper.*; import com.ycwl.basic.mapper.*;
import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.goods.GoodsPageVO;
import com.ycwl.basic.model.mobile.order.IsBuyRespVO; import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
import com.ycwl.basic.model.mobile.scenic.ScenicAppVO; import com.ycwl.basic.model.mobile.scenic.ScenicAppVO;
import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO; import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO;
@ -36,6 +37,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* @Authorlongbinbin * @Authorlongbinbin
@ -132,24 +134,27 @@ public class AppScenicServiceImpl implements AppScenicService {
SourceReqQuery sourceReqQuery = new SourceReqQuery(); SourceReqQuery sourceReqQuery = new SourceReqQuery();
sourceReqQuery.setScenicId(faceRespVO.getScenicId()); sourceReqQuery.setScenicId(faceRespVO.getScenicId());
sourceReqQuery.setFaceId(faceId);
sourceReqQuery.setMemberId(userId); sourceReqQuery.setMemberId(userId);
//查询源素材 //查询源素材
List<SourceRespVO> sourceList = sourceMapper.listGroupByType(sourceReqQuery); List<SourceRespVO> sourceList = sourceMapper.queryByRelation(sourceReqQuery);
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId()); ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId());
sourceList.stream().filter(item -> { sourceList.stream().collect(Collectors.groupingBy(SourceRespVO::getType)).keySet()
if (item.getType() == 1) { .stream()
.filter(type -> {
if (Integer.valueOf(1).equals(type)) {
if (Integer.valueOf(1).equals(scenicConfig.getDisableSourceVideo())) { if (Integer.valueOf(1).equals(scenicConfig.getDisableSourceVideo())) {
return false; return false;
} }
} else if (item.getType() == 2) { } else if (Integer.valueOf(2).equals(type)) {
if (Integer.valueOf(1).equals(scenicConfig.getDisableSourceImage())) { if (Integer.valueOf(1).equals(scenicConfig.getDisableSourceImage())) {
return false; return false;
} }
} }
return true; return true;
}).forEach(sourceRespVO -> { })
.forEach(type -> {
ContentPageVO contentPageVO = new ContentPageVO(); ContentPageVO contentPageVO = new ContentPageVO();
Integer type = sourceRespVO.getType();
if (type == 1) { if (type == 1) {
contentPageVO.setName("原片集"); contentPageVO.setName("原片集");
} else { } else {
@ -163,6 +168,8 @@ public class AppScenicServiceImpl implements AppScenicService {
} else { } else {
contentPageVO.setIsBuy(0); contentPageVO.setIsBuy(0);
} }
contentPageVO.setScenicId(faceRespVO.getScenicId());
contentPageVO.setTemplateCoverUrl(sourceList.get(0).getUrl());
contentPageVO.setContentType(2); contentPageVO.setContentType(2);
contentList.add(contentPageVO); contentList.add(contentPageVO);
}); });

View File

@ -1,23 +1,21 @@
package com.ycwl.basic.service.impl.mobile; package com.ycwl.basic.service.impl.mobile;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.mapper.*; import com.ycwl.basic.mapper.*;
import com.ycwl.basic.model.mobile.goods.*; import com.ycwl.basic.model.mobile.goods.*;
import com.ycwl.basic.model.pc.face.resp.FaceRespVO; import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO; 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.req.SourceReqQuery;
import com.ycwl.basic.model.pc.source.resp.SourceRespVO; import com.ycwl.basic.model.pc.source.resp.SourceRespVO;
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.video.entity.MemberVideoEntity; import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity;
import com.ycwl.basic.model.pc.video.req.VideoReqQuery; 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.ScenicRepository;
import com.ycwl.basic.repository.VideoTaskRepository; import com.ycwl.basic.repository.VideoTaskRepository;
import com.ycwl.basic.service.impl.pc.TaskServiceImpl;
import com.ycwl.basic.service.impl.task.TaskTaskServiceImpl;
import com.ycwl.basic.service.mobile.GoodsService; import com.ycwl.basic.service.mobile.GoodsService;
import com.ycwl.basic.repository.TemplateRepository; import com.ycwl.basic.repository.TemplateRepository;
import com.ycwl.basic.service.task.TaskService; import com.ycwl.basic.service.task.TaskService;
@ -31,15 +29,14 @@ import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* @Authorlongbinbin * @Authorlongbinbin
* @Date2024/12/5 15:04 * @Date2024/12/5 15:04
*/@Service */
@Service
public class GoodsServiceImpl implements GoodsService { public class GoodsServiceImpl implements GoodsService {
@Autowired @Autowired
private VideoMapper videoMapper; private VideoMapper videoMapper;
@ -55,14 +52,16 @@ public class GoodsServiceImpl implements GoodsService {
private VideoTaskRepository videoTaskRepository; private VideoTaskRepository videoTaskRepository;
@Autowired @Autowired
private TaskService taskTaskService; private TaskService taskTaskService;
@Autowired
private ScenicRepository scenicRepository;
public ApiResponse<List<GoodsPageVO>> goodsList(GoodsReqQuery query) { public ApiResponse<List<GoodsPageVO>> goodsList(GoodsReqQuery query) {
//查询原素材 //查询原素材
List<GoodsPageVO> goodsList = new ArrayList<>(); List<GoodsPageVO> goodsList = new ArrayList<>();
VideoReqQuery videoReqQuery = new VideoReqQuery(); VideoReqQuery videoReqQuery = new VideoReqQuery();
videoReqQuery.setScenicId(query.getScenicId()); videoReqQuery.setScenicId(query.getScenicId());
videoReqQuery.setIsBuy(query.getIsBuy()); videoReqQuery.setIsBuy(query.getIsBuy());
videoReqQuery.setFaceId(query.getFaceId());
videoReqQuery.setMemberId(Long.valueOf(BaseContextHandler.getUserId())); videoReqQuery.setMemberId(Long.valueOf(BaseContextHandler.getUserId()));
//查询成片vlog //查询成片vlog
List<VideoRespVO> videoList = videoMapper.queryByRelation(videoReqQuery); List<VideoRespVO> videoList = videoMapper.queryByRelation(videoReqQuery);
@ -79,18 +78,31 @@ public class GoodsServiceImpl implements GoodsService {
goodsList.add(goodsPageVO); goodsList.add(goodsPageVO);
}); });
SourceReqQuery sourceReqQuery = new SourceReqQuery(); SourceReqQuery sourceReqQuery = new SourceReqQuery();
sourceReqQuery.setScenicId(query.getScenicId()); sourceReqQuery.setScenicId(query.getScenicId());
sourceReqQuery.setIsBuy(query.getIsBuy()); sourceReqQuery.setIsBuy(query.getIsBuy());
sourceReqQuery.setFaceId(query.getFaceId());
sourceReqQuery.setMemberId(Long.valueOf(BaseContextHandler.getUserId())); sourceReqQuery.setMemberId(Long.valueOf(BaseContextHandler.getUserId()));
//查询源素材 //查询源素材
List<SourceRespVO> sourceList = sourceMapper.queryByRelation(sourceReqQuery); List<SourceRespVO> sourceList = sourceMapper.queryByRelation(sourceReqQuery);
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(query.getScenicId());
List<GoodsPageVO> sourceGoods = sourceList.stream().collect(Collectors.groupingBy(SourceRespVO::getFaceId)).entrySet().stream().flatMap((faceEntry) -> { List<GoodsPageVO> sourceGoods = sourceList.stream().collect(Collectors.groupingBy(SourceRespVO::getFaceId)).entrySet().stream().flatMap((faceEntry) -> {
Long faceId = faceEntry.getKey(); Long faceId = faceEntry.getKey();
List<SourceRespVO> goods = faceEntry.getValue(); List<SourceRespVO> goods = faceEntry.getValue();
return goods.stream().collect(Collectors.groupingBy(SourceRespVO::getType)).keySet().stream().map(type -> { return goods.stream().collect(Collectors.groupingBy(SourceRespVO::getType)).keySet().stream().filter(type -> {
if (Integer.valueOf(1).equals(type)) {
if (Integer.valueOf(1).equals(scenicConfig.getDisableSourceVideo())) {
return false;
}
} else if (Integer.valueOf(2).equals(type)) {
if (Integer.valueOf(1).equals(scenicConfig.getDisableSourceImage())) {
return false;
}
}
return true;
}).map(type -> {
GoodsPageVO goodsPageVO = new GoodsPageVO(); GoodsPageVO goodsPageVO = new GoodsPageVO();
goodsPageVO.setTemplateCoverUrl(goods.get(0).getUrl());
goodsPageVO.setFaceId(faceId); goodsPageVO.setFaceId(faceId);
if (type == 1) { if (type == 1) {
goodsPageVO.setGoodsName("原片集"); goodsPageVO.setGoodsName("原片集");
@ -114,12 +126,12 @@ public class GoodsServiceImpl implements GoodsService {
} }
@Override @Override
public ApiResponse<List<GoodsDetailVO>> sourceGoodsList(GoodsReqQuery query) { public ApiResponse<List<GoodsDetailVO>> sourceGoodsList(Long userId, GoodsReqQuery query) {
Integer sourceType = query.getSourceType(); Integer sourceType = query.getSourceType();
SourceReqQuery sourceReqQuery = new SourceReqQuery(); SourceReqQuery sourceReqQuery = new SourceReqQuery();
sourceReqQuery.setScenicId(query.getScenicId()); sourceReqQuery.setScenicId(query.getScenicId());
sourceReqQuery.setIsBuy(query.getIsBuy()); sourceReqQuery.setIsBuy(query.getIsBuy());
sourceReqQuery.setMemberId(query.getMemberId()); sourceReqQuery.setMemberId(userId);
sourceReqQuery.setType(sourceType); sourceReqQuery.setType(sourceType);
sourceReqQuery.setFaceId(query.getFaceId()); sourceReqQuery.setFaceId(query.getFaceId());
List<SourceRespVO> list = sourceMapper.listUser(sourceReqQuery); List<SourceRespVO> list = sourceMapper.listUser(sourceReqQuery);

View File

@ -57,7 +57,7 @@ public class FaceServiceImpl implements FaceService {
@Value("${face.score}") @Value("${face.score}")
private float faceScore; private float faceScore;
private final float strictScore = 0.90F; private final float strictScore = 0.75F;
@Autowired @Autowired
private TaskService taskTaskService; private TaskService taskTaskService;
@Autowired @Autowired

View File

@ -21,10 +21,12 @@ public interface GoodsService {
/** /**
* 查询源素材商品列表 * 查询源素材商品列表
*
* @param userId
* @param query * @param query
* @return * @return
*/ */
ApiResponse<List<GoodsDetailVO>> sourceGoodsList(GoodsReqQuery query); ApiResponse<List<GoodsDetailVO>> sourceGoodsList(Long userId, GoodsReqQuery query);
/** /**
* 查询订单应付价格 * 查询订单应付价格

View File

@ -137,9 +137,11 @@
left join scenic sc on sc.id = so.scenic_id left join scenic sc on sc.id = so.scenic_id
where where
ms.member_id = #{memberId} ms.member_id = #{memberId}
<if test="faceId!= null">and ms.face_id = #{faceId} </if>
<if test="type!=null">and ms.type = #{type} </if> <if test="type!=null">and ms.type = #{type} </if>
<if test="scenicId!= null">and ms.scenic_id = #{scenicId} </if> <if test="scenicId!= null">and ms.scenic_id = #{scenicId} </if>
<if test="isBuy!=null">and ms.is_buy = #{isBuy}</if> <if test="isBuy!=null">and ms.is_buy = #{isBuy}</if>
order by so.create_time desc
</select> </select>
<select id="querySameVideo" resultType="com.ycwl.basic.model.pc.source.entity.SourceEntity"> <select id="querySameVideo" resultType="com.ycwl.basic.model.pc.source.entity.SourceEntity">
select * select *

View File

@ -99,11 +99,7 @@
<if test="isBuy!=null">and mv.is_buy = #{isBuy}</if> <if test="isBuy!=null">and mv.is_buy = #{isBuy}</if>
<if test="startTime!= null">and v.create_time &gt;= #{startTime} </if> <if test="startTime!= null">and v.create_time &gt;= #{startTime} </if>
<if test="endTime!= null">and v.create_time &lt;= #{endTime} </if> <if test="endTime!= null">and v.create_time &lt;= #{endTime} </if>
<if test="faceId!= null"> <if test="faceId!= null">and mv.face_id = #{faceId} </if>
and mv.task_id in (
select id from task where face_id = #{faceId}
)
</if>
</where> </where>
order by v.create_time desc order by v.create_time desc
</select> </select>