@@ -1,11 +1,18 @@ | |||
package com.iformall.controller; | |||
import com.alibaba.fastjson.JSONArray; | |||
import com.alibaba.fastjson.JSONObject; | |||
import com.fasterxml.jackson.databind.ObjectMapper; | |||
import com.google.gson.JsonObject; | |||
import com.iformall.annotation.AuthIgnore; | |||
import com.iformall.common.ErrorCode; | |||
import com.iformall.common.ResultData; | |||
import com.iformall.domain.po.WxCVoiceTable; | |||
import com.iformall.domain.po.sm.PhotoSpeakVideo; | |||
import com.iformall.domain.po.sm.PreviewParam; | |||
import com.iformall.enums.EnumVideoStatus; | |||
import com.iformall.service.WxCVoiceService; | |||
import com.iformall.service.sm.PhotoSpeakVideoService; | |||
import com.iformall.service.sm.PersonPhotoService; | |||
import com.iformall.service.sm.VoiceInfoService; | |||
@@ -21,7 +28,11 @@ import org.springframework.util.ObjectUtils; | |||
import org.springframework.web.bind.annotation.*; | |||
import org.springframework.web.multipart.MultipartFile; | |||
import java.io.*; | |||
import java.net.HttpURLConnection; | |||
import java.net.URL; | |||
import java.util.Date; | |||
import java.util.Map; | |||
/** | |||
* 对外开放的 API 接口 | |||
@@ -38,6 +49,8 @@ public class SDKController extends BaseController { | |||
private VoiceInfoService voiceInfoService; | |||
@Autowired | |||
private PhotoSpeakVideoService photoSpeakVideoService; | |||
@Autowired | |||
private WxCVoiceService wxCVoiceService; | |||
@ApiOperation("图片质量审核接口") | |||
@PostMapping("checkPhoto") | |||
@@ -103,4 +116,89 @@ public class SDKController extends BaseController { | |||
photoSpeakVideoService.createVideo(mouldVideo); | |||
return new ResultData(); | |||
} | |||
/** | |||
* 生成音频文件 | |||
*/ | |||
@AuthIgnore | |||
@PostMapping("/audiotts") | |||
@ApiOperation(value = "视频模板列表", notes = "{\"username\",\"string\",\"voicename\",\"string\",\"stylename\",\"string\",\"speed\",\"int\",\"text\",\"string\"}") | |||
public String audioList(@RequestBody Map<String, String> params) { | |||
String username = params.get("username"); | |||
String voiceName = params.get("voicename"); | |||
String styleName = params.get("stylename"); | |||
Integer speed = Integer.valueOf(params.get("speed")); | |||
String text = params.get("text"); | |||
try { | |||
// 构建请求参数JSON对象 | |||
JSONObject jsonParams = new JSONObject(); | |||
jsonParams.put("username", username); | |||
jsonParams.put("voicename", voiceName); | |||
jsonParams.put("stylename", styleName); | |||
jsonParams.put("speed", speed); | |||
jsonParams.put("text", text); | |||
//请求url | |||
String requestUrl = ""; | |||
// 创建URL对象 | |||
URL url = new URL(requestUrl); | |||
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); | |||
// 设置请求方法 | |||
connection.setRequestMethod("POST"); | |||
// 设置请求头 | |||
connection.setRequestProperty("Content-Type", "application/json"); | |||
connection.setRequestProperty("Accept", "application/json"); | |||
// 允许输出请求内容 | |||
connection.setDoOutput(true); | |||
// 将参数写入请求体 | |||
OutputStream outputStream = connection.getOutputStream(); | |||
outputStream.write(jsonParams.toString().getBytes()); | |||
outputStream.flush(); | |||
outputStream.close(); | |||
// 发送请求并获取响应 | |||
int responseCode = connection.getResponseCode(); | |||
// 读取响应内容 | |||
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); | |||
StringBuilder response = new StringBuilder(); | |||
String line; | |||
while ((line = reader.readLine()) != null) { | |||
response.append(line); | |||
} | |||
reader.close(); | |||
// 处理响应结果 | |||
if (responseCode == HttpURLConnection.HTTP_OK) { | |||
// 解析响应内容 | |||
JSONObject jsonResponse = new JSONObject(Boolean.parseBoolean(response.toString())); | |||
// 获取ttsurl生成的音频文件链接 | |||
String ttsUrl = jsonResponse.getString("ttsurl"); | |||
System.out.println("音频文件链接: " + ttsUrl); | |||
return ttsUrl; | |||
} else { | |||
System.out.println("请求失败,错误代码: " + responseCode); | |||
} | |||
// 断开连接 | |||
connection.disconnect(); | |||
} catch (Exception e) { | |||
e.printStackTrace(); | |||
} | |||
return null; | |||
} | |||
} |
@@ -0,0 +1,242 @@ | |||
package com.iformall.controller; | |||
import com.alibaba.fastjson.JSON; | |||
import com.google.code.kaptcha.Producer; | |||
import com.iformall.annotation.AuthIgnore; | |||
import com.iformall.common.ErrorCode; | |||
import com.iformall.common.ResultData; | |||
import com.iformall.domain.po.WxCUserBasicInfo; | |||
import com.iformall.domain.vo.WxCLiveLoginVo; | |||
import com.iformall.service.*; | |||
import com.iformall.utils.Constant; | |||
import com.iformall.utils.PasswordHelper; | |||
import com.iformall.utils.RedisCacheUtils; | |||
import io.swagger.annotations.Api; | |||
import io.swagger.annotations.ApiOperation; | |||
import org.apache.commons.io.IOUtils; | |||
import org.apache.commons.lang3.StringUtils; | |||
import org.slf4j.Logger; | |||
import org.slf4j.LoggerFactory; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.beans.factory.annotation.Qualifier; | |||
import org.springframework.data.redis.core.RedisTemplate; | |||
import org.springframework.web.bind.annotation.*; | |||
import springfox.documentation.spring.web.json.Json; | |||
import javax.imageio.ImageIO; | |||
import javax.servlet.ServletOutputStream; | |||
import javax.servlet.http.HttpServletResponse; | |||
import java.awt.image.BufferedImage; | |||
import java.io.IOException; | |||
import java.util.Date; | |||
import java.util.HashMap; | |||
import java.util.Map; | |||
import java.util.UUID; | |||
@RestController | |||
@RequestMapping("/api/live") | |||
@Api(description = "直播相关接口") | |||
public class UserLiveController extends BaseController { | |||
private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
@Autowired | |||
private Producer producer; | |||
@Autowired | |||
@Qualifier("objectCommonRedisTemplate") | |||
RedisTemplate<String, Object> redisTemplate; | |||
@Autowired | |||
private WxCUserBasicInfoService wxCUserBasicInfoService; | |||
@Autowired | |||
private WxCLiveUserBasicInfoService wxCLiveUserBasicInfoService; | |||
@Autowired | |||
private WxCVideoService wxCVideoService; | |||
@Autowired | |||
private WxCVoiceService wxCVoiceService; | |||
@Autowired | |||
private WxCUserAuthorityService wxCUserAuthorityService; | |||
@AuthIgnore | |||
@ApiOperation("验证码") | |||
@GetMapping("/captcha.jpg") | |||
public void captcha(HttpServletResponse response) { | |||
logger.debug("[" + getIpAddr() + "] WxUserGrantController::captcha"); | |||
response.setHeader("Cache-Control", "no-store, no-cache"); | |||
response.setContentType("image/jpeg"); | |||
//生成文字验证码 | |||
String text = producer.createText(); | |||
//生成图片验证码 | |||
BufferedImage image = producer.createImage(text); | |||
//保存到redis | |||
String ipAddr = getIpAddr(); | |||
String key = Constant.captchaPrev + ":" + ipAddr; | |||
RedisCacheUtils.cache(redisTemplate, key, text, 60); | |||
ServletOutputStream out = null; | |||
try { | |||
out = response.getOutputStream(); | |||
ImageIO.write(image, "jpg", out); | |||
} catch (IOException e) { | |||
e.printStackTrace(); | |||
} finally { | |||
IOUtils.closeQuietly(out); | |||
} | |||
} | |||
@AuthIgnore | |||
@PostMapping("/login") | |||
@ApiOperation(value = "用户登录", notes = "{\"username\":\"string\",\"password\":\"string\",\"code\":\"string\",\"Mcode\":\"string\",\"status\":\"int\"}") | |||
public ResultData login(@RequestBody Map<String, String> map, HttpServletResponse response) { | |||
String ipAddr = getIpAddr(); | |||
logger.debug("[" + ipAddr + "] WxUserGrantController::login"); | |||
String code = map.get("code"); | |||
if (StringUtils.isBlank(code)) { | |||
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "请输入验证码"); | |||
} | |||
String key = Constant.captchaPrev + ":" + ipAddr; | |||
String code1 = RedisCacheUtils.getCacheString(redisTemplate, key); | |||
// if (StringUtils.isBlank(code1)) { | |||
// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "验证码已过期"); | |||
// } | |||
// if (!code1.equals(code)) { | |||
// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "验证码不正确"); | |||
// } | |||
String phone = map.get("username"); | |||
String password = map.get("password"); | |||
if (StringUtils.isBlank(phone) || StringUtils.isBlank(password)) { | |||
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "手机号或密码为空"); | |||
} | |||
WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(getTenantInfo(), phone); | |||
if (basicInfo == null) { | |||
return new ResultData(ErrorCode.USER_IS_EMPTY); | |||
} | |||
String encryptPassword = new PasswordHelper().encryptPassword(password); | |||
if (!encryptPassword.equals(basicInfo.getPassword())) { | |||
return new ResultData(ErrorCode.USER_PASSWD_ERR.getCode(), "手机号或密码错误"); | |||
} | |||
int status = Integer.parseInt(map.get("status")); | |||
if (status == 0) { | |||
WxCUserBasicInfo basicLiveInfo = wxCLiveUserBasicInfoService.getById(basicInfo.getId()); | |||
if (basicLiveInfo.getCode() != null && !map.get("Mcode").equals(basicLiveInfo.getCode())) { | |||
return new ResultData(ErrorCode.USER_ALREADY_LOGIN.getCode(), "用户已在其他设备登录"); | |||
} | |||
if (basicLiveInfo.getCode() == null) { | |||
wxCLiveUserBasicInfoService.updateCode(basicInfo.getId(), map.get("Mcode")); | |||
} | |||
} | |||
if (status == -1) { | |||
wxCLiveUserBasicInfoService.updateCode(basicInfo.getId(), null); | |||
basicInfo.setStatus(-2); | |||
return new ResultData(ErrorCode.USER_CANCEL_MCODE.getCode(), "设备已注销"); | |||
} | |||
wxCUserBasicInfoService.handleLoginUser(basicInfo); | |||
WxCUserBasicInfo basicLiveInfo = wxCLiveUserBasicInfoService.getById(basicInfo.getId()); | |||
Map<String, Object> resultMap = new HashMap(); | |||
WxCLiveLoginVo wxCLiveLoginVo = new WxCLiveLoginVo(); | |||
wxCLiveLoginVo.setCode(Integer.parseInt(map.get("Mcode"))); | |||
wxCLiveLoginVo.setVersion(basicLiveInfo.getVersion()); | |||
wxCLiveLoginVo.setUsername(map.get("username")); | |||
wxCLiveLoginVo.setStatus(0); | |||
wxCLiveLoginVo.setCurrent_time(new Date(System.currentTimeMillis() / 1000)); | |||
wxCLiveLoginVo.setExpire_time(basicLiveInfo.getExpireTime().getTime() / 1000); | |||
//生成一个token | |||
String token = UUID.randomUUID().toString().replace("-",""); | |||
//将token和用户信息绑定放到redis redis--key:user:info:token value:用户信息 | |||
redisTemplate.opsForValue().set("user:login"+token,JSON.toJSONString(wxCLiveLoginVo)); | |||
//返回给前端 | |||
wxCLiveLoginVo.setToken(token); | |||
Map<String, Object> info = new HashMap(); | |||
Map<String, Object> Status = new HashMap(); | |||
info.put("log_id", basicInfo.getId()); | |||
info.put("username", basicInfo.getPhone()); | |||
wxCLiveLoginVo.setParam(info); | |||
Status.put("code",1000); | |||
Status.put("msg","success"); | |||
wxCLiveLoginVo.setParam(Status); | |||
return new ResultData(wxCLiveLoginVo); | |||
} | |||
/** | |||
* 视频模板列表 | |||
*/ | |||
@PostMapping("/avatarList") | |||
@ApiOperation(value = "视频模板列表", notes = "{\"username\",\"string\",\"code\",\"string\"}") | |||
public ResultData avatarList(@RequestHeader(value = "token") String token) { | |||
String ipaddress = getIpAddr(); | |||
logger.debug("[" + ipaddress + "] WxUserGrantController::getAvatarList"); | |||
if (token==null||token.isEmpty()){ | |||
//用户未登录 | |||
} | |||
long id = getMemberId(); | |||
WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.getById(id); | |||
return wxCVideoService.getById(id); | |||
} | |||
/** | |||
* 音频模板列表 | |||
*/ | |||
@PostMapping("/audioList") | |||
@ApiOperation(value = "音频模板列表", notes = "{\"username\",\"string\",\"code\",\"string\"}") | |||
public ResultData audioList(@RequestHeader(value = "token") String token) { | |||
String ipaddress = getIpAddr(); | |||
logger.debug("[" + ipaddress + "] WxUserGrantController::getAudioList"); | |||
if (token==null||token.isEmpty()){ | |||
//用户未登录 | |||
} | |||
// 已登录 | |||
long id = getMemberId(); | |||
return wxCVoiceService.getById(id); | |||
} | |||
/** | |||
* 资源权限查询 | |||
*/ | |||
@ApiOperation(value = "资源权限查询", notes = "{\"username\",\"string\",\"code\",\"string\",\"type\",\"int\",\"resource_id\",\"long\"}") | |||
@PostMapping("/author") | |||
public ResultData getAuthor(@RequestBody Map<String, String> params,@RequestHeader(value = "token") String token) { | |||
String ipaddress = getIpAddr(); | |||
logger.debug("[" + ipaddress + "] WxUserGrantController::getAuthor"); | |||
if (token==null||token.isEmpty()){ | |||
//用户未登录 | |||
} | |||
// 已登录 | |||
long id = getMemberId(); | |||
// String username = params.get("username"); | |||
String code = params.get("code"); | |||
Integer type = Integer.parseInt(params.get("type")); | |||
Long resourceId = Long.valueOf(params.get("resource_id")); | |||
return wxCUserAuthorityService.getAuthor(id, code, type, resourceId); | |||
} | |||
} |
@@ -51,6 +51,7 @@ public class VoiceMouldController extends BaseController { | |||
@Autowired | |||
private VoiceLanguageService voiceLanguageService; | |||
@Autowired | |||
private WxCVoiceService wxCVoiceService; | |||
@@ -85,10 +85,6 @@ public class WxUserGrantController extends BaseController { | |||
@Autowired | |||
WxMallService mallService; | |||
@Autowired | |||
private WxCLiveUserBasicInfoService wxCLiveUserBasicInfoService; | |||
@Autowired | |||
private QrCodeService qrCodeService; | |||
@@ -136,79 +132,6 @@ public class WxUserGrantController extends BaseController { | |||
} | |||
} | |||
@AuthIgnore | |||
@PostMapping("/userlogin") | |||
@ApiOperation(value = "用户登录", notes = "{\"username\":\"string\",\"password\":\"string\",\"code\":\"string\",\"Mcode\":\"string\",\"status\":\"int\"}") | |||
public ResultData userLogin(@RequestBody Map<String, String> map,HttpServletResponse response){ | |||
String ipAddr = getIpAddr(); | |||
logger.debug("[" + ipAddr + "] WxUserGrantController::userlogin"); | |||
String code = map.get("code"); | |||
if(StringUtils.isBlank(code)){ | |||
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "请输入验证码"); | |||
} | |||
String key = Constant.captchaPrev + ":" + ipAddr; | |||
String code1 = RedisCacheUtils.getCacheString(redisTemplate, key); | |||
if(StringUtils.isBlank(code1)){ | |||
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "验证码已过期"); | |||
} | |||
if(!code1.equals(code)){ | |||
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "验证码不正确"); | |||
} | |||
String phone = map.get("username"); | |||
String password = map.get("password"); | |||
if(StringUtils.isBlank(phone) || StringUtils.isBlank(password)){ | |||
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "手机号或密码为空"); | |||
} | |||
WxCUserBasicInfo basicInfo = wxCUserBasicInfoService.findInfoByPhone(getTenantInfo(), phone); | |||
if(basicInfo == null){ | |||
return new ResultData(ErrorCode.USER_IS_EMPTY); | |||
} | |||
String encryptPassword = new PasswordHelper().encryptPassword(password); | |||
if(!encryptPassword.equals(basicInfo.getPassword())){ | |||
return new ResultData(ErrorCode.USER_PASSWD_ERR.getCode(), "手机号或密码错误"); | |||
} | |||
int status = Integer.parseInt(map.get("status")); | |||
if (status==0){ | |||
WxCUserBasicInfo basicLiveInfo =wxCLiveUserBasicInfoService.getById(basicInfo.getId()); | |||
if (basicLiveInfo.getCode()!=null && !map.get("Mcode").equals(basicLiveInfo.getCode())){ | |||
return new ResultData(ErrorCode.USER_ALREADY_LOGIN.getCode(),"用户已在其他设备登录"); | |||
}if (basicLiveInfo.getCode()==null){ | |||
wxCLiveUserBasicInfoService.updateCode(basicInfo.getId(),map.get("Mcode")); | |||
} | |||
} | |||
if (status==-1){ | |||
wxCLiveUserBasicInfoService.updateCode(basicInfo.getId(),null); | |||
basicInfo.setStatus(-2); | |||
return new ResultData(ErrorCode.USER_CANCEL_MCODE.getCode(),"设备已注销"); | |||
} | |||
wxCUserBasicInfoService.handleLoginUser(basicInfo); | |||
WxCUserBasicInfo basicLiveInfo =wxCLiveUserBasicInfoService.getById(basicInfo.getId()); | |||
Map<String,Object> resultMap = new HashMap(); | |||
// resultMap.put("phone", basicInfo.getPhone()); | |||
Map<String,Object> data = new HashMap(); | |||
data.put("status",basicInfo.getStatus()); | |||
data.put("version",basicLiveInfo.getVersion()); | |||
data.put("current_time",new Date(System.currentTimeMillis()/1000)); | |||
data.put("expire_time",basicLiveInfo.getExpireTime().getTime()/1000); | |||
Map<String,Object> info = new HashMap(); | |||
info.put("log_id",basicInfo.getId()); | |||
info.put("username",basicInfo.getPhone()); | |||
resultMap.put("data",data); | |||
resultMap.put("info",info); | |||
// resultMap.put("expire_time", basicInfo.getExpireTime()); | |||
return new ResultData(resultMap); | |||
} | |||
/** | |||
@@ -64,6 +64,10 @@ public class WxCUserBasicInfo extends TenantEntityWithoutFinalTenantId { | |||
@io.swagger.annotations.ApiModelProperty(value="密码",name="password") | |||
private String password; | |||
@io.swagger.annotations.ApiModelProperty(value="用户名") | |||
@TableField(exist = false) | |||
private String username; | |||
@Excel(name="微信昵称",width = 20,orderNum = "5") | |||
@io.swagger.annotations.ApiModelProperty(value="用户昵称",name="nickName") | |||
private String nickName; | |||
@@ -204,10 +208,10 @@ public class WxCUserBasicInfo extends TenantEntityWithoutFinalTenantId { | |||
@TableField(exist = false) | |||
private Date creditEndTime; | |||
@TableField(exist = false) | |||
private Integer begin; | |||
@TableField(exist = false) | |||
private Integer limit; | |||
@@ -41,12 +41,16 @@ public class PersonMould extends TenantEntity { | |||
@io.swagger.annotations.ApiModelProperty(value="EnumVideoType",name="videoType") | |||
private Integer videoType; | |||
@io.swagger.annotations.ApiModelProperty(value="封面图",name="coverImg") | |||
private String coverImg; | |||
@io.swagger.annotations.ApiModelProperty(value="多封面图",name="coverPicture") | |||
private String coverPicture; | |||
@io.swagger.annotations.ApiModelProperty(value="详情多图",name="detailPicture") | |||
private String detailPicture; | |||
@io.swagger.annotations.ApiModelProperty(value="名称",name="title") | |||
@Excel(name="名称",width = 20,orderNum = "1") | |||
private String title; | |||
@@ -135,5 +139,5 @@ public class PersonMould extends TenantEntity { | |||
} | |||
return priceStr; | |||
} | |||
} |
@@ -0,0 +1,29 @@ | |||
package com.iformall.domain.vo; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
import java.util.Date; | |||
import java.util.HashMap; | |||
import java.util.Map; | |||
@Data | |||
public class WxCLiveLoginVo { | |||
private String token; //令牌 | |||
private String username; //令牌 | |||
private int status; //用户登录状态 2设备注销,1登陆失败,0登陆成功 | |||
private int version; //用户购买的软件套餐 | |||
private Date current_time;//服务器当前时间 | |||
private long expire_time;//套餐过期时间 | |||
private int code; //机器码 | |||
@ApiModelProperty(value = "响应") | |||
private Map<String,Object> data = new HashMap<>(); | |||
// @ApiModelProperty(value = "响应") | |||
//private Map<String,Object> Status = new HashMap<>(); | |||
@ApiModelProperty(value = "其它参数") | |||
private Map<String,Object> param = new HashMap<>(); | |||
} |
@@ -9,7 +9,7 @@ import java.util.List; | |||
public interface WxCUserAuthorityMapper extends CommonMapper<WxCUserAuthority, String> { | |||
List<WxCUserAuthority> getAuthorAvatar(String username, int i, Long resourceId); | |||
List<WxCUserAuthority> getAuthorAvatar(Long id, int i, Long resourceId); | |||
List<WxCUserAuthority> getAuthorVoice(String username, int i, Long resourceId); | |||
List<WxCUserAuthority> getAuthorVoice(Long id, int i, Long resourceId); | |||
} |
@@ -9,6 +9,8 @@ import java.util.List; | |||
public interface WxCVideoMapper extends CommonMapper<WxCVideoTable, String> { | |||
List<WxCVideoTable> findByUserName(@Param("username") String username); | |||
List<WxCVideoTable> getById(@Param("user_id") Long id); | |||
} |
@@ -9,5 +9,5 @@ import java.util.List; | |||
public interface WxCVoiceMapper extends CommonMapper<WxCVoiceTable, String> { | |||
List<WxCVoiceTable> findByUserName(String username); | |||
List<WxCVoiceTable> getById(Long id); | |||
} |
@@ -3,5 +3,5 @@ package com.iformall.service; | |||
import com.iformall.common.ResultData; | |||
public interface WxCUserAuthorityService { | |||
ResultData getAuthor(String username, String code, Integer type, Long resourceId); | |||
ResultData getAuthor(Long id, String code, Integer type, Long resourceId); | |||
} |
@@ -6,5 +6,5 @@ import com.iformall.domain.po.WxCVideoTable; | |||
public interface WxCVideoService { | |||
ResultData findByUserName(String username); | |||
ResultData getById(Long id); | |||
} |
@@ -3,5 +3,5 @@ package com.iformall.service; | |||
import com.iformall.common.ResultData; | |||
public interface WxCVoiceService { | |||
ResultData findByUserName(String username); | |||
ResultData getById(Long id); | |||
} |
@@ -20,16 +20,16 @@ public class WxCUserAuthorityServiceImpl implements WxCUserAuthorityService { | |||
@Override | |||
public ResultData getAuthor(String username, String code, Integer type, Long resourceId) { | |||
public ResultData getAuthor(Long id, String code, Integer type, Long resourceId) { | |||
List<WxCUserAuthority> resultList = new ArrayList<WxCUserAuthority>(); | |||
if (type==0){ | |||
//查询数字人相关权限 | |||
resultList = wxCUserAuthorityMapper.getAuthorAvatar(username,0,resourceId); | |||
resultList = wxCUserAuthorityMapper.getAuthorAvatar(id,0,resourceId); | |||
} | |||
if (type==1){ | |||
//查询声纹相关权限 | |||
resultList = wxCUserAuthorityMapper.getAuthorVoice(username,1,resourceId); | |||
resultList = wxCUserAuthorityMapper.getAuthorVoice(id,1,resourceId); | |||
} | |||
if (resourceId==null){ | |||
@@ -32,17 +32,20 @@ public class WxCVideoServiceImpl implements WxCVideoService,IExcelExportServer { | |||
@Autowired | |||
WxCVideoMapper wxCVideoMapper; | |||
@Override | |||
public ResultData findByUserName(String username) { | |||
List<WxCVideoTable> TemplateVideo = wxCVideoMapper.findByUserName(username); | |||
public ResultData getById(Long id) { | |||
List<WxCVideoTable> TemplateVideo = wxCVideoMapper.getById(id); | |||
System.out.println("TemplateVideo = " + TemplateVideo); | |||
Map<String,Object> resultMap = new HashMap(); | |||
Map<String,Object> data = new HashMap(); | |||
data.put("username",username); | |||
data.put("current_time",new Date(System.currentTimeMillis())); | |||
//Map<String,Object> authorlist = new HashMap(); | |||
List authorlist = new ArrayList(); | |||
for (WxCVideoTable wxCVideoTable : TemplateVideo) { | |||
data.put("username",wxCVideoTable.getUserName()); | |||
data.put("current_time",new Date(System.currentTimeMillis())); | |||
Map<String,Object> avatar = new HashMap(); | |||
avatar.put("avatar_id",wxCVideoTable.getId()); | |||
avatar.put("avatar_name",wxCVideoTable.getName()); | |||
@@ -21,9 +21,9 @@ public class WxCVoiceServiceImpl implements WxCVoiceService { | |||
@Override | |||
public ResultData findByUserName(String username) { | |||
public ResultData getById(Long id) { | |||
List<WxCVoiceTable> resultList = wxCVoiceMapper.findByUserName(username); | |||
List<WxCVoiceTable> resultList = wxCVoiceMapper.getById(id); | |||
HashMap<String, Object> result = new HashMap<>(); | |||
List audioList = new ArrayList(); | |||
@@ -221,6 +221,11 @@ public class PhotoSpeakVideoServiceImpl implements PhotoSpeakVideoService { | |||
Integer voiceFrom = photoSpeakVideo.getVoiceFrom(); | |||
String voiceMaterialUrl = photoSpeakVideo.getVoiceMaterialUrl(); | |||
if (photoSpeakVideo.getSubtitleEnabled()==1){ | |||
//开启字幕 查询字幕列表 | |||
} | |||
if (EnumVoiceFrom.FROM_MOULD.getCode().equals(voiceFrom)) { | |||
param.setGen_txt(photoSpeakVideo.getPaperwork().replaceAll(str, "[*]")); | |||
if (sex == 1){ | |||
@@ -16,13 +16,13 @@ | |||
select wca.user_name,wca.type,wca.resource_id,wca.expire_time,wcav.class | |||
from wx_c_author wca | |||
join wx_c_avatar wcav on wca.resource_id = wcav.id and wca.type = 0 | |||
where wca.user_name=#{username} and wca.resource_id = #{resourceId} | |||
where wca.user_id=#{id} and wca.resource_id = #{resourceId} | |||
</select> | |||
<select id="getAuthorVoice" resultType="com.iformall.domain.po.WxCUserAuthority"> | |||
select wca.user_name,wca.type,wca.resource_id,wca.expire_time,wcv.class | |||
from wx_c_author wca | |||
join wx_c_voice wcv on wca.resource_id =wcv.id and wca.type = 1 | |||
where wca.user_name=#{username} and wca.resource_id = #{resourceId} | |||
where wca.user_id=#{id} and wca.resource_id = #{resourceId} | |||
</select> | |||
@@ -19,12 +19,12 @@ | |||
<result column="expire_time" jdbcType="VARCHAR" property="expireTime"/> | |||
</resultMap>--> | |||
<select id="findByUserName" 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 | |||
from wx_c_author wca | |||
left join wx_c_avatar wcav on wcav.id =wca.resource_id | |||
where wca.resource_id | |||
in (select wca.resource_id from wx_c_author wca WHERE wca.user_name =#{username} AND wca.type = 0 ) | |||
in (select wca.resource_id from wx_c_author wca WHERE wca.user_id =#{id} AND wca.type = 0 ) | |||
</select> | |||
@@ -19,13 +19,13 @@ | |||
</resultMap> | |||
<select id="findByUserName" resultMap="BaseResultMap"> | |||
<select id="getById" resultMap="BaseResultMap"> | |||
select wca.user_name,wca.resource_id,wca.expire_time,wcv.id, wcv.localel_id ,wcv.id ,wcv.voice_name,wcv.voice_display_name ,wcv.gender , wcv.class , wcvl.id,wcvl.local_name,wcvl.local_display_name,wcvs.id,wcvs.voice_id,wcvs.style_name,wcvs.style_display_name,wcvs.style_demo | |||
from wx_c_author wca | |||
INNER JOIN wx_c_voice wcv on wca.resource_id = wcv.id | |||
and wca.type = 1 | |||
join wx_c_voice_local wcvl on wcv.localel_id = wcvl.id | |||
join wx_c_voice_style wcvs on wcv.id=wcvs.voice_id where wca.user_name = #{username} | |||
join wx_c_voice_style wcvs on wcv.id=wcvs.voice_id where wca.user_id = #{id} | |||
</select> | |||