Commit c41f4de5 by 徐高华

Merge branch 'xgh_内容中台' into 'developer'

Xgh 内容中台

See merge request !450
parents 21c38e34 ef1e8b40
......@@ -78,21 +78,6 @@
<version>2.6.12</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>haoban-data-api</artifactId>
<version>${haoban-data-api}</version>
......@@ -219,6 +204,11 @@
<artifactId>gic-integral-mall-api</artifactId>
<version>${gic-integral-mall-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-content-api</artifactId>
<version>${gic-content-api}</version>
</dependency>
</dependencies>
<build>
......
......@@ -40,7 +40,7 @@ public class UploadController extends WebBaseController {
private EnterpriseService enterpriseService ;
@RequestMapping("upload-img")
@RequestMapping("upload-img-fee")
@IgnoreLogin
public HaobanResponse imgUpload(HttpServletRequest request) throws Exception {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
......@@ -74,7 +74,7 @@ public class UploadController extends WebBaseController {
}
// fileType image:图片 video:视频 file:文件 audio音频 other:其它
@RequestMapping("upload-img-fee")
@RequestMapping("upload-img")
@IgnoreLogin
public HaobanResponse imgUploadFee(HttpServletRequest request , String fileType , String enterpriseId) throws Exception {
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
......
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.commons.webapi.reponse.RestResponse;
import com.gic.content.api.dto.column.ContentColumnListDTO;
import com.gic.content.api.dto.material.ContentMaterialFrontDTO;
import com.gic.content.api.dto.material.ContentMaterialShareInfoDTO;
import com.gic.content.api.qdto.material.ContentMaterialPageFrontQDTO;
import com.gic.content.api.qdto.material.ContentMaterialShareQDTO;
import com.gic.content.api.service.ContentColumnApiService;
import com.gic.content.api.service.ContentMaterialApiService;
import com.gic.content.api.service.ContentMaterialShareApiService;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.manage.web.qo.content.ContentMaterialQO;
import com.gic.haoban.manage.web.qo.content.ContentMaterialShareQO;
import com.gic.haoban.manage.web.vo.content.ContentColumnInfoVO;
import com.gic.haoban.manage.web.vo.content.ContentMaterialInfoVO;
import com.gic.haoban.manage.web.vo.content.ContentMaterialShareInfoVO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collections;
import java.util.List;
/**
* @Author MUSI
* @Date 2022/11/14 6:06 PM
* @Description
* @Version
**/
@RestController
public class ContentMaterialController {
@Autowired
private ContentColumnApiService contentColumnApiService;
@Autowired
private ContentMaterialApiService contentMaterialApiService;
@Autowired
private ContentMaterialShareApiService contentMaterialShareApiService;
/**
* 获取栏目筛选条件
* @param enterpriseId
* @return
*/
@RequestMapping(path = "/column-list")
public RestResponse<List<ContentColumnInfoVO>> queryContentColumn(String enterpriseId){
ServiceResponse<List<ContentColumnListDTO>> serviceResponse = contentColumnApiService.listColumn(enterpriseId, 1);
if (!serviceResponse.isSuccess() || CollectionUtils.isEmpty(serviceResponse.getResult())){
return RestResponse.successResult(Collections.emptyList());
}
List<ContentColumnInfoVO> contentColumnInfos = EntityUtil.changeEntityListByJSON(ContentColumnInfoVO.class, serviceResponse.getResult());
return RestResponse.successResult(contentColumnInfos);
}
/**
*
* 素材列表
*
* @return
*/
@RequestMapping(path = "/content-material-list")
public RestResponse<Page<ContentMaterialInfoVO>> queryContentMaterialList(@RequestBody ContentMaterialQO contentMaterialQO){
ContentMaterialPageFrontQDTO contentMaterialPageFrontQDTO = new ContentMaterialPageFrontQDTO();
contentMaterialPageFrontQDTO.setEnterpriseId(contentMaterialQO.getEnterpriseId());
contentMaterialPageFrontQDTO.setKeyWord(contentMaterialQO.getSearch());
contentMaterialPageFrontQDTO.setContentColumnId(contentMaterialQO.getContentColumnId());
if (contentMaterialQO.getSortType() != null){
if (contentMaterialQO.getSortType() == 2){
contentMaterialPageFrontQDTO.setHotFlag(1);
}else if (contentMaterialQO.getSortType() == 3){
contentMaterialPageFrontQDTO.setMaterialType(4);
}
}
BasePageInfo pageInfo = new BasePageInfo();
pageInfo.setPageNum(contentMaterialQO.getPageNum());
pageInfo.setPageSize(contentMaterialQO.getPageSize());
ServiceResponse<Page<ContentMaterialFrontDTO>> serviceResponse = contentMaterialApiService.pageMaterialFront(contentMaterialPageFrontQDTO, pageInfo);
if (!serviceResponse.isSuccess() || CollectionUtils.isEmpty(serviceResponse.getResult().getResult())){
return RestResponse.successResult(new Page<>());
}
Page<ContentMaterialFrontDTO> responseResult = serviceResponse.getResult();
Page<ContentMaterialInfoVO> result = new Page<>();
result.setTotalCount(responseResult.getTotalCount());
List<ContentMaterialInfoVO> contentMaterialInfos = EntityUtil.changeEntityListByJSON(ContentMaterialInfoVO.class, responseResult.getResult());
result.setResult(contentMaterialInfos);
return RestResponse.successResult(result);
}
/**
* 分享商品素材
* @param contentMaterialShareQO
* @return
*/
@RequestMapping(path = "/share-content-material")
public RestResponse<ContentMaterialShareInfoVO> shareContentMaterial(ContentMaterialShareQO contentMaterialShareQO){
if (StringUtils.isAnyBlank(contentMaterialShareQO.getEnterpriseId())){
return RestResponse.failure("-777", "企业参数异常");
}
if (StringUtils.isBlank(contentMaterialShareQO.getGoodsId())){
// 无商品id 不生成参数
return RestResponse.successResult();
}
ContentMaterialShareQDTO contentMaterialShareQDTO = new ContentMaterialShareQDTO();
contentMaterialShareQDTO.setEnterpriseId(contentMaterialShareQO.getEnterpriseId());
contentMaterialShareQDTO.setGoodsId(contentMaterialShareQO.getEnterpriseId());
contentMaterialShareQDTO.setContentMaterialId(contentMaterialShareQO.getContentMaterialId());
contentMaterialShareQDTO.setClerkId(contentMaterialShareQO.getClerkId());
contentMaterialShareQDTO.setStoreId(contentMaterialShareQO.getStoreId());
ServiceResponse<ContentMaterialShareInfoDTO> serviceResponse = contentMaterialShareApiService.shareContentMaterial(contentMaterialShareQDTO);
if (!serviceResponse.isSuccess()){
return RestResponse.failure(serviceResponse.getCode(), serviceResponse.getMessage());
}
ContentMaterialShareInfoVO shareInfoVO = new ContentMaterialShareInfoVO();
BeanUtils.copyProperties(serviceResponse.getResult(), shareInfoVO);
return RestResponse.successResult(shareInfoVO);
}
}
......@@ -44,7 +44,7 @@ public class QwMessageController extends WebBaseController {
* 群发-分享 - 店员和店长
*/
@RequestMapping("/message-send")
public RestResponse<Object> messageSend(CustomerQO qo, String imgJson, String selectedStoreId) {
public RestResponse<Object> messageSend(CustomerQO qo, String imgJson, String selectedStoreId , Long contentMaterialId) {
CustomerDTO params = EntityUtil.changeEntityByJSON(CustomerDTO.class, qo);
String clerkId = qo.getClerkId();
String wxEnterpriseId = qo.getWxEnterpriseId();
......@@ -87,6 +87,7 @@ public class QwMessageController extends WebBaseController {
json.put("storeId", storeId);
json.put("staffId", staffId);
json.put("content", qo.getContent()) ;
json.put("contentMaterialId", contentMaterialId) ;
// 群发-分享
json.put("sendType", 1);
json.put("wxEnterpriseId", wxEnterpriseId);
......@@ -102,7 +103,7 @@ public class QwMessageController extends WebBaseController {
// 朋友圈任务 - 店长和区经
@RequestMapping("/add_moment_task")
public RestResponse<Object> share(CustomerQO qo, String imgJson) {
public RestResponse<Object> share(CustomerQO qo, String imgJson ,Long contentMaterialId) {
String clerkId = qo.getClerkId();
String wxEnterpriseId = qo.getWxEnterpriseId();
String enterpriseId = qo.getEnterpriseId();
......@@ -135,6 +136,7 @@ public class QwMessageController extends WebBaseController {
json.put("sendType", 2);
json.put("wxEnterpriseId", wxEnterpriseId);
json.put("content", qo.getContent()) ;
json.put("contentMaterialId", contentMaterialId) ;
String ret = json.toJSONString();
try {
GICMQClientUtil.getClientInstance().sendCommonMessage("haobanCommonRouter", ret,
......
package com.gic.haoban.manage.web.qo.content;
import com.gic.commons.web.qo.PageQo;
/**
* @Author MUSI
* @Date 2022/10/28 1:38 PM
* @Description
* @Version
**/
public class ContentMaterialQO extends PageQo {
/**
* 企业id
*/
private String enterpriseId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 1 最新; 2 最热; 3 视频
*/
private Integer sortType;
/**
* 素材搜索
*/
private String search;
/**
* 栏目id
*/
private Long contentColumnId;
public Integer getSortType() {
return sortType;
}
public void setSortType(Integer sortType) {
this.sortType = sortType;
}
public String getSearch() {
return search;
}
public void setSearch(String search) {
this.search = search;
}
public Long getContentColumnId() {
return contentColumnId;
}
public void setContentColumnId(Long contentColumnId) {
this.contentColumnId = contentColumnId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
}
package com.gic.haoban.manage.web.qo.content;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2022/10/28 4:09 PM
* @Description
* @Version
**/
public class ContentMaterialShareQO implements Serializable {
private static final long serialVersionUID = -3604528577220428693L;
/**
* 企业id
*/
private String enterpriseId;
/**
* 商品id
*/
private String goodsId;
/**
* 商品货号
*/
private String goodsCode;
/**
* 素材id
*/
private Long contentMaterialId;
/**
* 导购id
*/
private String clerkId;
/**
* 门店id
*/
private String storeId;
/**
* 门店code
*/
private String storeCode;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public Long getContentMaterialId() {
return contentMaterialId;
}
public void setContentMaterialId(Long contentMaterialId) {
this.contentMaterialId = contentMaterialId;
}
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 getStoreCode() {
return storeCode;
}
public void setStoreCode(String storeCode) {
this.storeCode = storeCode;
}
public String getGoodsCode() {
return goodsCode;
}
public void setGoodsCode(String goodsCode) {
this.goodsCode = goodsCode;
}
}
package com.gic.haoban.manage.web.vo.content;
import java.io.Serializable;
import java.util.List;
/**
* 栏目基础信息对象
* @Author MUSI
* @Date 2022/10/27 5:00 PM
* @Description
* @Version
**/
public class ContentColumnInfoVO implements Serializable {
/**
* 栏目id
*/
private Long contentColumnId;
/**
* 栏目名称
*/
private String contentColumnName;
/**
* 子级栏目
*/
private List<ContentColumnInfoVO> childrenColumn;
public Long getContentColumnId() {
return contentColumnId;
}
public void setContentColumnId(Long contentColumnId) {
this.contentColumnId = contentColumnId;
}
public String getContentColumnName() {
return contentColumnName;
}
public void setContentColumnName(String contentColumnName) {
this.contentColumnName = contentColumnName;
}
public List<ContentColumnInfoVO> getChildrenColumn() {
return childrenColumn;
}
public void setChildrenColumn(List<ContentColumnInfoVO> childrenColumn) {
this.childrenColumn = childrenColumn;
}
}
package com.gic.haoban.manage.web.vo.content;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Author MUSI
* @Date 2022/10/28 1:52 PM
* @Description
* @Version
**/
public class ContentMaterialInfoVO implements Serializable {
private static final long serialVersionUID = 3274097803200172473L;
/**
* 素材id
*/
private Integer contentMaterialId;
/**
* 素材标题
*/
private String materialTitle;
/**
* 素材内容
*/
private String materialContent;
/**
* 素材类型1图文2纯文字3纯图片4视频
*/
private Integer materialType;
/**
* 发布时间
*/
private Date publishTime;
/**
* 素材图片
*/
private List<String> materialImageUrls;
/**
* 素材视频链接
*/
private String materialVideoUrl;
/**
* 素材视频封面链接
*/
private String materialVideoImageUrl;
/**
* 素材视频第一帧url
*/
private String materialVideoFirstImageUrl;
/**
* 分享次数
*/
private Integer shareCount;
/**
* 发布人id
*/
private String producerId;
/**
* 发布人头像
*/
private String avatar;
/**
* 发布人昵称
*/
private String nickName;
/**
* 商品列表
*/
private List<SimpleGoodsInfoVO> contentGoodsList;
public Integer getContentMaterialId() {
return contentMaterialId;
}
public void setContentMaterialId(Integer contentMaterialId) {
this.contentMaterialId = contentMaterialId;
}
public String getMaterialTitle() {
return materialTitle;
}
public void setMaterialTitle(String materialTitle) {
this.materialTitle = materialTitle;
}
public String getMaterialContent() {
return materialContent;
}
public void setMaterialContent(String materialContent) {
this.materialContent = materialContent;
}
public Integer getMaterialType() {
return materialType;
}
public void setMaterialType(Integer materialType) {
this.materialType = materialType;
}
public Date getPublishTime() {
return publishTime;
}
public void setPublishTime(Date publishTime) {
this.publishTime = publishTime;
}
public List<String> getMaterialImageUrls() {
return materialImageUrls;
}
public void setMaterialImageUrls(List<String> materialImageUrls) {
this.materialImageUrls = materialImageUrls;
}
public String getMaterialVideoUrl() {
return materialVideoUrl;
}
public void setMaterialVideoUrl(String materialVideoUrl) {
this.materialVideoUrl = materialVideoUrl;
}
public String getMaterialVideoImageUrl() {
return materialVideoImageUrl;
}
public void setMaterialVideoImageUrl(String materialVideoImageUrl) {
this.materialVideoImageUrl = materialVideoImageUrl;
}
public String getMaterialVideoFirstImageUrl() {
return materialVideoFirstImageUrl;
}
public void setMaterialVideoFirstImageUrl(String materialVideoFirstImageUrl) {
this.materialVideoFirstImageUrl = materialVideoFirstImageUrl;
}
public Integer getShareCount() {
return shareCount;
}
public void setShareCount(Integer shareCount) {
this.shareCount = shareCount;
}
public String getProducerId() {
return producerId;
}
public void setProducerId(String producerId) {
this.producerId = producerId;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public List<SimpleGoodsInfoVO> getContentGoodsList() {
return contentGoodsList;
}
public void setContentGoodsList(List<SimpleGoodsInfoVO> contentGoodsList) {
this.contentGoodsList = contentGoodsList;
}
}
package com.gic.haoban.manage.web.vo.content;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2022/10/28 4:12 PM
* @Description
* @Version
**/
public class ContentMaterialShareInfoVO implements Serializable {
/**
* 素材文案
*/
private String materialContentWithLink;
/**
* 商品短链
*/
private String goodsShortLink;
/**
* 商品二维码
*/
private String goodsQrcode;
public String getMaterialContentWithLink() {
return materialContentWithLink;
}
public void setMaterialContentWithLink(String materialContentWithLink) {
this.materialContentWithLink = materialContentWithLink;
}
public String getGoodsShortLink() {
return goodsShortLink;
}
public void setGoodsShortLink(String goodsShortLink) {
this.goodsShortLink = goodsShortLink;
}
public String getGoodsQrcode() {
return goodsQrcode;
}
public void setGoodsQrcode(String goodsQrcode) {
this.goodsQrcode = goodsQrcode;
}
}
package com.gic.haoban.manage.web.vo.content;
import java.io.Serializable;
/**
* @Author MUSI
* @Date 2022/10/28 2:00 PM
* @Description
* @Version
**/
public class SimpleGoodsInfoVO implements Serializable {
/**
* 商品id
*/
private String goodsId;
/**
* 商品图片
*/
private String goodsImageUrl;
/**
* 商品货号
*/
private String goodsCode;
/**
* 商品名称
*/
private String goodsName;
/**
* 商品库存
*/
private Integer spuStock;
public String getGoodsId() {
return goodsId;
}
public void setGoodsId(String goodsId) {
this.goodsId = goodsId;
}
public String getGoodsImageUrl() {
return goodsImageUrl;
}
public void setGoodsImageUrl(String goodsImageUrl) {
this.goodsImageUrl = goodsImageUrl;
}
public String getGoodsCode() {
return goodsCode;
}
public void setGoodsCode(String goodsCode) {
this.goodsCode = goodsCode;
}
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public Integer getSpuStock() {
return spuStock;
}
public void setSpuStock(Integer spuStock) {
this.spuStock = spuStock;
}
}
......@@ -112,4 +112,8 @@
<dubbo:reference interface="com.gic.haoban.manage.api.service.role.HaobanRoleApiService" id="haobanRoleApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.role.HaobanMenuApiService" id="haobanMenuApiService"/>
<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"/>
</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