添加图片信息表,我的数字人设置表

main
liushujing 3 months ago
parent 883925c287
commit 67f2738851

@ -0,0 +1,86 @@
package com.pjilisense.flxai.controller;
import com.pjilisense.flxai.base.constant.Constant;
import com.pjilisense.flxai.page.PageData;
import com.pjilisense.flxai.utils.Result;
import com.pjilisense.flxai.dto.DigitalImgDTO;
import com.pjilisense.flxai.service.DigitalImgService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
@RestController
@RequestMapping(Constant.BASE_PATH+"digitalimg")
@Api(tags="${comments}")
public class DigitalImgController {
private static Logger logger = LoggerFactory.getLogger(DigitalImgController.class);
@Autowired
private DigitalImgService digitalImgService;
@GetMapping("page")
@ApiOperation("分页")
@ApiImplicitParams({
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码从1开始", paramType = "query", required = true, dataType="Integer", dataTypeClass =Integer.class) ,
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="Integer", dataTypeClass =Integer.class) ,
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String", dataTypeClass =String.class) ,
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String", dataTypeClass =String.class)
})
public Result<PageData<DigitalImgDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
PageData<DigitalImgDTO> page = digitalImgService.page(params);
return new Result<PageData<DigitalImgDTO>>().ok(page);
}
@GetMapping("{id}")
@ApiOperation("信息")
public Result<DigitalImgDTO> get(@PathVariable("id") Long id){
DigitalImgDTO data = digitalImgService.get(id);
return new Result<DigitalImgDTO>().ok(data);
}
@PostMapping
@ApiOperation("保存")
public Result save(@RequestBody DigitalImgDTO dto){
digitalImgService.save(dto);
return new Result();
}
@PutMapping
@ApiOperation("修改")
public Result update(@RequestBody DigitalImgDTO dto){
digitalImgService.update(dto);
return new Result();
}
@DeleteMapping
@ApiOperation("删除")
public Result delete(@RequestBody String[] ids){
digitalImgService.delete(ids);
return new Result();
}
}

@ -0,0 +1,115 @@
package com.pjilisense.flxai.controller;
import com.pjilisense.flxai.base.constant.Constant;
import com.pjilisense.flxai.page.PageData;
import com.pjilisense.flxai.utils.ExcelUtils;
import com.pjilisense.flxai.utils.Result;
import com.pjilisense.flxai.dto.MyDigitalHumanDTO;
import com.pjilisense.flxai.excel.MyDigitalHumanExcel;
import com.pjilisense.flxai.service.MyDigitalHumanService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
@RestController
@RequestMapping(Constant.BASE_PATH+"mydigitalhuman")
@Api(tags="${comments}")
public class MyDigitalHumanController {
private static Logger logger = LoggerFactory.getLogger(MyDigitalHumanController.class);
@Autowired
private MyDigitalHumanService myDigitalHumanService;
@GetMapping("page")
@ApiOperation("分页")
@ApiImplicitParams({
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码从1开始", paramType = "query", required = true, dataType="Integer", dataTypeClass =Integer.class) ,
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="Integer", dataTypeClass =Integer.class) ,
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String", dataTypeClass =String.class) ,
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String", dataTypeClass =String.class)
})
@RequiresPermissions("robot:mydigitalhuman:page")
public Result<PageData<MyDigitalHumanDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
PageData<MyDigitalHumanDTO> page = myDigitalHumanService.page(params);
return new Result<PageData<MyDigitalHumanDTO>>().ok(page);
}
@GetMapping("{id}")
@ApiOperation("信息")
@RequiresPermissions("robot:mydigitalhuman:info")
public Result<MyDigitalHumanDTO> get(@PathVariable("id") Long id){
MyDigitalHumanDTO data = myDigitalHumanService.get(id);
return new Result<MyDigitalHumanDTO>().ok(data);
}
@PostMapping
@ApiOperation("保存")
@LogOperation("保存")
@RequiresPermissions("robot:mydigitalhuman:save")
public Result save(@RequestBody MyDigitalHumanDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
myDigitalHumanService.save(dto);
return new Result();
}
@PutMapping
@ApiOperation("修改")
@LogOperation("修改")
@RequiresPermissions("robot:mydigitalhuman:update")
public Result update(@RequestBody MyDigitalHumanDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
myDigitalHumanService.update(dto);
return new Result();
}
@DeleteMapping
@ApiOperation("删除")
@LogOperation("删除")
@RequiresPermissions("robot:mydigitalhuman:delete")
public Result delete(@RequestBody Long[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
myDigitalHumanService.delete(ids);
return new Result();
}
@GetMapping("export")
@ApiOperation("导出")
@LogOperation("导出")
@RequiresPermissions("robot:mydigitalhuman:export")
public void export(@ApiIgnore @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<MyDigitalHumanDTO> list = myDigitalHumanService.list(params);
ExcelUtils.exportExcelToTarget(response, null, "${comments}", list, MyDigitalHumanExcel.class);
}
}

