Commit 237df35a by songyinghui

Merge branch 'feature-content5' into 'master'

Feature content5

See merge request !1540
parents f173ad05 c4cf9b75
......@@ -9,8 +9,16 @@ public class NotifyMessageBatchQDTO extends NoticeMessageQDTO{
private static final long serialVersionUID = 1L;
/**
* 门店id列表
*/
private List<String> storeIdList;
/**
* 优先使用导购id
*/
private List<String> clerkIdList;
public List<String> getStoreIdList() {
return storeIdList;
}
......@@ -18,5 +26,13 @@ public class NotifyMessageBatchQDTO extends NoticeMessageQDTO{
public void setStoreIdList(List<String> storeIdList) {
this.storeIdList = storeIdList;
}
public List<String> getClerkIdList() {
return clerkIdList;
}
public void setClerkIdList(List<String> clerkIdList) {
this.clerkIdList = clerkIdList;
}
}
......@@ -14,6 +14,7 @@ public enum NoticeMessageCategoryTypeEnum {
REFUND(5, "售后相关"),
MATERIAL(6, "素材相关"),
POTENTIAL_CUSTOMER(7, "销售线索"),
AUTHORIZED(8, "授权登陆"),
OTHER(3, "其它"),;
private int type;
private String name;
......
......@@ -86,7 +86,10 @@ public enum NoticeMessageTypeEnum {
CASH_APPLY_FAIL_NOTIFY(7002,"提现通知", NoticeMessageCategoryTypeEnum.OTHER.getType(),"cash_apply_fail_notify","/pages/route/index?pageType=","hbapp_withdraw_list","cashApplyFailNotify","haobanNotice"),
CASH_APPLY_OFFLINE_SUCCESS_NOTIFY(7003,"提现通知", NoticeMessageCategoryTypeEnum.OTHER.getType(),"cash_apply_offline_success_notify","/pages/route/index?pageType=","hbapp_withdraw_list","cashApplyOfflineSuccessNotify","haobanNotice");
CASH_APPLY_OFFLINE_SUCCESS_NOTIFY(7003,"提现通知", NoticeMessageCategoryTypeEnum.OTHER.getType(),"cash_apply_offline_success_notify","/pages/route/index?pageType=","hbapp_withdraw_list","cashApplyOfflineSuccessNotify","haobanNotice"),
AUTHORIZED_LOGIN_NOTIFY(8001,"账号授权通知", NoticeMessageCategoryTypeEnum.AUTHORIZED.getType(),"authorized_login_notify","/pages/route/index?pageType=","hbapp_video_auth","authorizedLoginNotify","haobanNotice");
/**
* 消息类型
*/
......
......@@ -2,12 +2,14 @@ package com.gic.haoban.manage.service.service.impl;
import static org.slf4j.LoggerFactory.getLogger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.HttpClient;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.slf4j.Logger;
......@@ -223,7 +225,29 @@ public class MaterialServiceImpl implements MaterialService {
logger.info("url有参数={}",url);
url = url.split("\\?")[0] ;
}
url+= "?imageView2/2/w/1440/h/1080" ;
String key = "haoban:material:" + url;
String cache = (String)RedisUtil.getCache(key);
JSONObject jsonObject = null;
if (StringUtils.isBlank(cache)) {
String imageInfoUrl = url + "?imageInfo";
Map<String, Object> map = HttpClient.getHttpByGet(imageInfoUrl);
String response = (String) map.get("response");
if (StringUtils.isBlank(response)) {
throw new RuntimeException();
}
jsonObject = JSONObject.parseObject(response);
RedisUtil.setCache(key, response, 1L, TimeUnit.DAYS);
}else {
jsonObject = JSONObject.parseObject(cache);
}
Integer width = jsonObject.getInteger("width");
Integer height = jsonObject.getInteger("height");
Integer size = jsonObject.getInteger("size");
//朋友圈类型图片,长边不超过10800像素,短边不超过1080像素
//图片宽高超过限制 或 大小大于2m 处理图片
if (size / 1000 > 2000 || width > 1080 || height > 10800) {
url+= "?imageView2/2/w/1080/h/10800" ;
}
logger.info("url={}",url);
}
jp = qywxSuiteApiService.uploadAttachment(qwDTO.getThirdCorpid(), qwDTO.getSelf3thSecret(), url, arr[count - 1], fileType.getCode() , selfFlag , qwDTO.getUrlHost());
......@@ -246,6 +270,26 @@ public class MaterialServiceImpl implements MaterialService {
return jp;
}
public static void main(String[] args) {
String url = "https://platform-1251519181.cos.ap-shanghai.myqcloud.com/image/jhdm/common-fbcae3533d414bf8baac917df600b20e.png";
Map<String, Object> map = HttpClient.getHttpByGet(url + "?imageInfo");
String response = (String) map.get("response");
if (StringUtils.isBlank(response)) {
throw new RuntimeException();
}
JSONObject jsonObject = null;
jsonObject = JSONObject.parseObject(response);
Integer width = jsonObject.getInteger("width");
Integer height = jsonObject.getInteger("height");
Integer size = jsonObject.getInteger("size");
//图片宽高超过限制 或 大小大于2m 处理图片
if (size / 1000 > 2000 || width > 1440 || height > 1080) {
url+= "?imageView2/2/w/1440/h/1080" ;
}
logger.info("url={}",url);
System.out.println(JSON.toJSONString(url));
}
public List<String> getImageMediaId(String wxEnterpriseId, List<ContentMaterialDTO> imageList, int mediaType) {
List<String> materialIdList = new ArrayList<>();
imageList.forEach(dto -> {
......
......@@ -294,20 +294,25 @@ public class NoticeMessageApiServiceImpl implements NoticeMessageApiService {
logger.info("消息中心测试通知消息:{}", JSONObject.toJSONString(notifyMessageBatchQDTO));
String enterpriseId = notifyMessageBatchQDTO.getEnterpriseId();
List<String> storeIdList = notifyMessageBatchQDTO.getStoreIdList();
if (CollectionUtils.isEmpty(storeIdList)) {
logger.info("门店列表为空");
return ServiceResponse.success();
}
List<String> clerkIdList = notifyMessageBatchQDTO.getClerkIdList();
int count = wxEnterpriseRelatedService.getRelationCount(enterpriseId);
if (count == 0) {
logger.info("商户未关联好办或都已停用enterpriseId={}", enterpriseId);
return ServiceResponse.success();
}
List<String> clerkIdList = clerkService.getclerkListByStoreIds(storeIdList);
if (CollectionUtils.isEmpty(clerkIdList)) {
if (CollectionUtils.isEmpty(storeIdList)) {
logger.info("门店列表为空");
return ServiceResponse.success();
}
clerkIdList = clerkService.getclerkListByStoreIds(storeIdList);
}
if (CollectionUtils.isEmpty(clerkIdList)) {
logger.info("门店导购列表为空");
return ServiceResponse.success();
}
List<StaffClerkRelationDTO> relationList = staffClerkRelationService.listByClerkIds(clerkIdList);
if (CollectionUtils.isEmpty(relationList)) {
logger.info("成员关联列表为空");
......
......@@ -637,12 +637,12 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
"goodsDetail_material", "goodsCenter_Count", "materialManage", "publishMaterial", "userCenter_createCenter"));
// 只添加(勾选)好办运维权限 不加商户权限
superManagementMenuCode.put("0" + ContentMaterialROleInitQDTO.Version.LOW.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create"));
superManagementMenuCode.put("0" + ContentMaterialROleInitQDTO.Version.HIGH.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create"));
superManagementMenuCode.put("1" + ContentMaterialROleInitQDTO.Version.LOW.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create"));
superManagementMenuCode.put("1" + ContentMaterialROleInitQDTO.Version.HIGH.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create"));
superManagementMenuCode.put("2" + ContentMaterialROleInitQDTO.Version.LOW.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create"));
superManagementMenuCode.put("2" + ContentMaterialROleInitQDTO.Version.HIGH.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create"));
superManagementMenuCode.put("0" + ContentMaterialROleInitQDTO.Version.LOW.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create","videoCreate"));
superManagementMenuCode.put("0" + ContentMaterialROleInitQDTO.Version.HIGH.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create","videoCreate"));
superManagementMenuCode.put("1" + ContentMaterialROleInitQDTO.Version.LOW.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create","videoCreate"));
superManagementMenuCode.put("1" + ContentMaterialROleInitQDTO.Version.HIGH.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create","videoCreate"));
superManagementMenuCode.put("2" + ContentMaterialROleInitQDTO.Version.LOW.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create","videoCreate"));
superManagementMenuCode.put("2" + ContentMaterialROleInitQDTO.Version.HIGH.getCode(), Arrays.asList("knowledgeBase","AICreate","textCreate_create","videoCreate"));
}
......@@ -657,7 +657,6 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
logger.info("flushRightOneTime 刷新企业内容权限:{}", params);
// 获取所有开通内容高级版的企业
List<String> enterpriseIds = materialEnterpriseAdaptor.queryHasRightEnterpriseIds(MaterialEnterpriseAdaptor.MaterialLevel.LOW.getCode());
// 执行刷新权限
String enterpriseId = "";
......@@ -665,7 +664,7 @@ public class HaobanRoleApiServiceImpl implements HaobanRoleApiService {
enterpriseId = params;
}
List<String> menuCodes = new ArrayList<>();
menuCodes.add("AICreate");
menuCodes.add("videoCreate");
for (String tempId : enterpriseIds) {
if (StringUtils.isNotBlank(enterpriseId) && !StringUtils.equalsIgnoreCase(enterpriseId, tempId)) {
......
......@@ -252,6 +252,11 @@
<artifactId>haoban-commission-api</artifactId>
<version>${haoban-commission-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-cloud-image-api</artifactId>
<version>${gic-cloud-image-api}</version>
</dependency>
</dependencies>
<build>
......
package com.gic.haoban.manage.web.controller.content;
import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.content.api.dto.template.ContentTemplateDTO;
import com.gic.content.api.dto.template.ContentTemplateTypeDTO;
import com.gic.content.api.qdto.template.CmeExportVideoQDTO;
import com.gic.content.api.qdto.template.ContentExportVideoQDTO;
import com.gic.content.api.qdto.template.ContentTemplateQDTO;
import com.gic.content.api.service.CmeFileApiService;
import com.gic.content.api.service.ContentTemplateApiService;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.content.ValueAddedServicesOrderApiService;
import com.gic.haoban.manage.web.qo.content.ai.CmeExportVideoQO;
import com.gic.haoban.manage.web.qo.content.ai.CmeImportMaterialQO;
import com.gic.haoban.manage.web.qo.content.ai.ContentTemplateQO;
import com.gic.haoban.manage.web.vo.content.template.ContentTemplateDetailVO;
import com.gic.haoban.manage.web.vo.content.template.ContentTemplateVO;
import com.gic.thirdparty.cloudfile.CmeUtil;
import com.gic.thirdparty.cloudfile.pojo.cme.CmeImportMaterial;
import com.gic.thirdparty.cloudfile.pojo.cme.CmeTaskProcess;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* 好办-AI创作
*
*/
@Controller
@RequestMapping("/ai")
public class ContentAIController {
private static final Logger log = LoggerFactory.getLogger(ContentAIController.class);
@Autowired
private CmeFileApiService cmeFileApiService;
@Autowired
private ContentTemplateApiService templateApiService;
@Autowired
private EnterpriseService enterpriseService;
@Autowired
private ClerkService clerkService;
@Autowired
private ValueAddedServicesOrderApiService valueAddedServicesOrderApiService;
/**
* 获取剩余资源
* @param enterpriseId 企业id
* @param type 1AI文案2AI视频
* @see com.gic.enterprise.api.enums.EnterpriseResourcesEnum
* @return
*/
@RequestMapping("get-remaining")
@ResponseBody
public RestResponse<Integer> getRemaining(String enterpriseId,Integer type) {
ServiceResponse<Integer> response = valueAddedServicesOrderApiService.getRemaining(enterpriseId, type);
if (response.isSuccess()) {
return RestResponse.successResult(response.getResult());
}
return RestResponse.failure(response.getCode(), response.getMessage());
}
/**
* 查询模板类型列表
*
* @param type 类型 1类别2风格 null查全部
* @param typeIdList 已选中的类型id列表
* @return RestResponse
*/
@RequestMapping("list-template-type")
@ResponseBody
public RestResponse<List<ContentTemplateTypeDTO>> listTemplateType(@RequestParam(required = false)Integer type,
@RequestParam(required = false)List<Long> typeIdList) {
ServiceResponse<List<ContentTemplateTypeDTO>> response = templateApiService.listTemplateType(type, typeIdList,true);
if (response.isSuccess()) {
return RestResponse.successResult(response.getResult());
}
return RestResponse.failure(response.getCode(), response.getMessage());
}
/**
* 模板分页查询
*
* @param search search
* @return RestResponse
*/
@RequestMapping("page-template")
@ResponseBody
public RestResponse<Page<ContentTemplateVO>> queryByPage(@RequestBody ContentTemplateQO search) {
ContentTemplateQDTO templateQDTO = com.gic.commons.util.EntityUtil.changeEntityNew(ContentTemplateQDTO.class, search);
BasePageInfo basePageInfo = search.getBasePageInfo();
ServiceResponse<Page<ContentTemplateDTO>> response = templateApiService.pageTemplate(templateQDTO,basePageInfo);
if (!response.isSuccess()) {
return RestResponse.failure(response.getCode(), response.getMessage());
}
Page<ContentTemplateDTO> result = response.getResult();
Page<ContentTemplateVO> ret = PageHelperUtils.changePageToCurrentPage(result, ContentTemplateVO.class);
return RestResponse.successResult(ret);
}
/**
* 模板详情查询
*
* @param contentTemplateId 主键ID
* @return RestResponse
*/
@RequestMapping("detail-template")
@ResponseBody
public RestResponse<ContentTemplateDetailVO> detailTemplate(Long contentTemplateId) {
ServiceResponse<ContentTemplateDTO> response = templateApiService.getTemplate(contentTemplateId);
if (response.isSuccess()) {
ContentTemplateDetailVO detailVO = com.gic.commons.util.EntityUtil.changeEntityByJSON(ContentTemplateDetailVO.class, response.getResult());
return RestResponse.successResult(detailVO);
}
return RestResponse.failure(response.getCode(), response.getMessage());
}
/**
* 导入cme媒体
* @param materialQO
* @return materialId 素材id
*/
@RequestMapping("import-material")
@ResponseBody
public RestResponse<String> importMaterial(@RequestBody CmeImportMaterialQO materialQO){
CmeImportMaterial cmeImportMaterial = EntityUtil.changeEntityNew(CmeImportMaterial.class, materialQO);
EnterpriseDTO enterpriseDTO = enterpriseService.getEnterpriseById(materialQO.getEnterpriseId());
cmeImportMaterial.setFactoryCode(enterpriseDTO.getFactoryCode());
try {
String materialId = CmeUtil.importMaterial(cmeImportMaterial);
return RestResponse.successResult(materialId);
} catch (Exception e) {
log.warn("导入cme媒体:", e);
return RestResponse.failure("-1", "导入媒体异常");
}
}
/**
* 剪辑视频导出
* @param cmeExportVideo
* @return taskId 任务id
*/
@RequestMapping("export-video")
@ResponseBody
public RestResponse<String> exportVideo(@RequestBody CmeExportVideoQO cmeExportVideo){
String enterpriseId = cmeExportVideo.getEnterpriseId();
String clerkId = cmeExportVideo.getClerkId();
ClerkDTO clerkDTO = clerkService.getclerkById(clerkId);
if (clerkDTO == null) {
return RestResponse.failure("-1", "导购不存在");
}
EnterpriseDTO enterpriseDTO = enterpriseService.getEnterpriseById(enterpriseId);
String factoryCode = enterpriseDTO.getFactoryCode();
ContentExportVideoQDTO exportVideoQDTO = new ContentExportVideoQDTO();
exportVideoQDTO.setEnterpriseId(cmeExportVideo.getEnterpriseId());
exportVideoQDTO.setContentTemplateId(cmeExportVideo.getContentTemplateId());
exportVideoQDTO.setStoreId(clerkDTO.getStoreId());
exportVideoQDTO.setStoreCode(clerkDTO.getStoreCode());
exportVideoQDTO.setStoreName(clerkDTO.getStoreName());
exportVideoQDTO.setUserId(cmeExportVideo.getClerkId());
exportVideoQDTO.setUserCode(clerkDTO.getClerkCode());
exportVideoQDTO.setUserName(clerkDTO.getClerkName());
exportVideoQDTO.setName(cmeExportVideo.getName());
CmeExportVideoQDTO cmeExportVideoQDTO = EntityUtil.changeEntityByJSON(CmeExportVideoQDTO.class, cmeExportVideo);
cmeExportVideoQDTO.setFactoryCode(factoryCode);
CmeExportVideoQDTO.CmeExportInfo cmeExportInfo = new CmeExportVideoQDTO.CmeExportInfo();
cmeExportInfo.setName(cmeExportVideo.getName());
cmeExportVideoQDTO.setCmeExportInfo(cmeExportInfo);
try {
ServiceResponse<String> response = cmeFileApiService.cmeExportVideo(exportVideoQDTO, cmeExportVideoQDTO);
if (!response.isSuccess()) {
return RestResponse.failure(response.getCode(), response.getMessage());
}
return RestResponse.successResult(response.getResult());
} catch (Exception e) {
log.warn("剪辑视频导出:", e);
return RestResponse.failure("-1", "剪辑视频导出异常");
}
}
/**
* 获取视频导出任务进度
* @param taskId 任务id
* @return
*/
@RequestMapping("get-export-task")
@ResponseBody
public RestResponse<CmeTaskProcess> getExportTask(String taskId){
CmeTaskProcess cmeTaskProcess = CmeUtil.describeTaskProcess(taskId);
return RestResponse.successResult(cmeTaskProcess);
}
}
package com.gic.haoban.manage.web.controller.content;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.content.api.dto.account.AccountAuthorizeDTO;
import com.gic.content.api.dto.account.AccountAuthorizeResultDTO;
import com.gic.content.api.dto.account.ContentAccountInfoDTO;
import com.gic.content.api.enums.ContentAccountQrCodeSourceType;
import com.gic.content.api.qdto.account.AccountGenerateQrCodeQDTO;
import com.gic.content.api.qdto.account.AccountScanQrCodeResultQDTO;
import com.gic.content.api.qdto.account.ContentAccountQDTO;
import com.gic.content.api.service.ContentAccountApiService;
import com.gic.haoban.manage.api.dto.StaffClerkInfoDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.web.controller.content.adaptor.ClerkStoreAdaptor;
import com.gic.haoban.manage.web.qo.content.account.AccountGenerateQrCodeQo;
import com.gic.haoban.manage.web.qo.content.account.AccountInfoQo;
import com.gic.haoban.manage.web.qo.content.account.AccountScanResultQo;
import com.gic.haoban.manage.web.vo.content.account.AccountAuthorizeResultVo;
import com.gic.haoban.manage.web.vo.content.account.AccountAuthorizeVo;
import com.gic.haoban.manage.web.vo.content.account.ContentAccountInfoVo;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* 好办-视频号-授权
* @Author MUSI
* @Date 2023/10/29 9:33 PM
* @Description
* @Version
**/
@RestController
@RequestMapping(path = "/content/account")
public class ContentAccountController {
@Autowired
private ContentAccountApiService contentAccountApiService;
@Autowired
private ClerkStoreAdaptor clerkStoreAdaptor;
/**
* 查询导购当前账号视频号列表
* @param accountInfoQo
* @return
*/
@RequestMapping(path = "/list")
private RestResponse<List<ContentAccountInfoVo>> queryAccountList(AccountInfoQo accountInfoQo) {
// 查询成员
List<StaffClerkRelationDTO> staffClerkRelationDTOS = clerkStoreAdaptor.queryStaffClerkRelationInfo(accountInfoQo.getEnterpriseId(), accountInfoQo.getStaffId());
if (CollectionUtils.isEmpty(staffClerkRelationDTOS)) {
return RestResponse.successResult();
}
List<String> clerkIds = staffClerkRelationDTOS
.stream()
.map(StaffClerkRelationDTO::getClerkId)
.distinct()
.collect(Collectors.toList());
List<String> storeIds = new ArrayList<>();
List<String> clerkCodes = new ArrayList<>();
List<ClerkDTO> clerkDTOS = clerkStoreAdaptor.queryClerkInfos(clerkIds);
if (CollectionUtils.isEmpty(clerkDTOS)) {
return RestResponse.successResult();
}
for (ClerkDTO clerkDTO : clerkDTOS) {
clerkCodes.add(clerkDTO.getClerkCode());
if (new Integer(1).equals(clerkDTO.getClerkType())) {
storeIds.add(clerkDTO.getStoreId());
}
}
ContentAccountQDTO contentAccountQDTO = new ContentAccountQDTO();
contentAccountQDTO.setEnterpriseId(accountInfoQo.getEnterpriseId());
contentAccountQDTO.setQueryForClerk(Boolean.TRUE);
contentAccountQDTO.setUserCodes(clerkCodes);
contentAccountQDTO.setStoreIds(storeIds);
ServiceResponse<Page<ContentAccountInfoDTO>> serviceResponse =
contentAccountApiService.queryAccountList(contentAccountQDTO);
if (!serviceResponse.isSuccess() || CollectionUtils.isEmpty(serviceResponse.getResult().getResult())) {
return RestResponse.successResult();
}
List<ContentAccountInfoVo> contentAccountInfoVos = serviceResponse.getResult()
.getResult()
.stream()
.map(item -> EntityUtil.changeEntityByJSON(ContentAccountInfoVo.class, item))
.collect(Collectors.toList());
return RestResponse.successResult(contentAccountInfoVos);
}
/**
* 获取登陆/授权二维码
* @param accountGenerateQrCodeQo
* @return
*/
@ResponseBody
@RequestMapping(value = "/generate/qrcode")
public RestResponse<AccountAuthorizeVo> generateQrCode(AccountGenerateQrCodeQo accountGenerateQrCodeQo) {
AccountGenerateQrCodeQDTO accountGenerateQrCodeQDTO = new AccountGenerateQrCodeQDTO();
accountGenerateQrCodeQDTO.setEnterpriseId(accountGenerateQrCodeQo.getEnterpriseId());
accountGenerateQrCodeQDTO.setSourceType(ContentAccountQrCodeSourceType.HAOBAN.getCode());
accountGenerateQrCodeQDTO.setKey(accountGenerateQrCodeQo.getKey());
accountGenerateQrCodeQDTO.setAccountId(accountGenerateQrCodeQo.getAccountId());
ServiceResponse<AccountAuthorizeDTO> serviceResponse = contentAccountApiService.generateQrCode(accountGenerateQrCodeQDTO);
if (!serviceResponse.isSuccess()) {
return RestResponse.failure("500", "生成二维码异常");
}
return RestResponse.successResult(EntityUtil.changeEntityByJSON(AccountAuthorizeVo.class, serviceResponse.getResult()));
}
/**
* 二维码轮询结果
* @param accountScanResultQo
* @return
*/
@ResponseBody
@RequestMapping(value = "/loop/query/scan/qrcode/result")
public RestResponse<AccountAuthorizeResultVo> queryScanQrCodeResult(AccountScanResultQo accountScanResultQo) {
AccountScanQrCodeResultQDTO accountScanQrCodeResultQDTO = EntityUtil.changeEntityByJSON(AccountScanQrCodeResultQDTO.class, accountScanResultQo);
ServiceResponse<AccountAuthorizeResultDTO> serviceResponse =
contentAccountApiService.queryScanQrcodeResult(accountScanQrCodeResultQDTO);
if (!serviceResponse.isSuccess()) {
return RestResponse.failure("500", "获取结果异常");
}
return RestResponse.successResult(EntityUtil.changeEntityByJSON(AccountAuthorizeResultVo.class, serviceResponse.getResult()));
}
}
......@@ -5,6 +5,7 @@ import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.service.AccountService;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.thirdparty.cloudfile.CloudFileUtil;
import com.gic.thirdparty.cloudfile.CmeUtil;
import com.gic.thirdparty.cloudfile.enums.CloudFileBusinessOptEnum;
import com.gic.thirdparty.cloudfile.enums.CloudFileTypeEnum;
import com.gic.thirdparty.cloudfile.pojo.CloudFileInfo;
......@@ -39,19 +40,26 @@ public class ContentImageController {
/**
* 获取桶名称
* @param fileType 文件后缀 mp4
* @param fileFlag 视频类型 3为cme临时资源
* @return
*/
@RequestMapping("get-bucket")
@ResponseBody
public RestResponse<CloudFileInfo> getBucket(String fileType,String enterpriseId) {
public RestResponse<CloudFileInfo> getBucket(String fileType,String enterpriseId,@RequestParam(required = false)Integer fileFlag) {
//存储空间余额校验
if (!accountService.storageFeeCheck(enterpriseId)){
return RestResponse.failure("-1", "存储余额不足,暂不支持图片/视频上传,请充值");
}
EnterpriseDTO enterpriseDTO = enterpriseService.getEnterpriseById(enterpriseId);
CloudFileInfo cloudFileInfo = CloudFileUtil.getPreUploadFileInfo(fileType, CloudFileTypeEnum.VIDEO, enterpriseDTO.getFactoryCode(), CloudFileBusinessOptEnum.MATERIAL_CONTENT);
CloudFileTypeEnum cloudFileTypeEnum = CloudFileTypeEnum.getFileTypeByExtension(fileType);
CloudFileInfo cloudFileInfo = null;
//cme上传视频走 temp存储桶只存一天有效期
if (fileFlag != null && fileFlag == 3) {
cloudFileInfo = CloudFileUtil.getPreUploadTempFileInfo(fileType, cloudFileTypeEnum, CmeUtil.CME_TEMP_COS, CloudFileBusinessOptEnum.MATERIAL_CONTENT, 1L);
}else {
cloudFileInfo = CloudFileUtil.getPreUploadFileInfo(fileType, cloudFileTypeEnum, enterpriseDTO.getFactoryCode(), CloudFileBusinessOptEnum.MATERIAL_CONTENT);
}
if (cloudFileInfo == null){
return RestResponse.failure("-1", "获取桶名称失败");
}
......@@ -63,7 +71,7 @@ public class ContentImageController {
*
* @param request
* @param videoPicFileId 上传视频首针图片时使用
* @param fileFlag = 1-普通图片 2-视频截取首针图片(需要与视频建立关联关系)
* @param fileFlag = 1-普通图片 2-视频截取首针图片(需要与视频建立关联关系)3-cme临时资源
* @param bucketName 存储桶名称
* @return
*/
......@@ -119,6 +127,10 @@ public class ContentImageController {
}else if (fileFlag == 2){
// 若是前端截取的视频首针图片,则调用新接口
CloudFileUtil.uploadPreFileByFieldKey(file, bucketName, videoPicFileId);
}else if (fileFlag == 3) {
// cme临时图片只能上传到temp存储桶 只存一天有效期
CloudFileInfo cloudFileInfo = CloudFileUtil.uploadTempFile(file, fileType, CloudFileTypeEnum.IMAGE, CmeUtil.CME_TEMP_COS, CloudFileBusinessOptEnum.MATERIAL_CONTENT, 1L,compressFlag,bucketName,videoPicFileId);
return RestResponse.successResult(cloudFileInfo);
}
return RestResponse.successResult();
} catch (Exception e) {
......
package com.gic.haoban.manage.web.controller.content.adaptor;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.haoban.manage.api.dto.StaffClerkInfoDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.role.StoreRoleDTO;
......@@ -12,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
/**
......@@ -28,6 +32,8 @@ public class ClerkStoreAdaptor {
private StaffApiService staffApiService;
@Autowired
private StaffClerkRelationApiService staffClerkRelationApiService;
@Autowired
private ClerkService clerkService;
/**
* 查询区经角色下管辖的门店权限
......@@ -73,4 +79,28 @@ public class ClerkStoreAdaptor {
return null;
}
public ClerkDTO queryClerkInfo(String enterpriseId, String clerkId) {
return clerkService.getClerkByClerkId(clerkId);
}
public List<StaffClerkRelationDTO> queryStaffClerkRelationInfo(String enterpriseId, String staffId) {
List<StaffClerkRelationDTO> staffClerkRelationDTOS = staffClerkRelationApiService.listBindCodeByStaffId(Collections.singletonList(enterpriseId), staffId);
if (CollectionUtils.isEmpty(staffClerkRelationDTOS)) {
return Collections.emptyList();
}
return staffClerkRelationDTOS;
}
public List<ClerkDTO> queryClerkInfos(List<String> clerkIds) {
if (CollectionUtils.isEmpty(clerkIds)) {
return Collections.emptyList();
}
List<ClerkDTO> clerkDTOS = clerkService.getClerkByClerkIds(new HashSet<>(clerkIds));
if (CollectionUtils.isEmpty(clerkDTOS)) {
return Collections.emptyList();
}
return clerkDTOS;
}
}
package com.gic.haoban.manage.web.controller.video;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.cloudimage.api.dto.CloudVideoDTO;
import com.gic.cloudimage.api.dto.account.VideoGroupInfoDTO;
import com.gic.cloudimage.api.qdto.CloudVideoQDTO;
import com.gic.cloudimage.api.service.CloudVideoApiService;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.manage.web.controller.content.adaptor.ClerkStoreAdaptor;
import com.gic.haoban.manage.web.qo.video.DeleteVideoQo;
import com.gic.haoban.manage.web.qo.video.VideoGroupQo;
import com.gic.haoban.manage.web.qo.video.VideoListQo;
import com.gic.haoban.manage.web.vo.video.CloudVideoGroupVo;
import com.gic.haoban.manage.web.vo.video.CloudVideoInfoVo;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 好办-视频号-视频空间分组
* @Author MUSI
* @Date 2023/10/30 9:08 AM
* @Description
* @Version
**/
@RestController
@RequestMapping(path = "/cloud/video")
public class CloudVideoController {
@Autowired
private CloudVideoApiService cloudVideoApiService;
@Autowired
private ClerkStoreAdaptor clerkStoreAdaptor;
/**
* 视频空间-分组列表
* @param videoGroupQo
* @return
*/
@RequestMapping(path = "/group/list")
public RestResponse<List<CloudVideoGroupVo>> queryVideoGroupList(VideoGroupQo videoGroupQo) {
ServiceResponse<List<VideoGroupInfoDTO>> serviceResponse =
cloudVideoApiService.queryVideoGroupList(videoGroupQo.getEnterpriseId(), null, videoGroupQo.getSearch());
if (!serviceResponse.isSuccess() || CollectionUtils.isEmpty(serviceResponse.getResult())) {
return RestResponse.successResult();
}
List<CloudVideoGroupVo> cloudVideoGroupVos = EntityUtil.changeEntityListByJSON(CloudVideoGroupVo.class, serviceResponse.getResult());
return RestResponse.successResult(cloudVideoGroupVos);
}
/**
* 视频列表(剪辑记录列表)
* @param videoListQo
* @return
*/
@RequestMapping(path = "/list")
public RestResponse<Page<CloudVideoInfoVo>> queryVideoList(VideoListQo videoListQo) {
ClerkDTO clerkDTO = clerkStoreAdaptor.queryClerkInfo(videoListQo.getEnterpriseId(), videoListQo.getClerkId());
if (clerkDTO == null) {
return RestResponse.successResult();
}
CloudVideoQDTO cloudVideoQDTO = new CloudVideoQDTO();
cloudVideoQDTO.setEnterpriseId(videoListQo.getEnterpriseId());
cloudVideoQDTO.setPageNum(videoListQo.getPageNum());
cloudVideoQDTO.setPageSize(videoListQo.getPageSize());
cloudVideoQDTO.setUserCode(clerkDTO.getClerkCode());
cloudVideoQDTO.setShowFlag(1);
// 正常状态的
cloudVideoQDTO.setStatus(1);
ServiceResponse<Page<CloudVideoDTO>> serviceResponse = cloudVideoApiService.queryCloudVideoList(cloudVideoQDTO);
if (!serviceResponse.isSuccess() || serviceResponse.getResult() == null) {
return RestResponse.successResult();
}
Page<CloudVideoInfoVo> cloudVideoInfoVoPage = PageHelperUtils.changePageToCurrentPage(serviceResponse.getResult(), CloudVideoInfoVo.class);
return RestResponse.successResult(cloudVideoInfoVoPage);
}
/**
* 删除视频 (删除剪辑记录)
* @param deleteVideoQo
* @return
*/
@RequestMapping(path = "/delete")
public RestResponse<?> deleteVideoInfo(DeleteVideoQo deleteVideoQo) {
cloudVideoApiService.updateCloudVideShowFlag(deleteVideoQo.getEnterpriseId(), deleteVideoQo.getVideoId(), 0);
return RestResponse.successResult();
}
}
package com.gic.haoban.manage.web.qo.content.account;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/10/24 2:06 PM
* @Description
* @Version
**/
public class AccountGenerateQrCodeQo implements Serializable {
/**
* 企业id
*/
private String enterpriseId;
/**
* 账号id
*/
private String accountId;
/**
* 导购id
*/
private String clerkId;
/**
* 二维码key
*/
private String key;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
package com.gic.haoban.manage.web.qo.content.account;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/10/29 9:36 PM
* @Description
* @Version
**/
public class AccountInfoQo implements Serializable {
private static final long serialVersionUID = 6064200327738361949L;
private String enterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 门店id
*/
private String storeId;
/**
* 成员id
*/
private String staffId;
private String wxEnterpriseId;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
}
package com.gic.haoban.manage.web.qo.content.account;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/10/27 4:54 PM
* @Description
* @Version
**/
public class AccountScanResultQo implements Serializable {
private String key;
/**
* 当前二维码授权状态
* -1 未授权
* 0 扫码成功
* 1 扫码失败
* 2 授权码已过期
* 3 授权完成
*/
private String status;
/**
*
*/
private String enterpriseId;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
}
package com.gic.haoban.manage.web.qo.content.ai;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.gic.thirdparty.cloudfile.pojo.cme.CmeExportVideo;
import java.io.Serializable;
/**
* Created by wangzubo on 2023/10/19.
*/
public class CmeExportVideoQO extends CmeExportVideo implements Serializable {
@JsonSerialize(
using = ToStringSerializer.class
)
/**
* 模板id主键
*/
private Long contentTemplateId;
/**
* 企业id
*/
private String enterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 父级id (视频所属的分组id)
*/
private String parentId;
public Long getContentTemplateId() {
return contentTemplateId;
}
public void setContentTemplateId(Long contentTemplateId) {
this.contentTemplateId = contentTemplateId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
}
package com.gic.haoban.manage.web.qo.content.ai;
/**
* Created by wangzubo on 2023/10/24.
*/
public class CmeImportMaterialQO {
/**
* 媒体名称
*/
private String name;
/**
* 目前仅支持绑定 COS 桶的媒体,请填写存储对象 Key 值,例如:`example-folder/example.mp4`。
*/
private String mediaKey;
/**
* 企业id
*/
private String enterpriseId;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMediaKey() {
return mediaKey;
}
public void setMediaKey(String mediaKey) {
this.mediaKey = mediaKey;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
}
package com.gic.haoban.manage.web.qo.content.ai;
import com.gic.commons.web.qo.PageQo;
import java.io.Serializable;
import java.util.List;
public class ContentTemplateQO extends PageQo implements Serializable {
private static final long serialVersionUID = -88886472498225164L;
/**
* 搜索
*/
private String search;
/**
* 类型id
*/
private List<Long> typeId;
/**
* 排序字段
*/
private String sortBy = "createTime";
/**
* 排序 desc asc
*/
private String sort = "desc";
public String getSearch() {
return search;
}
public void setSearch(String search) {
this.search = search;
}
public List<Long> getTypeId() {
return typeId;
}
public void setTypeId(List<Long> typeId) {
this.typeId = typeId;
}
public String getSortBy() {
return sortBy;
}
public void setSortBy(String sortBy) {
this.sortBy = sortBy;
}
public String getSort() {
return sort;
}
public void setSort(String sort) {
this.sort = sort;
}
}
package com.gic.haoban.manage.web.qo.video;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/10/30 9:28 AM
* @Description
* @Version
**/
public class DeleteVideoQo implements Serializable {
private String enterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 门店id
*/
private String storeId;
/**
* 视频id
*/
private String videoId;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getVideoId() {
return videoId;
}
public void setVideoId(String videoId) {
this.videoId = videoId;
}
}
package com.gic.haoban.manage.web.qo.video;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/10/30 9:13 AM
* @Description
* @Version
**/
public class VideoGroupQo implements Serializable {
private String enterpriseId;
/**
* 搜索内容
*/
private String search;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getSearch() {
return search;
}
public void setSearch(String search) {
this.search = search;
}
}
package com.gic.haoban.manage.web.qo.video;
import com.gic.api.base.commons.BasePageInfo;
/**
* @Author MUSI
* @Date 2023/10/30 9:25 AM
* @Description
* @Version
**/
public class VideoListQo extends BasePageInfo {
/**
* 企业id
*/
private String enterpriseId;
/**
* 导购id
*/
private String clerkId;
/**
* 门店id
*/
private String storeId;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
}
package com.gic.haoban.manage.web.vo.content.account;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/10/24 2:11 PM
* @Description
* @Version
* 账号授权结果
*
**/
public class AccountAuthorizeResultVo implements Serializable {
private String key;
/**
* -1 未授权
* 0 扫码成功
* 1 扫码失败
* 2 授权码已过期
* 3 授权完成
* 4 授权完成,但是实际授权账号与授权二维码账号不一致
*/
private Integer status;
/**
* 账号主键id
*/
private Long id;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
package com.gic.haoban.manage.web.vo.content.account;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/10/24 2:09 PM
* @Description
* @Version
**/
public class AccountAuthorizeVo implements Serializable {
/**
* 后续轮询时以此key为参数
*/
private String key;
/**
* 二维码图片的base64格式
*/
private String qrCode;
/**
* 状态
* 1 初始化中 (此时携带key轮询生成二维码)
* 2 已完成 (此时会返回二维码数据)
*/
private Integer status;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getQrCode() {
return qrCode;
}
public void setQrCode(String qrCode) {
this.qrCode = qrCode;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
package com.gic.haoban.manage.web.vo.content.account;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2023/10/29 9:35 PM
* @Description
* @Version
**/
public class ContentAccountInfoVo implements Serializable {
private static final long serialVersionUID = -3355601918337775024L;
/**
* 账号名称
*/
private String accountName;
/**
* 账号id
*/
private String accountId;
/**
* 账号头像
*/
private String accountImageUrl;
/**
* 账号授权状态
* 1 授权中
* 2 已过期
*/
private Integer status;
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
public String getAccountImageUrl() {
return accountImageUrl;
}
public void setAccountImageUrl(String accountImageUrl) {
this.accountImageUrl = accountImageUrl;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
package com.gic.haoban.manage.web.vo.content.template;
import java.io.Serializable;
/**
* Created by wangzubo on 2023/10/24.
*/
public class ContentTemplateDetailVO extends ContentTemplateVO implements Serializable {
private static final long serialVersionUID = -4296234499204281253L;
/**
* 模板数据
*/
private String data;
/**
* 替换素材信息
*/
private String slotSet;
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public String getSlotSet() {
return slotSet;
}
public void setSlotSet(String slotSet) {
this.slotSet = slotSet;
}
}
package com.gic.haoban.manage.web.vo.content.template;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.gic.content.api.dto.template.ContentTemplateRelationDTO;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* Created by wangzubo on 2023/10/24.
*/
public class ContentTemplateVO implements Serializable {
private static final long serialVersionUID = -4296234499204281253L;
/**
* 主键
*/
@JsonSerialize(
using = ToStringSerializer.class
)
private Long contentTemplateId;
/**
* 模板id
*/
private String templateId;
/**
* 模板名称
*/
private String templateName;
/**
* url
*/
private String url;
/**
* 预览图
*/
private String preview;
/**
* 时长
*/
private Integer duration;
/**
* 比例
*/
private String scale;
/**
* 可替换素材数量
*/
private Integer slotCount;
/**
* 使用次数
*/
private Integer useCount;
private Date createTime;
private Date updateTime;
private String creatorId;
private String creatorName;
/**
* 关联的类型列表
*/
private List<ContentTemplateRelationDTO> templateTypeList;
public Long getContentTemplateId() {
return contentTemplateId;
}
public void setContentTemplateId(Long contentTemplateId) {
this.contentTemplateId = contentTemplateId;
}
public String getTemplateId() {
return templateId;
}
public void setTemplateId(String templateId) {
this.templateId = templateId;
}
public String getTemplateName() {
return templateName;
}
public void setTemplateName(String templateName) {
this.templateName = templateName;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getPreview() {
return preview;
}
public void setPreview(String preview) {
this.preview = preview;
}
public Integer getDuration() {
return duration;
}
public void setDuration(Integer duration) {
this.duration = duration;
}
public String getScale() {
return scale;
}
public void setScale(String scale) {
this.scale = scale;
}
public Integer getSlotCount() {
return slotCount;
}
public void setSlotCount(Integer slotCount) {
this.slotCount = slotCount;
}
public Integer getUseCount() {
return useCount;
}
public void setUseCount(Integer useCount) {
this.useCount = useCount;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public String getCreatorId() {
return creatorId;
}
public void setCreatorId(String creatorId) {
this.creatorId = creatorId;
}
public String getCreatorName() {
return creatorName;
}
public void setCreatorName(String creatorName) {
this.creatorName = creatorName;
}
public List<ContentTemplateRelationDTO> getTemplateTypeList() {
return templateTypeList;
}
public void setTemplateTypeList(List<ContentTemplateRelationDTO> templateTypeList) {
this.templateTypeList = templateTypeList;
}
}
package com.gic.haoban.manage.web.vo.video;
import java.io.Serializable;
import java.util.List;
/**
* @Author MUSI
* @Date 2023/10/27 11:01 AM
* @Description
* @Version
**/
public class CloudVideoGroupVo implements Serializable {
/**
* 分组id
*/
private String id;
/**
* 分组名称
*/
private String name;
/**
* 企业id
*/
private String enterpriseId;
/**
* 父级id
*/
private String parentId;
/**
* 总数
*/
private Integer count;
/**
* 排序值
*/
private Integer sort;
/**
* 层级
*/
private Integer level;
/**
* 未分组
* 1 未分组
*/
private Integer defaultGroup;
/**
* 子级
*/
private List<CloudVideoGroupVo> childVideoGroupInfos;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
public List<CloudVideoGroupVo> getChildVideoGroupInfos() {
return childVideoGroupInfos;
}
public void setChildVideoGroupInfos(List<CloudVideoGroupVo> childVideoGroupInfos) {
this.childVideoGroupInfos = childVideoGroupInfos;
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
public Integer getLevel() {
return level;
}
public void setLevel(Integer level) {
this.level = level;
}
public Integer getDefaultGroup() {
return defaultGroup;
}
public void setDefaultGroup(Integer defaultGroup) {
this.defaultGroup = defaultGroup;
}
}
package com.gic.haoban.manage.web.vo.video;
import java.io.Serializable;
import java.util.Date;
/**
* @Author MUSI
* @Date 2023/10/27 11:32 AM
* @Description
* @Version
**/
public class CloudVideoInfoVo implements Serializable {
/**
* 视频库id
*/
private String id;
/**
* 图片名称或者文件夹名称
*/
private String name;
/**
* 视频url
*/
private String videoUrl;
/**
* 视频第一针url
*/
private String imageUrl;
/**
* 视频大小(m)
*/
private Double size;
/**
* 视频类型
*/
private String videoType;
/**
* 0:未被引用,1:已被引用
*/
private Integer quoteStatus;
/**
* 企业id
*/
private String enterpriseId;
/**
* 所属分组id
*/
private String parentId;
/**
* 创建时间
*/
private Date createTime;
/**
* 最后更新时间
*/
private Date updateTime;
/**
* 视频来源
* 1 直接上传
* 2 视频模板创作
*/
private Integer sourceType;
/**
* 视频时长
* 单位秒
*/
private Integer duration;
/**
* 视频比例
*/
private String spare;
/**
* 账户类型
* 0 超管
* 1 导购
* 2 区经
*/
private Integer userType;
/**
* 用户id
*/
private String userId;
/**
* 导购code
*/
private String userCode;
/**
* 用户昵称
*/
private String userName;
/**
* 视频所属分组链
*/
private String groupName;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getVideoUrl() {
return videoUrl;
}
public void setVideoUrl(String videoUrl) {
this.videoUrl = videoUrl;
}
public String getImageUrl() {
return imageUrl;
}
public void setImageUrl(String imageUrl) {
this.imageUrl = imageUrl;
}
public Double getSize() {
return size;
}
public void setSize(Double size) {
this.size = size;
}
public String getVideoType() {
return videoType;
}
public void setVideoType(String videoType) {
this.videoType = videoType;
}
public Integer getQuoteStatus() {
return quoteStatus;
}
public void setQuoteStatus(Integer quoteStatus) {
this.quoteStatus = quoteStatus;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getSourceType() {
return sourceType;
}
public void setSourceType(Integer sourceType) {
this.sourceType = sourceType;
}
public Integer getDuration() {
return duration;
}
public void setDuration(Integer duration) {
this.duration = duration;
}
public String getSpare() {
return spare;
}
public void setSpare(String spare) {
this.spare = spare;
}
public Integer getUserType() {
return userType;
}
public void setUserType(Integer userType) {
this.userType = userType;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUserCode() {
return userCode;
}
public void setUserCode(String userCode) {
this.userCode = userCode;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getGroupName() {
return groupName;
}
public void setGroupName(String groupName) {
this.groupName = groupName;
}
}
......@@ -121,6 +121,8 @@
<dubbo:reference interface="com.gic.content.api.service.ContentColumnApiService" id="contentColumnApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.content.api.service.ContentMaterialApiService" id="contentMaterialApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.content.api.service.ContentMaterialShareApiService" id="contentMaterialShareApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.content.api.service.ContentTemplateApiService" id="contentTemplateApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference interface="com.gic.content.api.service.common.ThirdApiService" id="thirdApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference id="settingApiService" interface="com.gic.haoban.app.aggregation.api.service.SettingApiService" timeout="10000" retries="0" check="false"/>
<dubbo:reference id="newDataTargetConfigApiService" interface="com.gic.enterprise.api.service.target.NewDataTargetConfigApiService" timeout="100000" retries="0" check="false" />
......@@ -152,5 +154,11 @@
id="commissionSettleDetailApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.content.api.service.ContentMaterialCommentApiService"
id="contentMaterialCommentApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference id="cmeFileApiService" interface="com.gic.content.api.service.CmeFileApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.content.api.service.ContentAccountApiService" id="contentAccountApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.cloudimage.api.service.CloudVideoApiService" id="cloudVideoApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.enterprise.api.service.content.ValueAddedServicesOrderApiService" id="valueAddedServicesOrderApiService"
timeout="10000" retries="0" check="false"/>
</beans>
......@@ -37,6 +37,7 @@
<list>
<value>text/html;charset=UTF-8</value>
<value>application/x-www-form-urlencoded;charset=UTF-8</value>
<value>text/plain;charset=UTF-8</value>
<!--默认是 iso-8859-1 -->
</list>
</property>
......
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name>Archetype Created Web Application</display-name>
<context-param>
......@@ -23,6 +23,7 @@
<param-value>/WEB-INF/spring-*.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
......@@ -39,6 +40,7 @@
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>ASYNC</dispatcher>
</filter-mapping>
<filter>
......@@ -48,5 +50,6 @@
<filter-mapping>
<filter-name>springSessionRepositoryFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>ASYNC</dispatcher>
</filter-mapping>
</web-app>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment