diff --git a/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java b/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java index f186552..1a801da 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/WxUserGrantController.java @@ -450,6 +450,8 @@ public class WxUserGrantController extends BaseController { //慧影注册送金币 projectFactory.getProjectService(EnumProject.PROJECT_2.getCode()).handleAfterRegeister(basicInfo); + //慧播初始化用户模板和时长 + projectFactory.getProjectService(EnumProject.PROJECT_1.getCode()).handleAfterRegeister(basicInfo); return new ResultData(); // } else { // return new ResultData(ErrorCode.MSG_VERIFY_CODE_NOT_FOUND); diff --git a/suimangService/src/main/java/com/iformall/common/SysConfigConstant.java b/suimangService/src/main/java/com/iformall/common/SysConfigConstant.java index 2d9769f..0a1819b 100644 --- a/suimangService/src/main/java/com/iformall/common/SysConfigConstant.java +++ b/suimangService/src/main/java/com/iformall/common/SysConfigConstant.java @@ -4,5 +4,8 @@ public class SysConfigConstant { public static final String vierfy_seconds_key="vierfySeconds"; public static final String default_merchant_b_user = "defaultMerchantBUserId"; + public static final String hb_avatar_init_ids = "hbAvatarInitIds"; + public static final String hb_voice_init_ids = "hbVoiceInitIds"; + public static final String hb_regeister_days_expired = "hbRegeisterDaysExpired"; } diff --git a/suimangService/src/main/java/com/iformall/domain/po/WxCAuthor.java b/suimangService/src/main/java/com/iformall/domain/po/WxCAuthor.java new file mode 100644 index 0000000..d051988 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/po/WxCAuthor.java @@ -0,0 +1,28 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import java.util.Date; + +@TableName(value = "wx_c_author") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxCAuthor extends BaseEntity { + + private Long id; + @io.swagger.annotations.ApiModelProperty(value="",name="userId") + private Long userId; + @io.swagger.annotations.ApiModelProperty(value="电话",name="userName") + private String userName; + @io.swagger.annotations.ApiModelProperty(value="EnumWxCAuthorType",name="type") + private Integer type; + @io.swagger.annotations.ApiModelProperty(value="",name="resourceId") + private Long resourceId; + @io.swagger.annotations.ApiModelProperty(value="",name="expireTime") + private Date expireTime; + +} diff --git a/suimangService/src/main/java/com/iformall/domain/po/WxCAvatar.java b/suimangService/src/main/java/com/iformall/domain/po/WxCAvatar.java new file mode 100644 index 0000000..62ff72b --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/po/WxCAvatar.java @@ -0,0 +1,40 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import java.util.Date; + +@TableName(value = "wx_c_avatar") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxCAvatar extends BaseEntity { + + private Long id; + @io.swagger.annotations.ApiModelProperty(value="EnumClassType",name="klass") + private Integer klass; + @io.swagger.annotations.ApiModelProperty(value="数字人名称",name="name") + private String name; + @io.swagger.annotations.ApiModelProperty(value="数字人图像",name="image") + private String image; + @io.swagger.annotations.ApiModelProperty(value="数字人视频样例",name="demo") + private String demo; + @io.swagger.annotations.ApiModelProperty(value="数字人视频模板文件",name="model") + private String model; + @io.swagger.annotations.ApiModelProperty(value="数字人预处理文件",name="preinfo") + private String preinfo; + @io.swagger.annotations.ApiModelProperty(value="模板文件地址",name="modelPath") + private String modelPath; + @io.swagger.annotations.ApiModelProperty(value="模板文件地址",name="preinfoPath") + private String preinfoPath; + @io.swagger.annotations.ApiModelProperty(value="模板文件地址",name="modelMd5") + private String modelMd5; + @io.swagger.annotations.ApiModelProperty(value="模板文件地址",name="preinfoMd5") + private String preinfoMd5; + @io.swagger.annotations.ApiModelProperty(value="模板文件地址",name="mask") + private String mask; + +} diff --git a/suimangService/src/main/java/com/iformall/domain/po/WxCUserLiveBasicInfo.java b/suimangService/src/main/java/com/iformall/domain/po/WxCUserLiveBasicInfo.java new file mode 100644 index 0000000..af810b3 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/po/WxCUserLiveBasicInfo.java @@ -0,0 +1,24 @@ +package com.iformall.domain.po; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.iformall.domain.po.base.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import java.util.Date; + +@TableName(value = "wx_c_user_live_basic_info") +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class WxCUserLiveBasicInfo extends BaseEntity { + + private Long id; + @io.swagger.annotations.ApiModelProperty(value="",name="code") + private String code; + @io.swagger.annotations.ApiModelProperty(value="",name="version") + private Integer version = 2; + @io.swagger.annotations.ApiModelProperty(value="过期时间",name="expireTime") + private Date expireTime; + +} diff --git a/suimangService/src/main/java/com/iformall/enums/sm/EnumWxCAuthorType.java b/suimangService/src/main/java/com/iformall/enums/sm/EnumWxCAuthorType.java new file mode 100644 index 0000000..a33fabd --- /dev/null +++ b/suimangService/src/main/java/com/iformall/enums/sm/EnumWxCAuthorType.java @@ -0,0 +1,34 @@ +package com.iformall.enums.sm; + +/** + * 数字人模板 + */ +public enum EnumWxCAuthorType { + AVATAR(0, "数字人模板"), + VOICE(1, "声音"); + + public static EnumWxCAuthorType getEnum(Integer code) { + for (EnumWxCAuthorType value : values()) { + if (value.getCode().equals(code)) { + return value; + } + } + return null; + } + + private Integer code; + private String message; + + EnumWxCAuthorType(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return code; + } + + public String getMessage() { + return message; + } +} diff --git a/suimangService/src/main/java/com/iformall/mapper/WxCAuthorMapper.java b/suimangService/src/main/java/com/iformall/mapper/WxCAuthorMapper.java new file mode 100644 index 0000000..a43cd3b --- /dev/null +++ b/suimangService/src/main/java/com/iformall/mapper/WxCAuthorMapper.java @@ -0,0 +1,15 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxCAuthor; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface WxCAuthorMapper extends CommonMapper { + + List findList(WxCAuthor wxCAuthor); + + void deleteByUserId(@Param(value = "userId")Long userId); +} + diff --git a/suimangService/src/main/java/com/iformall/mapper/WxCAvatarMapper.java b/suimangService/src/main/java/com/iformall/mapper/WxCAvatarMapper.java new file mode 100644 index 0000000..25631ff --- /dev/null +++ b/suimangService/src/main/java/com/iformall/mapper/WxCAvatarMapper.java @@ -0,0 +1,11 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.po.WxCAvatar; +import java.util.List; + +public interface WxCAvatarMapper extends CommonMapper { + + List findList(WxCAvatar wxCAvatar); +} + diff --git a/suimangService/src/main/java/com/iformall/mapper/WxCUserLiveBasicInfoMapper.java b/suimangService/src/main/java/com/iformall/mapper/WxCUserLiveBasicInfoMapper.java new file mode 100644 index 0000000..457af3a --- /dev/null +++ b/suimangService/src/main/java/com/iformall/mapper/WxCUserLiveBasicInfoMapper.java @@ -0,0 +1,19 @@ +package com.iformall.mapper; + +import com.iformall.common.CommonMapper; +import com.iformall.domain.dto.WxCUserBasicInfoDto; +import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.WxCUserLiveBasicInfo; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.CUserBaseVo; +import com.iformall.domain.vo.UserCountVo; +import com.iformall.domain.vo.WxCUserBasicInfoVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface WxCUserLiveBasicInfoMapper extends CommonMapper { + + WxCUserLiveBasicInfo findById(@Param(value = "id")Long id); +} + diff --git a/suimangService/src/main/java/com/iformall/service/WxCUserLiveBasicInfoService.java b/suimangService/src/main/java/com/iformall/service/WxCUserLiveBasicInfoService.java new file mode 100644 index 0000000..ccbc645 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/service/WxCUserLiveBasicInfoService.java @@ -0,0 +1,12 @@ +package com.iformall.service; + +import java.util.Date; + +import com.iformall.domain.po.WxCUserBasicInfo; + +public interface WxCUserLiveBasicInfoService { + + public void regeister(WxCUserBasicInfo wxCUserBasicInfo) ; + +} + diff --git a/suimangService/src/main/java/com/iformall/service/impl/WxCUserLiveBasicInfoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/WxCUserLiveBasicInfoServiceImpl.java new file mode 100644 index 0000000..baa8f8b --- /dev/null +++ b/suimangService/src/main/java/com/iformall/service/impl/WxCUserLiveBasicInfoServiceImpl.java @@ -0,0 +1,102 @@ +package com.iformall.service.impl; + +import com.iformall.common.SysConfigConstant; +import com.iformall.domain.po.SysConfig; +import com.iformall.domain.po.WxCAuthor; +import com.iformall.domain.po.WxCAvatar; +import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.domain.po.WxCUserLiveBasicInfo; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.po.sm.VoiceLanguage; +import com.iformall.enums.sm.EnumWxCAuthorType; +import com.iformall.mapper.*; +import com.iformall.service.*; +import com.iformall.utils.DateUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; + +@Service +public class WxCUserLiveBasicInfoServiceImpl implements WxCUserLiveBasicInfoService { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxCUserLiveBasicInfoMapper wxCUserLiveBasicInfoMapper; + + @Autowired + WxCAuthorMapper wxCAuthorMapper; + + @Autowired + WxCAvatarMapper wxCAvatarMapper; + + @Lazy + @Autowired + SysConfigService sysConfigService; + + @Autowired + VoiceLanguageMapper voiceLanguageMapper; + + @Override + public void regeister(WxCUserBasicInfo wxCUserBasicInfo) { + SysConfig rconfig = sysConfigService.getByKey(SysConfigConstant.hb_regeister_days_expired, new TenantEntity()); + Date expireTime = DateUtils.getTimeAfterDays(Integer.parseInt(rconfig.getConfigItemValue()),new Date()); + WxCUserLiveBasicInfo liveBasicInfo = wxCUserLiveBasicInfoMapper.findById(wxCUserBasicInfo.getId()); + if (null == liveBasicInfo) { + liveBasicInfo = new WxCUserLiveBasicInfo(); + liveBasicInfo.setId(wxCUserBasicInfo.getId()); + liveBasicInfo.setExpireTime(expireTime); + wxCUserLiveBasicInfoMapper.insert(liveBasicInfo); + } + //分配模板 + wxCAuthorMapper.deleteByUserId(wxCUserBasicInfo.getId()); + WxCAvatar aq = new WxCAvatar(); + SysConfig config = sysConfigService.getByKey(SysConfigConstant.hb_avatar_init_ids, new TenantEntity()); + String aids = config.getConfigItemValue(); + String[] _as = aids.split(","); + List ass = new ArrayList(); + for (String _a : _as) { + ass.add(Long.parseLong(_a)); + } + aq.setIds(ass); + List alist = wxCAvatarMapper.findList(aq); + for (WxCAvatar a : alist) { + WxCAuthor author = new WxCAuthor(); + author.setUserId(wxCUserBasicInfo.getId()); + author.setUserName(wxCUserBasicInfo.getPhone()); + author.setType(EnumWxCAuthorType.AVATAR.getCode()); + author.setResourceId(a.getId()); + author.setExpireTime(expireTime); + wxCAuthorMapper.insert(author); + } + + SysConfig vconfig = sysConfigService.getByKey(SysConfigConstant.hb_voice_init_ids, new TenantEntity()); + String vids = vconfig.getConfigItemValue(); + String[] _vs = vids.split(","); + List vss = new ArrayList(); + for (String _v : _vs) { + vss.add(Long.parseLong(_v)); + } + VoiceLanguage vq = new VoiceLanguage(); + vq.setIds(vss); + List vlist = voiceLanguageMapper.findList(vq); + for (VoiceLanguage v : vlist) { + WxCAuthor author = new WxCAuthor(); + author.setUserId(wxCUserBasicInfo.getId()); + author.setUserName(wxCUserBasicInfo.getPhone()); + author.setType(EnumWxCAuthorType.VOICE.getCode()); + author.setResourceId(v.getId()); + author.setExpireTime(expireTime); + wxCAuthorMapper.insert(author); + } + } + +} + diff --git a/suimangService/src/main/java/com/iformall/service/project/service/impl/HBProjectService.java b/suimangService/src/main/java/com/iformall/service/project/service/impl/HBProjectService.java index c27bf5a..c6e696d 100644 --- a/suimangService/src/main/java/com/iformall/service/project/service/impl/HBProjectService.java +++ b/suimangService/src/main/java/com/iformall/service/project/service/impl/HBProjectService.java @@ -1,15 +1,20 @@ package com.iformall.service.project.service.impl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.iformall.domain.po.Product; import com.iformall.domain.po.WxCUserBasicInfo; +import com.iformall.service.WxCUserLiveBasicInfoService; import com.iformall.service.project.entity.CreateBilling; import com.iformall.service.project.service.ProjectService; //慧播 @Service public class HBProjectService extends BaseProjectService implements ProjectService{ + + @Autowired + WxCUserLiveBasicInfoService wxCUserLiveBasicInfoService; @Override public Object getPayProductExtroInfo(Product product) { @@ -35,8 +40,7 @@ public class HBProjectService extends BaseProjectService implements ProjectServi @Override public void handleAfterRegeister(WxCUserBasicInfo cUser) { - // TODO Auto-generated method stub - + wxCUserLiveBasicInfoService.regeister(cUser); } diff --git a/suimangService/src/main/resources/mapper/WxCAuthorMapper.xml b/suimangService/src/main/resources/mapper/WxCAuthorMapper.xml new file mode 100644 index 0000000..ecc6411 --- /dev/null +++ b/suimangService/src/main/resources/mapper/WxCAuthorMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + id,user_id,user_name,type,resource_id,expire_time + + + + where 1=1 + + + and `id` = #{id} + + + + and `user_id` = #{userId} + + + + and id in + + #{idItem} + + + + order by ${sortColumns} + + + + + + + + delete from wx_c_author where user_id = #{userId} + + + + \ No newline at end of file diff --git a/suimangService/src/main/resources/mapper/WxCAvatarMapper.xml b/suimangService/src/main/resources/mapper/WxCAvatarMapper.xml new file mode 100644 index 0000000..d0108c3 --- /dev/null +++ b/suimangService/src/main/resources/mapper/WxCAvatarMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + id,class,name,image,demo,model,preinfo,model_path,preinfo_path,model_md5,preinfo_md5,mask + + + + where 1=1 + + + and `id` = #{id} + + + + and `class` = #{klass} + + + + and id in + + #{idItem} + + + + order by ${sortColumns} + + + + + + + \ No newline at end of file diff --git a/suimangService/src/main/resources/mapper/WxCUserLiveBasicInfoMapper.xml b/suimangService/src/main/resources/mapper/WxCUserLiveBasicInfoMapper.xml new file mode 100644 index 0000000..f94afb2 --- /dev/null +++ b/suimangService/src/main/resources/mapper/WxCUserLiveBasicInfoMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + id,code,version,expire_time + + + + where 1=1 + + + and `id` = #{id} + + + + and id in + + #{idItem} + + + + order by ${sortColumns} + + + + + + + \ No newline at end of file