@ -0,0 +1,16 @@
package com.pjilisense.flxai.dao;
import com.pjilisense.flxai.base.dao.BaseDao;
import com.pjilisense.flxai.entity.DigitalImgEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
@Mapper
public interface DigitalImgDao extends BaseDao<DigitalImgEntity> {
}

@ -0,0 +1,16 @@
package com.pjilisense.flxai.dao;
import com.pjilisense.flxai.base.dao.BaseDao;
import com.pjilisense.flxai.entity.MyDigitalHumanEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
@Mapper
public interface MyDigitalHumanDao extends BaseDao<MyDigitalHumanEntity> {
}

@ -0,0 +1,35 @@
package com.pjilisense.flxai.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
@Data
@ApiModel(value = "${comments}")
public class DigitalImgDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private String id;
@ApiModelProperty(value = "名称")
private String name;
@ApiModelProperty(value = "图片存放的相对路径")
private String imgPath;
@ApiModelProperty(value = "图片类型1数字人形象2数字人场景3数字人背景")
private String imgType;
}

@ -0,0 +1,62 @@
package com.pjilisense.flxai.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
@Data
@ApiModel(value = "${comments}")
public class MyDigitalHumanDTO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "主键")
private String id;
@ApiModelProperty(value = "用户表ID")
private String userid;
@ApiModelProperty(value = "数字形象ID数字图片表ID")
private String imageid;
@ApiModelProperty(value = "场景ID数字图片表ID")
private String sceneimgid;
@ApiModelProperty(value = "背景ID数字图片表ID")
private String bkimgid;
@ApiModelProperty(value = "选择的声音ID")
private String voiceid;
@ApiModelProperty(value = "声音的语言")
private String voicelanguage;
@ApiModelProperty(value = "声音风格ID")
private String voicestyleid;
@ApiModelProperty(value = "语速")
private String speedspeech;
@ApiModelProperty(value = "语调")
private String intonation;
@ApiModelProperty(value = "音量")
private String volume;
@ApiModelProperty(value = "视频存放目录")
private String videodir;
@ApiModelProperty(value = "声音存放目录")
private String voicedir;
}

@ -0,0 +1,34 @@
package com.pjilisense.flxai.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
@Data
@TableName("digital_img")
public class DigitalImgEntity {
/**
*
*/
private String id;
/**
*
*/
private String name;
/**
*
*/
private String imgPath;
/**
* 123
*/
private String imgType;
}

@ -0,0 +1,70 @@
package com.pjilisense.flxai.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
@Data
@TableName("my_digital_human")
public class MyDigitalHumanEntity {
/**
*
*/
private String id;
/**
* ID
*/
private String userid;
/**
* IDID
*/
private String imageid;
/**
* IDID
*/
private String sceneimgid;
/**
* IDID
*/
private String bkimgid;
/**
* ID
*/
private String voiceid;
/**
*
*/
private String voicelanguage;
/**
* ID
*/
private String voicestyleid;
/**
*
*/
private String speedspeech;
/**
*
*/
private String intonation;
/**
*
*/
private String volume;
/**
*
*/
private String videodir;
/**
*
*/
private String voicedir;
}

@ -0,0 +1,15 @@
package com.pjilisense.flxai.service;
import com.pjilisense.flxai.base.service.CrudService;
import com.pjilisense.flxai.dto.DigitalImgDTO;
import com.pjilisense.flxai.entity.DigitalImgEntity;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
public interface DigitalImgService extends CrudService<DigitalImgEntity, DigitalImgDTO> {
}

@ -0,0 +1,15 @@
package com.pjilisense.flxai.service;
import com.pjilisense.flxai.base.service.CrudService;
import com.pjilisense.flxai.dto.MyDigitalHumanDTO;
import com.pjilisense.flxai.entity.MyDigitalHumanEntity;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
public interface MyDigitalHumanService extends CrudService<MyDigitalHumanEntity, MyDigitalHumanDTO> {
}

