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

Commit 6abc6264 authored by 张国柄's avatar 张国柄

+API:店铺管理:公告通知[列表、添加、编辑、管理(发布、删除)];

parent 019ec622
package com.liquidnet.service.goblin.dto.manage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.util.List;
@ApiModel(value = "GoblinStoreMgtNoticeActionParam", description = "店铺管理:公告通知:操作入参")
@Data
public class GoblinStoreMgtNoticeActionParam implements Serializable {
private static final long serialVersionUID = 6564996671833040261L;
@ApiModelProperty(position = 10, required = true, value = "店铺ID[64]")
@NotBlank(message = "店铺ID不能为空")
private String storeId;
@ApiModelProperty(position = 11, required = true, value = "操作类型[RELEASE-发布|REMOVE-删除]")
@Pattern(regexp = "\\b(RELEASE|REMOVE)\\b", message = "操作类型无效")
private String action;
@ApiModelProperty(position = 12, required = true, value = "公告ID列表")
private List<String> noticeIdList;
}
package com.liquidnet.service.goblin.dto.manage;
import com.liquidnet.commons.lang.constant.LnsRegex;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;
@ApiModel(value = "GoblinStoreMgtNoticeAddParam", description = "店铺管理:公告通知:添加|编辑入参")
@Data
public class GoblinStoreMgtNoticeAddParam implements Serializable {
private static final long serialVersionUID = 6564996671833040261L;
@ApiModelProperty(position = 10, required = true, value = "店铺ID[64]")
@NotBlank(message = "店铺ID不能为空")
private String storeId;
@ApiModelProperty(position = 11, required = false, value = "公告ID[32]")
private String noticeId;
@ApiModelProperty(position = 12, required = true, value = "公告内容", example = "...")
@NotBlank(message = "公告内容不能为空") @Size(max = 50, message = "公告内容长度限制50个字符")
private String content;
@ApiModelProperty(position = 13, required = true, value = "发布时间[yyyy-MM-dd HH:mm:ss]")
@Pattern(regexp = LnsRegex.Valid.DATETIME_FULL, message = "发布时间格式有误")
private String releaseTime;
@ApiModelProperty(position = 14, required = true, value = "长期有效[0-否|1-是]", allowableValues = "0,1", example = "1")
@NotBlank(message = "长期有效参数不能为空")
@Pattern(regexp = "\\b(0|1)\\b", message = "长期有效参数无效")
private String longLasting;
@ApiModelProperty(position = 15, required = true, value = "结束时间[yyyy-MM-dd HH:mm:ss]")
@Pattern(regexp = LnsRegex.Valid.DATETIME_FULL, message = "结束时间格式有误")
private String cancellTime;
}
package com.liquidnet.service.goblin.dto.manage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@ApiModel(value = "GoblinStoreMgtNoticeFilterParam", description = "店铺管理:公告通知:公告列表筛选条件入参")
@Data
public class GoblinStoreMgtNoticeFilterParam implements Serializable {
private static final long serialVersionUID = -4698854628491039006L;
@ApiModelProperty(position = 10, required = true, value = "店铺ID[64]")
private String storeId;
@ApiModelProperty(position = 11, required = false, value = "关键字[50]")
private String keyword;
}
package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.liquidnet.commons.lang.util.DateUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@ApiModel(value = "GoblinStoreNoticeVo", description = "店铺公告通知")
@Data
public class GoblinStoreNoticeVo implements Serializable, Cloneable {
private static final long serialVersionUID = 156629407699728873L;
@ApiModelProperty(position = 10, value = "店铺ID")
private String storeId;
@ApiModelProperty(position = 11, value = "公告ID")
private String noticeId;
@ApiModelProperty(position = 12, value = "公告内容")
private String content;
@ApiModelProperty(position = 13, value = "发布时间[yyyy-MM-dd HH:mm:ss]")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime releaseTime;
@ApiModelProperty(position = 14, value = "长期有效[0-否|1-是]")
private String longLasting;
@ApiModelProperty(position = 15, value = "结束时间[yyyy-MM-dd HH:mm:ss]")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime cancellTime;
@ApiModelProperty(position = 16, value = "公告状态[0-待发布|1-已发布]")
private String status;
private String createdBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime createdAt;
private String updatedBy;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DateUtil.DATE_FULL_STR)
private LocalDateTime updatedAt;
private static final GoblinStoreNoticeVo obj = new GoblinStoreNoticeVo();
public static GoblinStoreNoticeVo getNew() {
try {
return (GoblinStoreNoticeVo) obj.clone();
} catch (CloneNotSupportedException e) {
return new GoblinStoreNoticeVo();
}
}
}
package com.liquidnet.service.goblin.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 店铺公告
* </p>
*
* @author liquidnet
* @since 2022-01-12
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class GoblinStoreNotice implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "mid", type = IdType.AUTO)
private Long mid;
/**
* 公告id
*/
private String noticeId;
/**
* 店铺id
*/
private String storeId;
/**
* 公告内容
*/
private String content;
/**
* 发布时间
*/
@TableField("releaseTime")
private LocalDateTime releaseTime;
/**
* 长期有效[0-否|1-是]
*/
private LocalDateTime longLasting;
/**
* 结束时间
*/
@TableField("cancellTime")
private LocalDateTime cancellTime;
/**
* 公告状态[0-待发布|1-已发布]
*/
private String status;
private String createdBy;
private LocalDateTime createdAt;
private String updatedBy;
private LocalDateTime updatedAt;
private String comment;
}
package com.liquidnet.service.goblin.mapper;
import com.liquidnet.service.goblin.entity.GoblinStoreNotice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 店铺公告 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2022-01-12
*/
public interface GoblinStoreNoticeMapper extends BaseMapper<GoblinStoreNotice> {
}
<?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.goblin.mapper.GoblinStoreNoticeMapper">
</mapper>
...@@ -182,6 +182,26 @@ create index idx_gsc_store_id on goblin_store_config (store_id); ...@@ -182,6 +182,26 @@ create index idx_gsc_store_id on goblin_store_config (store_id);
# (0, '售罄展示', 'ONOFF_SOLD_OUT_SHOW', 'ON', 'admin', sysdate()), # (0, '售罄展示', 'ONOFF_SOLD_OUT_SHOW', 'ON', 'admin', sysdate()),
# (0, '库存不足', 'LIMIT_WARNING_STOCK', '5', 'admin', sysdate()); # (0, '库存不足', 'LIMIT_WARNING_STOCK', '5', 'admin', sysdate());
# -- >>------------------------------------------------------------------------------------ # -- >>------------------------------------------------------------------------------------
drop table if exists goblin_store_notice;
create table goblin_store_notice
(
mid bigint auto_increment primary key,
notice_id varchar(32) not null comment '公告id',
store_id varchar(64) not null comment '店铺id',
content varchar(255) not null comment '公告内容',
releaseTime datetime not null comment '发布时间',
long_lasting char default '0' comment '长期有效[0-否|1-是]',
cancellTime datetime not null comment '结束时间',
status char default '0' comment '公告状态[0-待发布|1-已发布]',
created_by varchar(64) not null,
created_at datetime not null,
updated_by varchar(64) null,
updated_at datetime null,
comment varchar(500)
) engine = InnoDB comment '店铺公告';
create index idx_goblin_store_notice on goblin_store_notice (store_id);
# -- >>------------------------------------------------------------------------------------
drop table if exists goblin_store_goods_category; drop table if exists goblin_store_goods_category;
create table goblin_store_goods_category create table goblin_store_goods_category
( (
......
...@@ -6,13 +6,15 @@ import com.liquidnet.commons.lang.constant.LnsEnum; ...@@ -6,13 +6,15 @@ import com.liquidnet.commons.lang.constant.LnsEnum;
import com.liquidnet.commons.lang.util.CurrentUtil; import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ErrorMapping; import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.manage.GoblinStoreMgtConfigEditParam; import com.liquidnet.service.goblin.dto.manage.*;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtInfoVo; import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtInfoVo;
import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtThumbVo; import com.liquidnet.service.goblin.dto.manage.vo.GoblinStoreMgtThumbVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreCertificationVo; import com.liquidnet.service.goblin.dto.vo.GoblinStoreCertificationVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreConfigVo; import com.liquidnet.service.goblin.dto.vo.GoblinStoreConfigVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreInfoVo; import com.liquidnet.service.goblin.dto.vo.GoblinStoreInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreNoticeVo;
import com.liquidnet.service.goblin.enums.GoblinStoreConf; import com.liquidnet.service.goblin.enums.GoblinStoreConf;
import com.liquidnet.service.goblin.service.manage.IGoblinStoreMgtService; import com.liquidnet.service.goblin.service.manage.IGoblinStoreMgtService;
import com.liquidnet.service.goblin.util.GoblinRedisUtils; import com.liquidnet.service.goblin.util.GoblinRedisUtils;
...@@ -118,8 +120,8 @@ public class GoblinStoreMgtController { ...@@ -118,8 +120,8 @@ public class GoblinStoreMgtController {
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "storeId", value = "店铺ID[64]"), @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "storeId", value = "店铺ID[64]"),
}) })
@GetMapping(value = {"info/conf"}) @GetMapping(value = {"conf"})
public ResponseDto<Map<String, String>> configInfo(@NotBlank(message = "店铺ID不能为空") @Size(max = 64) @RequestParam String storeId) { public ResponseDto<Map<String, String>> conf(@NotBlank(message = "店铺ID不能为空") @Size(max = 64) @RequestParam String storeId) {
// TODO: 2022/1/12 zhanggb 逻辑校验 // TODO: 2022/1/12 zhanggb 逻辑校验
List<GoblinStoreConfigVo> storeConfigVos = goblinRedisUtils.getStoreConfigVos(storeId); List<GoblinStoreConfigVo> storeConfigVos = goblinRedisUtils.getStoreConfigVos(storeId);
...@@ -135,8 +137,8 @@ public class GoblinStoreMgtController { ...@@ -135,8 +137,8 @@ public class GoblinStoreMgtController {
@ApiOperationSupport(order = 6) @ApiOperationSupport(order = 6)
@ApiOperation(value = "店铺管理:店铺设置:编辑") @ApiOperation(value = "店铺管理:店铺设置:编辑")
@PostMapping(value = {"info/conf/edit"}) @PostMapping(value = {"conf/edit"})
public ResponseDto<Object> configInfoEdit(@Valid @RequestBody GoblinStoreMgtConfigEditParam param) { public ResponseDto<Object> confEdit(@Valid @RequestBody GoblinStoreMgtConfigEditParam param) {
String currentUid = CurrentUtil.getCurrentUid(); String currentUid = CurrentUtil.getCurrentUid();
// TODO: 2022/1/12 zhanggb 逻辑校验 // TODO: 2022/1/12 zhanggb 逻辑校验
if (CollectionUtils.isEmpty(param.getConfMap())) { if (CollectionUtils.isEmpty(param.getConfMap())) {
...@@ -149,4 +151,52 @@ public class GoblinStoreMgtController { ...@@ -149,4 +151,52 @@ public class GoblinStoreMgtController {
return ResponseDto.success(); return ResponseDto.success();
} }
@ApiOperationSupport(order = 7)
@ApiOperation(value = "店铺管理:公告通知:列表")
@PostMapping(value = {"notice/list"})
public ResponseDto<PagedResult<GoblinStoreNoticeVo>> noticeList(@Valid @RequestBody GoblinStoreMgtNoticeFilterParam noticeFilterParam) {
String currentUid = CurrentUtil.getCurrentUid();
// TODO: 2022/1/12 zhanggb 逻辑校验
if (log.isDebugEnabled()) {
log.debug("店铺管理:公告通知:列表[UID={},noticeFilterParam={}]", currentUid, JsonUtils.toJson(noticeFilterParam));
}
return ResponseDto.success();
}
@ApiOperationSupport(order = 8)
@ApiOperation(value = "店铺管理:公告通知:添加")
@PostMapping(value = {"notice/add"})
public ResponseDto<Object> noticeAdd(@Valid @RequestBody GoblinStoreMgtNoticeAddParam noticeAddParam) {
String currentUid = CurrentUtil.getCurrentUid();
// TODO: 2022/1/12 zhanggb 逻辑校验
if (log.isDebugEnabled()) {
log.debug("店铺管理:公告通知:添加[UID={},noticeAddParam={}]", currentUid, JsonUtils.toJson(noticeAddParam));
}
return ResponseDto.success();
}
@ApiOperationSupport(order = 9)
@ApiOperation(value = "店铺管理:公告通知:编辑")
@PostMapping(value = {"notice/edit"})
public ResponseDto<Object> noticeEdit(@Valid @RequestBody GoblinStoreMgtNoticeAddParam noticeEditParam) {
String currentUid = CurrentUtil.getCurrentUid();
// TODO: 2022/1/12 zhanggb 逻辑校验
if (log.isDebugEnabled()) {
log.debug("店铺管理:公告通知:编辑[UID={},noticeEditParam={}]", currentUid, JsonUtils.toJson(noticeEditParam));
}
return ResponseDto.success();
}
@ApiOperationSupport(order = 10)
@ApiOperation(value = "店铺管理:公告通知:管理")
@PostMapping(value = {"notice/operate"})
public ResponseDto<Object> noticeOperate(@Valid @RequestBody GoblinStoreMgtNoticeActionParam noticeActionParam) {
String currentUid = CurrentUtil.getCurrentUid();
// TODO: 2022/1/12 zhanggb 逻辑校验
if (log.isDebugEnabled()) {
log.debug("店铺管理:公告通知:管理[UID={},noticeActionParam={}]", currentUid, JsonUtils.toJson(noticeActionParam));
}
return ResponseDto.success();
}
} }
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