记得上下班打卡 | git大法好,push需谨慎

Commit c70f7797 authored by jiangxiulong's avatar jiangxiulong

banners 添加/编辑接口重新完善 增加表和字段

parent 96e3957e
...@@ -9,5 +9,6 @@ public class KylinRedisConst { ...@@ -9,5 +9,6 @@ public class KylinRedisConst {
public static final String TIMES = "kylin:times:id"; public static final String TIMES = "kylin:times:id";
public static final String BANNERS = "kylin:banners:id"; public static final String BANNERS = "kylin:banners:banners";
public static final String BANNERSRELATIONS = "kylin:banners:banners_relations";
} }
...@@ -6,8 +6,11 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -6,8 +6,11 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.List;
/** /**
* <p> * <p>
...@@ -19,39 +22,58 @@ import java.time.LocalDateTime; ...@@ -19,39 +22,58 @@ import java.time.LocalDateTime;
@Data @Data
public class BannersParam implements Serializable { public class BannersParam implements Serializable {
@ApiModelProperty(value = "Banner主键ID", example = "4345ASGMTG66") @ApiModelProperty(value = "Banner主键ID", example = "9822346783245")
private String bannersId; private String bannersId;
@ApiModelProperty(value = "标题", required = true, example = "这是一个banner标题") @ApiModelProperty(value = "标题", required = true, example = "这是一个banner标题")
private String name; @NotBlank(message = "请填写标题")
private String bannersName;
@ApiModelProperty(value = "封面图", required = true, example = "https://img.zhengzai.tv/partner/2019/05/14/5cda2d0520177.png") @ApiModelProperty(value = "封面图", required = true, example = "https://img.zhengzai.tv/partner/2019/05/14/5cda2d0520177.png")
@NotBlank(message = "请上传封面图")
private String coverImg; private String coverImg;
@ApiModelProperty(value = "跳转目标id或者url", required = true, example = "https://img.zhengzai.tv/partner/2019/05/14/5cda2d0520177.png") @ApiModelProperty(value = "跳转类型 具体类型有接口提供", required = true, example = "6")
private String targetId; @Min(value = 1, message = "请选择跳转类型")
private Integer targetType;
@ApiModelProperty(value = "跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转", required = true, example = "6") @ApiModelProperty(value = "跳转目标id或者url 不跳转则为空", example = "https://img.zhengzai.tv/partner/2019/05/14/5cda2d0520177.png")
private Integer type; private String targetObj;
@ApiModelProperty(value = "是否显示 0-否,1-是", required = true, example = "1", allowableValues = "0,1") @ApiModelProperty(value = "是否上线展示 0下线 1上线", required = true, example = "1", allowableValues = "0,1")
private Integer isShow; @Min(value = 1, message = "请选择是否上线")
private Integer isOnline;
@ApiModelProperty(value = "展示位置", required = true, example = "1") @ApiModelProperty(value = "上线开始时间", example = "2021-05-01 11:22:33")
private Integer position; private String onlineStartTime;
@ApiModelProperty(value = "排序权重 越大越靠前", required = true, example = "100") @ApiModelProperty(value = "上线结束时间", example = "2021-05-01 11:22:33")
private Integer sort; private String onlineEndTime;
@ApiModelProperty(value = "推广类型 1全国 2省份", required = true, example = "1", allowableValues = "1,2")
@Min(value = 1, message = "请选择推广类型")
private Integer promotionType;
@ApiModelProperty(value = "排序权重 越大越靠前", example = "100")
private Integer BannersSort;
@ApiModelProperty(value = "备注", example = "这是一个演出推广的banner") @ApiModelProperty(value = "备注", example = "这是一个演出推广的banner")
private String comment; private String remarks;
@ApiModelProperty(value = "展示的位置 多选 数组", example = "[\"1\", \"4\", \"3\"]")
@NotEmpty(message = "请选择展示位置")
private List positionList;
@ApiModelProperty(value = "推广省份 多选 数组", example = "[\"1\", \"4\", \"3\"]")
// @NotEmpty(message = "请选择推广省份")
private List provincesList;
@JsonIgnore @JsonIgnore
public KylinBanners getFields(String fieldsId, LocalDateTime createdAt) { public KylinBanners getFields(String bannersId, String createdAt) {
KylinBanners fields = new KylinBanners(); KylinBanners fields = new KylinBanners();
BeanUtils.copyProperties(this, fields); BeanUtils.copyProperties(this, fields);
if (null != fieldsId) { if (null != bannersId) {
fields.setBannersId(fieldsId); fields.setBannersId(bannersId);
} }
if (null != createdAt) { if (null != createdAt) {
fields.setCreatedAt(createdAt); fields.setCreatedAt(createdAt);
......
...@@ -3,7 +3,6 @@ package com.liquidnet.service.kylin.dto.vo; ...@@ -3,7 +3,6 @@ package com.liquidnet.service.kylin.dto.vo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.*;
import java.io.Serializable; import java.io.Serializable;
...@@ -22,34 +21,34 @@ public class BannersVo implements Serializable { ...@@ -22,34 +21,34 @@ public class BannersVo implements Serializable {
private String bannersId; private String bannersId;
@ApiModelProperty(value = "标题") @ApiModelProperty(value = "标题")
@NotBlank(message = "请填写标题") private String bannersName;
private String name;
@ApiModelProperty(value = "封面图") @ApiModelProperty(value = "封面图")
@NotBlank(message = "请上传封面图")
private String coverImg; private String coverImg;
@ApiModelProperty(value = "跳转类型")
private Integer targetType;
@ApiModelProperty(value = "跳转目标id或者url") @ApiModelProperty(value = "跳转目标id或者url")
@NotBlank(message = "请填写需要跳转的目标id或urk") private String targetObj;
private String targetId;
@ApiModelProperty(value = "是否上线展示 0下线 1上线")
private Integer isOnline;
@ApiModelProperty(value = "跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转") @ApiModelProperty(value = "上线开始时间")
@Min(value = 1, message = "请选择跳转类型") private String onlineStartTime;
private Integer type;
@ApiModelProperty(value = "是否显示 0-否,1-是") @ApiModelProperty(value = "上线结束时间")
@Min(value = 1, message = "请选择是否显示") private String onlineEndTime;
private Integer isShow;
@ApiModelProperty(value = "展示位置") @ApiModelProperty(value = "推广类型 1全国 2省份")
@Min(value = 1, message = "请选择展示的位置") private Integer promotionType;
private Integer position;
@ApiModelProperty(value = "排序权重 越大越靠前") @ApiModelProperty(value = "排序权重 越大越靠前")
private Integer sort; private Integer BannersSort;
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String comment; private String remarks;
@ApiModelProperty(value = "是否删除 0已删除,1正常") @ApiModelProperty(value = "是否删除 0已删除,1正常")
private Integer isDeleted; private Integer isDeleted;
......
...@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.extension.service.IService; ...@@ -8,7 +8,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
* 轮播图 服务类 * 轮播图 服务类
* </p> * </p>
* *
* @author liquidnet * @author jiangxiulong
* @since 2021-05-02 * @since 2021-05-02
*/ */
public interface IKylinBannersService extends IService<KylinBanners> { public interface IKylinBannersService extends IService<KylinBanners> {
......
...@@ -2,8 +2,8 @@ package com.liquidnet.service.kylin.entity; ...@@ -2,8 +2,8 @@ package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable; import java.io.Serializable;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
...@@ -32,7 +32,7 @@ public class KylinBanners implements Serializable { ...@@ -32,7 +32,7 @@ public class KylinBanners implements Serializable {
/** /**
* 标题 * 标题
*/ */
private String name; private String bannersName;
/** /**
* 封面图 * 封面图
...@@ -40,34 +40,44 @@ public class KylinBanners implements Serializable { ...@@ -40,34 +40,44 @@ public class KylinBanners implements Serializable {
private String coverImg; private String coverImg;
/** /**
* 跳转id/url * 跳转类型
*/
private Integer targetType;
/**
* 跳转目标id或者url
*/
private String targetObj;
/**
* 是否上线展示 0下线 1上线
*/ */
private String targetId; private Integer isOnline;
/** /**
* 跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转 * 上线开始时间
*/ */
private Integer type; private String onlineStartTime;
/** /**
* 是否展示 * 上线结束时间
*/ */
private Integer isShow; private String onlineEndTime;
/** /**
* 展示位置 * 推广类型 1全国 2省份
*/ */
private Integer position; private Integer promotionType;
/** /**
* 排序权重 * 排序权重
*/ */
private Integer sort; private Integer BannersSort;
/** /**
* comment * 备注
*/ */
private String comment; private String remarks;
/** /**
* 是否删除 1正常 已删除 * 是否删除 1正常 已删除
...@@ -77,12 +87,12 @@ public class KylinBanners implements Serializable { ...@@ -77,12 +87,12 @@ public class KylinBanners implements Serializable {
/** /**
* 创建时间 * 创建时间
*/ */
private LocalDateTime createdAt; private String createdAt;
/** /**
* 修改时间 * 修改时间
*/ */
private LocalDateTime updatedAt; private String updatedAt;
} }
package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.liquidnet.commons.lang.util.IDGenerator;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
/**
* <p>
* 轮播图关联表 模型
* </p>
*
* @author jiangxiulong
* @since 2021-05-08
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinBannersRelations implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* banners_relations_id
*/
private String bannersRelationsId;
/**
* banners_id
*/
private String bannersId;
/**
* 展示位置id/推广省份code
*/
private String fieldId;
/**
* 关联字段类型 1展示位置(由接口提供) 2推广省份(由接口提供)
*/
private int fieldIdType;
/**
* 创建时间
*/
private String createdAt;
/**
* 修改时间
*/
private String updatedAt;
// 整合入库数据
@JsonIgnore
public KylinBannersRelations newData(String bannersId, String fieldId, int fieldIdType, String createdAtString) {
String bannersRelationsId = IDGenerator.nextSnowId().toString();
this.setBannersRelationsId(bannersRelationsId);
this.setBannersId(bannersId);
this.setFieldId(fieldId);
this.setFieldIdType(fieldIdType);
this.setCreatedAt(createdAtString);
return this;
}
}
package com.liquidnet.service.kylin.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liquidnet.service.kylin.dao.BannerRelationsDetailsDao;
import com.liquidnet.service.kylin.entity.KylinBannersRelations;
import java.util.List;
/**
* <p>
* 轮播图关联表 Mapper 接口 处理数据库
* </p>
*
* @author jiangxiulong
* @since 2021-05-08
*/
public interface KylinBannersRelationsMapper extends BaseMapper<KylinBannersRelations> {
//列表
List<String> getBannersRelationsId(String bannersId, int fieldIdType);
}
<?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.liquidnet.service.kylin.mapper.KylinBannersRelationsMapper">
<!-- 详情 -->
<resultMap id="BannersRelationsIdResult" type="com.liquidnet.service.kylin.dao.BannerRelationsDetailsDao">
<result column="banners_relations_id" property="bannersRelationsId"/>
</resultMap>
<!-- getBannersRelationsId -->
<select id="getBannersRelationsId" parameterType="java.util.Map" resultType="string">
SELECT banners_relations_id
FROM kylin_banners_relations
<where>
<if test="bannersId != ''">
banners_id=#{bannersId}
</if>
<if test="fieldIdType != ''">
AND field_id_type=#{fieldIdType}
</if>
</where>
</select>
</mapper>
...@@ -8,24 +8,43 @@ SET NAMES utf8mb4; ...@@ -8,24 +8,43 @@ SET NAMES utf8mb4;
drop TABLE if exists `kylin_banners`; drop TABLE if exists `kylin_banners`;
CREATE TABLE `kylin_banners` CREATE TABLE `kylin_banners`
( (
`mid` int(11) NOT NULL AUTO_INCREMENT, `mid` int NOT NULL AUTO_INCREMENT,
`banners_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'banners_id', `banners_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'banners_id',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '标题', `banners_name` varchar(255) NOT NULL DEFAULT '' COMMENT '标题',
`cover_img` varchar(255) NOT NULL DEFAULT '' COMMENT '封面图', `cover_img` varchar(255) NOT NULL DEFAULT '' COMMENT '封面图',
`target_id` varchar(255) NOT NULL DEFAULT '' COMMENT '跳转id/url', `target_type` smallint NOT NULL DEFAULT 0 COMMENT '跳转类型(由接口提供)',
`type` tinyint NOT NULL DEFAULT 0 COMMENT '跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转', `target_obj` varchar(255) NOT NULL DEFAULT '' COMMENT '跳转目标 id/url等',
`is_show` tinyint NOT NULL DEFAULT 0 COMMENT '是否展示', `is_online` tinyint NOT NULL DEFAULT 0 COMMENT '是否上线展示 0下线 1上线',
`position` int(11) NOT NULL DEFAULT 0 COMMENT '展示位置', `online_start_time` timestamp NULL DEFAULT NULL COMMENT '上线开始时间',
`sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序权重', `online_end_time` timestamp NULL DEFAULT NULL COMMENT '上线结束时间',
`comment` varchar(255) NOT NULL DEFAULT '' COMMENT 'comment', `promotion_type` tinyint NOT NULL DEFAULT 1 COMMENT '推广类型 1全国 2省份',
`is_deleted` tinyint NOT NULL DEFAULT 1 COMMENT '是否删除 1正常 0已删除', `banners_sort` int NOT NULL DEFAULT 0 COMMENT '排序 越大越靠前',
`created_at` datetime NULL DEFAULT NULL COMMENT '创建时间', `remarks` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
`updated_at` datetime NULL DEFAULT NULL COMMENT '修改时间', `is_deleted` tinyint NOT NULL DEFAULT 1 COMMENT '是否删除 0已删除 1正常',
KEY `kylin_banners_uid_index` (`banners_id`), `created_at` datetime NULL DEFAULT NULL COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT NULL COMMENT '修改时间',
KEY `kylin_banners_banners_id_index` (`banners_id`),
KEY `kylin_banners_banners_name_index` (`banners_name`),
PRIMARY KEY (`mid`) PRIMARY KEY (`mid`)
) ENGINE = InnoDB ) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT '轮播图'; DEFAULT CHARSET = utf8mb4 COMMENT '轮播图';
drop TABLE if exists `kylin_banners_relations`;
CREATE TABLE `kylin_banners_relations`
(
`mid` int NOT NULL AUTO_INCREMENT,
`banners_relations_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'banners_relations_id',
`banners_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'banners_id',
`field_id` int NOT NULL DEFAULT 0 COMMENT '展示位置id/推广省份code',
`field_id_type` tinyint NOT NULL DEFAULT 1 COMMENT '关联字段类型 1展示位置(由接口提供) 2推广省份(由接口提供)',
`created_at` datetime NULL DEFAULT NULL COMMENT '创建时间',
`updated_at` datetime NULL DEFAULT NULL COMMENT '修改时间',
KEY `kylin_banners_relations_banners_relations_id_index` (`banners_relations_id`),
KEY `kylin_banners_relations_banners_id_index` (`banners_id`),
PRIMARY KEY (`mid`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT '轮播图 展示位置/推广省份 关联表';
-- 场地 -- 场地
drop TABLE if exists `kylin_fields`; drop TABLE if exists `kylin_fields`;
CREATE TABLE `kylin_fields` CREATE TABLE `kylin_fields`
......
...@@ -2,11 +2,11 @@ package com.liquidnet.service.kylin.controller.admin; ...@@ -2,11 +2,11 @@ package com.liquidnet.service.kylin.controller.admin;
import com.liquidnet.service.ResponseDto; import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.kylin.dao.BannerDetailsDao;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao; import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.dto.param.BannersParam; import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.dto.param.BannersSearchParam; import com.liquidnet.service.kylin.dto.param.BannersSearchParam;
import com.liquidnet.service.kylin.dto.vo.PagerVo; import com.liquidnet.service.kylin.dto.vo.PagerVo;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.service.impl.admin.KylinBannersServiceImpl; import com.liquidnet.service.kylin.service.impl.admin.KylinBannersServiceImpl;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -27,7 +27,7 @@ import java.util.List; ...@@ -27,7 +27,7 @@ import java.util.List;
@Api @Api
@RestController @RestController
@RequestMapping("/admin/banners") @RequestMapping("admin/banners")
public class KylinBannersAdminController { public class KylinBannersAdminController {
@Autowired @Autowired
...@@ -46,19 +46,20 @@ public class KylinBannersAdminController { ...@@ -46,19 +46,20 @@ public class KylinBannersAdminController {
@PutMapping("") @PutMapping("")
@ApiOperation(value = "修改banner") @ApiOperation(value = "修改banner")
public ResponseDto<Object> update(@RequestBody BannersParam bannersParam) { public ResponseDto<String> update(@RequestBody BannersParam bannersParam) {
Boolean res = kylinBannersServiceImpl.update(bannersParam); String res = kylinBannersServiceImpl.update(bannersParam);
if (res) { return ResponseDto.failure(res);
/*if (res) {
return ResponseDto.success(); return ResponseDto.success();
} else { } else {
return ResponseDto.failure("修改banner失败"); return ResponseDto.failure("修改banner失败");
} }*/
} }
@GetMapping("{bannersId}") @GetMapping("{bannersId}")
@ApiOperation(value = "banner详情") @ApiOperation(value = "banner详情")
public ResponseDto<BannerDetailsDao> detail(@PathVariable("bannersId") String bannersId) { public ResponseDto<KylinBanners> detail(@PathVariable("bannersId") String bannersId) {
BannerDetailsDao result = null; KylinBanners result = null;
result = kylinBannersServiceImpl.detail(bannersId); result = kylinBannersServiceImpl.detail(bannersId);
if (null != result) { if (null != result) {
return ResponseDto.success(result); return ResponseDto.success(result);
...@@ -86,7 +87,7 @@ public class KylinBannersAdminController { ...@@ -86,7 +87,7 @@ public class KylinBannersAdminController {
@DeleteMapping("{bannersId}") @DeleteMapping("{bannersId}")
@ApiOperation(value = "删除banner") @ApiOperation(value = "删除banner")
public ResponseDto<Object> deleteTimes(@PathVariable("bannersId") String bannersId) { public ResponseDto<Object> delete(@PathVariable("bannersId") String bannersId) {
boolean result = kylinBannersServiceImpl.delete(bannersId); boolean result = kylinBannersServiceImpl.delete(bannersId);
if (result) { if (result) {
return ResponseDto.success("删除成功"); return ResponseDto.success("删除成功");
......
...@@ -7,18 +7,22 @@ import com.liquidnet.commons.lang.util.BeanUtil; ...@@ -7,18 +7,22 @@ import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst; import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dao.BannerDetailsDao;
import com.liquidnet.service.kylin.dao.BannerDetailsListDao; import com.liquidnet.service.kylin.dao.BannerDetailsListDao;
import com.liquidnet.service.kylin.dao.BannerRelationsDetailsDao;
import com.liquidnet.service.kylin.dao.FieldMisDetailsDao;
import com.liquidnet.service.kylin.dto.param.BannersParam; import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.dto.param.BannersSearchParam; import com.liquidnet.service.kylin.dto.param.BannersSearchParam;
import com.liquidnet.service.kylin.dto.vo.BannersVo; import com.liquidnet.service.kylin.dto.vo.BannersVo;
import com.liquidnet.service.kylin.entity.KylinBanners; import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.entity.KylinBannersRelations;
import com.liquidnet.service.kylin.mapper.KylinBannersMapper; import com.liquidnet.service.kylin.mapper.KylinBannersMapper;
import com.liquidnet.service.kylin.mapper.KylinBannersRelationsMapper;
import com.liquidnet.service.kylin.service.admin.IKylinBannersService; import com.liquidnet.service.kylin.service.admin.IKylinBannersService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions; import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument; import com.mongodb.client.model.ReturnDocument;
import com.mongodb.client.result.DeleteResult;
import com.mysql.cj.util.StringUtils; import com.mysql.cj.util.StringUtils;
import org.bson.Document; import org.bson.Document;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -49,6 +53,9 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl ...@@ -49,6 +53,9 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
@Autowired @Autowired
private KylinBannersMapper bannersMapper; private KylinBannersMapper bannersMapper;
@Autowired
private KylinBannersRelationsMapper kylinBannersRelationsMapper;
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate mongoTemplate;
...@@ -60,22 +67,58 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl ...@@ -60,22 +67,58 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
public boolean create(BannersParam bannersParam) { public boolean create(BannersParam bannersParam) {
try { try {
// 时间
String bannersId = IDGenerator.nextSnowId().toString(); String bannersId = IDGenerator.nextSnowId().toString();
LocalDateTime createdAt = LocalDateTime.now(); LocalDateTime createdAt = LocalDateTime.now();
bannersMapper.insert(bannersParam.getFields(bannersId, createdAt)); String createdAtString = createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// 入数据库
bannersMapper.insert(bannersParam.getFields(bannersId, createdAtString));
List<String> positionList = bannersParam.getPositionList();
for (String fieldId : positionList) {
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 1, createdAtString);
kylinBannersRelationsMapper.insert(relations);
mongoTemplate.insert(kylinBannersRelations, KylinBannersRelations.class.getSimpleName());
redisUtil.hset(KylinRedisConst.BANNERSRELATIONS, kylinBannersRelations.getBannersRelationsId(), kylinBannersRelations);
}
List<String> provincesList = bannersParam.getProvincesList();
if (!provincesList.isEmpty()) {
for (String fieldId : provincesList) {
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 2, createdAtString);
kylinBannersRelationsMapper.insert(relations);
mongoTemplate.insert(kylinBannersRelations, KylinBannersRelations.class.getSimpleName());
redisUtil.hset(KylinRedisConst.BANNERSRELATIONS, kylinBannersRelations.getBannersRelationsId(), kylinBannersRelations);
}
}
// 处理缓存数据
BannersVo bannersVo = new BannersVo(); BannersVo bannersVo = new BannersVo();
BeanUtils.copyProperties(bannersParam, bannersVo); BeanUtils.copyProperties(bannersParam, bannersVo);
bannersVo.setBannersId(bannersId); bannersVo.setBannersId(bannersId);
bannersVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); bannersVo.setCreatedAt(createdAtString);
bannersVo.setUpdatedAt(""); // 处理基础数据 防止缓存中无字段
bannersVo.setIsDeleted(1); bannersVo.setIsDeleted(1);
if (null == bannersParam.getSort()) { bannersVo.setUpdatedAt("");
bannersVo.setSort(0); if (StringUtils.isNullOrEmpty(bannersParam.getTargetObj())) {
bannersVo.setTargetObj("");
}
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineStartTime())) {
bannersVo.setOnlineEndTime("");
}
if (StringUtils.isNullOrEmpty(bannersParam.getOnlineEndTime())) {
bannersVo.setOnlineEndTime("");
}
if (null == bannersParam.getBannersSort()) {
bannersVo.setBannersSort(0);
} }
if (StringUtils.isNullOrEmpty(bannersParam.getComment())) { if (StringUtils.isNullOrEmpty(bannersParam.getRemarks())) {
bannersVo.setComment(""); bannersVo.setRemarks("");
} }
// 入缓存
mongoTemplate.insert(bannersVo, BannersVo.class.getSimpleName()); mongoTemplate.insert(bannersVo, BannersVo.class.getSimpleName());
redisUtil.hset(KylinRedisConst.BANNERS, bannersId, bannersVo); redisUtil.hset(KylinRedisConst.BANNERS, bannersId, bannersVo);
...@@ -86,20 +129,69 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl ...@@ -86,20 +129,69 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
} }
} }
public boolean update(BannersParam bannersParam) { public String update(BannersParam bannersParam) {
try { try {
// 时间
String bannersId = bannersParam.getBannersId(); String bannersId = bannersParam.getBannersId();
LocalDateTime updatedAt = LocalDateTime.now(); LocalDateTime updatedAt = LocalDateTime.now();
String updatedAtString = updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
KylinBanners params = bannersParam.getFields(null, null); KylinBanners params = bannersParam.getFields(null, null);
params.setUpdatedAt(updatedAt); params.setUpdatedAt(updatedAtString);
// 入数据库
bannersMapper.update(params, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId)); bannersMapper.update(params, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
List<String> positionList = bannersParam.getPositionList();
// 删除之前的再添加
List<String> relationsIds = kylinBannersRelationsMapper.getBannersRelationsId(bannersId, 1);
kylinBannersRelationsMapper.delete(
new UpdateWrapper<KylinBannersRelations>().eq("banners_id", bannersId).eq("field_id_type", 1)
);
mongoTemplate.remove(
Query.query(Criteria.where("bannersId").is(bannersId).and("fieldIdType").is(1)),
KylinBannersRelations.class.getSimpleName()
);
for (String relationsId : relationsIds) {
redisUtil.hdel(KylinRedisConst.BANNERSRELATIONS, relationsId);
}
for (String fieldId : positionList) {
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 1, updatedAtString);
kylinBannersRelationsMapper.insert(relations);
mongoTemplate.insert(relations, KylinBannersRelations.class.getSimpleName());
redisUtil.hset(KylinRedisConst.BANNERSRELATIONS, relations.getBannersRelationsId(), relations);
}
List<String> provincesList = bannersParam.getProvincesList();
if (!provincesList.isEmpty()) {
// 删除之前的再添加
List<String> relationsIdss = kylinBannersRelationsMapper.getBannersRelationsId(bannersId, 2);
kylinBannersRelationsMapper.delete(
new UpdateWrapper<KylinBannersRelations>().eq("banners_id", bannersId).eq("field_id_type", 2)
);
mongoTemplate.remove(
Query.query(Criteria.where("bannersId").is(bannersId).and("fieldIdType").is(2)),
KylinBannersRelations.class.getSimpleName()
);
for (String relationsId : relationsIdss) {
redisUtil.hdel(KylinRedisConst.BANNERSRELATIONS, relationsId);
}
for (String fieldId : provincesList) {
KylinBannersRelations kylinBannersRelations = new KylinBannersRelations();
KylinBannersRelations relations = kylinBannersRelations.newData(bannersId, fieldId, 2, updatedAtString);
kylinBannersRelationsMapper.insert(relations);
mongoTemplate.insert(relations, KylinBannersRelations.class.getSimpleName());
redisUtil.hset(KylinRedisConst.BANNERSRELATIONS, relations.getBannersRelationsId(), relations);
}
}
// 处理缓存数据
BannersVo bannersVo = new BannersVo(); BannersVo bannersVo = new BannersVo();
BeanUtils.copyProperties(bannersParam, bannersVo); BeanUtils.copyProperties(bannersParam, bannersVo);
bannersVo.setBannersId(bannersId); bannersVo.setBannersId(bannersId);
bannersVo.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); bannersVo.setUpdatedAt(updatedAtString);
// 修改缓存
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(bannersVo))); BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(bannersVo)));
Document doc = mongoTemplate.getCollection(BannersVo.class.getSimpleName()).findOneAndUpdate( Document doc = mongoTemplate.getCollection(BannersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(), Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
...@@ -109,14 +201,14 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl ...@@ -109,14 +201,14 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
redisUtil.hset(KylinRedisConst.BANNERS, bannersId, JsonUtils.fromJson(doc.toJson(), BannersVo.class)); redisUtil.hset(KylinRedisConst.BANNERS, bannersId, JsonUtils.fromJson(doc.toJson(), BannersVo.class));
return true; return "success";
} catch (Exception e) { } catch (Exception e) {
return false; return e.getMessage();
} }
} }
public BannerDetailsDao detail(String bannersId) { public KylinBanners detail(String bannersId) {
BannerDetailsDao data = bannersMapper.detail(bannersId); KylinBanners data = bannersMapper.selectById(bannersId);
return data; return data;
} }
...@@ -130,6 +222,7 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl ...@@ -130,6 +222,7 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
return new ArrayList<>(); return new ArrayList<>();
} }
} }
public Long bannerListCount(BannersSearchParam bannersSearchParam) { public Long bannerListCount(BannersSearchParam bannersSearchParam) {
try { try {
Long count = bannersMapper.searchBannersCount(BeanUtil.convertBeanToMap(bannersSearchParam)); Long count = bannersMapper.searchBannersCount(BeanUtil.convertBeanToMap(bannersSearchParam));
...@@ -142,16 +235,17 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl ...@@ -142,16 +235,17 @@ public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, Kyl
public Boolean delete(String bannersId) { public Boolean delete(String bannersId) {
try { try {
LocalDateTime updatedAt = LocalDateTime.now(); LocalDateTime updatedAt = LocalDateTime.now();
String updatedAtString = updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
KylinBanners kylinBanners = new KylinBanners(); KylinBanners kylinBanners = new KylinBanners();
kylinBanners.setUpdatedAt(updatedAt); kylinBanners.setUpdatedAt(updatedAtString);
kylinBanners.setIsDeleted(0); kylinBanners.setIsDeleted(0);
bannersMapper.update(kylinBanners bannersMapper.update(kylinBanners
, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId)); , new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
// mongo 操作 // mongo 操作
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("updatedAt", updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); map.put("updatedAt", updatedAtString);
map.put("isDeleted", 0); map.put("isDeleted", 0);
BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map)); BasicDBObject object = new BasicDBObject("$set", mongoConverter.convertToMongoType(map));
......
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