From 742a6c0d8f2c096da5c74307097767a8cda482d4 Mon Sep 17 00:00:00 2001 From: lrh <1585126058@qq.com> Date: Thu, 8 Jun 2023 18:05:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7=E7=94=9F=E6=88=90=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxUserGrantController.java | 14 +++- .../iformall/schedule/PhotoSpeakSchedule.java | 31 +++++++ .../com/iformall/domain/po/sm/InviteCode.java | 57 +++++++++++++ .../iformall/domain/po/sm/InviteCodeInfo.java | 71 ++++++++++++++++ .../domain/po/sm/UserCreateVideoNum.java | 77 ++++++++++++++++++ .../mapper/UserCreateVideoNumMapper.java | 9 +++ .../service/sm/InviteCodeInfoService.java | 5 ++ .../service/sm/InviteCodeService.java | 9 +++ .../service/sm/PhotoSpeakVideoService.java | 2 + .../service/sm/UserCreateVideoNumService.java | 19 +++++ .../sm/impl/InviteCodeInfoServiceImpl.java | 10 +++ .../sm/impl/InviteCodeServiceImpl.java | 9 +++ .../sm/impl/PhotoSpeakVideoServiceImpl.java | 47 +++++++++-- .../impl/UserCreateVideoNumServiceImpl.java | 80 +++++++++++++++++++ .../java/com/iformall/sm/AiVideoHelper.java | 30 +++---- 15 files changed, 447 insertions(+), 23 deletions(-) create mode 100644 suimangService/src/main/java/com/iformall/domain/po/sm/InviteCode.java create mode 100644 suimangService/src/main/java/com/iformall/domain/po/sm/InviteCodeInfo.java create mode 100644 suimangService/src/main/java/com/iformall/domain/po/sm/UserCreateVideoNum.java create mode 100644 suimangService/src/main/java/com/iformall/mapper/UserCreateVideoNumMapper.java create mode 100644 suimangService/src/main/java/com/iformall/service/sm/InviteCodeInfoService.java create mode 100644 suimangService/src/main/java/com/iformall/service/sm/InviteCodeService.java create mode 100644 suimangService/src/main/java/com/iformall/service/sm/UserCreateVideoNumService.java create mode 100644 suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeInfoServiceImpl.java create mode 100644 suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeServiceImpl.java create mode 100644 suimangService/src/main/java/com/iformall/service/sm/impl/UserCreateVideoNumServiceImpl.java diff --git a/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index b05cf74..bc02e35 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -9,6 +9,7 @@ import com.iformall.domain.po.*; import com.iformall.enums.*; import com.iformall.service.*; import com.iformall.service.cuser.CUserServiceFactory; +import com.iformall.service.sm.UserCreateVideoNumService; import com.iformall.utils.Constant; import com.iformall.utils.PasswordHelper; import com.iformall.utils.RedisCacheUtils; @@ -81,6 +82,9 @@ public class WxUserGrantController extends BaseController { @Autowired private QrCodeService qrCodeService; + @Autowired + private UserCreateVideoNumService userCreateVideoNumService; + @AuthIgnore @ApiOperation("验证码") @GetMapping("/captcha.jpg") @@ -347,7 +351,11 @@ public class WxUserGrantController extends BaseController { // } // if(isValidCode) { basicInfo = wxCUserBasicInfoService.register(getTenantInfo(),phone,password); - return new ResultData(); + Boolean aBoolean = userCreateVideoNumService.initializationUserCreateVideoNum(basicInfo.getId()); + if (!aBoolean){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "初始化创建视频时间表失败"); + } + return new ResultData(); // } else { // return new ResultData(ErrorCode.MSG_VERIFY_CODE_NOT_FOUND); // } @@ -391,6 +399,10 @@ public class WxUserGrantController extends BaseController { // } // if(isValidCode) { basicInfo = wxCUserBasicInfoService.registerEmail(getTenantInfo(),email,password); + Boolean aBoolean = userCreateVideoNumService.initializationUserCreateVideoNum(basicInfo.getId()); + if (!aBoolean){ + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "初始化创建视频时间表失败"); + } return new ResultData(); // } else { // return new ResultData(ErrorCode.MSG_VERIFY_CODE_NOT_FOUND); diff --git a/suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java b/suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java index f3bfdd5..040bd96 100644 --- a/suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java +++ b/suimangSchedule/src/main/java/com/iformall/schedule/PhotoSpeakSchedule.java @@ -7,6 +7,7 @@ import com.iformall.enums.EnumVideoStatus; import com.iformall.enums.EnumaVideoTransStatus; import com.iformall.mapper.VideoTransMapper; import com.iformall.service.sm.PhotoSpeakVideoService; +import com.iformall.service.sm.UserCreateVideoNumService; import com.iformall.service.sm.UserMouldVideoService; import com.iformall.utils.DateUtils; import com.iformall.video.VideoFactory; @@ -21,8 +22,11 @@ import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.Future; +import java.util.stream.Collectors; @Configuration @EnableScheduling @@ -39,6 +43,8 @@ public class PhotoSpeakSchedule { @Autowired String videoType; + @Autowired + private UserCreateVideoNumService userCreateVideoNumService; /** * 生成视频 */ @@ -103,4 +109,29 @@ public class PhotoSpeakSchedule { } } } + + + /** + * 统计用户创建视频成功的时长 + */ + @Scheduled(cron = "0 */30 * * * *?") // 每半小时检查一次 + public void userCreateVideoTimeSchedule() { + List videos = photoSpeakVideoService.getUploadSuccessList(); + if (videos != null && videos.size() > 0) { + HashMap map = new HashMap<>(); + for (PhotoSpeakVideo video : videos) { + try { + if (map.get(video.getUserId()) == null) { + map.put(video.getUserId(), Long.parseLong(video.getVideoTime())); + } else { + Long time = map.get(video.getUserId()); + map.put(video.getUserId(), Long.parseLong(video.getVideoTime()) + time); + } + } catch (Exception e) { + logger.error("TtCouponVideoSchedule error.couponVideoSchedule:" + video.getId(), e); + } + } + userCreateVideoNumService.uploadUserCreateVideoNum(map); + } + } } \ No newline at end of file diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/InviteCode.java b/suimangService/src/main/java/com/iformall/domain/po/sm/InviteCode.java new file mode 100644 index 0000000..6a054d2 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/InviteCode.java @@ -0,0 +1,57 @@ +package com.iformall.domain.po.sm; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author LRH + * @date Thu Jun 08 16:50:35 CST 2023 + * @describe 用户邀请码表 + */ +@Data +@TableName("invite_code") +public class InviteCode implements Serializable { + private static final long serialVersionUID = 6951051673755053615L; + + /** + * 主键ID + */ + @TableId + private Long id; + /** + * 租户ID + */ + private String tenantId; + /** + * 父租户ID + */ + private String parentTenantId; + /** + * 用户id(wx_c_user_basic_info.id) + */ + private Long userId; + /** + * 邀请码code + */ + private Long code; + /** + * 邀请码使用次数 + */ + private Long total; + /** + * 创建时间 + */ + private Date createDate; + /** + * 更新时间 + */ + private Date updateDate; + /** + * 是否删除1是0否 + */ + private Integer isDel; +} diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/InviteCodeInfo.java b/suimangService/src/main/java/com/iformall/domain/po/sm/InviteCodeInfo.java new file mode 100644 index 0000000..369161c --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/InviteCodeInfo.java @@ -0,0 +1,71 @@ +package com.iformall.domain.po.sm; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.models.auth.In; +import lombok.Data; +import lombok.ToString; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author LRH + * @date Thu Jun 08 16:50:35 CST 2023 + * @describe 被邀请码表 + */ +@Data +@TableName("invite_code_info") +public class InviteCodeInfo implements Serializable { + private static final long serialVersionUID = 5349786757453017803L; + + /** + * 主键ID + */ + @TableId + private Long id; + /** + * 租户ID + */ + private String tenantId; + /** + * 父租户ID + */ + private String parentTenantId; + /** + * 邀请的用户id(wx_c_user_basic_info.id) + */ + private Long userId; + /** + * 邀请码code + */ + private String code; + /** + * 被邀请的用户id(wx_c_user_basic_info.id) + */ + private Long inviteUserId; + /** + * 用户邀请id(user_invite_code.id) + */ + private Long inviteId; + /** + * 被邀请人手机号 + */ + private String phone; + /** + * 被邀请人email + */ + private String email; + /** + * 创建时间 + */ + private Date createDate; + /** + * 更新时间 + */ + private Date updateDate; + /** + * 是否删除1是0否 + */ + private Integer isDel; +} diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/UserCreateVideoNum.java b/suimangService/src/main/java/com/iformall/domain/po/sm/UserCreateVideoNum.java new file mode 100644 index 0000000..38e1c2f --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/UserCreateVideoNum.java @@ -0,0 +1,77 @@ +package com.iformall.domain.po.sm; + + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author LRH + * @date Wed Jun 07 17:06:17 CST 2023 + * @describe 用户创建视频时间表 + */ +@Data +@TableName("user_create_video_num") +public class UserCreateVideoNum implements Serializable { + private static final long serialVersionUID = 6845742086152117203L; + /** + * 主键ID + */ + @TableId + private Long id; + /** + * 租户ID + */ + private String tenantId; + /** + * 父租户ID + */ + private String parentTenantId; + /** + * 用户id(wx_c_user_basic_info.id) + */ + private Long userId; + /** + * 剩余条数 + */ + private Integer residueNum; + /** + * 总条数 + */ + private Integer residueTotal; + /** + * 用户生成视频的个数 + */ + private Integer createNum; + /** + * 用户生成视频的总时长(s) + */ + private Long createAllTime; + /** + * 总时长(单位:s) + */ + private Long totalTime; + /** + * 剩余时长(单位:s) + */ + private Long residueTime; + /** + * 有效期 + */ + private Date effectiveDate; + /** + * 创建时间 + */ + private Date createDate; + /** + * 更新时间 + */ + private Date updateDate; + /** + * 是否删除1是0否 + */ + private long isDel; +} diff --git a/suimangService/src/main/java/com/iformall/mapper/UserCreateVideoNumMapper.java b/suimangService/src/main/java/com/iformall/mapper/UserCreateVideoNumMapper.java new file mode 100644 index 0000000..a6866ca --- /dev/null +++ b/suimangService/src/main/java/com/iformall/mapper/UserCreateVideoNumMapper.java @@ -0,0 +1,9 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.sm.UserCreateVideoNum; + +public interface UserCreateVideoNumMapper extends CommonMapper { + + +} diff --git a/suimangService/src/main/java/com/iformall/service/sm/InviteCodeInfoService.java b/suimangService/src/main/java/com/iformall/service/sm/InviteCodeInfoService.java new file mode 100644 index 0000000..b0f7d40 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/service/sm/InviteCodeInfoService.java @@ -0,0 +1,5 @@ +package com.iformall.service.sm; + +public interface InviteCodeInfoService { + +} diff --git a/suimangService/src/main/java/com/iformall/service/sm/InviteCodeService.java b/suimangService/src/main/java/com/iformall/service/sm/InviteCodeService.java new file mode 100644 index 0000000..672e2ec --- /dev/null +++ b/suimangService/src/main/java/com/iformall/service/sm/InviteCodeService.java @@ -0,0 +1,9 @@ +package com.iformall.service.sm; + +import com.iformall.domain.po.sm.UserCreateVideoNum; + +import java.util.Map; + +public interface InviteCodeService { + +} diff --git a/suimangService/src/main/java/com/iformall/service/sm/PhotoSpeakVideoService.java b/suimangService/src/main/java/com/iformall/service/sm/PhotoSpeakVideoService.java index 1022557..2ef8f88 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/PhotoSpeakVideoService.java +++ b/suimangService/src/main/java/com/iformall/service/sm/PhotoSpeakVideoService.java @@ -55,6 +55,8 @@ public interface PhotoSpeakVideoService { List getUpLoadIngList(); + List getUploadSuccessList(); + int updateById(PhotoSpeakVideo video); } diff --git a/suimangService/src/main/java/com/iformall/service/sm/UserCreateVideoNumService.java b/suimangService/src/main/java/com/iformall/service/sm/UserCreateVideoNumService.java new file mode 100644 index 0000000..04ef1b3 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/service/sm/UserCreateVideoNumService.java @@ -0,0 +1,19 @@ +package com.iformall.service.sm; + +import com.github.pagehelper.PageInfo; +import com.iformall.common.ResultData; +import com.iformall.domain.po.sm.MouldPatch; +import com.iformall.domain.po.sm.UserCreateVideoNum; + +import java.util.Map; + +public interface UserCreateVideoNumService { + + Boolean initializationUserCreateVideoNum(Long id); + + void addOrSubtractNumberOfTimes(Integer type, UserCreateVideoNum createVideoNum); + + UserCreateVideoNum queryInfoByUserId(Long userId); + + void uploadUserCreateVideoNum(Map collect); +} diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeInfoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeInfoServiceImpl.java new file mode 100644 index 0000000..637bb20 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeInfoServiceImpl.java @@ -0,0 +1,10 @@ +package com.iformall.service.sm.impl; + +import com.iformall.service.sm.InviteCodeInfoService; +import com.iformall.service.sm.InviteCodeService; +import org.springframework.stereotype.Service; + +@Service +public class InviteCodeInfoServiceImpl implements InviteCodeInfoService { + +} diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeServiceImpl.java new file mode 100644 index 0000000..257d6b3 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/InviteCodeServiceImpl.java @@ -0,0 +1,9 @@ +package com.iformall.service.sm.impl; + +import com.iformall.service.sm.InviteCodeService; +import org.springframework.stereotype.Service; + +@Service +public class InviteCodeServiceImpl implements InviteCodeService { + +} diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java index 7a9858f..4d94b09 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/PhotoSpeakVideoServiceImpl.java @@ -22,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.AsyncResult; import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; import javax.transaction.xa.XAException; import java.util.ArrayList; @@ -59,6 +60,9 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { @Autowired String videoType; + @Autowired + private UserCreateVideoNumService userCreateVideoNumService; + @Override public PageInfo listAsPage(PhotoSpeakVideo record, Integer pageIndex, Integer pageSize) { @@ -163,13 +167,17 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { msg = "未查询到人物照片"; } else { personPhotoUrl = photoSpeakVideo.getPersonPhotoUrl(); - //校验图片是否合法 - ResultData data = personPhotoService.checkPhoto(personPhotoUrl); - if (data.code != 2000) { - videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode()); - videoUpd.setVideoMsg("图片质量审核失败:" + data.message); - this.saveOrUpdate(videoUpd); - return new AsyncResult<>(0); + PersonPhoto personPhotoInfo = personPhotoService.getById(photoSpeakVideo.getPersonPhotoId()); + //如果是上传图片就去检验合法 + if (EnumMouldSendType.build.getCode().equals(personPhotoInfo.getSendType())) { + //校验图片是否合法 + ResultData data = personPhotoService.checkPhoto(personPhotoUrl); + if (data.code != 2000) { + videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode()); + videoUpd.setVideoMsg("图片质量审核失败:" + data.message); + this.saveOrUpdate(videoUpd); + return new AsyncResult<>(0); + } } } if(StringUtils.isBlank(personPhotoUrl)){ @@ -230,6 +238,21 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { return new AsyncResult<>(0); } + //修改用户生成视频次数 + UserCreateVideoNum createVideoNum = userCreateVideoNumService.queryInfoByUserId(photoSpeakVideo.getUserId()); + if (ObjectUtils.isEmpty(createVideoNum)) { + return new AsyncResult<>("用户没有生成视频次数"); + }else { + //剩余条数 + Integer residueNum = createVideoNum.getResidueNum(); + if (residueNum.intValue() <= 0){ + return new AsyncResult<>("剩余生成视频次数不足"); + }else { + //减去生成视频次数 + userCreateVideoNumService.addOrSubtractNumberOfTimes(1, createVideoNum); + } + } + try { AiPhotoSpeakParam param = new AiPhotoSpeakParam(); param.setImg(Base64Util.imageUrlToBase64(photoSpeakVideo.getPersonPhotoUrl())); @@ -272,6 +295,9 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { videoUpd.setVideoStatus(EnumVideoStatus.fail.getCode()); videoUpd.setVideoMsg(video.getMsg()); this.saveOrUpdate(videoUpd); + + //如果生成视频失败了,就把创建视频的次数加回去 + userCreateVideoNumService.addOrSubtractNumberOfTimes(2, createVideoNum); return new AsyncResult<>(0); } catch (Exception e) { @@ -321,6 +347,13 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { return photoSpeakVideoMapper.getSortList(umVideoQ); } + @Override + public List getUploadSuccessList() { + PhotoSpeakVideo umVideoQ = new PhotoSpeakVideo(); + umVideoQ.setVideoStatus(EnumVideoStatus.upload_success.getCode()); + return photoSpeakVideoMapper.getSortList(umVideoQ); + } + @Override public int updateById(PhotoSpeakVideo video) { return photoSpeakVideoMapper.updateById(video); diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/UserCreateVideoNumServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/UserCreateVideoNumServiceImpl.java new file mode 100644 index 0000000..aa88781 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/UserCreateVideoNumServiceImpl.java @@ -0,0 +1,80 @@ + +package com.iformall.service.sm.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.iformall.common.IdWorker; +import com.iformall.domain.po.sm.UserCreateVideoNum; +import com.iformall.mapper.UserCreateVideoNumMapper; +import com.iformall.service.sm.UserCreateVideoNumService; +import io.swagger.models.auth.In; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.Map; + +@Service +public class UserCreateVideoNumServiceImpl implements UserCreateVideoNumService { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private UserCreateVideoNumMapper userCreateVideoNumMapper; + //总条数初始值 + private static final Integer RESIDUE_TOTAL = 10; + + /** + * 初始化注册用户创建视频的次数 + * + * @param id 用户id + * @Author LWH + * @version 1.0 + * @date: 2023/6/8 10:23 + */ + public Boolean initializationUserCreateVideoNum(Long id) { + UserCreateVideoNum createVideoNum = new UserCreateVideoNum(); + createVideoNum.setId(IdWorker.get().nextId()); + createVideoNum.setUserId(id); + createVideoNum.setResidueNum(RESIDUE_TOTAL); + createVideoNum.setResidueTotal(RESIDUE_TOTAL); + Date date = new Date(); + createVideoNum.setCreateDate(date); + createVideoNum.setUpdateDate(date); + createVideoNum.setIsDel(0); + return userCreateVideoNumMapper.insert(createVideoNum) > 0; + } + + @Override + public void addOrSubtractNumberOfTimes(Integer type, UserCreateVideoNum createVideoNum) { + if (type == 1) { + createVideoNum.setResidueNum(createVideoNum.getResidueNum() - 1); + createVideoNum.setCreateNum(createVideoNum.getCreateNum() + 1); + } else if (type == 2) { + createVideoNum.setResidueNum(createVideoNum.getResidueNum() + 1); + createVideoNum.setCreateNum(createVideoNum.getCreateNum() - 1); + } + userCreateVideoNumMapper.updateById(createVideoNum); + } + + @Override + public UserCreateVideoNum queryInfoByUserId(Long userId) { + return userCreateVideoNumMapper.selectOne(new LambdaQueryWrapper().eq(UserCreateVideoNum::getUserId, userId)); + } + + @Override + public void uploadUserCreateVideoNum(Map collect) { + for (Map.Entry entry : collect.entrySet()) { + UserCreateVideoNum videoNum = new UserCreateVideoNum(); + videoNum.setUserId(entry.getKey()); + videoNum.setCreateAllTime(entry.getValue()); + userCreateVideoNumMapper.update(videoNum, + new LambdaUpdateWrapper() + .eq(UserCreateVideoNum::getIsDel, 0) + .eq(UserCreateVideoNum::getUserId, entry.getKey())); + } + } +} diff --git a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java index bcaa557..54c2dd8 100644 --- a/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java +++ b/suimangService/src/main/java/com/iformall/sm/AiVideoHelper.java @@ -219,27 +219,27 @@ public class AiVideoHelper { // AiVideoResult video = AiVideoHelper.createVideo(videoParam); // -// AiPhotoSpeakParam param = new AiPhotoSpeakParam(); -// param.setGen_txt("人多泰达股份冲冠怒发代发"); -// param.setImg(Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/digitalperson/16760216806604820_cSHoijDX_matting.png")); -// param.setGender("male"); -// param.setVoice_id("zh-CN-YunxiNeural"); -// param.setVoice_style("sad"); -// param.setUrl("None"); -// AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); - + AiPhotoSpeakParam param = new AiPhotoSpeakParam(); + param.setGen_txt("人多泰达股份冲冠怒发代发"); + param.setImg(Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/digitalperson/16760216806604820_cSHoijDX_matting.png")); + param.setGender("male"); + param.setVoice_id("zh-CN-YunxiNeural"); + param.setVoice_style("sad"); + param.setUrl("None"); + AiPhotoSpeakResult video = AiVideoHelper.createPhotoSpeakVideo(param); +// // AiCheckPhotoParam param = new AiCheckPhotoParam(); // String img = Base64Util.imageUrlToBase64("https://suimang.oss-accelerate.aliyuncs.com/builtin/personmould/16760216806604820_cSHoijDX_grace_1080.jpg"); // param.setImg(img); // AiCheckPhotoResult result = AiVideoHelper.checkPhoto(param); // System.out.println(result); // - AiPreviewParam param = new AiPreviewParam(); - param.setGen_txt("今天是个好日子"); - param.setVoice_id("zh-CN-YunyangNeural"); - param.setVoice_style("default"); - param.setGender("male"); - AiPreviewResult result = AiVideoHelper.voicePreview(param); +// AiPreviewParam param = new AiPreviewParam(); +// param.setGen_txt("今天是个好日子"); +// param.setVoice_id("zh-CN-YunyangNeural"); +// param.setVoice_style("default"); +// param.setGender("male"); +// AiPreviewResult result = AiVideoHelper.voicePreview(param); }