@@ -450,6 +450,8 @@ public class WxUserGrantController extends BaseController { | |||||
//慧影注册送金币 | //慧影注册送金币 | ||||
projectFactory.getProjectService(EnumProject.PROJECT_2.getCode()).handleAfterRegeister(basicInfo); | projectFactory.getProjectService(EnumProject.PROJECT_2.getCode()).handleAfterRegeister(basicInfo); | ||||
//慧播初始化用户模板和时长 | |||||
projectFactory.getProjectService(EnumProject.PROJECT_1.getCode()).handleAfterRegeister(basicInfo); | |||||
return new ResultData(); | return new ResultData(); | ||||
// } else { | // } else { | ||||
// return new ResultData(ErrorCode.MSG_VERIFY_CODE_NOT_FOUND); | // return new ResultData(ErrorCode.MSG_VERIFY_CODE_NOT_FOUND); | ||||
@@ -4,5 +4,8 @@ public class SysConfigConstant { | |||||
public static final String vierfy_seconds_key="vierfySeconds"; | public static final String vierfy_seconds_key="vierfySeconds"; | ||||
public static final String default_merchant_b_user = "defaultMerchantBUserId"; | 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"; | |||||
} | } |
@@ -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; | |||||
} |
@@ -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; | |||||
} |
@@ -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; | |||||
} |
@@ -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; | |||||
} | |||||
} |
@@ -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<WxCAuthor, String> { | |||||
List<WxCAuthor> findList(WxCAuthor wxCAuthor); | |||||
void deleteByUserId(@Param(value = "userId")Long userId); | |||||
} | |||||
@@ -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<WxCAvatar, String> { | |||||
List<WxCAvatar> findList(WxCAvatar wxCAvatar); | |||||
} | |||||
@@ -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, String> { | |||||
WxCUserLiveBasicInfo findById(@Param(value = "id")Long id); | |||||
} | |||||
@@ -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) ; | |||||
} | |||||
@@ -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<Long> ass = new ArrayList<Long>(); | |||||
for (String _a : _as) { | |||||
ass.add(Long.parseLong(_a)); | |||||
} | |||||
aq.setIds(ass); | |||||
List<WxCAvatar> 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<Long> vss = new ArrayList<Long>(); | |||||
for (String _v : _vs) { | |||||
vss.add(Long.parseLong(_v)); | |||||
} | |||||
VoiceLanguage vq = new VoiceLanguage(); | |||||
vq.setIds(vss); | |||||
List<VoiceLanguage> 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); | |||||
} | |||||
} | |||||
} | |||||
@@ -1,15 +1,20 @@ | |||||
package com.iformall.service.project.service.impl; | package com.iformall.service.project.service.impl; | ||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import com.iformall.domain.po.Product; | import com.iformall.domain.po.Product; | ||||
import com.iformall.domain.po.WxCUserBasicInfo; | import com.iformall.domain.po.WxCUserBasicInfo; | ||||
import com.iformall.service.WxCUserLiveBasicInfoService; | |||||
import com.iformall.service.project.entity.CreateBilling; | import com.iformall.service.project.entity.CreateBilling; | ||||
import com.iformall.service.project.service.ProjectService; | import com.iformall.service.project.service.ProjectService; | ||||
//慧播 | //慧播 | ||||
@Service | @Service | ||||
public class HBProjectService extends BaseProjectService implements ProjectService{ | public class HBProjectService extends BaseProjectService implements ProjectService{ | ||||
@Autowired | |||||
WxCUserLiveBasicInfoService wxCUserLiveBasicInfoService; | |||||
@Override | @Override | ||||
public Object getPayProductExtroInfo(Product product) { | public Object getPayProductExtroInfo(Product product) { | ||||
@@ -35,8 +40,7 @@ public class HBProjectService extends BaseProjectService implements ProjectServi | |||||
@Override | @Override | ||||
public void handleAfterRegeister(WxCUserBasicInfo cUser) { | public void handleAfterRegeister(WxCUserBasicInfo cUser) { | ||||
// TODO Auto-generated method stub | |||||
wxCUserLiveBasicInfoService.regeister(cUser); | |||||
} | } | ||||
@@ -0,0 +1,51 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||||
<mapper namespace="com.iformall.mapper.WxCAuthorMapper"> | |||||
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxCAuthor"> | |||||
<id column="id" jdbcType="BIGINT" property="id"/> | |||||
<result column="user_id" jdbcType="BIGINT" property="userId"/> | |||||
<result column="user_name" jdbcType="VARCHAR" property="userName"/> | |||||
<result column="type" jdbcType="INTEGER" property="type"/> | |||||
<result column="resource_id" jdbcType="BIGINT" property="resourceId"/> | |||||
<result column="expire_time" jdbcType="TIMESTAMP" property="expireTime"/> | |||||
</resultMap> | |||||
<sql id="allColumns"> | |||||
id,user_id,user_name,type,resource_id,expire_time | |||||
</sql> | |||||
<sql id="dynamicWhereConditions"> | |||||
where 1=1 | |||||
<if test=" null != id "> | |||||
and `id` = #{id} | |||||
</if> | |||||
<if test=" null != userId "> | |||||
and `user_id` = #{userId} | |||||
</if> | |||||
<if test=" null != ids "> | |||||
and id in | |||||
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||||
#{idItem} | |||||
</foreach> | |||||
</if> | |||||
<if test=" null != sortColumns">order by ${sortColumns}</if> | |||||
</sql> | |||||
<select id="findList" parameterType="com.iformall.domain.po.WxCAuthor" resultMap="BaseResultMap"> | |||||
select <include refid="allColumns"/> | |||||
from wx_c_author | |||||
<include refid="dynamicWhereConditions"/> | |||||
</select> | |||||
<delete id="deleteByUserId" parameterType="java.util.HashMap"> | |||||
delete from wx_c_author where user_id = #{userId} | |||||
</delete> | |||||
</mapper> |
@@ -0,0 +1,52 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||||
<mapper namespace="com.iformall.mapper.WxCAvatarMapper"> | |||||
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxCAvatar"> | |||||
<id column="id" jdbcType="BIGINT" property="id"/> | |||||
<result column="class" jdbcType="INTEGER" property="klass"/> | |||||
<result column="name" jdbcType="VARCHAR" property="name"/> | |||||
<result column="image" jdbcType="VARCHAR" property="image"/> | |||||
<result column="demo" jdbcType="VARCHAR" property="demo"/> | |||||
<result column="model" jdbcType="VARCHAR" property="model"/> | |||||
<result column="preinfo" jdbcType="VARCHAR" property="preinfo"/> | |||||
<result column="model_path" jdbcType="VARCHAR" property="modelPath"/> | |||||
<result column="preinfo_path" jdbcType="VARCHAR" property="preinfoPath"/> | |||||
<result column="model_md5" jdbcType="VARCHAR" property="modelMd5"/> | |||||
<result column="preinfo_md5" jdbcType="VARCHAR" property="preinfoMd5"/> | |||||
<result column="mask" jdbcType="VARCHAR" property="mask"/> | |||||
</resultMap> | |||||
<sql id="allColumns"> | |||||
id,class,name,image,demo,model,preinfo,model_path,preinfo_path,model_md5,preinfo_md5,mask | |||||
</sql> | |||||
<sql id="dynamicWhereConditions"> | |||||
where 1=1 | |||||
<if test=" null != id "> | |||||
and `id` = #{id} | |||||
</if> | |||||
<if test=" null != klass "> | |||||
and `class` = #{klass} | |||||
</if> | |||||
<if test=" null != ids "> | |||||
and id in | |||||
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||||
#{idItem} | |||||
</foreach> | |||||
</if> | |||||
<if test=" null != sortColumns">order by ${sortColumns}</if> | |||||
</sql> | |||||
<select id="findList" parameterType="com.iformall.domain.po.WxCAvatar" resultMap="BaseResultMap"> | |||||
select <include refid="allColumns"/> | |||||
from wx_c_avatar | |||||
<include refid="dynamicWhereConditions"/> | |||||
</select> | |||||
</mapper> |
@@ -0,0 +1,39 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||||
<mapper namespace="com.iformall.mapper.WxCUserLiveBasicInfoMapper"> | |||||
<resultMap id="BaseResultMap" type="com.iformall.domain.po.WxCUserLiveBasicInfo"> | |||||
<id column="id" jdbcType="BIGINT" property="id"/> | |||||
<result column="code" jdbcType="VARCHAR" property="code"/> | |||||
<result column="version" jdbcType="INTEGER" property="version"/> | |||||
<result column="expire_time" jdbcType="TIMESTAMP" property="expireTime"/> | |||||
</resultMap> | |||||
<sql id="allColumns"> | |||||
id,code,version,expire_time | |||||
</sql> | |||||
<sql id="dynamicWhereConditions"> | |||||
where 1=1 | |||||
<if test=" null != id "> | |||||
and `id` = #{id} | |||||
</if> | |||||
<if test=" null != ids "> | |||||
and id in | |||||
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")"> | |||||
#{idItem} | |||||
</foreach> | |||||
</if> | |||||
<if test=" null != sortColumns">order by ${sortColumns}</if> | |||||
</sql> | |||||
<select id="findById" parameterType="java.util.HashMap" resultMap="BaseResultMap"> | |||||
select <include refid="allColumns"/> | |||||
from wx_c_user_live_basic_info where id =#{id} | |||||
</select> | |||||
</mapper> |