瀏覽代碼

直播间购买详情列表

zouxuan 3 年之前
父節點
當前提交
a85be51644

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImLiveBroadcastRoomDao.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
 import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
+import com.ym.mec.biz.dal.vo.LiveRoomGoodsOrderVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -29,5 +30,10 @@ public interface ImLiveBroadcastRoomDao extends BaseMapper<ImLiveBroadcastRoom>
 
     List<BaseRoomUserVo> queryBaseUserInfo(@Param("list") List<Integer> list);
 
+    List<LiveRoomGoodsOrderVo> queryLiveRoomGoodsOrderList(Map<String, Object> params);
+
+    int countLiveRoomGoodsOrderList(Map<String, Object> params);
+
+    Map sumLiveRoomGoodsOrderList(Map<String, Object> params);
 }
 

+ 37 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/LiveRoomGoodsOrderQueryInfo.java

@@ -0,0 +1,37 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+import java.util.Date;
+
+public class LiveRoomGoodsOrderQueryInfo extends QueryInfo {
+    private String roomUid;
+
+    private Date startTime;
+
+    private Date endTime;
+
+    public String getRoomUid() {
+        return roomUid;
+    }
+
+    public void setRoomUid(String roomUid) {
+        this.roomUid = roomUid;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+}

+ 76 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/vo/LiveRoomGoodsOrderVo.java

@@ -0,0 +1,76 @@
+package com.ym.mec.biz.dal.vo;
+
+import java.math.BigDecimal;
+
+public class LiveRoomGoodsOrderVo extends BaseRoomUserVo{
+
+    private String phone;
+
+    private String goodsName;
+
+    private BigDecimal actualPrice;
+
+    private BigDecimal expectPrice;
+
+    private BigDecimal balance;
+
+    private BigDecimal couponRemitFee;
+
+    private String payTime;
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getGoodsName() {
+        return goodsName;
+    }
+
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    public BigDecimal getActualPrice() {
+        return actualPrice;
+    }
+
+    public void setActualPrice(BigDecimal actualPrice) {
+        this.actualPrice = actualPrice;
+    }
+
+    public BigDecimal getExpectPrice() {
+        return expectPrice;
+    }
+
+    public void setExpectPrice(BigDecimal expectPrice) {
+        this.expectPrice = expectPrice;
+    }
+
+    public BigDecimal getBalance() {
+        return balance;
+    }
+
+    public void setBalance(BigDecimal balance) {
+        this.balance = balance;
+    }
+
+    public BigDecimal getCouponRemitFee() {
+        return couponRemitFee;
+    }
+
+    public void setCouponRemitFee(BigDecimal couponRemitFee) {
+        this.couponRemitFee = couponRemitFee;
+    }
+
+    public String getPayTime() {
+        return payTime;
+    }
+
+    public void setPayTime(String payTime) {
+        this.payTime = payTime;
+    }
+}

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImLiveBroadcastRoomService.java

@@ -3,8 +3,10 @@ package com.ym.mec.biz.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
+import com.ym.mec.biz.dal.page.LiveRoomGoodsOrderQueryInfo;
 import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
+import com.ym.mec.biz.dal.vo.LiveRoomGoodsOrderVo;
 import com.ym.mec.common.entity.ImUserState;
 import com.ym.mec.common.page.PageInfo;
 
@@ -85,5 +87,7 @@ public interface ImLiveBroadcastRoomService extends IService<ImLiveBroadcastRoom
      */
     List<BaseRoomUserVo> queryBaseUserInfo(List<Integer> userIdList);
 
+    //查询直播间商品订单列表
+    PageInfo<LiveRoomGoodsOrderVo> queryLiveRoomGoodsOrderList(LiveRoomGoodsOrderQueryInfo queryInfo);
 }
 

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImLiveBroadcastRoomServiceImpl.java

@@ -19,8 +19,10 @@ import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoom;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomData;
 import com.ym.mec.biz.dal.entity.ImLiveBroadcastRoomMember;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.dal.page.LiveRoomGoodsOrderQueryInfo;
 import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
+import com.ym.mec.biz.dal.vo.LiveRoomGoodsOrderVo;
 import com.ym.mec.biz.dal.vo.RoomUserInfoVo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.entity.ImRoomMessage;
@@ -31,6 +33,7 @@ import com.ym.mec.common.page.PageUtil;
 import com.ym.mec.common.page.WrapperUtil;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import com.ym.mec.im.ImFeignService;
+import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
 import org.apache.commons.collections.CollectionUtils;
@@ -1135,6 +1138,27 @@ public class ImLiveBroadcastRoomServiceImpl extends ServiceImpl<ImLiveBroadcastR
                 .orElseThrow(() -> new BizException("用户id集合不能为空"));
     }
 
