Browse Source

Merge branch 'dev' of 113.31.163.91:quanshu/mp-server into dev

chunping 3 years ago
parent
commit
ffedc8758d

+ 87 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/CouponMgrController.java

@@ -3,11 +3,17 @@ package com.qs.mp.web.controller.api.admin;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.qs.mp.admin.domain.Coupon;
+import com.qs.mp.admin.domain.CouponChannel;
 import com.qs.mp.admin.domain.CouponTicket;
+import com.qs.mp.admin.domain.Goods;
+import com.qs.mp.admin.domain.GoodsSku;
 import com.qs.mp.admin.domain.param.CouponParam;
 import com.qs.mp.admin.domain.param.GoodsParam;
 import com.qs.mp.admin.domain.vo.CouponVO;
+import com.qs.mp.admin.domain.vo.GoodsVO;
+import com.qs.mp.admin.service.ICouponChannelService;
 import com.qs.mp.admin.service.ICouponService;
 import com.qs.mp.admin.service.ICouponTicketService;
 import com.qs.mp.common.constant.UserConstants;
@@ -24,10 +30,14 @@ import ma.glasnost.orika.MapperFacade;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
 
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.validation.annotation.Validated;
@@ -52,6 +62,9 @@ public class CouponMgrController extends BaseApiController {
 
 	@Autowired
 	private ICouponTicketService couponTicketService;
+	
+	@Autowired
+	private ICouponChannelService couponChannelService;
 
 	@Autowired
 	private ISysUserService userService;
@@ -71,11 +84,51 @@ public class CouponMgrController extends BaseApiController {
 		LambdaQueryWrapper<Coupon> queryWrapper = new LambdaQueryWrapper<Coupon>();
 		queryWrapper.like(null != coupon && StringUtils.isNotBlank(coupon.getTitle()), Coupon::getTitle, coupon.getTitle());
 		queryWrapper.like(null != coupon && null != coupon.getStatus(), Coupon::getStatus, coupon.getStatus());
+		queryWrapper.eq(Coupon::getIsDeleted, 0);
 		queryWrapper.orderByAsc(Coupon::getCreatedTime);
 		list = couponService.list(queryWrapper);
 		return getDataTable(list);
 	}
-
+	
+	
+	/**
+	 * 获取代金券详情信息
+	 *
+	 * @param
+	 * @return
+	 */
+	@PostMapping(value = "/detail")
+	public AjaxResult getCouponDetail(@RequestBody JSONObject jsonObject) {
+		String couponId = jsonObject.getString("couponId");
+	    if (StringUtils.isBlank(couponId)){
+	      return error(ErrorCodeEnum.ERROR_CODE_1001);
+	    }
+	    Coupon coupon = couponService.getById(couponId);
+		if(null == coupon || StringUtils.isBlank(coupon.getCouponId())) {
+			 return error(ErrorCodeEnum.ERROR_CODE_1001);
+		}
+		CouponVO couponVO = new CouponVO();
+		BeanUtils.copyProperties(coupon, couponVO);
+		// 查询盲票限制列表
+		List<CouponTicket> ticketList = new ArrayList<>();
+		LambdaQueryWrapper<CouponTicket> ticketQueryWrapper = new LambdaQueryWrapper<>();
+		ticketQueryWrapper.eq(CouponTicket::getCouponId, coupon.getCouponId());
+		ticketQueryWrapper.orderByDesc(CouponTicket::getCreatedTime);
+		ticketList = couponTicketService.list(ticketQueryWrapper);
+		if(null != ticketList && ticketList.size() > 0) {
+			couponVO.setBoxIdList(ticketList.stream().map(CouponTicket::getBoxId).collect(Collectors.toList()));
+		}
+		// 查询门店限制列表
+		List<CouponChannel> channelList = new ArrayList<>();
+		LambdaQueryWrapper<CouponChannel> channelQueryWrapper = new LambdaQueryWrapper<>();
+		channelQueryWrapper.eq(CouponChannel::getCouponId, coupon.getCouponId());
+		channelQueryWrapper.orderByDesc(CouponChannel::getCreatedTime);
+		channelList = couponChannelService.list(channelQueryWrapper);
+		if(null != channelList && channelList.size() > 0) {
+			couponVO.setChannelIdList(channelList.stream().map(CouponChannel::getChannelId).collect(Collectors.toList()));
+		}
+		return AjaxResult.success(couponVO);
+	}
 
 	/**
 	 * 新增代金券信息
@@ -92,6 +145,7 @@ public class CouponMgrController extends BaseApiController {
 		// 1、校验名称是否重复(代金券表)
 		LambdaQueryWrapper<Coupon> queryWrapper = new LambdaQueryWrapper<>();
 		queryWrapper.eq(Coupon::getTitle, coupon.getTitle());
+		queryWrapper.eq(Coupon::getIsDeleted, 0);
 		int nameCount = couponService.count(queryWrapper);
 		if(nameCount > 0) {
 			return AjaxResult.error("代金券名称" + coupon.getTitle() + "已存在!");
@@ -137,6 +191,7 @@ public class CouponMgrController extends BaseApiController {
 		if(!coupon.getTitle().equals(oldCoupon.getTitle())) {
 			LambdaQueryWrapper<Coupon> queryWrapper = new LambdaQueryWrapper<>();
 			queryWrapper.eq(Coupon::getTitle, coupon.getTitle());
+			queryWrapper.eq(Coupon::getIsDeleted, 0);
 			int nameCount = couponService.count(queryWrapper);
 			if(nameCount > 0) {
 				return AjaxResult.error("代金券名称" + coupon.getTitle() + "已存在!");
@@ -184,5 +239,36 @@ public class CouponMgrController extends BaseApiController {
 		}
 		return AjaxResult.success("操作成功");
 	}
+	
+	
+	/**
+	 * 删除代金券商品(假删)
+	 *
+	 * @param
+	 * @return
+	 */
+	@PostMapping(value = "/remove")
+	public AjaxResult removeCoupon(@RequestBody JSONObject jsonObject) {
+		String couponId = jsonObject.getString("couponId");
+	    if (StringUtils.isBlank(couponId)){
+	      return error(ErrorCodeEnum.ERROR_CODE_1001);
+	    }
+	    Coupon coupon = couponService.getById(couponId);
+		if(null == coupon || StringUtils.isBlank(coupon.getCouponId())) {
+			 return error(ErrorCodeEnum.ERROR_CODE_1001);
+		}
+		// 商品未下架, 不允许删除
+		if(coupon.getStatus().equals("on")) {
+			return AjaxResult.error("代金券未下架,不允许删除");
+		}
+		LambdaUpdateWrapper<Coupon> updateWrapper = new LambdaUpdateWrapper<>();
+		updateWrapper.set(Coupon::getIsDeleted, 1);
+		updateWrapper.eq(Coupon::getCouponId, coupon.getCouponId());
+		boolean res = couponService.update(updateWrapper);
+		if(!res) {
+			return AjaxResult.error("代金券删除失败");
+		}
+		return AjaxResult.success("代金券删除成功");
+	}
 
 }

