Przeglądaj źródła

我的盲票列表接口

cup 3 lat temu
rodzic
commit
15ed94dc69

+ 51 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelMyTicketController.java

@@ -0,0 +1,51 @@
+package com.qs.mp.web.controller.api.channel;
+
+import com.qs.mp.channel.domain.param.ChannelMyTicketQueryParam;
+import com.qs.mp.channel.domain.vo.ChannelMyTicketVO;
+import com.qs.mp.channel.service.IChannelOrderDetailService;
+import com.qs.mp.common.core.domain.AjaxResult;
+import com.qs.mp.common.enums.TicketPkgSaleStatusEnum;
+import com.qs.mp.utils.SecurityUtils;
+import com.qs.mp.web.controller.common.BaseApiController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 我的盲票相关接口
+ * @author Cup
+ * @date 2022/4/21
+ */
+@RestController
+@RequestMapping("/api/v1/mp/channel/my/ticket")
+@Api(tags = "我的盲票相关接口")
+public class ChannelMyTicketController extends BaseApiController {
+
+    @Autowired
+    private IChannelOrderDetailService channelOrderDetailService;
+
+    @PostMapping("list")
+    @ApiOperation("我的盲票列表")
+    @ApiResponses(
+            @ApiResponse(code = 200, message = "成功", response = ChannelMyTicketVO.class)
+    )
+    public AjaxResult list(@RequestBody ChannelMyTicketQueryParam channelMyTicketQueryParam) {
+        Long channelId = SecurityUtils.getLoginUser().getChannelId();
+        if (channelId == null) {
+            return AjaxResult.error("非法调用");
+        }
+
+        startPage();
+        // 获取我的盲票列表
+        List<ChannelMyTicketVO> list =  channelOrderDetailService.listMyTicket(channelId, channelMyTicketQueryParam);
+
+        return AjaxResult.success(list);
+    }
+
+
+}

+ 27 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/param/ChannelMyTicketQueryParam.java

@@ -0,0 +1,27 @@
+package com.qs.mp.channel.domain.param;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.qs.mp.common.enums.TicketPkgSaleStatusEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 经销商我的盲票查询入参类
+ * @author Cup
+ * @date 2022/4/21
+ */
+@ApiModel(value= "经销商我的盲票查询入参类")
+@Data
+public class ChannelMyTicketQueryParam {
+
+    @ApiModelProperty("销售状态 1待售,2销售中,3已售罄")
+    public TicketPkgSaleStatusEnum saleStatus;
+
+
+    @ApiModelProperty("搜索名称")
+    public String searchTitle;
+
+
+}

+ 60 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelMyTicketVO.java

@@ -0,0 +1,60 @@
+package com.qs.mp.channel.domain.vo;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.qs.mp.common.enums.TicketPkgSaleStatusEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 经销商我的盲票出参类
+ * @author Cup
+ * @date 2022/4/21
+ */
+@ApiModel("经销商我的盲票出参类")
+@Data
+public class ChannelMyTicketVO {
+
+    @ApiModelProperty("id")
+    private Long id;
+
+    @ApiModelProperty("盲票组ID")
+    private String boxId;
+
+    @ApiModelProperty("盲票包ID")
+    private String pkgId;
+
+
+    @ApiModelProperty("票包编号")
+    public String pkgNo;
+
+    @ApiModelProperty("主图")
+    private String picUrl;
+
+    @ApiModelProperty("票包名称")
+    private String title;
+
+    @ApiModelProperty("票的规格")
+    private Integer pkgUnit;
+
+    @ApiModelProperty("销售状态 1待售,2销售中,3已售罄")
+    @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+    private TicketPkgSaleStatusEnum saleStatus;
+
+    @ApiModelProperty("销售数量")
+    private Integer saleQty;
+
+    @ApiModelProperty("面值")
+    private Integer facePrice;
+
+
+    @ApiModelProperty("创建时间")
+    private Date createdTime;
+
+
+
+
+}

+ 16 - 0
mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelOrderDetailMapper.java

@@ -1,7 +1,15 @@
 package com.qs.mp.channel.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.qs.mp.channel.domain.Channel;
 import com.qs.mp.channel.domain.ChannelOrderDetail;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.mp.channel.domain.param.ChannelMyTicketQueryParam;
