生成视频时发送通知,其他调整

This commit is contained in:
2025-01-06 18:44:53 +08:00
parent 9b32c2fd75
commit 00d53dd197
30 changed files with 403 additions and 83 deletions

View File

@@ -16,6 +16,8 @@ import com.ycwl.basic.model.mobile.weChat.DTO.WeChatUserInfoUpdateDTO;
import com.ycwl.basic.model.pc.member.entity.MemberEntity;
import com.ycwl.basic.model.pc.member.req.MemberReqQuery;
import com.ycwl.basic.model.pc.member.resp.MemberRespVO;
import com.ycwl.basic.model.pc.mp.MpConfigEntity;
import com.ycwl.basic.repository.ScenicRepository;
import com.ycwl.basic.service.HttpService;
import com.ycwl.basic.service.mobile.AppMemberService;
import com.ycwl.basic.utils.ApiResponse;
@@ -50,13 +52,17 @@ public class AppMemberServiceImpl implements AppMemberService {
@Autowired
private JwtTokenUtil jwtTokenUtil;
@Autowired
private ScenicRepository scenicRepository;
@Override
public Map<String, Object> getOpenId(String code) {
public Map<String, Object> getOpenId(Long scenicId, String code) {
Map<String, String> paramMap = new HashMap<>(NumberConstant.FOUR);
paramMap.put("appid", config.getMiniProgramAppId());
paramMap.put("secret", config.getMiniProgramSecret());
MpConfigEntity scenicMpConfig = scenicRepository.getScenicMpConfig(scenicId);
paramMap.put("appid", scenicMpConfig.getAppId());
paramMap.put("secret", scenicMpConfig.getAppSecret());
paramMap.put("js_code", code);
paramMap.put("grant_type", config.getGrandType());
paramMap.put("grant_type", "authorization_code");
try {
String response = httpService.doHttpsPost(WeiXinConstant.GET_OPEN_ID, paramMap, "UTF-8");
if (StringUtils.isBlank(response)) {
@@ -72,8 +78,8 @@ public class AppMemberServiceImpl implements AppMemberService {
@Override
public ApiResponse login(String code, WeChatUserInfoDTO userInfoDTO) throws Exception {
Map<String, Object> weixinResponse = this.getOpenId(code);
public ApiResponse login(Long scenicId, String code, WeChatUserInfoDTO userInfoDTO) throws Exception {
Map<String, Object> weixinResponse = this.getOpenId(scenicId, code);
if (CollectionUtils.isEmpty(weixinResponse)) {
throw new AppException(BizCodeEnum.SERVER_INTERNAL_ERROR);
}
@@ -100,6 +106,7 @@ public class AppMemberServiceImpl implements AppMemberService {
MemberEntity memberEntity = new MemberEntity();
BeanCopierUtils.copyProperties(userInfoDTO, memberEntity);
memberEntity.setId(SnowFlakeUtil.getLongId());
memberEntity.setScenicId(scenicId);
memberEntity.setOpenId(openId.toString());
memberMapper.add(memberEntity);
BeanCopierUtils.copyProperties(memberEntity, memberRespVO);

View File

@@ -3,11 +3,13 @@ package com.ycwl.basic.service.impl.mobile;
import cn.hutool.core.bean.BeanUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.biz.OrderBiz;
import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.constant.NumberConstant;
import com.ycwl.basic.mapper.*;
import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.mobile.index.TopStateResp;
import com.ycwl.basic.model.mobile.order.IsBuyRespVO;
import com.ycwl.basic.model.mobile.scenic.ScenicAppVO;
import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO;
import com.ycwl.basic.model.mobile.scenic.ScenicIndexVO;
@@ -67,6 +69,8 @@ public class AppScenicServiceImpl implements AppScenicService {
private BigDecimal faceScore;
@Autowired
private TemplateRepository templateRepository;
@Autowired
private OrderBiz orderBiz;
@Override
public ApiResponse<PageInfo<ScenicAppVO>> pageQuery(ScenicReqQuery scenicReqQuery) {
@@ -125,12 +129,18 @@ public class AppScenicServiceImpl implements AppScenicService {
Integer type = sourceRespVO.getType();
if(type==1){
contentPageVO.setName("原片集");
}else {
} else {
contentPageVO.setName("照片集");
}
IsBuyRespVO isBuyRespVO = orderBiz.isBuy(worker.getUserId(), faceRespVO.getScenicId(), type, faceId);
contentPageVO.setSourceType(isBuyRespVO.getGoodsType());
contentPageVO.setContentId(isBuyRespVO.getGoodsId());
if (isBuyRespVO.isBuy()) {
contentPageVO.setIsBuy(1);
} else {
contentPageVO.setIsBuy(0);
}
contentPageVO.setContentType(2);
contentPageVO.setSourceType(type);
contentPageVO.setIsBuy(sourceRespVO.getIsBuy());
contentList.add(contentPageVO);
});
@@ -174,12 +184,18 @@ public class AppScenicServiceImpl implements AppScenicService {
Integer type = sourceRespVO.getType();
if(type==1){
contentPageVO.setName("原片集");
}else {
} else {
contentPageVO.setName("照片集");
}
IsBuyRespVO isBuyRespVO = orderBiz.isBuy(userId, faceRespVO.getScenicId(), type, faceId);
contentPageVO.setSourceType(isBuyRespVO.getGoodsType());
contentPageVO.setContentId(isBuyRespVO.getGoodsId());
if (isBuyRespVO.isBuy()) {
contentPageVO.setIsBuy(1);
} else {
contentPageVO.setIsBuy(0);
}
contentPageVO.setContentType(2);
contentPageVO.setSourceType(type);
contentPageVO.setIsBuy(sourceRespVO.getIsBuy());
contentList.add(contentPageVO);
});

View File

@@ -1,6 +1,7 @@
package com.ycwl.basic.service.impl.mobile;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.mapper.*;
@@ -15,8 +16,11 @@ 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.resp.VideoRespVO;
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.repository.TemplateRepository;
import com.ycwl.basic.service.task.TaskService;
import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
@@ -27,6 +31,7 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
@@ -42,16 +47,14 @@ public class GoodsServiceImpl implements GoodsService {
private SourceMapper sourceMapper;
@Autowired
private ScenicMapper scenicMapper;
@Autowired
private TaskMapper taskMapper;
@Autowired
private DeviceMapper deviceMapper;
@Autowired
private FaceMapper faceMapper;
@Autowired
private TemplateRepository templateRepository;
@Autowired
private VideoTaskRepository videoTaskRepository;
@Autowired
private TaskService taskTaskService;
public ApiResponse<List<GoodsPageVO>> goodsList(GoodsReqQuery query) {
//查询原素材
@@ -194,10 +197,6 @@ public class GoodsServiceImpl implements GoodsService {
@Override
public ApiResponse<VideoGoodsDetailVO> videoGoodsDetail(Long userId, Long videoId) {
MemberVideoEntity entity = videoMapper.queryUserVideo(userId, videoId);
if (entity == null) {
return ApiResponse.fail("该视频不属于您");
}
VideoGoodsDetailVO goodsDetailVO = new VideoGoodsDetailVO();
VideoRespVO videoRespVO = videoMapper.getById(videoId);
if(videoRespVO==null){
@@ -211,7 +210,12 @@ public class GoodsServiceImpl implements GoodsService {
goodsDetailVO.setVideoUrl(videoRespVO.getVideoUrl());
goodsDetailVO.setTemplateCoverUrl(videoRespVO.getTemplateCoverUrl());
goodsDetailVO.setCreateTime(videoRespVO.getCreateTime());
if (entity.getIsBuy() == 1) {
MemberVideoEntity entity = videoMapper.queryUserVideo(userId, videoId);
if (entity == null) {
goodsDetailVO.setIsBuy(0);
goodsDetailVO.setShare(true);
goodsDetailVO.setPrice("未登录");
} else if (entity.getIsBuy() == 1) {
goodsDetailVO.setIsBuy(1);
} else {
goodsDetailVO.setIsBuy(0);
@@ -222,16 +226,19 @@ public class GoodsServiceImpl implements GoodsService {
goodsDetailVO.setPrice(templatePrice==null?"":df.format(templatePrice.setScale(2, RoundingMode.HALF_UP)));
goodsDetailVO.setSlashPrice(slashPrice==null?null:df.format(slashPrice.setScale(2, RoundingMode.HALF_UP)));
}
TaskRespVO taskRespVO = taskMapper.getById(videoRespVO.getTaskId());
JSONObject paramJson = JSON.parseObject(taskRespVO.getTaskParams());
TaskEntity task = videoTaskRepository.getTaskById(videoRespVO.getTaskId());
JSONObject paramJson = JSON.parseObject(task.getTaskParams());
long deviceCount;
goodsDetailVO.setShotTime(taskTaskService.getTaskShotDate(task.getId()));
if (paramJson == null) {
deviceCount = 1;
} else {
deviceCount = paramJson.keySet().stream().filter(StringUtils::isNumeric).count();
}
goodsDetailVO.setLensNum((int) deviceCount);
goodsDetailVO.setFaceId(entity.getFaceId());
if (entity != null) {
goodsDetailVO.setFaceId(entity.getFaceId());
}
return ApiResponse.success(goodsDetailVO);
}
@@ -286,6 +293,7 @@ public class GoodsServiceImpl implements GoodsService {
List<MemberVideoEntity> taskList = videoMapper.listRelationByFaceAndTemplate(userId, faceId, templateId);
VideoTaskStatusVO response = new VideoTaskStatusVO();
response.setFaceId(faceId);
response.setTemplateId(templateId);
if (taskList.isEmpty()) {
response.setStatus(0);
return ApiResponse.success(response);