+ 87 - 8
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/GoodsMgrController.java

@@ -3,6 +3,7 @@ package com.qs.mp.web.controller.api.admin;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qs.mp.admin.domain.Coupon;
 import com.qs.mp.admin.domain.Goods;
@@ -10,12 +11,15 @@ import com.qs.mp.admin.domain.GoodsCategory;
 import com.qs.mp.admin.domain.GoodsSku;
 import com.qs.mp.admin.domain.param.CouponParam;
 import com.qs.mp.admin.domain.param.GoodsParam;
+import com.qs.mp.admin.domain.param.GoodsQueryParam;
 import com.qs.mp.admin.domain.vo.GoodsListVO;
+import com.qs.mp.admin.domain.vo.GoodsVO;
 import com.qs.mp.admin.service.IGoodsCategoryService;
 import com.qs.mp.admin.service.IGoodsService;
 import com.qs.mp.admin.service.IGoodsSkuService;
 import com.qs.mp.channel.domain.Channel;
 import com.qs.mp.channel.domain.param.ChannelParam;
+import com.qs.mp.channel.domain.vo.ChannelOperDataVO;
 import com.qs.mp.channel.domain.vo.ChannelVO;
 import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.channel.service.IChannelUserRelService;
@@ -27,6 +31,7 @@ import com.qs.mp.common.enums.CouponStatusEnum;
 import com.qs.mp.common.enums.ErrorCodeEnum;
 import com.qs.mp.system.domain.SysUser;
 import com.qs.mp.system.service.ISysUserService;