+import com.qs.mp.channel.domain.vo.ChannelMyTicketVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @auther quanshu
@@ -10,4 +18,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ChannelOrderDetailMapper extends BaseMapper<ChannelOrderDetail> {
 
+
+    /**
+     * 查询我的盲票列表
+     * @param wrapper
+     * @return
+     */
+    List<ChannelMyTicketVO> selectListMyTicketByChannelIdAndchannelMyTicketQueryParam(@Param(Constants.WRAPPER) Wrapper<ChannelOrderDetail> wrapper);
+
 }

+ 11 - 0
mp-service/src/main/java/com/qs/mp/channel/service/IChannelOrderDetailService.java

@@ -2,6 +2,10 @@ package com.qs.mp.channel.service;
 
 import com.qs.mp.channel.domain.ChannelOrderDetail;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qs.mp.channel.domain.param.ChannelMyTicketQueryParam;
+import com.qs.mp.channel.domain.vo.ChannelMyTicketVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +17,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IChannelOrderDetailService extends IService<ChannelOrderDetail> {
 
+    /**
+     * 获取我的盲票列表
+     * @param channelId 经销商id
+     * @param channelMyTicketQueryParam 查询参数
+     * @return
+     */
+    List<ChannelMyTicketVO> listMyTicket(Long channelId, ChannelMyTicketQueryParam channelMyTicketQueryParam);
 }

+ 22 - 0
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelOrderDetailServiceImpl.java

@@ -1,11 +1,18 @@
 package com.qs.mp.channel.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qs.mp.channel.domain.ChannelOrderDetail;
+import com.qs.mp.channel.domain.param.ChannelMyTicketQueryParam;
+import com.qs.mp.channel.domain.vo.ChannelMyTicketVO;
 import com.qs.mp.channel.mapper.ChannelOrderDetailMapper;
 import com.qs.mp.channel.service.IChannelOrderDetailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.Objects;
+
 /**
  * <p>
  * 经销商采购订单盲票包明细 服务实现类
@@ -17,4 +24,19 @@ import org.springframework.stereotype.Service;
 @Service
 public class ChannelOrderDetailServiceImpl extends ServiceImpl<ChannelOrderDetailMapper, ChannelOrderDetail> implements IChannelOrderDetailService {
 
+
+    @Override
+    public List<ChannelMyTicketVO> listMyTicket(Long channelId, ChannelMyTicketQueryParam channelMyTicketQueryParam) {
+        QueryWrapper<ChannelOrderDetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("t1.channel_id", channelId);
+        if (Objects.nonNull(channelMyTicketQueryParam.getSaleStatus())) {
+            queryWrapper.eq("t2.sale_status", channelMyTicketQueryParam.getSaleStatus());
+        }
+        if (StringUtils.isNotBlank(channelMyTicketQueryParam.getSearchTitle())) {
+            queryWrapper.likeRight("t2.pkg_no", channelMyTicketQueryParam.getSearchTitle())
+                    .or()
+                    .likeRight("t3.title", channelMyTicketQueryParam.getSearchTitle());
+        }
+        return this.baseMapper.selectListMyTicketByChannelIdAndchannelMyTicketQueryParam(queryWrapper);
+    }
 }

+ 19 - 0
mp-service/src/main/resources/mapper/channel/ChannelOrderDetailMapper.xml

@@ -20,4 +20,23 @@
         id, order_id, channel_id, box_id, pkg_id, start_sn, end_sn, created_time, updated_time
     </sql>
 
+    <select id="selectListMyTicketByChannelIdAndchannelMyTicketQueryParam"
+            resultType="com.qs.mp.channel.domain.vo.ChannelMyTicketVO">
+        SELECT t1.id,
+               t1.channel_id,
+               t1.box_id,
+               t1.pkg_id,
+               t1.created_time,
+               t2.pkg_no,
+               t2.sale_status,
+               t2.sale_qty,
+               t2.pkg_unit,
+               t3.title,
+               t3.pic_url,
+               t3.face_price
+        FROM mp_channel_order_detail t1
+         LEFT JOIN mp_ticket_package t2 ON t1.pkg_id = t2.pkg_id
+         LEFT JOIN mp_ticket_box t3 ON t2.box_id = t3.box_id
+        ${ew.customSqlSegment}
+    </select>
 </mapper>