Przeglądaj źródła

盲票关联商品列表

cup 2 lat temu
rodzic
commit
56d6527c27

+ 15 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserTicketController.java

@@ -9,6 +9,7 @@ import com.github.xiaoymin.knife4j.annotations.DynamicParameter;
 import com.github.xiaoymin.knife4j.annotations.DynamicResponseParameters;
 import com.qs.mp.admin.domain.*;
 import com.qs.mp.admin.domain.dto.TicketDrawNumDTO;
+import com.qs.mp.admin.domain.param.TicketBoxGoodsQueryParam;
 import com.qs.mp.admin.domain.param.TicketBoxParam;
 import com.qs.mp.admin.domain.param.TicketParam;
 import com.qs.mp.admin.domain.vo.*;
@@ -104,6 +105,20 @@ public class UserTicketController extends BaseApiController {
     return AjaxResult.success(true);
   }
 
+  @PostMapping("/mall/ticket/goods/list")
+  @ApiOperation("盲票关联商品列表")
+  public TableDataInfo ticketGoodsList(@RequestBody TicketBoxGoodsQueryParam param) {
+    startPage();
+    QueryWrapper<TicketBoxGoodsListVO> queryWrapper = new QueryWrapper<>();
+    queryWrapper.eq("t1.is_deleted",0);
+    queryWrapper.eq("t1.type",param.getType());
+    queryWrapper.eq("t1.status", TicketBoxStatusEnum.PUT_ON);
+    queryWrapper.eq("t2.is_deleted", 0);
+    queryWrapper.orderByDesc("t1.sort_weight");
+    List<TicketBoxGoodsListVO> list = ticketBoxService.listTicketGoodsByQueryWrapper(queryWrapper);
+    return getDataTable(list);
+  }
+
 
   /**
    * 盲票列表

+ 23 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/TicketBoxGoodsQueryParam.java

@@ -0,0 +1,23 @@
+package com.qs.mp.admin.domain.param;
+
+import com.qs.mp.common.enums.TicketTypeEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * 盲票票组和关联商品列表查询参数
+ * @author Cup
+ * @date 2022/7/18
+ */
+@ApiModel("盲票票组和关联商品列表查询参数")
+@Data
+public class TicketBoxGoodsQueryParam {
+
+    @NotNull(message = "盲票类型不能为空")
+    @ApiModelProperty(value = "盲票类型",required=true)
+    private TicketTypeEnum type;
+
+
+}

+ 113 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/vo/TicketBoxGoodsListVO.java

@@ -0,0 +1,113 @@
+package com.qs.mp.admin.domain.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * 盲票关联商品出参类
+ * @author Cup
+ * @date 2022/7/18
+ */
+@ApiModel("盲票关联商品出参类")
+@Data
+public class TicketBoxGoodsListVO {
+
+
+    @ApiModelProperty("盲票组id")
+    private String boxId;
+    /**
+     * 盲票组标题
+     */
+    @ApiModelProperty("商品标题")
+    private String title;
+    /**
+     * 主图url
+     */
+    @ApiModelProperty("主图Url")
+    private String picUrl;
+
+    /**
+     * 盲票张数
+     */
+    @ApiModelProperty("盲票张数")
+    private Integer quantity;
+
+    /**
+     * 已售盲票张数
+     */
+    @ApiModelProperty("已售盲票张数")
+    private Integer saleQty;
+
+    /**
+     * 盲票包原价
+     */
+    @ApiModelProperty("盲票包原价")
+    private Integer pkgPrice;
+
+    /**
+     * 盲票包售价
+     */
+    @ApiModelProperty("盲票包售价")
+    private Integer pkgSalePrice;
+
+    /**
+     * 每包盲票张数
+     */
+    @ApiModelProperty("每包盲票张数")
+    private Integer pkgUnit;
+
+    /**
+     * 盲票包数
+     */
+    @ApiModelProperty("盲票包数")
+    private Integer pkgQty;
+
+    /**
+     * 已销售包数
+     */
+    @ApiModelProperty("已销售包数")
+    private Integer salePkgQty;
+
+    /**
+     * 盲票票面价格
+     */
+    @ApiModelProperty("盲票票面价格")
+    private Integer facePrice;
+
+    @ApiModelProperty("盲票原价")
+    private Integer originPrice;
+
+    /**
+     * 盲票销售价格
+     */
+    @ApiModelProperty("盲票销售价格")
+    private Integer salePrice;
+
+    @ApiModelProperty("盲票预购价")
+    private Integer prePrice;
+
+    @ApiModelProperty("盲票包预购价")
+    private Integer pkgPrePrice;
+
+    /**
+     * 分佣的销售额百分比
+     */
+    @ApiModelProperty("分佣的销售额百分比")
+    private BigDecimal saleCommRate;
+
+    /**
+     * 规格属性
+     */
+    @ApiModelProperty("规格属性")
+    private String properties;
+
+    /**
+     * 上架时间
+     */
+    @ApiModelProperty("上架时间")
+    private Date onTime;
+
+}

