| @@ -200,7 +200,7 @@ public class UserLiveController extends BaseController { | |||||
| @AuthIgnore | @AuthIgnore | ||||
| @PostMapping("/avatarList") | @PostMapping("/avatarList") | ||||
| @ApiOperation(value = "视频模板列表", notes = "{\"username\",\"string\",\"code\",\"string\"}") | @ApiOperation(value = "视频模板列表", notes = "{\"username\",\"string\",\"code\",\"string\"}") | ||||
| public Map<String,Object> avatarList(@RequestBody Map<String, String> params) { | |||||
| public Map<String,Object> avatarList(@RequestBody Map<String, String> params) throws Exception { | |||||
| Map<String,Object> avatarVos = new HashMap<>(); | Map<String,Object> avatarVos = new HashMap<>(); | ||||
| String ipaddress = getIpAddr(); | String ipaddress = getIpAddr(); | ||||
| logger.debug("[" + ipaddress + "] WxUserGrantController::getAvatarList"); | logger.debug("[" + ipaddress + "] WxUserGrantController::getAvatarList"); | ||||
| @@ -209,6 +209,16 @@ public class UserLiveController extends BaseController { | |||||
| Long id = infoByPhone.getId(); | Long id = infoByPhone.getId(); | ||||
| System.out.println("id = " + id); | System.out.println("id = " + id); | ||||
| //鉴权 | |||||
| WxCUserBasicInfo basicLiveInfo = wxCLiveUserBasicInfoService.getById(id); | |||||
| if (basicLiveInfo.getCode() != null && !params.get("code").equals(basicLiveInfo.getCode())) { | |||||
| HashMap<Object, Object> status = new HashMap<>(); | |||||
| status.put("code",ErrorCode.USER_ALREADY_LOGIN.getCode()); | |||||
| status.put("message","用户已在其他设备登录"); | |||||
| avatarVos.put("status",status); | |||||
| return avatarVos; | |||||
| } | |||||
| Map<Object, Object> status = new HashMap<>(); | Map<Object, Object> status = new HashMap<>(); | ||||
| status.put("code",1000); | status.put("code",1000); | ||||
| status.put("msg","success"); | status.put("msg","success"); | ||||
| @@ -229,6 +239,7 @@ public class UserLiveController extends BaseController { | |||||
| @PostMapping("/audioList") | @PostMapping("/audioList") | ||||
| @ApiOperation(value = "音频模板列表", notes = "{\"username\",\"string\",\"code\",\"string\"}") | @ApiOperation(value = "音频模板列表", notes = "{\"username\",\"string\",\"code\",\"string\"}") | ||||
| public Map<String,Object> audioList(@RequestBody Map<String, String> params) { | public Map<String,Object> audioList(@RequestBody Map<String, String> params) { | ||||
| Map<String,Object> resultMap = new HashMap<>(); | |||||
| String ipaddress = getIpAddr(); | String ipaddress = getIpAddr(); | ||||
| logger.debug("[" + ipaddress + "] WxUserGrantController::getAudioList"); | logger.debug("[" + ipaddress + "] WxUserGrantController::getAudioList"); | ||||
| String phone = params.get("username"); | String phone = params.get("username"); | ||||
| @@ -237,6 +248,16 @@ public class UserLiveController extends BaseController { | |||||
| Long id = infoByPhone.getId(); | Long id = infoByPhone.getId(); | ||||
| System.out.println("id = " + id); | System.out.println("id = " + id); | ||||
| WxCUserBasicInfo basicLiveInfo = wxCLiveUserBasicInfoService.getById(id); | |||||
| if (basicLiveInfo.getCode() != null && !params.get("code").equals(basicLiveInfo.getCode())) { | |||||
| HashMap<Object, Object> status = new HashMap<>(); | |||||
| status.put("code",ErrorCode.USER_ALREADY_LOGIN.getCode()); | |||||
| status.put("message","用户已在其他设备登录"); | |||||
| resultMap.put("status",status); | |||||
| return resultMap; | |||||
| } | |||||
| // long id = getMemberId(); | // long id = getMemberId(); | ||||
| @@ -251,6 +272,7 @@ public class UserLiveController extends BaseController { | |||||
| @ApiOperation(value = "资源权限查询", notes = "{\"username\",\"string\",\"code\",\"string\",\"type\",\"int\",\"resource_id\",\"long\"}") | @ApiOperation(value = "资源权限查询", notes = "{\"username\",\"string\",\"code\",\"string\",\"type\",\"int\",\"resource_id\",\"long\"}") | ||||
| @PostMapping("/author") | @PostMapping("/author") | ||||
| public Map<String,Object> getAuthor(@RequestBody Map<String, String> params) { | public Map<String,Object> getAuthor(@RequestBody Map<String, String> params) { | ||||
| Map<String,Object> resultMap = new HashMap<>(); | |||||
| String ipaddress = getIpAddr(); | String ipaddress = getIpAddr(); | ||||
| logger.debug("[" + ipaddress + "] WxUserGrantController::getAuthor"); | logger.debug("[" + ipaddress + "] WxUserGrantController::getAuthor"); | ||||
| @@ -260,6 +282,15 @@ public class UserLiveController extends BaseController { | |||||
| Long id = infoByPhone.getId(); | Long id = infoByPhone.getId(); | ||||
| System.out.println("id = " + id); | System.out.println("id = " + id); | ||||
| WxCUserBasicInfo basicLiveInfo = wxCLiveUserBasicInfoService.getById(id); | |||||
| if (basicLiveInfo.getCode() != null && !params.get("code").equals(basicLiveInfo.getCode())) { | |||||
| HashMap<Object, Object> status = new HashMap<>(); | |||||
| status.put("code",ErrorCode.USER_ALREADY_LOGIN.getCode()); | |||||
| status.put("message","用户已在其他设备登录"); | |||||
| resultMap.put("status",status); | |||||
| return resultMap; | |||||
| } | |||||
| //long id = getMemberId(); | //long id = getMemberId(); | ||||
| @@ -28,6 +28,8 @@ public class WxCVideoTable extends TenantEntityWithoutFinalTenantId { | |||||
| @io.swagger.annotations.ApiModelProperty(value="数字人id",name="id") | @io.swagger.annotations.ApiModelProperty(value="数字人id",name="id") | ||||
| private int id; | private int id; | ||||
| @io.swagger.annotations.ApiModelProperty(value="套餐0共享 1定制",name="class") | |||||
| private int classType; | |||||
| @io.swagger.annotations.ApiModelProperty(value="数字人名称",name="name") | @io.swagger.annotations.ApiModelProperty(value="数字人名称",name="name") | ||||
| private String name; | private String name; | ||||
| @@ -35,8 +37,14 @@ public class WxCVideoTable extends TenantEntityWithoutFinalTenantId { | |||||
| private String image; | private String image; | ||||
| @io.swagger.annotations.ApiModelProperty(value="数字人样例视频链接",name="demo") | @io.swagger.annotations.ApiModelProperty(value="数字人样例视频链接",name="demo") | ||||
| private String demo; | private String demo; | ||||
| @io.swagger.annotations.ApiModelProperty(value="数字人模板预处理信息文件链接",name="preInfo") | |||||
| @io.swagger.annotations.ApiModelProperty(value="数字人样例视频链接",name="model") | |||||
| private String model; | |||||
| @io.swagger.annotations.ApiModelProperty(value="数字人模板预处理信息文件链接",name="preinfo") | |||||
| private String preInfo; | private String preInfo; | ||||
| @io.swagger.annotations.ApiModelProperty(value="数字人模板预处理信息文件链接",name="model_path") | |||||
| private String modelPath; | |||||
| @io.swagger.annotations.ApiModelProperty(value="数字人模板预处理信息文件链接",name="preInfo_path") | |||||
| private String preInfoPath; | |||||
| @@ -8,7 +8,7 @@ import java.util.Map; | |||||
| public interface WxCVideoService { | public interface WxCVideoService { | ||||
| Map<String,Object> getById(Long id); | |||||
| Map<String,Object> getById(Long id) throws Exception; | |||||
| WxCVideoTable selectOne(Long id, long resource_id); | WxCVideoTable selectOne(Long id, long resource_id); | ||||
| } | } | ||||
| @@ -7,6 +7,7 @@ import com.iformall.common.ResultData; | |||||
| import com.iformall.domain.po.WxCUserBasicInfo; | import com.iformall.domain.po.WxCUserBasicInfo; | ||||
| import com.iformall.domain.po.WxCVideoTable; | import com.iformall.domain.po.WxCVideoTable; | ||||
| import com.iformall.domain.vo.WxCUserBasicInfoVo; | import com.iformall.domain.vo.WxCUserBasicInfoVo; | ||||
| import com.iformall.enums.EnumClassType; | |||||
| import com.iformall.mapper.WxCUserBasicInfoMapper; | import com.iformall.mapper.WxCUserBasicInfoMapper; | ||||
| import com.iformall.mapper.WxCVideoMapper; | import com.iformall.mapper.WxCVideoMapper; | ||||
| import com.iformall.service.WxCUserTagsService; | import com.iformall.service.WxCUserTagsService; | ||||
| @@ -16,6 +17,11 @@ import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import java.io.BufferedInputStream; | |||||
| import java.io.File; | |||||
| import java.io.FileInputStream; | |||||
| import java.math.BigInteger; | |||||
| import java.security.MessageDigest; | |||||
| import java.util.*; | import java.util.*; | ||||
| import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
| @@ -32,7 +38,7 @@ public class WxCVideoServiceImpl implements WxCVideoService,IExcelExportServer { | |||||
| @Autowired | @Autowired | ||||
| WxCVideoMapper wxCVideoMapper; | WxCVideoMapper wxCVideoMapper; | ||||
| @Override | @Override | ||||
| public Map<String,Object> getById(Long id) { | |||||
| public Map<String,Object> getById(Long id) throws Exception { | |||||
| System.out.println("id = " + id); | System.out.println("id = " + id); | ||||
| List<WxCVideoTable> TemplateVideo = wxCVideoMapper.getById(id); | List<WxCVideoTable> TemplateVideo = wxCVideoMapper.getById(id); | ||||
| @@ -52,8 +58,15 @@ public class WxCVideoServiceImpl implements WxCVideoService,IExcelExportServer { | |||||
| avatar.put("avatar_name",wxCVideoTable.getName()); | avatar.put("avatar_name",wxCVideoTable.getName()); | ||||
| avatar.put("avatar_image",wxCVideoTable.getImage()); | avatar.put("avatar_image",wxCVideoTable.getImage()); | ||||
| avatar.put("avatar_demo",wxCVideoTable.getDemo()); | avatar.put("avatar_demo",wxCVideoTable.getDemo()); | ||||
| File modelFile = new File(wxCVideoTable.getModelPath()); | |||||
| avatar.put("avatar_demo_md5",getFileMD5(modelFile)); | |||||
| avatar.put("avatar_preinfo",wxCVideoTable.getPreInfo()); | avatar.put("avatar_preinfo",wxCVideoTable.getPreInfo()); | ||||
| File preinfoFile = new File(wxCVideoTable.getPreInfoPath()); | |||||
| avatar.put("avatar_preinfo_md5",getFileMD5(preinfoFile)); | |||||
| avatar.put("expire_time",wxCVideoTable.getExpireTime()); | avatar.put("expire_time",wxCVideoTable.getExpireTime()); | ||||
| avatar.put("class", wxCVideoTable.getClassType()); | |||||
| authorlist.add(avatar); | authorlist.add(avatar); | ||||
| data.put("authorlist",authorlist); | data.put("authorlist",authorlist); | ||||
| } | } | ||||
| @@ -130,4 +143,22 @@ public class WxCVideoServiceImpl implements WxCVideoService,IExcelExportServer { | |||||
| } | } | ||||
| return null; | return null; | ||||
| } | } | ||||
| public static String getFileMD5(File file) throws Exception { | |||||
| MessageDigest md = MessageDigest.getInstance("MD5"); | |||||
| try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) { | |||||
| byte[] buffer = new byte[1024]; | |||||
| int read = 0; | |||||
| while ((read = bis.read(buffer)) != -1) { | |||||
| md.update(buffer, 0, read); | |||||
| } | |||||
| } | |||||
| byte[] digest = md.digest(); | |||||
| String md5 = String.format("%032x", new BigInteger(1, digest)); | |||||
| return md5; | |||||
| } | |||||
| } | } | ||||
| @@ -8,7 +8,11 @@ | |||||
| <result column="name" jdbcType="VARCHAR" property="name"/> | <result column="name" jdbcType="VARCHAR" property="name"/> | ||||
| <result column="image" jdbcType="VARCHAR" property="image"/> | <result column="image" jdbcType="VARCHAR" property="image"/> | ||||
| <result column="demo" jdbcType="VARCHAR" property="demo"/> | <result column="demo" jdbcType="VARCHAR" property="demo"/> | ||||
| <result column="model" jdbcType="VARCHAR" property="model"/> | |||||
| <result column="model_path" jdbcType="VARCHAR" property="modelPath"/> | |||||
| <result column="class" jdbcType="VARCHAR" property="classType"/> | |||||
| <result column="preinfo" jdbcType="VARCHAR" property="preInfo"/> | <result column="preinfo" jdbcType="VARCHAR" property="preInfo"/> | ||||
| <result column="preinfo_path" jdbcType="VARCHAR" property="preInfoPath"/> | |||||
| <result column="expire_time" jdbcType="VARCHAR" property="expireTime"/> | <result column="expire_time" jdbcType="VARCHAR" property="expireTime"/> | ||||
| </resultMap> | </resultMap> | ||||
| @@ -21,13 +25,16 @@ | |||||
| </resultMap>--> | </resultMap>--> | ||||
| <select id="getById" resultMap="BaseResultMap"> | <select id="getById" resultMap="BaseResultMap"> | ||||
| SELECT wca.user_name,expire_time,wcav.id,wcav.name,wcav.image,wcav.model,wcav.preinfo,wcav.demo | SELECT wca.user_name,expire_time,wcav.id,wcav.name,wcav.image,wcav.model,wcav.preinfo,wcav.demo | ||||
| ,wcav.class,wcav.model_path,wcav.preinfo_path | |||||
| from wx_c_author wca | from wx_c_author wca | ||||
| left join wx_c_avatar wcav on wcav.id =wca.resource_id | left join wx_c_avatar wcav on wcav.id =wca.resource_id | ||||
| where wca.resource_id | where wca.resource_id | ||||
| in (select wca.resource_id from wx_c_author wca WHERE wca.user_id =#{id} AND wca.type = 0 ) | in (select wca.resource_id from wx_c_author wca WHERE wca.user_id =#{id} AND wca.type = 0 ) | ||||
| </select> | </select> | ||||
| <select id="selectOne" resultType="com.iformall.domain.po.WxCVideoTable"> | <select id="selectOne" resultType="com.iformall.domain.po.WxCVideoTable"> | ||||
| SELECT wca.user_name,expire_time,wcav.id,wcav.name,wcav.image,wcav.model,wcav.preinfo,wcav.demo | SELECT wca.user_name,expire_time,wcav.id,wcav.name,wcav.image,wcav.model,wcav.preinfo,wcav.demo | ||||
| ,wcav.class,wcav.model_path,wcav.preinfo_path | |||||
| from wx_c_author wca | from wx_c_author wca | ||||
| left join wx_c_avatar wcav on wcav.id =wca.resource_id | left join wx_c_avatar wcav on wcav.id =wca.resource_id | ||||
| where wca.resource_id =#{resource_id} and wca.user_id = #{id} | where wca.resource_id =#{resource_id} and wca.user_id = #{id} | ||||