Commit 48c3accd by 李传峰

Merge branch 'feature/1007192' into 'master'

feat: [1007192] 【新增】 Rays码配置支持自定义外链

See merge request rays/pcloud-book!1578
parents 35c0f1e8 e90898c1
package com.pcloud.book.group.biz;
import com.pcloud.book.group.entity.ResourcePageOuterLink;
import com.pcloud.common.page.PageBeanNew;
import java.util.List;
/**
* (ResourcePageOuterLink)表服务接口
*
* @author wubo
* @since 2022-05-17 14:14:08
*/
public interface ResourcePageOuterLinkBiz {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
ResourcePageOuterLink getById(Long id);
/**
* 分页查询
*/
PageBeanNew getList(Integer currentPage, Integer numPerPage);
/**
* 新增数据
*
* @param resourcePageOuterLink 实例对象
* @return 主键
*/
Long insert(ResourcePageOuterLink resourcePageOuterLink);
/**
* 修改数据
*
* @param resourcePageOuterLink 实例对象
*/
void update(ResourcePageOuterLink resourcePageOuterLink);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
void deleteById(Long id);
/**
* 通过主键软删除数据
*
* @param id 主键
* @return 是否成功
*/
void softDeleteById(Long id);
/**
* 批量新增
* @param addOuterLink
*/
void batchInsert(List<ResourcePageOuterLink> addOuterLink);
/**
* 批量获取
* @param resourcePageOuterLinkIds
* @return
*/
List<ResourcePageOuterLink> selectList(List<Long> resourcePageOuterLinkIds);
}
package com.pcloud.book.group.biz.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.qrcode.QrCodeException;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.pcloud.advertising.advertising.dto.AdvertisingSpaceDTO;
import com.pcloud.advertising.advertising.dto.AdvertisingSpaceItemDTO;
import com.pcloud.analysisengine.browse.dto.BrowseRecordStatisticDTO;
import com.pcloud.appcenter.app.dto.AppDto;
import com.pcloud.appcenter.app.dto.app.MapBaseStatusDTO;
import com.pcloud.appcenter.app.dto.AppRaysDTO;
import com.pcloud.book.applet.biz.AppletBooklistBiz;
import com.pcloud.book.applet.biz.AppletGroupSearchRecordBiz;
import com.pcloud.book.applet.biz.AppletRecordAggrStatisBiz;
......@@ -56,6 +60,7 @@ import com.pcloud.book.es.biz.ESBookAndAdviserBiz;
import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.biz.ResourcePageBiz;
import com.pcloud.book.group.biz.ResourcePageBookstoreBiz;
import com.pcloud.book.group.biz.ResourcePageOuterLinkBiz;
import com.pcloud.book.group.constant.ResourcePageConstants;
import com.pcloud.book.group.constant.ResourcePageConstants.ServeTypeEnum;
import com.pcloud.book.group.dao.BookAppletSceneDao;
......@@ -96,6 +101,7 @@ import com.pcloud.book.group.entity.ResourcePageCourse;
import com.pcloud.book.group.entity.ResourcePageItem;
import com.pcloud.book.group.entity.ResourcePageModel;
import com.pcloud.book.group.entity.ResourcePageNavigation;
import com.pcloud.book.group.entity.ResourcePageOuterLink;
import com.pcloud.book.group.entity.ResourcePagePic;
import com.pcloud.book.group.entity.ResourcePageShare;
import com.pcloud.book.group.entity.ResourcePageTool;
......@@ -130,13 +136,11 @@ import com.pcloud.book.util.properties.BookProps;
import com.pcloud.channelcenter.base.constants.MessageFromTypeEnum;
import com.pcloud.channelcenter.qrcode.dto.BookSceneIdListDTO;
import com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO;
import com.pcloud.channelcenter.qrcode.dto.OwnMessageDTO;
import com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto;
import com.pcloud.channelcenter.qrcode.entity.NftBookState;
import com.pcloud.channelcenter.qrcode.entity.QrcodeTemp;
import com.pcloud.channelcenter.wechat.dto.AccountSettingDto;
import com.pcloud.channelcenter.wechat.entity.AccountSetting;
import com.pcloud.channelcenter.wechat.entity.Message;
import com.pcloud.combinedmarketing.memberActivity.dto.ActivityBaseInfoWithPriceDTO;
import com.pcloud.common.constant.LinkServeConstant;
import com.pcloud.common.core.aspect.ParamLog;
......@@ -144,7 +148,6 @@ import com.pcloud.common.core.constant.AdviserTaskConstants;
import com.pcloud.common.core.constant.MQTopicProducer;
import com.pcloud.common.core.constant.ProductTypeConstant;
import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.enums.AppTypeEnum;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
......@@ -159,7 +162,6 @@ import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.json.JSONUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import com.pcloud.facade.shareimage.dto.HtmlDto;
import com.pcloud.facade.wxwork.contact.vo.WxContactWayVO;
import com.pcloud.function.douluo.dto.AppTaskDTO;
import com.pcloud.message.common.enums.YesNoEnums;
......@@ -170,7 +172,7 @@ import com.pcloud.resourcecenter.product.dto.ProductLabelDto;
import com.pcloud.resourcecenter.store.dto.SinglePageInfoDTO;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.wechatgroup.wxwork.dto.WxworkGroupQrcodeBaseDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.BooleanUtils;
......@@ -183,6 +185,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Nullable;
import java.io.File;
import java.math.BigDecimal;
import java.net.URLEncoder;
......@@ -329,6 +332,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
private ResourceConsr resourceConsr;
@Autowired
private BookAuthServeBiz bookAuthServeBiz;
@Autowired
private ResourcePageOuterLinkBiz resourcePageOuterLinkBiz;
@Value("${book.share.defaultTitle}")
......@@ -626,7 +631,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
@Override
@Transactional(rollbackFor = Exception.class)
public void updateResourceColumn(UpdateResourceColumnVO updateResourceColumnVO) throws BizException {
updateResourceColumnVO.setShowMore(updateResourceColumnVO.getShowMore() == null ? false : updateResourceColumnVO.getShowMore());
updateResourceColumnVO.setShowMore(updateResourceColumnVO.getShowMore() != null && updateResourceColumnVO.getShowMore());
//栏目校验
this.checkResourceColumn(updateResourceColumnVO);
//新增修改栏目
......@@ -638,6 +643,13 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
createOfficialAccountUrl(resourcePageColumnId, updateResourceColumnVO);
return;
}
// 过滤外链
List<ResourcePageOuterLink> addOuterLink = updateResourceColumnVO.getItemVOList().stream().filter(this::checkIsOutLink)
.map(ResourcePageItemVO::getResourcePageOuterLink).peek(this::checkOutLinkParam).collect(Collectors.toList());
if (CollUtil.isNotEmpty(addOuterLink)) {
addOuterLink.forEach(e -> e.setResourceColumnId(resourcePageColumnId));
resourcePageOuterLinkBiz.batchInsert(addOuterLink);
}
//作品id
List<Long> productIds4Shelve = updateResourceColumnVO.getItemVOList().stream().filter(s->s.getServeType().equals(ResourcePageConstants.ServeTypeEnum.PRODUCT.getValue())).map(ResourcePageItemVO::getServeId).distinct().collect(Collectors.toList());
if (!ListUtils.isEmpty(updateResourceColumnVO.getItemVOList())) {
......@@ -666,6 +678,10 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
if (ResourcePageConstants.ColumnTypeEnum.PICTURE.getCode().equals(updateResourceColumnVO.getColumnType())) {
item.setLogoUrl(updateResourceColumnVO.getLogoUrl());
}
//外链
if (ResourcePageConstants.ColumnTypeEnum.OUTER_LINK.getCode().equals(updateResourceColumnVO.getColumnType())) {
item.setServeId(itemVO.getResourcePageOuterLink().getId());
}
itemList.add(item);
}
resourcePageItemDao.insert(itemList);
......@@ -688,6 +704,27 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
}
}
private void checkOutLinkParam(ResourcePageOuterLink resourcePageOuterLink) {
if (Objects.isNull(resourcePageOuterLink.getOriginId())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "请选择外链渠道!");
}
if (StringUtils.isBlank(resourcePageOuterLink.getJumpUrl())) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "跳转链接不能为空!");
}
if (StringUtils.length(resourcePageOuterLink.getJumpUrl()) > 300) {
throw new BookBizException(BookBizException.PARAM_IS_ERROR, "跳转链接超过最大长度限制【300】!");
}
}
private boolean checkIsOutLink(@Nullable ResourcePageItemVO resourcePageItemVO) {
return Objects.nonNull(resourcePageItemVO) &&
Objects.equals(ServeTypeEnum.OUTER_LINK.getValue(), resourcePageItemVO.getServeType())
&& Objects.nonNull(resourcePageItemVO.getResourcePageOuterLink());
}
private void checkResourceColumn(UpdateResourceColumnVO updateResourceColumnVO) throws BizException {
if (null != updateResourceColumnVO.getShowMore() && updateResourceColumnVO.getShowMore() && null == updateResourceColumnVO.getShowCount()) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少展示更多数量");
......@@ -701,7 +738,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
(null == itemVO.getLinkFrom() || StringUtil.isEmpty(itemVO.getLinkUrl()))) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少书刊链接来源");
}
if (!ResourcePageConstants.ServeTypeEnum.OFFICIAL_ACCOUNT.getValue().equals(itemVO.getServeType())
if (!(ResourcePageConstants.ServeTypeEnum.OFFICIAL_ACCOUNT.getValue().equals(itemVO.getServeType()) ||
ResourcePageConstants.ServeTypeEnum.OUTER_LINK.getValue().equals(itemVO.getServeType()))
&& (null == itemVO.getServeId() || StringUtil.isEmpty(itemVO.getServeType()))) {
throw new BookBizException(BookBizException.PARAM_IS_NULL, "缺少资源id或类型");
}
......@@ -4324,6 +4362,7 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
if (ListUtils.isEmpty(resourcePageItemVOList)) {
return new ArrayList<>();
}
fillOuterLink(resourcePageItemVOList);
fillSelfPic(resourcePageItemVOList);
try {
fillJumpUrl(resourcePageItemVOList, wechatUserId, resourcePageId, officialAccountsId, bookId, adviserId, channelId);
......@@ -4333,6 +4372,23 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
return serveVOS;
}
public void fillOuterLink(List<ResourcePageItemVO> resourcePageItemVOList) {
if (CollUtil.isEmpty(resourcePageItemVOList)) {
return;
}
List<Long> resourcePageOuterLinkIds = resourcePageItemVOList.stream().filter(s -> ServeTypeEnum.OUTER_LINK.getValue().
equals(s.getServeType())).map(e -> e.getServeId()).collect(Collectors.toList());
if (CollUtil.isEmpty(resourcePageOuterLinkIds)) {
return;
}
List<ResourcePageOuterLink> resourcePageOuterLinks = resourcePageOuterLinkBiz.selectList(resourcePageOuterLinkIds);
if (CollUtil.isEmpty(resourcePageOuterLinks)) {
return;
}
Map<Long, ResourcePageOuterLink> resourcePageOuterLinkMap = resourcePageOuterLinks.stream().collect(Collectors.toMap(ResourcePageOuterLink::getId, Function.identity(), (K1, K2) -> (K1)));
resourcePageItemVOList.stream().forEach(e -> e.setResourcePageOuterLink(resourcePageOuterLinkMap.get(e.getServeId())));
}
/**
* @Description 设置栏目其他信息
* @Author zhuyajie
......@@ -4340,6 +4396,8 @@ public class ResourcePageBizImpl implements ResourcePageBiz {
**/
private List<ResourceColumnAndServeVO> setPageColumnOther(List<ResourceColumnAndServeVO> serveVOS,List<ResourcePageItemVO> itemVOList) {
List<ResourceColumnAndServeVO> removeColumns = new ArrayList<>();
// 填充外链
fillOuterLink(itemVOList);
Map<Long, List<ResourcePageItemVO>> columnMap = itemVOList.stream().collect(Collectors.groupingBy(ResourcePageItemVO::getResourcePageColumnId));
for (ResourceColumnAndServeVO columnAndServeVO : serveVOS) {
List<ResourcePageItemVO> itemVOS = columnMap.get(columnAndServeVO.getResourcePageColumnId());
......
package com.pcloud.book.group.biz.impl;
import cn.hutool.core.collection.CollUtil;
import com.pcloud.book.group.entity.ResourcePageOuterLink;
import com.pcloud.book.group.dao.ResourcePageOuterLinkDao;
import com.pcloud.book.group.biz.ResourcePageOuterLinkBiz;
import com.pcloud.common.core.aspect.ParamLog;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.page.PageParam;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.utils.ListUtils;
import com.pcloud.common.utils.NumberUtil;
import org.apache.regexp.RE;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* (ResourcePageOuterLink)表服务实现类
*
* @author wubo
* @since 2022-05-17 14:14:08
*/
@Service("resourcePageOuterLinkBiz")
public class ResourcePageOuterLinkBizImpl implements ResourcePageOuterLinkBiz {
private static final Logger LOGGER = LoggerFactory.getLogger(ResourcePageOuterLinkBizImpl.class);
@Autowired
private ResourcePageOuterLinkDao resourcePageOuterLinkDao;
@Override
@ParamLog("通过ID查询单条数据")
public ResourcePageOuterLink getById(Long id) {
return resourcePageOuterLinkDao.getById(id);
}
@Override
@ParamLog("查询多条数据")
public PageBeanNew getList(Integer currentPage, Integer numPerPage) {
PageBeanNew pageBeanNew = resourcePageOuterLinkDao.listPageNew(new PageParam(currentPage, numPerPage), null, "getList");
List recordList = pageBeanNew.getRecordList();
if (ListUtils.isEmpty(recordList)){
return pageBeanNew;
}
// 加载其它数据
return pageBeanNew;
}
@Override
@ParamLog("新增")
public Long insert(ResourcePageOuterLink resourcePageOuterLink) {
resourcePageOuterLinkDao.insert(resourcePageOuterLink);
return resourcePageOuterLink.getId();
}
@Override
@ParamLog("修改")
public void update(ResourcePageOuterLink resourcePageOuterLink) {
if(resourcePageOuterLink == null || !NumberUtil.isNumber(resourcePageOuterLink.getId())){
throw BizException.PARAM_IS_NULL;
}
resourcePageOuterLinkDao.update(resourcePageOuterLink);
}
@Override
@ParamLog("删除")
public void deleteById(Long id) {
resourcePageOuterLinkDao.deleteById(id);
}
@Override
@ParamLog("软删除")
public void softDeleteById(Long id) {
resourcePageOuterLinkDao.softDeleteById(id);
}
@Override
public void batchInsert(List<ResourcePageOuterLink> addOuterLink) {
resourcePageOuterLinkDao.insert(addOuterLink);
}
@Override
public List<ResourcePageOuterLink> selectList(List<Long> resourcePageOuterLinkIds) {
if (CollUtil.isEmpty(resourcePageOuterLinkIds)) {
return new ArrayList<>();
}
List<ResourcePageOuterLink> resourcePageOuterLinks = resourcePageOuterLinkDao.selectList(resourcePageOuterLinkIds);
return resourcePageOuterLinks;
}
}
......@@ -33,7 +33,8 @@ public class ResourcePageConstants {
ServeTypeEnum.GROUP_ACTIVITY.getValue(), ServeTypeEnum.THIRD_RESOURCE.getValue(), ServeTypeEnum.NO_SERVE.value}),
RAYS_TOOL(7,"RAYS工具",new String[]{ServeTypeEnum.APP.getValue()}),
MEMBER_ACTIVITY(8,"平台会员活动", new String[]{ServeTypeEnum.MEMBER_ACTIVITY.getValue()}),
CHANNEL_SHOP(9,"运营商城", new String[]{ServeTypeEnum.SHOP.getValue()});
CHANNEL_SHOP(9,"运营商城", new String[]{ServeTypeEnum.SHOP.getValue()}),
OUTER_LINK(10,"外链",new String[]{ServeTypeEnum.OUTER_LINK.getValue()});
private Integer code;
private String name;
......@@ -89,7 +90,8 @@ public class ResourcePageConstants {
MEMBER_ACTIVITY("MEMBER_ACTIVITY","平台会员活动"),
NO_SERVE("NO_SERVE","无服务"),
SHOP("SHOP","运营商城"),
RESOURCE("RESOURCE","素材");
RESOURCE("RESOURCE","素材"),
OUTER_LINK("OUTER_LINK","外链");
private String value;
......
package com.pcloud.book.group.dao;
import com.pcloud.book.group.entity.ResourcePageOuterLink;
import com.pcloud.common.core.dao.BaseDao;
import java.util.List;
/**
* (ResourcePageOuterLink)表数据库访问层
*
* @author wubo
* @since 2022-05-17 14:14:07
*/
public interface ResourcePageOuterLinkDao extends BaseDao<ResourcePageOuterLink> {
int softDeleteById(Long id);
List<ResourcePageOuterLink> selectList(List<Long> resourcePageOuterLinkIds);
}
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.entity.ResourcePageOuterLink;
import com.pcloud.book.group.dao.ResourcePageOuterLinkDao;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Repository;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* (ResourcePageOuterLink)表数据库访问层
*
* @author wubo
* @since 2022-05-17 14:14:07
*/
@Repository("resourcePageOuterLinkDaoImpl")
public class ResourcePageOuterLinkDaoImpl extends BaseDaoImpl<ResourcePageOuterLink> implements ResourcePageOuterLinkDao {
public int softDeleteById(Long id) {
return getSessionTemplate().update(getStatement("softDeleteById"), id);
}
@Override
public List<ResourcePageOuterLink> selectList(List<Long> resourcePageOuterLinkIds) {
return getSessionTemplate().selectList(getStatement("selectList"), resourcePageOuterLinkIds);
}
}
package com.pcloud.book.group.entity;
import java.util.Date;
import java.math.BigDecimal;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pcloud.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* (ResourcePageOuterLink)实体类
*
* @author wubo
* @since 2022-05-17 14:14:00
*/
@Data
public class ResourcePageOuterLink extends BaseEntity {
private static final long serialVersionUID = -76290868156645860L;
@ApiModelProperty("主键ID")
private Long id;
@ApiModelProperty("1哔哩哔哩 2抖音 3 小红书 4 快手")
private Long originId;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("描述")
private String description;
@ApiModelProperty("跳转链接")
private String jumpUrl;
@ApiModelProperty("创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("更新时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
@ApiModelProperty("删除状态 ")
private Integer isDelete;
@ApiModelProperty("配置页组件id")
private Long resourceColumnId;
}
package com.pcloud.book.group.facade;
import com.pcloud.book.group.entity.ResourcePageOuterLink;
import com.pcloud.book.group.biz.ResourcePageOuterLinkBiz;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;
import io.swagger.annotations.ApiOperation;
/**
* (ResourcePageOuterLink)表控制层
*
* @author wubo
* @since 2022-05-17 14:14:08
*/
@RestController("resourcePageOuterLinkFacade")
@RequestMapping("resourcePageOuterLink")
public class ResourcePageOuterLinkFacade {
@Autowired
private ResourcePageOuterLinkBiz resourcePageOuterLinkBiz;
@ApiOperation("通过主键查询单条数据")
@GetMapping("getById")
public ResponseDto<?> getById(@RequestHeader("token") String token, @RequestParam Long id) throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(resourcePageOuterLinkBiz.getById(id));
}
@ApiOperation("分页查询")
@GetMapping("getList")
public ResponseDto<?> getList(@RequestHeader("token") String token,
@RequestParam(value = "currentPage", defaultValue = "0") Integer currentPage,
@RequestParam(value = "numPerPage", defaultValue = "10") Integer numPerPage)
throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(resourcePageOuterLinkBiz.getList(currentPage, numPerPage));
}
@ApiOperation("新增")
@PostMapping("insert")
public ResponseDto<?> insert(@RequestHeader("token") String token, @RequestBody ResourcePageOuterLink resourcePageOuterLink)
throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
return new ResponseDto<>(resourcePageOuterLinkBiz.insert(resourcePageOuterLink));
}
@ApiOperation("更新")
@PostMapping("update")
public ResponseDto<?> update(@RequestHeader("token") String token,@RequestBody ResourcePageOuterLink resourcePageOuterLink) throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
resourcePageOuterLinkBiz.update(resourcePageOuterLink);
return new ResponseDto<>();
}
@ApiOperation("删除")
@GetMapping("deleteById")
public ResponseDto<?> deleteById(@RequestHeader("token") String token, @RequestParam Long id) throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
if (null == id) {
throw BizException.PARAM_DELETION;
}
resourcePageOuterLinkBiz.deleteById(id);
return new ResponseDto<>();
}
@ApiOperation("软删除")
@GetMapping("softDeleteById")
public ResponseDto<?> softDeleteById(@RequestHeader("token") String token, @RequestParam Long id) throws BizException, PermissionException {
SessionUtil.getToken4Redis(token);
if (null == id) {
throw BizException.PARAM_DELETION;
}
resourcePageOuterLinkBiz.softDeleteById(id);
return new ResponseDto<>();
}
}
......@@ -4,6 +4,7 @@ import com.pcloud.book.applet.dto.AppletOuterBooklistDTO;
import com.pcloud.book.applet.dto.GroupActivity4AppletDTO;
import com.pcloud.book.applet.entity.AppletThirdResources;
import com.pcloud.book.book.vo.response.BookQrcodeWxworkResponseVO;
import com.pcloud.book.group.entity.ResourcePageOuterLink;
import com.pcloud.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -92,6 +93,8 @@ public class ResourcePageItemVO extends BaseDto{
private AppletThirdResources appletThirdResources;
@ApiModelProperty("企业微信群")
private BookQrcodeWxworkResponseVO bookQrcodeWxworkResponseVO;
@ApiModelProperty("外链")
private ResourcePageOuterLink resourcePageOuterLink;
private Long sceneId;
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.pcloud.book.group.dao.impl.ResourcePageOuterLinkDaoImpl">
<resultMap id="BaseResultMap" type="com.pcloud.book.group.entity.ResourcePageOuterLink">
<id column="id" property="id" jdbcType="BIGINT"/>
<result column="origin_id" property="originId" jdbcType="BIGINT"/>
<result column="title" property="title" jdbcType="VARCHAR"/>
<result column="description" property="description" jdbcType="VARCHAR"/>
<result column="jump_url" property="jumpUrl" jdbcType="VARCHAR"/>
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="is_delete" property="isDelete" jdbcType="INTEGER"/>
<result column="resource_column_id" property="resourceColumnId" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
id, origin_id, title, description, jump_url, create_time, update_time, is_delete, resource_column_id
</sql>
<select id="getById" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM resource_page_outer_link
WHERE id = #{id}
</select>
<select id="getList" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM resource_page_outer_link
</select>
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
INSERT INTO resource_page_outer_link(
origin_id,
title,
description,
jump_url,
create_time,
update_time,
is_delete,
resource_column_id
) VALUES (
#{originId, jdbcType=BIGINT},
#{title, jdbcType=VARCHAR},
#{description, jdbcType=VARCHAR},
#{jumpUrl, jdbcType=VARCHAR},
#{createTime, jdbcType=TIMESTAMP},
#{updateTime, jdbcType=TIMESTAMP},
#{isDelete, jdbcType=INTEGER},
#{resourceColumnId, jdbcType=BIGINT}
)
</insert>
<insert id="batchInsert" keyProperty="id" useGeneratedKeys="true">
INSERT INTO resource_page_outer_link (
origin_id,
title,
description,
jump_url,
create_time,
update_time,
is_delete,
resource_column_id
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.originId, jdbcType=BIGINT},
#{item.title, jdbcType=VARCHAR},
#{item.description, jdbcType=VARCHAR},
#{item.jumpUrl, jdbcType=VARCHAR},
now(),
now(),
0,
#{item.resourceColumnId, jdbcType=BIGINT}
)
</foreach>
</insert>
<!--通过主键修改数据-->
<update id="update">
UPDATE resource_page_outer_link
<set>
<if test="originId != null">
origin_id = #{originId},
</if>
<if test="title != null and title != ''">
title = #{title},
</if>
<if test="description != null and description != ''">
description = #{description},
</if>
<if test="jumpUrl != null and jumpUrl != ''">
jump_url = #{jumpUrl},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
<if test="isDelete != null">
is_delete = #{isDelete},
</if>
<if test="resourceColumnId != null">
resource_column_id = #{resourceColumnId},
</if>
</set>
WHERE id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
DELETE FROM resource_page_outer_link where id = #{id}
</delete>
<!--通过主键软删除-->
<delete id="softDeleteById">
update resource_page_outer_link set is_delete = 1, update_time = now() where id = #{id}
</delete>
<select id="selectList" parameterType="list" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
FROM
resource_page_outer_link
where
id in
<foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</select>
</mapper>
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