+import com.qs.mp.utils.SecurityUtils;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -38,6 +43,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.validation.annotation.Validated;
@@ -79,15 +85,56 @@ public class GoodsMgrController extends BaseApiController {
 	 * @return
 	 */
 	@PostMapping("/list")
-	public TableDataInfo list(@RequestBody Goods goods) {
-		List<GoodsListVO> list = new ArrayList<GoodsListVO>();
+	public TableDataInfo list(@RequestBody GoodsQueryParam queryParam) {
 		startPage();
-		List<Goods> goodsList = goodsService.list(new LambdaQueryWrapper<Goods>());
+		LambdaQueryWrapper<Goods> queryWrapper = new LambdaQueryWrapper<Goods>();
+		queryWrapper.like(null != queryParam && StringUtils.isNotBlank(queryParam.getTitle()), Goods::getTitle, queryParam.getTitle());
+		queryWrapper.eq(null != queryParam && StringUtils.isNotBlank(queryParam.getGoodsId()), Goods::getGoodsId, queryParam.getGoodsId());
+		// 成本
+		queryWrapper.ge(null != queryParam && null != queryParam.getMinCost(), Goods::getCost, queryParam.getMinCost());
+		queryWrapper.le(null != queryParam && null != queryParam.getMaxCost(), Goods::getCost, queryParam.getMaxCost());
+		// 价格
+		queryWrapper.ge(null != queryParam && null != queryParam.getMinValue(), Goods::getValue, queryParam.getMinValue());
+		queryWrapper.le(null != queryParam && null != queryParam.getMaxValue(), Goods::getValue, queryParam.getMaxValue());
+		// 状态
+		queryWrapper.eq(null != queryParam && null != queryParam.getStatus(), Goods::getStatus, queryParam.getStatus());
+		queryWrapper.eq(Goods::getIsDeleted, 0);
+		List<Goods> goodsList = goodsService.list(queryWrapper);
 		List<GoodsListVO> goodsListVOList = mapperFacade.mapAsList(goodsList, GoodsListVO.class);
 		TableDataInfo res = getDataTable(goodsList);
 		res.setRows(goodsListVOList);
 		return res;
 	}
+	
+	/**
+	 * 获取商品详情信息
+	 *
+	 * @param
+	 * @return
+	 */
+	@PostMapping(value = "/detail")
+	public AjaxResult getGoodsDetail(@RequestBody JSONObject jsonObject) {
+		String goodsId = jsonObject.getString("goodsId");
+	    if (StringUtils.isBlank(goodsId)){
+	      return error(ErrorCodeEnum.ERROR_CODE_1001);
+	    }
+		Goods goods = goodsService.getById(goodsId);
+		if(null == goods || StringUtils.isBlank(goods.getGoodsId())) {
+			 return error(ErrorCodeEnum.ERROR_CODE_1001);
+		}
+		GoodsVO goodsVo = new GoodsVO();
+		BeanUtils.copyProperties(goods, goodsVo);
+		// 查询SKU列表
+		List<GoodsSku> skuList = new ArrayList<>();
+		LambdaQueryWrapper<GoodsSku> queryWrapper = new LambdaQueryWrapper<>();
+		queryWrapper.eq(GoodsSku::getGoodsId, goods.getGoodsId());
+		queryWrapper.orderByDesc(GoodsSku::getCreatedTime);
+		skuList = goodsSkuService.list(queryWrapper);
+		if(null != skuList && skuList.size() > 0) {
+			goodsVo.setSkuList(skuList);
+		}
+		return AjaxResult.success(goodsVo);
+	}
 
 
 	/**
@@ -98,13 +145,14 @@ public class GoodsMgrController extends BaseApiController {
 	@ApiOperation(value = "新增商品信息", notes = "后台商品管理新增商品")
 	@PostMapping("/create")
 	public AjaxResult channelCreate(@Validated @RequestBody GoodsParam goodsParam) {
-		if (goodsParam.getGoodsId() != null && goodsParam.getGoodsId() != 0) {
+		if (StringUtils.isNotBlank(goodsParam.getGoodsId())) {
 			return AjaxResult.error("该商品已存在");
 		}
 		Goods goods = mapperFacade.map(goodsParam, Goods.class);
 		// 1、校验名称是否重复(商品表)
 		LambdaQueryWrapper<Goods> queryWrapper = new LambdaQueryWrapper<>();
 		queryWrapper.eq(Goods::getTitle, goods.getTitle());
+		queryWrapper.eq(Goods::getIsDeleted, 0);
 		int titleCount = goodsService.count(queryWrapper);
 		if(titleCount > 0) {
 			return AjaxResult.error("商品名称" + goods.getTitle() + "已存在!");
@@ -136,16 +184,15 @@ public class GoodsMgrController extends BaseApiController {
 	}
 
 	/**
-	 * 编辑子渠道信息
+	 * 编辑商品信息
 	 * @param
 	 * @return
 	 */
 	@ApiOperation(value = "编辑商品信息", notes = "后台商品管理修改商品信息")
 	@PostMapping("/update")
 	public AjaxResult channelUpdate(@Validated @RequestBody GoodsParam goodsParam) {
-		
-		if (goodsParam.getGoodsId() != null && goodsParam.getGoodsId() != 0) {
-			return AjaxResult.error("该商品已存在");
+		if (null == goodsParam || StringUtils.isBlank(goodsParam.getGoodsId())) {
+			return error(ErrorCodeEnum.ERROR_CODE_1001);
 		}
 		Goods oldGoods = goodsService.getById(goodsParam.getGoodsId());
 		if(null == oldGoods || null == oldGoods.getGoodsId()) {
@@ -156,6 +203,7 @@ public class GoodsMgrController extends BaseApiController {
 		if(!goods.getTitle().equals(oldGoods.getTitle())) {
 			LambdaQueryWrapper<Goods> queryWrapper = new LambdaQueryWrapper<>();
 			queryWrapper.eq(Goods::getTitle, goods.getTitle());
+			queryWrapper.eq(Goods::getIsDeleted, 0);
 			int titleCount = goodsService.count(queryWrapper);
 			if(titleCount > 0) {
 				return AjaxResult.error("商品名称" + goods.getTitle() + "已存在!");
@@ -211,5 +259,36 @@ public class GoodsMgrController extends BaseApiController {
 		}
 		return AjaxResult.success("操作成功");
 	}
+	
+	
+	/**
+	 * 删除商品(假删)
+	 *
+	 * @param
+	 * @return
+	 */
+	@PostMapping(value = "/remove")
+	public AjaxResult removeGoods(@RequestBody JSONObject jsonObject) {
+		String goodsId = jsonObject.getString("goodsId");
+	    if (StringUtils.isBlank(goodsId)){
+	      return error(ErrorCodeEnum.ERROR_CODE_1001);
+	    }
+		Goods goods = goodsService.getById(goodsId);
+		if(null == goods || StringUtils.isBlank(goods.getGoodsId())) {
+			 return error(ErrorCodeEnum.ERROR_CODE_1001);
+		}
+		// 商品未下架, 不允许删除
+		if(goods.getStatus().equals("on")) {
+			return AjaxResult.error("商品未下架,不允许删除");
+		}
+		LambdaUpdateWrapper<Goods> updateWrapper = new LambdaUpdateWrapper<>();
+		updateWrapper.set(Goods::getIsDeleted, 1);
+		updateWrapper.eq(Goods::getGoodsId, goods.getGoodsId());
+		boolean res = goodsService.update(updateWrapper);
+		if(!res) {
+			return AjaxResult.error("商品删除失败");
+		}
+		return AjaxResult.success("商品删除成功");
+	}
 
 }

+ 8 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/Coupon.java

@@ -5,6 +5,7 @@ import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.qs.mp.common.enums.CouponDiscountTypeEnum;
 import com.qs.mp.common.enums.CouponDistributeTypeEnum;
@@ -142,6 +143,13 @@ public class Coupon implements Serializable {
   @TableField("distribute_qty")
   private Integer distributeQty;
 
+  /**
+   * 逻辑删除标识
+   */
+  @TableField("is_deleted")
+  @TableLogic
+  private Integer isDeleted;
+  
   /**
    * 创建时间
    */

+ 1 - 1
mp-service/src/main/java/com/qs/mp/admin/domain/param/GoodsParam.java

@@ -21,7 +21,7 @@ import lombok.Data;
 public class GoodsParam {
 
 	@ApiModelProperty(value = "商品ID", required = false)
-	private Long goodsId;
+	private String goodsId;
 
 	@NotNull(message = "商品名称不能为空")
 	@ApiModelProperty(value = "商品名称", required = true)

+ 58 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/GoodsQueryParam.java

@@ -0,0 +1,58 @@
+package com.qs.mp.admin.domain.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+/**
+ * @describe 商品库实体类
+ * @auther quanshu
+ * @create 2022-03-07 20:43:44
+ */
+@ApiModel(value = "商品列表查询参数")
+@Data
+public class GoodsQueryParam {
+
+	@ApiModelProperty(value = "商品ID", required = false)
+	private String goodsId;
+
+	@NotNull(message = "商品名称不能为空")
+	@ApiModelProperty(value = "商品名称", required = true)
+	private String title;
+
+	/**
+	 * 最低成本
+	 */
+	@ApiModelProperty(value = "最低成本", required = false)
+	private Integer minCost;
+
+	/**
+	 * 最高成本
+	 */
+	@ApiModelProperty(value = "最高成本", required = false)
+	private Integer maxCost;
+
+	/**
+	 * 最低价格
+	 */
+	@ApiModelProperty(value = "最低价格", required = false)
+	private Integer minValue;
+
+	/**
+	 * 最高价格
+	 */
+	@ApiModelProperty(value = "最高价格", required = false)
+	private Integer maxValue;
+
+	/**
+	 * 上架状态;上架/下架
+	 */
+	@ApiModelProperty(value = "上架状态", required = false)
+	private String status;
+
+
+
+}

+ 118 - 107
mp-service/src/main/java/com/qs/mp/admin/domain/vo/CouponVO.java

@@ -2,12 +2,16 @@ package com.qs.mp.admin.domain.vo;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.qs.mp.admin.domain.CouponTicket;
+import com.qs.mp.admin.domain.GoodsSku;
 import com.qs.mp.common.enums.CouponDiscountTypeEnum;
 import com.qs.mp.common.enums.CouponDistributeTypeEnum;
 import com.qs.mp.common.enums.CouponStatusEnum;
 import com.qs.mp.common.enums.CouponTypeEnum;
 import com.qs.mp.common.enums.CouponUseAreaEnum;
 import java.util.Date;
+import java.util.List;
+
 import lombok.Data;
 
 /**
@@ -18,112 +22,119 @@ import lombok.Data;
 @Data
 public class CouponVO {
 
-
-  /**
-   * 主键
-   */
-  private String couponId;
-
-  /**
-   * 标题
-   */
-  private String title;
-
-  /**
-   * 类型;1用户盲票购买优惠券、2用户门店消费优惠券、3经销商盲票采购优惠券
-   */
-  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
-  private CouponTypeEnum type;
-
-  /**
-   * 图片
-   */
-  private String picUrl;
-
-  /**
-   * 使用说明
-   */
-  private String description;
-
-  /**
-   * 优惠类型;1代金券、2折扣券、3兑换券
-   */
-  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
-  private CouponDiscountTypeEnum discountType;
-
-  /**
-   * 优惠金额(比例)
-   */
-  private Integer discount;
-
-  /**
-   * 最低消费金额
-   */
-  private Integer minOrderAmt;
-
-  /**
-   * 渠道代金券,渠道承担比例
-   */
-  private Integer channelSharedRate;
-
-
-  /**
-   * 状态;off下架 on正常
-   */
-  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
-  private CouponStatusEnum status;
-
-  /**
-   * 使用范围;0通用 1生成券时指定范围 2发放时动态指定范围
-   */
-  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
-  private CouponUseAreaEnum useArea;
-
-  /**
-   * 发放方式;1系统发放 2用户主动领取
-   */
-  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
-  private CouponDistributeTypeEnum distributeType;
-
-  /**
-   * 叠加使用;0不允许 1允许
-   */
-  private Integer compositeUse;
-
-  /**
-   * 有效期天数;从领券后开始多少天有效,0则使用绝对有效期
-   */
-  private Integer dueDays;
-
-  /**
-   * 有效期开始日
-   */
-  private Date validStart;
-
-  /**
-   * 有效期结束日
-   */
-  private Date validEnd;
-
-  /**
-   * 总量;总量为0代表不限量
-   */
-  private Integer quantity;
-
-  /**
-   * 已发放量
-   */
-  private Integer distributeQty;
-
-  /**
-   * 创建时间
-   */
-  private Date createdTime;
-
-  /**
-   * 更新时间
-   */
-  private Date updatedTime;
-
+	/**
+	 * 盲票购买优惠券使用范围限制列表
+	 */
+	private List<String> boxIdList;
+
+	/**
+	 * 经销商门店优惠券使用范围限制列表
+	 */
+	private List<Long> channelIdList;
+
+	/**
+	 * 主键
+	 */
+	private String couponId;
+
+	/**
+	 * 标题
+	 */
+	private String title;
+
+	/**
+	 * 类型;1用户盲票购买优惠券、2用户门店消费优惠券、3经销商盲票采购优惠券
+	 */
+	@JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+	private CouponTypeEnum type;
+
+	/**
+	 * 图片
+	 */
+	private String picUrl;
+
+	/**
+	 * 使用说明
+	 */
+	private String description;
+
+	/**
+	 * 优惠类型;1代金券、2折扣券、3兑换券
+	 */
+	@JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+	private CouponDiscountTypeEnum discountType;
+
+	/**
+	 * 优惠金额(比例)
+	 */
+	private Integer discount;
+
+	/**
+	 * 最低消费金额
+	 */
+	private Integer minOrderAmt;
+
+	/**
+	 * 渠道代金券,渠道承担比例
+	 */
+	private Integer channelSharedRate;
+
+	/**
+	 * 状态;off下架 on正常
+	 */
+	@JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+	private CouponStatusEnum status;
+
+	/**
+	 * 使用范围;0通用 1生成券时指定范围 2发放时动态指定范围
+	 */
+	@JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+	private CouponUseAreaEnum useArea;
+
+	/**
+	 * 发放方式;1系统发放 2用户主动领取
+	 */
+	@JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+	private CouponDistributeTypeEnum distributeType;
+
+	/**
+	 * 叠加使用;0不允许 1允许
+	 */
+	private Integer compositeUse;
+
+	/**
+	 * 有效期天数;从领券后开始多少天有效,0则使用绝对有效期
+	 */
+	private Integer dueDays;
+
+	/**
+	 * 有效期开始日
+	 */
+	private Date validStart;
+
+	/**
+	 * 有效期结束日
+	 */
+	private Date validEnd;
+
+	/**
+	 * 总量;总量为0代表不限量
+	 */
+	private Integer quantity;
+
+	/**
+	 * 已发放量
+	 */
+	private Integer distributeQty;
+
+	/**
+	 * 创建时间
+	 */
+	private Date createdTime;
+
+	/**
+	 * 更新时间
+	 */
+	private Date updatedTime;
 
 }

+ 22 - 5
mp-service/src/main/java/com/qs/mp/admin/domain/vo/GoodsVO.java

@@ -1,5 +1,7 @@
 package com.qs.mp.admin.domain.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.qs.mp.admin.domain.GoodsSku;
 
 import java.util.Date;
@@ -20,11 +22,7 @@ public class GoodsVO {
 	 */
 	private List<GoodsSku> skuList;
 
-	/**
-	 * 主键
-	 */
 	private String goodsId;
-
 	/**
 	 * 商品标题
 	 */
@@ -60,6 +58,11 @@ public class GoodsVO {
 	 */
 	private Integer value;
 
+	/**
+	 * 商品成本
+	 */
+	private Integer cost;
+
 	/**
 	 * 库存数量
 	 */
@@ -70,11 +73,26 @@ public class GoodsVO {
 	 */
 	private Integer exchangedQty;
 
+	/**
+	 * 兑换大厅是否展示,0不展示,1展示
+	 */
+	private Integer exchangeShow;
+
+	/**
+	 * 是否多sku,0否,1是
+	 */
+	private Integer multiSku;
+
 	/**
 	 * 上架状态;上架/下架
 	 */
 	private String status;
 
+	/**
+	 * 逻辑删除标识
+	 */
+	private Integer isDeleted;
+
 	/**
 	 * 创建时间
 	 */
@@ -84,5 +102,4 @@ public class GoodsVO {
 	 * 更新时间
 	 */
 	private Date updatedTime;
-
 }

+ 2 - 1
mp-service/src/main/resources/mapper/admin/CouponMapper.xml

@@ -22,13 +22,14 @@
         <result column="valid_end" property="validEnd" />
         <result column="quantity" property="quantity" />
         <result column="distribute_qty" property="distributeQty" />
+        <result column="is_deleted" property="isDeleted" />
         <result column="created_time" property="createdTime" />
         <result column="updated_time" property="updatedTime" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        coupon_id, title, type, pic_url, description, discount_type, discount, min_order_amt, channel_shared_rate, status, use_area, distribute_type, composite_use, due_days, valid_start, valid_end, quantity, distribute_qty, created_time, updated_time
+        coupon_id, title, type, pic_url, description, discount_type, discount, min_order_amt, channel_shared_rate, status, use_area, distribute_type, composite_use, due_days, valid_start, valid_end, quantity, distribute_qty, is_deleted, created_time, updated_time
     </sql>
 
 </mapper>