@@ -6,8 +6,6 @@ apimenu,apiguide,apidetail,thirdpartyapi | |||
ALTER TABLE `voice_language` | |||
ADD COLUMN customized int(1) NOT NULL DEFAULT 0 COMMENT '是否私人定制EnumYesOrNo' AFTER `is_del`; | |||
ALTER TABLE `voice_language` | |||
ADD COLUMN customized_user_id BIGINT(11) COMMENT '私人定制所属用户' AFTER `customized`; | |||
ALTER TABLE `user_mould_video` | |||
@@ -46,4 +44,24 @@ ADD COLUMN video_url varchar(300) COMMENT '视频链接'; | |||
#wx_c_author 新增了user_name | |||
CREATE TABLE `user_person_mould` ( | |||
`id` bigint NOT NULL COMMENT '主键ID', | |||
`person_mould_id` bigint NOT NULL COMMENT 'PersonMould编号', | |||
`c_user_id` bigint NOT NULL COMMENT 'WxCuserBasicInfo编码', | |||
`create_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | |||
`update_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间' | |||
PRIMARY KEY (`id`) USING BTREE, | |||
UNIQUE KEY `id_UNIQUE` (`id`) USING BTREE | |||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户定制关联模板'; | |||
CREATE TABLE `user_voice_language` ( | |||
`id` bigint NOT NULL COMMENT '主键ID', | |||
`voice_language_id` bigint NOT NULL COMMENT 'VocieLanguage编码', | |||
`c_user_id` bigint NOT NULL COMMENT 'WxCuserBasicInfo编码', | |||
`create_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', | |||
`update_date` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', | |||
PRIMARY KEY (`id`) USING BTREE, | |||
UNIQUE KEY `id_UNIQUE` (`id`) USING BTREE | |||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户定制关联声纹'; | |||
@@ -155,7 +155,7 @@ public class VoiceMouldController extends BaseController { | |||
public ResultData loginVoiceTotal() { | |||
VoiceLanguage vl = new VoiceLanguage(); | |||
vl.setCustomizedQuery(EnumYesOrNo.YES.getCode()); | |||
vl.setCustomizedUserId(getMemberId()); | |||
vl.setCUserId(getMemberId()); | |||
return new ResultData(voiceLanguageService.voiceTotal(vl)); | |||
} | |||
@@ -0,0 +1,32 @@ | |||
package com.iformall.domain.po.sm; | |||
import com.baomidou.mybatisplus.annotation.TableField; | |||
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; | |||
import java.util.List; | |||
@TableName(value = "user_voice_language") | |||
@Data | |||
@ToString(callSuper = true) | |||
@EqualsAndHashCode(callSuper = true) | |||
public class UserVoiceLanguage extends BaseEntity { | |||
private static final long serialVersionUID = 5153174991543978589L; | |||
protected Long id; | |||
@io.swagger.annotations.ApiModelProperty(value="VocieLanguage编码",name="voiceLanguageId") | |||
private Long voiceLanguageId; | |||
@io.swagger.annotations.ApiModelProperty(value="WxCuserBasicInfo编码",name="cUserId") | |||
private Long cUserId; | |||
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createDate") | |||
private Date createDate; | |||
@io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateDate") | |||
private Date updateDate; | |||
@TableField(exist = false) | |||
private List<Long> cuserIds; | |||
} |
@@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode; | |||
import lombok.ToString; | |||
import java.util.Date; | |||
import java.util.List; | |||
import java.util.Objects; | |||
/** | |||
@@ -65,7 +66,10 @@ public class VoiceLanguage extends TenantEntity { | |||
private Integer customizedQuery = 0; | |||
@io.swagger.annotations.ApiModelProperty(value="是否私人定制EnumYesOrNo",name="customized") | |||
private Integer customized; | |||
@io.swagger.annotations.ApiModelProperty(value="私人定制所属用户",name="customizedUserId") | |||
private Long customizedUserId; | |||
@TableField(exist = false) | |||
private List<Long> customizedVocideIds; | |||
@TableField(exist = false) | |||
private Long cUserId; | |||
} |
@@ -0,0 +1,17 @@ | |||
package com.iformall.mapper; | |||
import com.iformall.common.CommonMapper; | |||
import com.iformall.domain.po.sm.UserVoiceLanguage; | |||
import org.apache.ibatis.annotations.Param; | |||
import java.util.List; | |||
public interface UserVoiceLanguageMapper extends CommonMapper<UserVoiceLanguage, Long> { | |||
List<Long> findVoiceIdList(UserVoiceLanguage record); | |||
void deleteByCuserId(@Param("cUserId") Long cUserId); | |||
void saveBatch(@Param("list") List<UserVoiceLanguage> list); | |||
} |
@@ -4,8 +4,10 @@ package com.iformall.service.sm.impl; | |||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||
import com.google.common.collect.Lists; | |||
import com.iformall.constant.LanguageEnums; | |||
import com.iformall.domain.po.sm.UserVoiceLanguage; | |||
import com.iformall.domain.po.sm.VoiceLanguage; | |||
import com.iformall.language.LanguageDetect; | |||
import com.iformall.mapper.UserVoiceLanguageMapper; | |||
import com.iformall.mapper.VoiceLanguageMapper; | |||
import com.iformall.service.sm.VoiceLanguageService; | |||
import com.iformall.util.DetectUtils; | |||
@@ -24,11 +26,27 @@ public class VoiceLanguageServiceImpl implements VoiceLanguageService { | |||
@Autowired | |||
private VoiceLanguageMapper voiceLanguageMapper; | |||
@Autowired | |||
private UserVoiceLanguageMapper userVoiceLanguageMapper; | |||
@Override | |||
public List<VoiceLanguage> voiceTotal(VoiceLanguage voiceLanguage) { | |||
voiceLanguage.setIsDel(0); | |||
voiceLanguage.setSortColumns("local asc"); | |||
if (null != voiceLanguage.getCUserId()) { | |||
UserVoiceLanguage uvl = new UserVoiceLanguage(); | |||
uvl.setCUserId(voiceLanguage.getCUserId()); | |||
List<Long> vids = userVoiceLanguageMapper.findVoiceIdList(uvl); | |||
if (null == vids || vids.size() <= 0) { | |||
List<Long> vvids = new ArrayList<Long>(); | |||
vvids.add(-1L); | |||
voiceLanguage.setCustomizedVocideIds(vvids); | |||
}else { | |||
voiceLanguage.setCustomizedVocideIds(vids); | |||
} | |||
} | |||
List<VoiceLanguage> languages = voiceLanguageMapper.findList(voiceLanguage); | |||
return CollectionUtils.isEmpty(languages) ? Lists.newArrayList() : languages; | |||
} | |||
@@ -0,0 +1,56 @@ | |||
<?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.UserVoiceLanguageMapper"> | |||
<resultMap id="BaseResultMap" type="com.iformall.domain.po.sm.UserVoiceLanguage"> | |||
<id column="id" jdbcType="BIGINT" property="id"/> | |||
<result column="voice_language_id" jdbcType="BIGINT" property="voiceLanguageId"/> | |||
<result column="c_user_id" jdbcType="BIGINT" property="cUserId" /> | |||
<result column="create_date" jdbcType="TIMESTAMP" property="createDate"/> | |||
<result column="update_date" jdbcType="TIMESTAMP" property="updateDate"/> | |||
</resultMap> | |||
<sql id="allColumns"> | |||
`id`, `voice_language_id`, `c_user_id`, `create_date`, `update_date` | |||
</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 customized desc,${sortColumns}</if> | |||
</sql> | |||
<select id="findVoiceIdList" parameterType="com.iformall.domain.po.sm.UserVoiceLanguage" resultType="Long"> | |||
select voice_language_id | |||
from user_voice_language where c_user_id = #{cUserId} | |||
</select> | |||
<delete id = "deleteByCuserId"> | |||
delete from user_voice_language where c_user_id = #{cUserId} | |||
</delete> | |||
<insert id="saveBatch" parameterType="java.util.List"> | |||
INSERT INTO user_voice_language (`id`, `voice_language_id`, `c_user_id`,`create_date`, `update_date`) | |||
VALUES | |||
<foreach collection="list" item="item" separator=","> | |||
( | |||
#{item.id}, | |||
#{item.voiceLanguageId}, | |||
#{item.cUserId}, | |||
#{item.createDate}, | |||
#{item.updateDate} | |||
) | |||
</foreach> | |||
</insert> | |||
</mapper> |
@@ -15,13 +15,12 @@ | |||
<result column="update_date" jdbcType="TIMESTAMP" property="updateDate"/> | |||
<result column="is_del" jdbcType="INTEGER" property="isDel"/> | |||
<result column="customized" jdbcType="INTEGER" property="customized"/> | |||
<result column="customized_user_id" jdbcType="INTEGER" property="customizedUserId"/> | |||
</resultMap> | |||
<sql id="allColumns"> | |||
`id`, `tenant_id`, `parent_tenant_id`, `language`, `country`, `local`, `name`, `chinese_name`, `img`, `create_date`, | |||
`update_date`, `is_del`,`customized`,`customized_user_id` | |||
`update_date`, `is_del`,`customized` | |||
</sql> | |||
<sql id="dynamicWhereConditions"> | |||
@@ -39,9 +38,16 @@ | |||
<if test=" null != isDel "> | |||
and `is_del` = #{isDel} | |||
</if> | |||
<if test=" 1 == customizedQuery"> | |||
and ( customized = 0 or (customized = 1 and customized_user_id = #{customizedUserId}) ) | |||
and ( customized = 0 or (customized = 1 | |||
and id in | |||
<foreach collection="customizedVocideIds" index="index" item="cIdItem" open="(" separator="," close=")"> | |||
#{cIdItem} | |||
</foreach> | |||
)) | |||
</if> | |||
<if test=" 0 == customizedQuery"> | |||
and customized = 0 | |||
</if> | |||