| @@ -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> | |||