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

Commit fb26d89a authored by jiangxiulong's avatar jiangxiulong

banners 添加修改接口

parent ca5a2da9
......@@ -2,4 +2,5 @@ package com.liquidnet.service.kylin.constant;
public class KylinRedisConst {
public static final String FIELDS = "kylin:fields:id";
public static final String BANNERS = "kylin:banners:id";
}
package com.liquidnet.service.kylin.dto.param;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.liquidnet.service.kylin.entity.KylinBanners;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.beans.BeanUtils;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* @author jxl <phpp.top> jiangxiulong
* @description 添加banner参数
* @create 2021-05-03 11:19 上午
*/
@Data
@ApiModel(value = "Bannersparam", description = "添加banner参数")
public class BannersParam implements Serializable {
@ApiModelProperty(value = "Banner主键ID", required = false, example = "4345ASGMTG66")
private String bannersId;
@ApiModelProperty(value = "标题", required = true, example = "这是一个banner标题")
private String name;
@ApiModelProperty(value = "封面图", required = true, example = "img.zhengzai.tv/cover_img.ong")
private String coverImg;
@ApiModelProperty(value = "跳转目标id或者url", required = true, example = "1")
private String targetId;
@ApiModelProperty(value = "跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转", required = true, example = "6")
private Integer type;
@ApiModelProperty(value = "是否显示 0-否,1-是", required = true, example = "1", allowableValues = "0,1")
private Boolean isShow;
@ApiModelProperty(value = "展示位置", required = true, example = "1")
private Integer position;
@ApiModelProperty(value = "排序权重 越大越靠前", required = true, example = "100")
private Integer sort;
@ApiModelProperty(value = "备注", required = false, example = "这是一个演出推广的banner")
private String comment;
@JsonIgnore
public KylinBanners getFields(String fieldsId, LocalDateTime createdAt) {
KylinBanners fields = new KylinBanners();
BeanUtils.copyProperties(this, fields);
if (null != fieldsId) {
fields.setBannersId(fieldsId);
}
if (null != createdAt) {
fields.setCreatedAt(createdAt);
}
return fields;
}
}
package com.liquidnet.service.kylin.dto.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @author jxl <phpp.top> jiangxiulong
* @description banner返回参数
* @create 2021-05-03 11:19 上午
*/
@Data
public class BannersVo implements Serializable {
@ApiModelProperty(value = "Banner主键ID", required = false, example = "4345ASGMTG66")
private String bannersId;
@ApiModelProperty(value = "标题", required = true, example = "这是一个banner标题")
private String name;
@ApiModelProperty(value = "封面图", required = true, example = "img.zhengzai.tv/cover_img.ong")
private String coverImg;
@ApiModelProperty(value = "跳转目标id或者url", required = true, example = "1")
private String targetId;
@ApiModelProperty(value = "跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转", required = true, example = "6")
private Integer type;
@ApiModelProperty(value = "是否显示 0-否,1-是", required = true, example = "1", allowableValues = "0,1")
private Boolean isShow;
@ApiModelProperty(value = "展示位置", required = true, example = "1")
private Integer position;
@ApiModelProperty(value = "排序权重 越大越靠前", required = true, example = "100")
private Integer sort;
@ApiModelProperty(value = "备注", required = false, example = "这是一个演出推广的banner")
private String comment;
@ApiModelProperty(value = "创建时间")
private String createdAt;
@ApiModelProperty(value = "修改时间")
private String updatedAt;
}
package com.liquidnet.service.kylin.service.admin;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* <p>
* 轮播图 服务类
* </p>
*
* @author liquidnet
* @since 2021-05-02
*/
public interface IKylinBannersService extends IService<KylinBanners> {
}
package com.liquidnet.service.kylin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 轮播图
* </p>
*
* @author liquidnet
* @since 2021-05-02
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class KylinBanners implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Integer mid;
/**
* banners_id
*/
private String bannersId;
/**
* 标题
*/
private String name;
/**
* 封面图
*/
private String coverImg;
/**
* 跳转id/url
*/
private String targetId;
/**
* 跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转
*/
private Integer type;
/**
* 是否展示
*/
private Integer isShow;
/**
* 展示位置
*/
private Integer position;
/**
* 排序权重
*/
private Integer sort;
/**
* comment
*/
private String comment;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 修改时间
*/
private LocalDateTime updatedAt;
}
package com.liquidnet.service.kylin.mapper;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 轮播图 Mapper 接口
* </p>
*
* @author jxl
* @since 2021-05-01
*/
public interface KylinBannersMapper extends BaseMapper<KylinBanners> {
}
......@@ -12,7 +12,7 @@ CREATE TABLE `kylin_banners`
`banners_id` varchar(255) NOT NULL DEFAULT '' COMMENT 'banners_id',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '标题',
`cover_img` varchar(255) NOT NULL DEFAULT '' COMMENT '封面图',
`target_id` int(11) NOT NULL DEFAULT 0 COMMENT '跳转id/url',
`target_id` varchar(255) NOT NULL DEFAULT '' COMMENT '跳转id/url',
`type` tinyint NOT NULL DEFAULT 0 COMMENT '跳转类型 6演出跳转 7商品跳转 8巡演跳转 12展示分享按钮的web连接 14积分商品详情 100活动跳转 999不跳转 998个人信息跳转',
`is_show` tinyint NOT NULL DEFAULT 0 COMMENT '是否展示',
`position` int(11) NOT NULL DEFAULT 0 COMMENT '展示位置',
......
package com.liquidnet.service.kylin.controller.admin;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.liquidnet.service.ResponseDto;
import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.service.impl.admin.KylinBannersServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* <p>
* 轮播图 前端控制器
* </p>
*
* @author jxl
* @since 2021-05-01
*/
@Api
@RestController
@RequestMapping("/admin/banner")
public class KylinBannersController {
@Autowired
private KylinBannersServiceImpl kylinBannersServiceImpl;
/**
* 创建banner
*/
@PostMapping("")
@ApiOperation(value = "创建banner", httpMethod = "POST")
public ResponseDto<Object> create(@RequestBody BannersParam param) {
Boolean res = kylinBannersServiceImpl.create(param);
if (res) {
return ResponseDto.success();
} else {
return ResponseDto.failure("添加banner失败");
}
}
/**
* 修改banner
*/
@PutMapping("")
@ApiOperation(value = "修改banner", httpMethod = "PUT")
public ResponseDto<Object> update(@RequestBody BannersParam param) {
Boolean res = kylinBannersServiceImpl.update(param);
if (res) {
return ResponseDto.success();
} else {
return ResponseDto.failure("修改banner失败");
}
}
/**
* 详情
*/
/*@GetMapping("")
@ApiOperation(value = "详情", httpMethod = "GET")
public ResponseDto<Object> detail(@RequestParam('banners_id') String bannersId) {
Boolean res = kylinBannersServiceImpl.detail(param);
if (res) {
return ResponseDto.success();
} else {
return ResponseDto.failure("修改banner失败");
}
}*/
}
package com.liquidnet.service.kylin.service.impl.admin;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.dto.param.BannersParam;
import com.liquidnet.service.kylin.dto.vo.BannersVo;
import com.liquidnet.service.kylin.entity.KylinBanners;
import com.liquidnet.service.kylin.mapper.KylinBannersMapper;
import com.liquidnet.service.kylin.service.admin.IKylinBannersService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mongodb.BasicDBObject;
import com.mongodb.client.model.FindOneAndUpdateOptions;
import com.mongodb.client.model.ReturnDocument;
import org.bson.Document;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* <p>
* 轮播图 服务实现类
* </p>
*
* @author liquidnet
* @since 2021-05-02
*/
@Service
public class KylinBannersServiceImpl extends ServiceImpl<KylinBannersMapper, KylinBanners> implements IKylinBannersService {
@Autowired
private KylinBannersMapper bannersMapper;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
RedisUtil redisUtil;
public boolean create(BannersParam bannersParam) {
try {
String bannersId = IDGenerator.nextSnowId().toString();
LocalDateTime createdAt = LocalDateTime.now();
bannersMapper.insert(bannersParam.getFields(bannersId, createdAt));
BannersVo bannersVo = new BannersVo();
BeanUtils.copyProperties(bannersParam, bannersVo);
bannersVo.setBannersId(bannersId);
bannersVo.setCreatedAt(createdAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
bannersVo.setUpdatedAt("");
mongoTemplate.insert(bannersVo, BannersVo.class.getSimpleName());
redisUtil.hset(KylinRedisConst.BANNERS, bannersId, bannersVo);
return true;
} catch (Exception e) {
return false;
}
}
public boolean update(BannersParam bannersParam) {
try {
String bannersId = bannersParam.getBannersId();
LocalDateTime updatedAt = LocalDateTime.now();
KylinBanners params = bannersParam.getFields(null, null);
params.setUpdatedAt(updatedAt);
bannersMapper.update(params, new UpdateWrapper<KylinBanners>().eq("banners_id", bannersId));
BannersVo bannersVo = new BannersVo();
BeanUtils.copyProperties(bannersParam, bannersVo);
bannersVo.setBannersId(bannersId);
bannersVo.setUpdatedAt(updatedAt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
BasicDBObject object = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(bannersVo)));
Document doc = mongoTemplate.getCollection(BannersVo.class.getSimpleName()).findOneAndUpdate(
Query.query(Criteria.where("bannersId").is(bannersId)).getQueryObject(),
object,
new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
);
redisUtil.hset(KylinRedisConst.BANNERS, bannersId, JsonUtils.fromJson(doc.toJson(), BannersVo.class));
return true;
} catch (Exception e) {
return false;
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-bus-v1</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<description>allpom</description>
<modules>
<module>liquidnet-bus-client</module>
<module>liquidnet-bus-common</module>
<module>liquidnet-bus-service</module>
<module>liquidnet-bus-support</module>
</modules>
</project>
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