+    @Override
+    public PageInfo<LiveRoomGoodsOrderVo> queryLiveRoomGoodsOrderList(LiveRoomGoodsOrderQueryInfo queryInfo) {
+        PageInfo<LiveRoomGoodsOrderVo> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<LiveRoomGoodsOrderVo> dataList = null;
+        int count = baseMapper.countLiveRoomGoodsOrderList(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = baseMapper.queryLiveRoomGoodsOrderList(params);
+            pageInfo.setStatInfo(baseMapper.sumLiveRoomGoodsOrderList(params));
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
     /**
      * 查询直播间所有用户信息
      *

+ 52 - 0
mec-biz/src/main/resources/config/mybatis/ImLiveBroadcastRoomMapper.xml

@@ -112,5 +112,57 @@
             </foreach>
         </where>
     </select>
+    <resultMap id="LiveRoomGoodsOrderVo" type="com.ym.mec.biz.dal.vo.LiveRoomGoodsOrderVo">
+        <result property="userId" column="user_id_"/>
+        <result property="userName" column="username_"/>
+        <result property="phone" column="phone_"/>
+        <result property="goodsName" column="goods_name_"/>
+        <result property="actualPrice" column="actual_amount_"/>
+        <result property="expectPrice" column="expect_amount_"/>
+        <result property="balance" column="balance_payment_amount_"/>
+        <result property="couponRemitFee" column="coupon_remit_fee_"/>
+        <result property="payTime" column="pay_time_"/>
+        <result property="goodsName" column="goods_name_"/>
+    </resultMap>
+    <sql id="queryLiveRoomGoodsOrderSql">
+        <where>
+            spo.group_type_ = 'LIVE_BUY' AND spo.type_ = 'LIVE_BUY'
+            AND spo.status_ = 'SUCCESS'
+            <if test="search != null and search != ''">
+                AND (su.id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+            </if>
+            <if test="roomUid != null and roomUid != ''">
+                AND spo.music_group_id_ = #{roomUid}
+            </if>
+            <if test="startTime != null">
+                AND DATE_FORMAT(spo.pay_time_, '%Y-%m-%d') >= #{startTime}
+            </if>
+            <if test="endTime != null">
+                AND DATE_FORMAT(spo.pay_time_, '%Y-%m-%d') &lt;= #{endTime}
+            </if>
+        </where>
+    </sql>
+    <select id="queryLiveRoomGoodsOrderList" resultMap="LiveRoomGoodsOrderVo">
+        SELECT su.id_ user_id_,su.username_,su.phone_,spo.actual_amount_,spo.expect_amount_,
+        spo.balance_payment_amount_,spo.coupon_remit_fee_,spo.pay_time_,GROUP_CONCAT(lg.name_) goods_name_ FROM student_payment_order spo
+        LEFT JOIN student_payment_order_detail spod ON spo.id_ = spod.payment_order_id_
+        LEFT JOIN live_goods lg ON FIND_IN_SET(lg.id_,spod.goods_id_list_)
+        LEFT JOIN sys_user su ON su.id_ = spo.user_id_
+        <include refid="queryLiveRoomGoodsOrderSql"/>
+        GROUP BY spo.id_
+        ORDER BY spo.pay_time_ DESC
+        <include refid="global.limit"/>
+    </select>
+    <select id="countLiveRoomGoodsOrderList" resultType="java.lang.Integer">
+        SELECT COUNT(DISTINCT spo.id_) FROM student_payment_order spo
+        LEFT JOIN sys_user su ON su.id_ = spo.user_id_
+        <include refid="queryLiveRoomGoodsOrderSql"/>
+    </select>
+    <select id="sumLiveRoomGoodsOrderList" resultType="java.util.Map">
+        SELECT COUNT(DISTINCT spo.user_id_) buyNum,SUM(spo.expect_amount_) totalAmount
+        FROM student_payment_order spo
+        LEFT JOIN sys_user su ON su.id_ = spo.user_id_
+        <include refid="queryLiveRoomGoodsOrderSql"/>
+    </select>
 
 </mapper>

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ImLiveBroadcastRoomController.java

@@ -2,13 +2,16 @@ package com.ym.mec.web.controller;
 
 
 import com.ym.mec.biz.dal.dto.ImLiveBroadcastRoomDto;
+import com.ym.mec.biz.dal.page.LiveRoomGoodsOrderQueryInfo;
 import com.ym.mec.biz.dal.vo.BaseRoomUserVo;
 import com.ym.mec.biz.dal.vo.ImLiveBroadcastRoomVo;
+import com.ym.mec.biz.dal.vo.LiveRoomGoodsOrderVo;
 import com.ym.mec.biz.service.ImLiveBroadcastRoomService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.entity.ImUserState;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.page.WrapperUtil;
 import io.swagger.annotations.*;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -200,5 +203,10 @@ public class ImLiveBroadcastRoomController extends BaseController {
         return succeed(imLiveBroadcastRoomService.queryBaseUserInfo(userIdList));
     }
 
+    @ApiOperation("查询直播间商品订单列表")
+    @GetMapping("/queryLiveRoomGoodsOrderList")
+    public HttpResponseResult<PageInfo<LiveRoomGoodsOrderVo>> queryLiveRoomGoodsOrderList(LiveRoomGoodsOrderQueryInfo queryInfo){
+        return succeed(imLiveBroadcastRoomService.queryLiveRoomGoodsOrderList(queryInfo));
+    }
 }