From 8efb5714468334a2177cbd8043c13a95f33f2c3b Mon Sep 17 00:00:00 2001 From: winter Date: Thu, 16 Nov 2023 12:08:51 +0800 Subject: [PATCH] fix --- .../migration/V2023110300001_personmould.sql | 22 +++++++- .../controller/VoiceMouldController.java | 2 +- .../domain/po/sm/UserVoiceLanguage.java | 32 +++++++++++ .../iformall/domain/po/sm/VoiceLanguage.java | 8 ++- .../mapper/UserVoiceLanguageMapper.java | 17 ++++++ .../sm/impl/VoiceLanguageServiceImpl.java | 18 ++++++ .../mapper/UserVoiceLanguageMapper.xml | 56 +++++++++++++++++++ .../resources/mapper/VoiceLanguageMapper.xml | 12 +++- 8 files changed, 159 insertions(+), 8 deletions(-) create mode 100644 suimangService/src/main/java/com/iformall/domain/po/sm/UserVoiceLanguage.java create mode 100644 suimangService/src/main/java/com/iformall/mapper/UserVoiceLanguageMapper.java create mode 100644 suimangService/src/main/resources/mapper/UserVoiceLanguageMapper.xml diff --git a/suimangAdmin/src/main/resources/db/migration/V2023110300001_personmould.sql b/suimangAdmin/src/main/resources/db/migration/V2023110300001_personmould.sql index fbb4f31..a0d96f1 100644 --- a/suimangAdmin/src/main/resources/db/migration/V2023110300001_personmould.sql +++ b/suimangAdmin/src/main/resources/db/migration/V2023110300001_personmould.sql @@ -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='用户定制关联声纹'; + diff --git a/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java b/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java index 0fe86bf..1c4f3d7 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/VoiceMouldController.java @@ -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)); } diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/UserVoiceLanguage.java b/suimangService/src/main/java/com/iformall/domain/po/sm/UserVoiceLanguage.java new file mode 100644 index 0000000..0360939 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/UserVoiceLanguage.java @@ -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 cuserIds; +} diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/VoiceLanguage.java b/suimangService/src/main/java/com/iformall/domain/po/sm/VoiceLanguage.java index fd97f0d..c56a78b 100644 --- a/suimangService/src/main/java/com/iformall/domain/po/sm/VoiceLanguage.java +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/VoiceLanguage.java @@ -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 customizedVocideIds; + + @TableField(exist = false) + private Long cUserId; } diff --git a/suimangService/src/main/java/com/iformall/mapper/UserVoiceLanguageMapper.java b/suimangService/src/main/java/com/iformall/mapper/UserVoiceLanguageMapper.java new file mode 100644 index 0000000..e7cd1f6 --- /dev/null +++ b/suimangService/src/main/java/com/iformall/mapper/UserVoiceLanguageMapper.java @@ -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 { + + List findVoiceIdList(UserVoiceLanguage record); + + void deleteByCuserId(@Param("cUserId") Long cUserId); + + void saveBatch(@Param("list") List list); + +} diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceLanguageServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceLanguageServiceImpl.java index e9c2330..0feaf3d 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceLanguageServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/VoiceLanguageServiceImpl.java @@ -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 voiceTotal(VoiceLanguage voiceLanguage) { voiceLanguage.setIsDel(0); voiceLanguage.setSortColumns("local asc"); + if (null != voiceLanguage.getCUserId()) { + UserVoiceLanguage uvl = new UserVoiceLanguage(); + uvl.setCUserId(voiceLanguage.getCUserId()); + List vids = userVoiceLanguageMapper.findVoiceIdList(uvl); + if (null == vids || vids.size() <= 0) { + List vvids = new ArrayList(); + vvids.add(-1L); + voiceLanguage.setCustomizedVocideIds(vvids); + }else { + voiceLanguage.setCustomizedVocideIds(vids); + } + } + List languages = voiceLanguageMapper.findList(voiceLanguage); return CollectionUtils.isEmpty(languages) ? Lists.newArrayList() : languages; } diff --git a/suimangService/src/main/resources/mapper/UserVoiceLanguageMapper.xml b/suimangService/src/main/resources/mapper/UserVoiceLanguageMapper.xml new file mode 100644 index 0000000..032f0b4 --- /dev/null +++ b/suimangService/src/main/resources/mapper/UserVoiceLanguageMapper.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + `id`, `voice_language_id`, `c_user_id`, `create_date`, `update_date` + + + + where 1 = 1 + + + and `id` = #{id} + + + + and id in + + #{idItem} + + + + order by customized desc,${sortColumns} + + + + + + delete from user_voice_language where c_user_id = #{cUserId} + + + + INSERT INTO user_voice_language (`id`, `voice_language_id`, `c_user_id`,`create_date`, `update_date`) + VALUES + + ( + #{item.id}, + #{item.voiceLanguageId}, + #{item.cUserId}, + #{item.createDate}, + #{item.updateDate} + ) + + + + diff --git a/suimangService/src/main/resources/mapper/VoiceLanguageMapper.xml b/suimangService/src/main/resources/mapper/VoiceLanguageMapper.xml index 513f177..9c73edb 100644 --- a/suimangService/src/main/resources/mapper/VoiceLanguageMapper.xml +++ b/suimangService/src/main/resources/mapper/VoiceLanguageMapper.xml @@ -15,13 +15,12 @@ - `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` @@ -39,9 +38,16 @@ and `is_del` = #{isDel} + - and ( customized = 0 or (customized = 1 and customized_user_id = #{customizedUserId}) ) + and ( customized = 0 or (customized = 1 + and id in + + #{cIdItem} + + )) + and customized = 0