@ -37,10 +37,12 @@ public class ChunksServiceImpl extends CrudServiceImpl<ChunksDao, ChunksEntity,
@Override
public List<Map<String, Object>> search(String userid,String keyText) {
return search1( userid, keyText);
}
private List<Map<String, Object>> search1(String userid,String keyText) {
Segment seg= HanLP.newSegment();
seg.enableCustomDictionary(false);
// String keyText="我爱北京天安门";
// keyText="HanLP是由一系列NLP工具组成的开源项目其中包含了中文分词、词性标注、命名实体识别等功能。";
List<Term> lst = seg.seg(keyText);
ArrayList<String> listWord=processTermList(lst);
//ArrayList<String> listSentence=processTermListx(lst);
@ -97,7 +99,57 @@ public class ChunksServiceImpl extends CrudServiceImpl<ChunksDao, ChunksEntity,
}
return list;
}
private List<Map<String, Object>> search2(String userid,String keyText) {
Segment seg= HanLP.newSegment();
seg.enableCustomDictionary(false);
List<Term> lst = seg.seg(keyText);
ArrayList<String> listWord=processTermList(lst);
LinkedHashSet<String> set = new LinkedHashSet<>();
set.addAll(listWord);
listWord.clear();
ArrayList<String> wordList=processTermList(lst);
wordList.addAll(set);
set.clear();
HashMap<String,Object> map = new HashMap<>();
map.put("userid",userid);
map.put("wordList",wordList);
List<Map<String,Object>> list = baseDao.queryCsv(map);
List<Map<String,Object>> listRet = new ArrayList<>() ;
if(list!=null && list.size()>0) {
ArrayList<String> listText=processTermListN0Com(lst);
List<String> idList = new ArrayList<>();
for (Map<String, Object> mp: list){
String ttext = String.valueOf(mp.get("text"));
List<Term> lst2 = seg.seg(ttext);
ArrayList<String> listQuestion=processTermListN0Com(lst2);
double similarity =calculateSimilarity(listText, listQuestion);
BigDecimal bd = new BigDecimal(similarity);
if(bd.compareTo(BigDecimal.ZERO.stripTrailingZeros())==0){
idList.add(String.valueOf(mp.get("id")));
} else {
System.out.println(bd.toString());
mp.put("similarity",bd.toString());
}
}
for(Map<String, Object> mp: list){
String id=String.valueOf(mp.get("id"));
if(!idList.contains(id)){
listRet.add(mp);
}
}
list.clear();
list.addAll(listRet);
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
BigDecimal bd1 = new BigDecimal(String.valueOf(o1.get("similarity")));
BigDecimal bd2 = new BigDecimal(String.valueOf(o2.get("similarity")));
return bd1.compareTo(bd2)*(-1);
}
});
}
return list;
}
private static ArrayList<String> processTermList(List<Term> lst) {
ArrayList<String> ret = new ArrayList<>();

@ -0,0 +1,34 @@
package com.pjilisense.flxai.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.pjilisense.flxai.base.service.impl.CrudServiceImpl;
import com.pjilisense.flxai.dao.DigitalImgDao;
import com.pjilisense.flxai.dto.DigitalImgDTO;
import com.pjilisense.flxai.entity.DigitalImgEntity;
import com.pjilisense.flxai.service.DigitalImgService;
import cn.hutool.core.util.StrUtil;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
@Service
public class DigitalImgServiceImpl extends CrudServiceImpl<DigitalImgDao, DigitalImgEntity, DigitalImgDTO> implements DigitalImgService {
@Override
public QueryWrapper<DigitalImgEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get("id");
QueryWrapper<DigitalImgEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StrUtil.isNotBlank(id), "id", id);
return wrapper;
}
}

@ -0,0 +1,34 @@
package com.pjilisense.flxai.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.pjilisense.flxai.base.service.impl.CrudServiceImpl;
import com.pjilisense.flxai.dao.MyDigitalHumanDao;
import com.pjilisense.flxai.dto.MyDigitalHumanDTO;
import com.pjilisense.flxai.entity.MyDigitalHumanEntity;
import com.pjilisense.flxai.service.MyDigitalHumanService;
import cn.hutool.core.util.StrUtil;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* ${comments}
*
* @author liushujing liushujing@philisense.com
* @since 1.0.0 2025-02-26
*/
@Service
public class MyDigitalHumanServiceImpl extends CrudServiceImpl<MyDigitalHumanDao, MyDigitalHumanEntity, MyDigitalHumanDTO> implements MyDigitalHumanService {
@Override
public QueryWrapper<MyDigitalHumanEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get("id");
QueryWrapper<MyDigitalHumanEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StrUtil.isNotBlank(id), "id", id);
return wrapper;
}
}

@ -0,0 +1,14 @@
<?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.pjilisense.flxai.dao.DigitalImgDao">
<resultMap type="com.pjilisense.flxai.entity.DigitalImgEntity" id="digitalImgMap">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="imgPath" column="img_path"/>
<result property="imgType" column="img_type"/>
</resultMap>
</mapper>

@ -0,0 +1,23 @@
<?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.pjilisense.flxai.dao.MyDigitalHumanDao">
<resultMap type="com.pjilisense.flxai.entity.MyDigitalHumanEntity" id="myDigitalHumanMap">
<result property="id" column="id"/>
<result property="userid" column="userid"/>
<result property="imageid" column="imageid"/>
<result property="sceneimgid" column="sceneimgid"/>
<result property="bkimgid" column="bkimgid"/>
<result property="voiceid" column="voiceid"/>
<result property="voicelanguage" column="voicelanguage"/>
<result property="voicestyleid" column="voicestyleid"/>
<result property="speedspeech" column="speedspeech"/>
<result property="intonation" column="intonation"/>
<result property="volume" column="volume"/>
<result property="videodir" column="videodir"/>
<result property="voicedir" column="voicedir"/>
</resultMap>
</mapper>
Loading…
Cancel
Save