+ 9 - 0
mp-service/src/main/java/com/qs/mp/admin/mapper/TicketBoxMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.qs.mp.admin.domain.TicketBox;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.mp.admin.domain.vo.TicketBoxGoodsListVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -21,4 +22,12 @@ public interface TicketBoxMapper extends BaseMapper<TicketBox> {
      * @return
      */
     List<TicketBox> listBySaleChannel(@Param(Constants.WRAPPER) QueryWrapper<TicketBox> queryWrapper);
+
+    /**
+     * 根据条件查询盲票组合关联的商品列表
+     * @param queryWrapper
+     * @return
+     */
+    List<TicketBoxGoodsListVO> listTicketGoodsByQueryWrapper(@Param(Constants.WRAPPER) QueryWrapper<TicketBoxGoodsListVO> queryWrapper);
+
 }

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

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qs.mp.admin.domain.param.TicketBoxCreateParam;
 import com.qs.mp.admin.domain.param.TicketBoxUpdateParam;
 
+import com.qs.mp.admin.domain.vo.TicketBoxGoodsListVO;
 import java.util.List;
 
 /**
@@ -50,4 +51,11 @@ public interface ITicketBoxService extends IService<TicketBox> {
    * @return
    */
   List<TicketBox> listBySaleChannel(QueryWrapper<TicketBox> queryWrapper);
+
+  /**
+   * 根据条件查询盲票组以及关联商品列表
+   * @param queryWrapper
+   * @return
+   */
+  List<TicketBoxGoodsListVO> listTicketGoodsByQueryWrapper(QueryWrapper<TicketBoxGoodsListVO> queryWrapper);
 }

+ 6 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketBoxServiceImpl.java

@@ -12,6 +12,7 @@ import com.qs.mp.admin.domain.param.TicketAwardsParam;
 import com.qs.mp.admin.domain.param.TicketAwardsPrizeParam;
 import com.qs.mp.admin.domain.param.TicketBoxCreateParam;
 import com.qs.mp.admin.domain.param.TicketBoxUpdateParam;
+import com.qs.mp.admin.domain.vo.TicketBoxGoodsListVO;
 import com.qs.mp.admin.mapper.TicketBoxMapper;
 import com.qs.mp.admin.service.*;
 import com.qs.mp.channel.domain.Channel;
@@ -98,6 +99,11 @@ public class TicketBoxServiceImpl extends ServiceImpl<TicketBoxMapper, TicketBox
   private ITicketBoxGoodsService ticketBoxGoodsService;
 
 
+  @Override
+  public List<TicketBoxGoodsListVO> listTicketGoodsByQueryWrapper(QueryWrapper<TicketBoxGoodsListVO> queryWrapper) {
+    return getBaseMapper().listTicketGoodsByQueryWrapper(queryWrapper);
+  }
+
   @Override
   public List<TicketBox> listBySaleChannel(QueryWrapper<TicketBox> queryWrapper) {
     return getBaseMapper().listBySaleChannel(queryWrapper);

+ 10 - 0
mp-service/src/main/resources/mapper/admin/TicketBoxMapper.xml

@@ -43,4 +43,14 @@
         left join mp_ticket_box_channel t2 on t1.box_id = t2.box_id
         ${ew.customSqlSegment}
     </select>
+
+    <select id="listTicketGoodsByQueryWrapper" resultType="com.qs.mp.admin.domain.vo.TicketBoxGoodsListVO">
+        select if(t3.title is not null, t3.title, t2.title)       as title,
+               if(t3.pic_url is not null, t3.pic_url, t2.pic_url) as pic_url,
+               t1.*
+        from mp_ticket_box t1
+             left join mp_ticket_box_goods t2 on t1.box_id = t2.box_id
+             left join mp_goods t3 on t2.ref_id = t3.goods_id
+        ${ew.customSqlSegment}
+  </select>
 </mapper>