Commit 3c72c203 by songyinghui

Merge branch 'feature-content5' into developer

parents 6bee972b 8941f4d9
...@@ -257,6 +257,11 @@ ...@@ -257,6 +257,11 @@
<artifactId>haoban-commission-api</artifactId> <artifactId>haoban-commission-api</artifactId>
<version>${haoban-commission-api}</version> <version>${haoban-commission-api}</version>
</dependency> </dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-cloud-image-api</artifactId>
<version>${gic-cloud-image-api}</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.gic.haoban.manage.web.controller.content; 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.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.web.controller.content.adaptor.ClerkStoreAdaptor;
import com.gic.haoban.manage.web.qo.content.account.AccountGenerateQrCodeQo; 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.AccountInfoQo;
import com.gic.haoban.manage.web.qo.content.account.AccountScanResultQo; 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.AccountAuthorizeResultVo;
import com.gic.haoban.manage.web.vo.content.account.AccountAuthorizeVo; import com.gic.haoban.manage.web.vo.content.account.AccountAuthorizeVo;
import com.gic.haoban.manage.web.vo.content.account.ContentAccountInfoVo; import com.gic.haoban.manage.web.vo.content.account.ContentAccountInfoVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 好办-视频号-授权 * 好办-视频号-授权
...@@ -25,6 +41,10 @@ import java.util.List; ...@@ -25,6 +41,10 @@ import java.util.List;
@RequestMapping(path = "/content/account") @RequestMapping(path = "/content/account")
public class ContentAccountController { public class ContentAccountController {
@Autowired
private ContentAccountApiService contentAccountApiService;
@Autowired
private ClerkStoreAdaptor clerkStoreAdaptor;
/** /**
* 查询导购当前账号视频号列表 * 查询导购当前账号视频号列表
...@@ -33,7 +53,27 @@ public class ContentAccountController { ...@@ -33,7 +53,27 @@ public class ContentAccountController {
*/ */
@RequestMapping(path = "/list") @RequestMapping(path = "/list")
private RestResponse<List<ContentAccountInfoVo>> queryAccountList(AccountInfoQo accountInfoQo) { private RestResponse<List<ContentAccountInfoVo>> queryAccountList(AccountInfoQo accountInfoQo) {
return RestResponse.successResult();
ClerkDTO clerkDTO = clerkStoreAdaptor.queryClerkInfo(accountInfoQo.getEnterpriseId(), accountInfoQo.getClerkId());
if (clerkDTO == null) {
return RestResponse.successResult(Collections.emptyList());
}
ContentAccountQDTO contentAccountQDTO = new ContentAccountQDTO();
contentAccountQDTO.setEnterpriseId(accountInfoQo.getEnterpriseId());
contentAccountQDTO.setQueryForClerk(Boolean.TRUE);
contentAccountQDTO.setUserCodes(Collections.singletonList(clerkDTO.getClerkCode()));
contentAccountQDTO.setStoreIds(Collections.singletonList(clerkDTO.getStoreId()));
ServiceResponse<Page<ContentAccountInfoDTO>> serviceResponse =
contentAccountApiService.queryAccountList(contentAccountQDTO);
if (!serviceResponse.isSuccess()) {
return RestResponse.successResult();
}
List<ContentAccountInfoVo> contentAccountInfoVos = serviceResponse.getResult()
.getResult()
.stream()
.map(item -> EntityUtil.changeEntityByJSON(ContentAccountInfoVo.class, item))
.collect(Collectors.toList());
return RestResponse.successResult(contentAccountInfoVos);
} }
...@@ -45,7 +85,15 @@ public class ContentAccountController { ...@@ -45,7 +85,15 @@ public class ContentAccountController {
@ResponseBody @ResponseBody
@RequestMapping(value = "/generate/qrcode") @RequestMapping(value = "/generate/qrcode")
public RestResponse<AccountAuthorizeVo> generateQrCode(AccountGenerateQrCodeQo accountGenerateQrCodeQo) { public RestResponse<AccountAuthorizeVo> generateQrCode(AccountGenerateQrCodeQo accountGenerateQrCodeQo) {
return RestResponse.successResult();
AccountGenerateQrCodeQDTO accountGenerateQrCodeQDTO = new AccountGenerateQrCodeQDTO();
accountGenerateQrCodeQDTO.setEnterpriseId(accountGenerateQrCodeQo.getEnterpriseId());
accountGenerateQrCodeQDTO.setSourceType(ContentAccountQrCodeSourceType.HAOBAN.getCode());
ServiceResponse<AccountAuthorizeDTO> serviceResponse = contentAccountApiService.generateQrCode(accountGenerateQrCodeQDTO);
if (!serviceResponse.isSuccess()) {
return RestResponse.failure("500", "生成二维码异常");
}
return RestResponse.successResult(EntityUtil.changeEntityByJSON(AccountAuthorizeVo.class, serviceResponse.getResult()));
} }
/** /**
...@@ -56,6 +104,12 @@ public class ContentAccountController { ...@@ -56,6 +104,12 @@ public class ContentAccountController {
@ResponseBody @ResponseBody
@RequestMapping(value = "/loop/query/scan/qrcode/result") @RequestMapping(value = "/loop/query/scan/qrcode/result")
public RestResponse<AccountAuthorizeResultVo> queryScanQrCodeResult(AccountScanResultQo accountScanResultQo) { public RestResponse<AccountAuthorizeResultVo> queryScanQrCodeResult(AccountScanResultQo accountScanResultQo) {
return RestResponse.successResult(); 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()));
} }
} }
package com.gic.haoban.manage.web.controller.content.adaptor; 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.StaffClerkRelationDTO; import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.StaffDTO; import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.role.StoreRoleDTO; import com.gic.haoban.manage.api.dto.role.StoreRoleDTO;
...@@ -28,6 +30,8 @@ public class ClerkStoreAdaptor { ...@@ -28,6 +30,8 @@ public class ClerkStoreAdaptor {
private StaffApiService staffApiService; private StaffApiService staffApiService;
@Autowired @Autowired
private StaffClerkRelationApiService staffClerkRelationApiService; private StaffClerkRelationApiService staffClerkRelationApiService;
@Autowired
private ClerkService clerkService;
/** /**
* 查询区经角色下管辖的门店权限 * 查询区经角色下管辖的门店权限
...@@ -73,4 +77,8 @@ public class ClerkStoreAdaptor { ...@@ -73,4 +77,8 @@ public class ClerkStoreAdaptor {
return null; return null;
} }
public ClerkDTO queryClerkInfo(String enterpriseId, String clerkId) {
return clerkService.getClerkByClerkId(clerkId);
}
} }
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.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.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;
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;
}
}
...@@ -157,5 +157,8 @@ ...@@ -157,5 +157,8 @@
id="contentMaterialCommentApiService" timeout="10000" retries="0" check="false" /> 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 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" />
</beans> </beans>
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