Răsfoiți Sursa

直播间列表&礼物列表

DESKTOP-YALE\greyg 1 an în urmă
părinte
comite
ec0d0d4d19
27 a modificat fișierele cu 1998 adăugiri și 109 ștergeri
  1. 5 13
      src/main/java/com/hy/common/web/base/BaseController.java
  2. 110 0
      src/main/java/com/hy/modules/bz/controller/BzAnchorStudioController.java
  3. 118 0
      src/main/java/com/hy/modules/bz/controller/BzGiftRecordController.java
  4. 1 1
      src/main/java/com/hy/modules/bz/controller/BzPlayerController.java
  5. 57 0
      src/main/java/com/hy/modules/bz/domain/BzAnchorStudio.java
  6. 70 0
      src/main/java/com/hy/modules/bz/domain/BzGiftRecord.java
  7. 3 7
      src/main/java/com/hy/modules/bz/domain/BzPlayer.java
  8. 24 0
      src/main/java/com/hy/modules/bz/mapper/BzAnchorStudioMapper.java
  9. 29 0
      src/main/java/com/hy/modules/bz/mapper/BzGiftRecordMapper.java
  10. 33 0
      src/main/java/com/hy/modules/bz/mapper/xml/BzAnchorStudioMapper.xml
  11. 68 0
      src/main/java/com/hy/modules/bz/mapper/xml/BzGiftRecordMapper.xml
  12. 3 6
      src/main/java/com/hy/modules/bz/mapper/xml/BzPlayerMapper.xml
  13. 24 0
      src/main/java/com/hy/modules/bz/service/IBzAnchorStudioService.java
  14. 32 0
      src/main/java/com/hy/modules/bz/service/IBzGiftRecordService.java
  15. 37 0
      src/main/java/com/hy/modules/bz/service/impl/BzAnchorStudioServiceImpl.java
  16. 53 0
      src/main/java/com/hy/modules/bz/service/impl/BzGiftRecordServiceImpl.java
  17. 157 0
      src/main/resources/templates/bz/anchorStudio/add.html
  18. 164 0
      src/main/resources/templates/bz/anchorStudio/edit.html
  19. 252 0
      src/main/resources/templates/bz/anchorStudio/main.html
  20. 179 0
      src/main/resources/templates/bz/giftRecord/add.html
  21. 188 0
      src/main/resources/templates/bz/giftRecord/edit.html
  22. 324 0
      src/main/resources/templates/bz/giftRecord/main.html
  23. 2 14
      src/main/resources/templates/bz/player/add.html
  24. 2 2
      src/main/resources/templates/bz/player/edit.html
  25. 56 58
      src/main/resources/templates/bz/player/main.html
  26. 1 0
      src/main/resources/vm/java/controller.java.vm
  27. 6 8
      src/main/resources/vm/java/domain.java.vm

+ 5 - 13
src/main/java/com/hy/common/web/base/BaseController.java

@@ -1,8 +1,9 @@
 package com.hy.common.web.base;
 
-import com.hy.common.web.domain.request.PageDomain;
 import com.hy.common.web.domain.response.ResultController;
 
+import java.util.Collections;
+
 /**
  * 基础控制器
  * <p>
@@ -11,19 +12,10 @@ import com.hy.common.web.domain.response.ResultController;
  */
 public class BaseController extends ResultController {
 
-    public static final int DEFAULT_CURRENT_PAGE = 1;
-
-    public static final int DEFAULT_PAGE_SIZE = 20;
-
-    protected void pageDomainInitialize(PageDomain pageDomain){
-        if(null == pageDomain.getPage()){
-            pageDomain.setPage(DEFAULT_CURRENT_PAGE);
+    protected void baseDomainParamsInit(BaseDomain domain){
+        if(null == domain.getParams()){
+            domain.setParams(Collections.emptyMap());
         }
-
-        if(null == pageDomain.getLimit()){
-            pageDomain.setLimit(DEFAULT_PAGE_SIZE);
-        }
-
     }
 
 

+ 110 - 0
src/main/java/com/hy/modules/bz/controller/BzAnchorStudioController.java

@@ -0,0 +1,110 @@
+package com.hy.modules.bz.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.hy.modules.bz.domain.BzAnchorStudio;
+import com.hy.common.web.base.BaseController;
+import com.hy.common.web.domain.request.PageDomain;
+import com.hy.common.web.domain.response.Result;
+import com.hy.common.web.domain.response.module.ResultTable;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import com.hy.modules.bz.service.IBzAnchorStudioService;
+
+import java.util.Arrays;
+
+/**
+ * 主播直播间列表查询刷新Controller
+ *
+ * @author 伍月
+ * @date 2024-05-07
+ */
+@RestController
+@RequestMapping("/bz/anchorStudio")
+public class BzAnchorStudioController extends BaseController {
+
+    private String prefix = "bz/anchorStudio";
+
+    @Autowired
+    private IBzAnchorStudioService bzAnchorStudioService;
+
+    @GetMapping("/main")
+    @PreAuthorize("hasPermission('/bz/anchorStudio/main','bz:anchorStudio:main')")
+    public ModelAndView main() {
+        return jumpPage(prefix + "/main");
+    }
+
+    /**
+     * 查询主播直播间列表查询刷新列表
+     */
+    @ResponseBody
+    @GetMapping("/data")
+    @PreAuthorize("hasPermission('/bz/anchorStudio/data','bz:anchorStudio:data')")
+    public ResultTable list(@ModelAttribute BzAnchorStudio bzAnchorStudio, PageDomain pageDomain) {
+        baseDomainParamsInit(bzAnchorStudio);
+        PageInfo<BzAnchorStudio> pageInfo = bzAnchorStudioService.selectBzAnchorStudioPage(bzAnchorStudio, pageDomain);
+        return pageTable(pageInfo.getList(), pageInfo.getTotal());
+    }
+
+    /**
+     * 新增主播直播间列表查询刷新
+     */
+    @GetMapping("/add")
+    @PreAuthorize("hasPermission('/bz/anchorStudio/add','bz:anchorStudio:add')")
+    public ModelAndView add() {
+        return jumpPage(prefix + "/add");
+    }
+
+    /**
+     * 新增主播直播间列表查询刷新
+     */
+    @ResponseBody
+    @PostMapping("/save")
+    @PreAuthorize("hasPermission('/bz/anchorStudio/add','bz:anchorStudio:add')")
+    public Result save(@RequestBody BzAnchorStudio bzAnchorStudio) {
+        return decide(bzAnchorStudioService.save(bzAnchorStudio));
+    }
+
+    /**
+     * 修改主播直播间列表查询刷新
+     */
+    @GetMapping("/edit")
+    @PreAuthorize("hasPermission('/bz/anchorStudio/edit','bz:anchorStudio:edit')")
+    public ModelAndView edit(Long id, ModelMap map) {
+        BzAnchorStudio bzAnchorStudio =bzAnchorStudioService.getById(id);
+        map.put("bzAnchorStudio", bzAnchorStudio);
+        return jumpPage(prefix + "/edit");
+    }
+
+    /**
+     * 修改主播直播间列表查询刷新
+     */
+    @ResponseBody
+    @PutMapping("/update")
+    @PreAuthorize("hasPermission('/bz/anchorStudio/edit','bz:anchorStudio:edit')")
+    public Result update(@RequestBody BzAnchorStudio bzAnchorStudio) {
+        return decide(bzAnchorStudioService.updateById(bzAnchorStudio));
+    }
+
+    /**
+     * 删除主播直播间列表查询刷新
+     */
+    @ResponseBody
+    @DeleteMapping("/batchRemove")
+    @PreAuthorize("hasPermission('/bz/anchorStudio/remove','bz:anchorStudio:remove')")
+    public Result batchRemove(String ids) {
+        return decide(bzAnchorStudioService.removeByIds(Arrays.asList(ids.split(","))));
+    }
+
+    /**
+     * 删除主播直播间列表查询刷新
+     */
+    @ResponseBody
+    @DeleteMapping("/remove/{id}")
+    @PreAuthorize("hasPermission('/bz/anchorStudio/remove','bz:anchorStudio:remove')")
+    public Result remove(@PathVariable("id") Long id) {
+        return decide(bzAnchorStudioService.removeById(id));
+    }
+}

+ 118 - 0
src/main/java/com/hy/modules/bz/controller/BzGiftRecordController.java

@@ -0,0 +1,118 @@
+package com.hy.modules.bz.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.hy.modules.bz.domain.BzGiftRecord;
+import com.hy.common.web.base.BaseController;
+import com.hy.common.web.domain.request.PageDomain;
+import com.hy.common.web.domain.response.Result;
+import com.hy.common.web.domain.response.module.ResultTable;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import com.hy.modules.bz.service.IBzGiftRecordService;
+
+import java.util.Arrays;
+import java.util.Map;
+
+/**
+ * 直播间礼物列表展示Controller
+ *
+ * @author 伍月
+ * @date 2024-05-07
+ */
+@RestController
+@RequestMapping("/bz/giftRecord")
+public class BzGiftRecordController extends BaseController {
+
+    private String prefix = "bz/giftRecord";
+
+    @Autowired
+    private IBzGiftRecordService bzGiftRecordService;
+
+    @GetMapping("/main")
+    @PreAuthorize("hasPermission('/bz/giftRecord/main','bz:giftRecord:main')")
+    public ModelAndView main() {
+        return jumpPage(prefix + "/main");
+    }
+
+    @GetMapping("/statistics")
+    @PreAuthorize("hasPermission('/bz/giftRecord/statistics','bz:giftRecord:statistics')")
+    public Result<Map<String,Object>> giftStatistics(@ModelAttribute BzGiftRecord bzGiftRecord) {
+        baseDomainParamsInit(bzGiftRecord);
+        return success(bzGiftRecordService.statistics(bzGiftRecord));
+    }
+
+    /**
+     * 查询直播间礼物列表展示列表
+     */
+    @ResponseBody
+    @GetMapping("/data")
+    @PreAuthorize("hasPermission('/bz/giftRecord/data','bz:giftRecord:data')")
+    public ResultTable list(@ModelAttribute BzGiftRecord bzGiftRecord, PageDomain pageDomain) {
+        baseDomainParamsInit(bzGiftRecord);
+        PageInfo<BzGiftRecord> pageInfo = bzGiftRecordService.selectBzGiftRecordPage(bzGiftRecord, pageDomain);
+        return pageTable(pageInfo.getList(), pageInfo.getTotal());
+    }
+
+    /**
+     * 新增直播间礼物列表展示
+     */
+    @GetMapping("/add")
+    @PreAuthorize("hasPermission('/bz/giftRecord/add','bz:giftRecord:add')")
+    public ModelAndView add() {
+        return jumpPage(prefix + "/add");
+    }
+
+    /**
+     * 新增直播间礼物列表展示
+     */
+    @ResponseBody
+    @PostMapping("/save")
+    @PreAuthorize("hasPermission('/bz/giftRecord/add','bz:giftRecord:add')")
+    public Result save(@RequestBody BzGiftRecord bzGiftRecord) {
+        return decide(bzGiftRecordService.save(bzGiftRecord));
+    }
+
+    /**
+     * 修改直播间礼物列表展示
+     */
+    @GetMapping("/edit")
+    @PreAuthorize("hasPermission('/bz/giftRecord/edit','bz:giftRecord:edit')")
+    public ModelAndView edit(Long id, ModelMap map) {
+        BzGiftRecord bzGiftRecord =bzGiftRecordService.getById(id);
+        map.put("bzGiftRecord", bzGiftRecord);
+        return jumpPage(prefix + "/edit");
+    }
+
+    /**
+     * 修改直播间礼物列表展示
+     */
+    @ResponseBody
+    @PutMapping("/update")
+    @PreAuthorize("hasPermission('/bz/giftRecord/edit','bz:giftRecord:edit')")
+    public Result update(@RequestBody BzGiftRecord bzGiftRecord) {
+        return decide(bzGiftRecordService.updateById(bzGiftRecord));
+    }
+
+    /**
+     * 删除直播间礼物列表展示
+     */
+    @ResponseBody
+    @DeleteMapping("/batchRemove")
+    @PreAuthorize("hasPermission('/bz/giftRecord/remove','bz:giftRecord:remove')")
+    public Result batchRemove(String ids) {
+        return decide(bzGiftRecordService.removeByIds(Arrays.asList(ids.split(","))));
+    }
+
+    /**
+     * 删除直播间礼物列表展示
+     */
+    @ResponseBody
+    @DeleteMapping("/remove/{id}")
+    @PreAuthorize("hasPermission('/bz/giftRecord/remove','bz:giftRecord:remove')")
+    public Result remove(@PathVariable("id") Long id) {
+        return decide(bzGiftRecordService.removeById(id));
+    }
+}

+ 1 - 1
src/main/java/com/hy/modules/bz/controller/BzPlayerController.java

@@ -43,7 +43,7 @@ public class BzPlayerController extends BaseController {
     @GetMapping("/data")
     @PreAuthorize("hasPermission('/bz/player/data','bz:player:data')")
     public ResultTable list(@ModelAttribute BzPlayer bzPlayer, PageDomain pageDomain) {
-        pageDomainInitialize(pageDomain);
+        baseDomainParamsInit(bzPlayer);
         PageInfo<BzPlayer> pageInfo = bzPlayerService.selectBzPlayerPage(bzPlayer, pageDomain);
         return pageTable(pageInfo.getList(), pageInfo.getTotal());
     }

+ 57 - 0
src/main/java/com/hy/modules/bz/domain/BzAnchorStudio.java

@@ -0,0 +1,57 @@
+package com.hy.modules.bz.domain;
+
+import java.util.Date;
+import com.hy.common.web.base.BaseDomain;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * 主播直播间列表查询刷新实体
+ *
+ * @author 伍月
+ * @date 2024-05-07
+ */
+@Data
+@TableName("bz_anchor_studio")
+public class BzAnchorStudio extends BaseDomain{
+
+    /** ID */
+    @TableId
+    private Long id;
+
+    /** CODE */
+    private String code;
+
+    /** 平台 */
+    private String platform;
+
+    /** roomId */
+    private String roomId;
+
+    /** 开播时间 */
+    private Date openTime;
+
+    /** 下播时间 */
+    private Date closeTime;
+
+    /** 直播间状态 */
+    private String status;
+
+    /** 主播ID */
+    private Long anchorId;
+
+    /** 主播名称 */
+    private String anchorName;
+
+    /** 主播昵称 */
+    private String anchorNickName;
+
+    /** 主播头像 */
+    private String anchorLogo;
+
+    /** 开播游戏 */
+    private String gameName;
+
+
+}

+ 70 - 0
src/main/java/com/hy/modules/bz/domain/BzGiftRecord.java

@@ -0,0 +1,70 @@
+package com.hy.modules.bz.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.hy.common.web.base.BaseDomain;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * 直播间礼物列表展示实体
+ *
+ * @author 伍月
+ * @date 2024-05-07
+ */
+@Data
+@TableName("bz_gift_record")
+public class BzGiftRecord extends BaseDomain{
+
+    /** ID */
+    @TableId
+    private Long id;
+
+    /** 平台 */
+    private String platform;
+
+    /** 游戏 */
+    private String game;
+
+    /** 礼物信息 */
+    private String giftInfo;
+
+    /** 礼物数量 */
+    private Long giftCount;
+
+    /** 总价值 */
+    private BigDecimal giftValue;
+
+    /** 礼物状态 */
+    private String status;
+
+    /** 模式 */
+    private String mode;
+
+    /** 用户昵称 */
+    private String userNickName;
+
+    /** 用户ID */
+    private String userId;
+
+    /** 主播CODE */
+    private String anchorCode;
+
+    /** 主播ID */
+    private Long anchorId;
+
+    /** 主播昵称 */
+    private String anchorNickName;
+
+    /** 直播间ID */
+    private Long studioId;
+
+    /** roomId */
+    private String roomId;
+
+    /** 赠送时间 */
+    private Date publishTime;
+
+
+}

+ 3 - 7
src/main/java/com/hy/modules/bz/domain/BzPlayer.java

@@ -1,9 +1,9 @@
 package com.hy.modules.bz.domain;
 
 import java.util.Date;
+import com.hy.common.web.base.BaseDomain;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.hy.common.web.base.BaseDomain;
 import lombok.Data;
 
 /**
@@ -14,10 +14,9 @@ import lombok.Data;
  */
 @Data
 @TableName("bz_player")
-public class BzPlayer extends BaseDomain {
+public class BzPlayer extends BaseDomain{
 
-
-    /** null */
+    /** ID */
     @TableId
     private Long id;
 
@@ -30,9 +29,6 @@ public class BzPlayer extends BaseDomain {
     /** 密码 */
     private String cardPassword;
 
-    /** 最后修改时间 */
-    private Date modifyTime;
-
     /** 状态 */
     private String status;
 

+ 24 - 0
src/main/java/com/hy/modules/bz/mapper/BzAnchorStudioMapper.java

@@ -0,0 +1,24 @@
+package com.hy.modules.bz.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+import com.hy.modules.bz.domain.BzAnchorStudio;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 主播直播间列表查询刷新Mapper接口
+ *
+ * @author 伍月
+ * @date 2024-05-07
+ */
+@Mapper
+public interface BzAnchorStudioMapper extends BaseMapper<BzAnchorStudio> {
+    /**
+     * 查询主播直播间列表查询刷新列表
+     *
+     * @param bzAnchorStudio 主播直播间列表查询刷新
+     * @return 主播直播间列表查询刷新集合
+     */
+    List<BzAnchorStudio> selectBzAnchorStudioList(BzAnchorStudio bzAnchorStudio);
+
+}

+ 29 - 0
src/main/java/com/hy/modules/bz/mapper/BzGiftRecordMapper.java

@@ -0,0 +1,29 @@
+package com.hy.modules.bz.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+import java.util.Map;
+
+import com.hy.modules.bz.domain.BzGiftRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 直播间礼物列表展示Mapper接口
+ *
+ * @author 伍月
+ * @date 2024-05-07
+ */
+@Mapper
+public interface BzGiftRecordMapper extends BaseMapper<BzGiftRecord> {
+    /**
+     * 查询直播间礼物列表展示列表
+     *
+     * @param bzGiftRecord 直播间礼物列表展示
+     * @return 直播间礼物列表展示集合
+     */
+    List<BzGiftRecord> selectBzGiftRecordList(BzGiftRecord bzGiftRecord);
+
+    int countPayingUsers(BzGiftRecord bzGiftRecord);
+
+    Map<String,Object> statisticsPayingUsers(BzGiftRecord bzGiftRecord);
+}

+ 33 - 0
src/main/java/com/hy/modules/bz/mapper/xml/BzAnchorStudioMapper.xml

@@ -0,0 +1,33 @@
+<?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.hy.modules.bz.mapper.BzAnchorStudioMapper">
+
+    <resultMap type="BzAnchorStudio" id="BzAnchorStudioResult">
+        <result property="id" column="id"/>
+        <result property="code" column="code"/>
+        <result property="platform" column="platform"/>
+        <result property="roomId" column="room_id"/>
+        <result property="openTime" column="open_time"/>
+        <result property="closeTime" column="close_time"/>
+        <result property="status" column="status"/>
+        <result property="anchorId" column="anchor_id"/>
+        <result property="anchorName" column="anchor_name"/>
+        <result property="anchorNickName" column="anchor_nick_name"/>
+        <result property="anchorLogo" column="anchor_logo"/>
+        <result property="gameName" column="game_name"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="createBy" column="create_by"/>
+        <result property="updateBy" column="update_by"/>
+    </resultMap>
+
+    <select id="selectBzAnchorStudioList" parameterType="BzAnchorStudio" resultMap="BzAnchorStudioResult">
+        select `id`,`code`,`platform`,`room_id`,`open_time`,`close_time`,`status`,`anchor_id`,`anchor_name`,`anchor_nick_name`,`anchor_logo`,`game_name`,`create_time`,`update_time`,`create_by`,`update_by` from `bz_anchor_studio`
+        <where>
+             <if test="platform != null  and platform != ''"> and `platform` = #{platform}</if>
+             <if test="anchorNickName != null  and anchorNickName != ''"> and `anchor_nick_name` like concat('%', #{anchorNickName}, '%')</if>
+             <if test="gameName != null  and gameName != ''"> and `game_name` = #{gameName}</if>
+        </where>
+    </select>
+
+</mapper>

+ 68 - 0
src/main/java/com/hy/modules/bz/mapper/xml/BzGiftRecordMapper.xml

@@ -0,0 +1,68 @@
+<?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.hy.modules.bz.mapper.BzGiftRecordMapper">
+
+    <resultMap type="BzGiftRecord" id="BzGiftRecordResult">
+        <result property="id" column="id"/>
+        <result property="platform" column="platform"/>
+        <result property="game" column="game"/>
+        <result property="giftInfo" column="gift_info"/>
+        <result property="giftCount" column="gift_count"/>
+        <result property="giftValue" column="gift_value"/>
+        <result property="status" column="status"/>
+        <result property="mode" column="mode"/>
+        <result property="userNickName" column="user_nick_name"/>
+        <result property="userId" column="user_id"/>
+        <result property="anchorCode" column="anchor_code"/>
+        <result property="anchorId" column="anchor_id"/>
+        <result property="anchorNickName" column="anchor_nick_name"/>
+        <result property="studioId" column="studio_id"/>
+        <result property="roomId" column="room_id"/>
+        <result property="publishTime" column="publish_time"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="createBy" column="create_by"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+    <select id="selectBzGiftRecordList" parameterType="BzGiftRecord" resultMap="BzGiftRecordResult">
+        select `id`,`platform`,`game`,`gift_info`,`gift_count`,`gift_value`,`status`,`mode`,`user_nick_name`,`user_id`,`anchor_code`,`anchor_id`,`anchor_nick_name`,`studio_id`,`room_id`,`publish_time`,`create_time`,`update_time`,`create_by`,`update_by`,`remark` from `bz_gift_record`
+        <where>
+             <if test="platform != null  and platform != ''"> and `platform` = #{platform}</if>
+             <if test="game != null  and game != ''"> and `game` = #{game}</if>
+             <if test="status != null  and status != ''"> and `status` = #{status}</if>
+             <if test="mode != null  and mode != ''"> and `mode` = #{mode}</if>
+             <if test="userNickName != null  and userNickName != ''"> and `user_nick_name` like concat('%', #{userNickName}, '%')</if>
+             <if test="anchorNickName != null  and anchorNickName != ''"> and `anchor_nick_name` like concat('%', #{anchorNickName}, '%')</if>
+             <if test="params.beginPublishTime != null and params.beginPublishTime != '' and params.endPublishTime != null and params.endPublishTime != ''"> and `publish_time` between #{params.beginPublishTime} and #{params.endPublishTime}</if>
+        </where>
+    </select>
+
+    <select id="countPayingUsers" parameterType="BzGiftRecord" resultType="int">
+        select count(distinct user_id) from `bz_gift_record`
+        <where>
+            <if test="platform != null  and platform != ''"> and `platform` = #{platform}</if>
+            <if test="game != null  and game != ''"> and `game` = #{game}</if>
+            <if test="status != null  and status != ''"> and `status` = #{status}</if>
+            <if test="mode != null  and mode != ''"> and `mode` = #{mode}</if>
+            <if test="userNickName != null  and userNickName != ''"> and `user_nick_name` like concat('%', #{userNickName}, '%')</if>
+            <if test="anchorNickName != null  and anchorNickName != ''"> and `anchor_nick_name` like concat('%', #{anchorNickName}, '%')</if>
+            <if test="params.beginPublishTime != null and params.beginPublishTime != '' and params.endPublishTime != null and params.endPublishTime != ''"> and `publish_time` between #{params.beginPublishTime} and #{params.endPublishTime}</if>
+        </where>
+    </select>
+
+    <select id="statisticsPayingUsers" parameterType="BzGiftRecord" resultType="map">
+        select count(id) as 'gift-count',IFNULL(sum(gift_value),0) as 'total-value' from `bz_gift_record`
+        <where>
+            <if test="platform != null  and platform != ''"> and `platform` = #{platform}</if>
+            <if test="game != null  and game != ''"> and `game` = #{game}</if>
+            <if test="status != null  and status != ''"> and `status` = #{status}</if>
+            <if test="mode != null  and mode != ''"> and `mode` = #{mode}</if>
+            <if test="userNickName != null  and userNickName != ''"> and `user_nick_name` like concat('%', #{userNickName}, '%')</if>
+            <if test="anchorNickName != null  and anchorNickName != ''"> and `anchor_nick_name` like concat('%', #{anchorNickName}, '%')</if>
+            <if test="params.beginPublishTime != null and params.beginPublishTime != '' and params.endPublishTime != null and params.endPublishTime != ''"> and `publish_time` between #{params.beginPublishTime} and #{params.endPublishTime}</if>
+        </where>
+    </select>
+
+</mapper>

+ 3 - 6
src/main/java/com/hy/modules/bz/mapper/xml/BzPlayerMapper.xml

@@ -7,18 +7,15 @@
         <result property="platform" column="platform"/>
         <result property="cardNo" column="card_no"/>
         <result property="cardPassword" column="card_password"/>
-        <result property="createTime" column="create_time"/>
-        <result property="modifyTime" column="modify_time"/>
         <result property="status" column="status"/>
     </resultMap>
 
     <select id="selectBzPlayerList" parameterType="BzPlayer" resultMap="BzPlayerResult">
-        select `id`,`platform`,`card_no`,`card_password`,`create_time`,`modify_time`,`status` from `bz_player`
+        select `id`,`platform`,`card_no`,`card_password`,`status` from `bz_player`
         <where>
              <if test="platform != null  and platform != ''"> and `platform` = #{platform}</if>
-             <if test="cardNo != null  and cardNo != ''"> and `card_no` = #{cardNo}</if>
-             <if test="createTime != null "> and `create_time` = #{createTime}</if>
-             <if test="modifyTime != null "> and `modify_time` = #{modifyTime}</if>
+             <if test="cardNo != null  and cardNo != ''"> and `card_no` like concat('%', #{cardNo}, '%')</if>
+             <if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and `create_time` between #{params.beginCreateTime} and #{params.endCreateTime}</if>
              <if test="status != null  and status != ''"> and `status` = #{status}</if>
         </where>
     </select>

+ 24 - 0
src/main/java/com/hy/modules/bz/service/IBzAnchorStudioService.java

@@ -0,0 +1,24 @@
+package com.hy.modules.bz.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hy.common.web.domain.request.PageDomain;
+import com.hy.modules.bz.domain.BzAnchorStudio;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 主播直播间列表查询刷新Service接口
+ *
+ * @author 伍月
+ * @date 2024-05-07
+ */
+public interface IBzAnchorStudioService extends IService<BzAnchorStudio> {
+
+    /**
+     * 查询主播直播间列表查询刷新
+     * @param bzAnchorStudio 主播直播间列表查询刷新
+     * @param pageDomain
+     * @return 主播直播间列表查询刷新 分页集合
+     * */
+    PageInfo<BzAnchorStudio> selectBzAnchorStudioPage(BzAnchorStudio bzAnchorStudio, PageDomain pageDomain);
+
+}

+ 32 - 0
src/main/java/com/hy/modules/bz/service/IBzGiftRecordService.java

@@ -0,0 +1,32 @@
+package com.hy.modules.bz.service;
+
+import com.github.pagehelper.PageInfo;
+import com.hy.common.web.domain.request.PageDomain;
+import com.hy.modules.bz.domain.BzGiftRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.Map;
+
+/**
+ * 直播间礼物列表展示Service接口
+ *
+ * @author 伍月
+ * @date 2024-05-07
+ */
+public interface IBzGiftRecordService extends IService<BzGiftRecord> {
+
+    /**
+     * 查询直播间礼物列表展示
+     * @param bzGiftRecord 直播间礼物列表展示
+     * @param pageDomain
+     * @return 直播间礼物列表展示 分页集合
+     * */
+    PageInfo<BzGiftRecord> selectBzGiftRecordPage(BzGiftRecord bzGiftRecord, PageDomain pageDomain);
+
+    /**
+     * 统计送礼信息
+     * @param bzGiftRecord
+     * @return
+     */
+    Map<String,Object> statistics(BzGiftRecord bzGiftRecord);
+}

+ 37 - 0
src/main/java/com/hy/modules/bz/service/impl/BzAnchorStudioServiceImpl.java

@@ -0,0 +1,37 @@
+package com.hy.modules.bz.service.impl;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hy.common.web.domain.request.PageDomain;
+import org.springframework.stereotype.Service;
+import com.hy.modules.bz.mapper.BzAnchorStudioMapper;
+import com.hy.modules.bz.domain.BzAnchorStudio;
+import com.hy.modules.bz.service.IBzAnchorStudioService;
+
+/**
+ * 主播直播间列表查询刷新Service业务层处理
+ *
+ * @author 伍月
+ * @date 2024-05-07
+ */
+@Service
+public class BzAnchorStudioServiceImpl extends ServiceImpl<BzAnchorStudioMapper,BzAnchorStudio> implements IBzAnchorStudioService {
+
+
+    /**
+     * 查询主播直播间列表查询刷新
+     * @param bzAnchorStudio 主播直播间列表查询刷新
+     * @param pageDomain
+     * @return 主播直播间列表查询刷新 分页集合
+     * */
+    @Override
+    public PageInfo<BzAnchorStudio> selectBzAnchorStudioPage(BzAnchorStudio bzAnchorStudio, PageDomain pageDomain) {
+        PageHelper.startPage(pageDomain.getPage(), pageDomain.getLimit());
+        List<BzAnchorStudio> data = baseMapper.selectBzAnchorStudioList(bzAnchorStudio);
+        return new PageInfo<>(data);
+    }
+
+}

+ 53 - 0
src/main/java/com/hy/modules/bz/service/impl/BzGiftRecordServiceImpl.java

@@ -0,0 +1,53 @@
+package com.hy.modules.bz.service.impl;
+
+import java.math.BigDecimal;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hy.common.web.domain.request.PageDomain;
+import org.springframework.stereotype.Service;
+import com.hy.modules.bz.mapper.BzGiftRecordMapper;
+import com.hy.modules.bz.domain.BzGiftRecord;
+import com.hy.modules.bz.service.IBzGiftRecordService;
+
+/**
+ * 直播间礼物列表展示Service业务层处理
+ *
+ * @author 伍月
+ * @date 2024-05-07
+ */
+@Service
+public class BzGiftRecordServiceImpl extends ServiceImpl<BzGiftRecordMapper,BzGiftRecord> implements IBzGiftRecordService {
+
+
+    /**
+     * 查询直播间礼物列表展示
+     * @param bzGiftRecord 直播间礼物列表展示
+     * @param pageDomain
+     * @return 直播间礼物列表展示 分页集合
+     * */
+    @Override
+    public PageInfo<BzGiftRecord> selectBzGiftRecordPage(BzGiftRecord bzGiftRecord, PageDomain pageDomain) {
+        PageHelper.startPage(pageDomain.getPage(), pageDomain.getLimit());
+        List<BzGiftRecord> data = baseMapper.selectBzGiftRecordList(bzGiftRecord);
+        return new PageInfo<>(data);
+    }
+
+    @Override
+    public Map<String, Object> statistics(BzGiftRecord bzGiftRecord) {
+        Map<String,Object> result = baseMapper.statisticsPayingUsers(bzGiftRecord);
+        if(null == result){
+            result = Collections.emptyMap();
+            result.put("gift-count",0);
+            result.put("total-value", BigDecimal.ZERO);
+        }
+        result.put("user-count",baseMapper.countPayingUsers(bzGiftRecord));
+
+        return result;
+    }
+
+}

+ 157 - 0
src/main/resources/templates/bz/anchorStudio/add.html

@@ -0,0 +1,157 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org">
+<head>
+    <th:block th:include="include :: header('新增主播直播间列表查询刷新')"/>
+</head>
+<body>
+<form class="layui-form">
+    <div class="mainBox">
+        <div class="main-container">
+        <div class="layui-form-item">
+            <label class="layui-form-label">CODE:</label>
+            <div class="layui-input-block">
+                <input type="text" name="code" placeholder="请输入CODE"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+             <label class="layui-form-label">平台:</label>
+             <div class="layui-input-block">
+                 <div class="radio-box" radio-dict-code="platform" name="platform"></div>
+             </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">roomId:</label>
+            <div class="layui-input-block">
+                <input type="text" name="roomId" placeholder="请输入roomId"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">开播时间:</label>
+            <div class="layui-input-block">
+                <div class="input-group date">
+                    <input type="text" name="openTime" class="layui-input"
+                        id="openTime" >
+                </div>
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">下播时间:</label>
+            <div class="layui-input-block">
+                <div class="input-group date">
+                    <input type="text" name="closeTime" class="layui-input"
+                        id="closeTime" >
+                </div>
+            </div>
+        </div>
+        <div class="layui-form-item">
+             <label class="layui-form-label">直播间状态:</label>
+             <div class="layui-input-block">
+                 <div class="radio-box" radio-dict-code="input" name="status"></div>
+             </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">主播ID:</label>
+            <div class="layui-input-block">
+                <input type="text" name="anchorId" placeholder="请输入主播ID"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">主播名称:</label>
+            <div class="layui-input-block">
+                <input type="text" name="anchorName" placeholder="请输入主播名称"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">主播昵称:</label>
+            <div class="layui-input-block">
+                <input type="text" name="anchorNickName" placeholder="请输入主播昵称"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">主播头像:</label>
+            <div class="layui-input-block">
+                <input type="text" name="anchorLogo" placeholder="请输入主播头像"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+             <label class="layui-form-label">开播游戏:</label>
+             <div class="layui-input-block">
+                 <div class="radio-box" radio-dict-code="tk_game" name="gameName"></div>
+             </div>
+        </div>
+        </div>
+    </div>
+    <div class="bottom">
+        <div class="button-container">
+            <button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="anchorStudio-save">
+                <i class="layui-icon layui-icon-ok"></i>
+                提交
+            </button>
+            <button type="reset" class="pear-btn pear-btn-sm">
+                <i class="layui-icon layui-icon-refresh"></i>
+                重置
+            </button>
+        </div>
+    </div>
+</form>
+</body>
+<th:block th:include="include :: footer"/>
+<script th:inline="javascript">
+
+    layui.use(['form', 'jquery', 'laydate', 'dictionary'], function () {
+        let form = layui.form;
+        let $ = layui.jquery;
+        let laydate = layui.laydate;
+
+        let prefix = "/bz/anchorStudio/"
+
+        laydate.render({
+            elem: '#openTime'
+        });
+        laydate.render({
+            elem: '#closeTime'
+        });
+
+        form.on('submit(anchorStudio-save)', function (data) {
+            for (var key in data.field) {
+                var type = $(data.form).find("input[name='" + key + "']").attr("type");
+                if (type == "checkbox") {
+                    var value = "";
+                    $(data.form).find("input[name='" + key + "']:checked").each(function () {
+                        value += $(this).val() + ",";
+                    })
+                    if (value != "") {
+                        value = value.substr(0, value.length - 1);
+                        data.field[key] = value;
+                    }
+
+                }
+            }
+            $.ajax({
+                url: prefix + 'save',
+                data: JSON.stringify(data.field),
+                dataType: 'json',
+                contentType: 'application/json',
+                type: 'post',
+                success: function (result) {
+                    if (result.success) {
+                        layer.msg(result.msg, {icon: 1, time: 1000}, function () {
+                            parent.layer.close(parent.layer.getFrameIndex(window.name));
+                            parent.layui.table.reload("anchorStudio-table");
+                        });
+                    } else {
+                        layer.msg(result.msg, {icon: 2, time: 1000});
+                    }
+                }
+            })
+            return false;
+        });
+    });
+</script>
+</html>

+ 164 - 0
src/main/resources/templates/bz/anchorStudio/edit.html

@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org">
+<head>
+    <th:block th:include="include :: header('修改主播直播间列表查询刷新')"/>
+</head>
+<body>
+<form class="layui-form" th:object="${bzAnchorStudio}">
+    <div class="mainBox">
+        <div class="main-container">
+            <input name="id" th:field="*{id}" type="hidden">
+            <div class="layui-form-item">
+                <label class="layui-form-label">CODE:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="code" th:field="*{code}"
+                        placeholder="请输入CODE" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">平台:</label>
+                <div class="layui-input-block">
+                    <div class="radio-box" radio-dict-code="platform"
+                        th:attr="default-value=*{platform}" name="platform">
+                    </div>
+                </div>
+           </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">roomId:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="roomId" th:field="*{roomId}"
+                        placeholder="请输入roomId" class="layui-input" />
+                </div>
+            </div>
+           <div class="layui-form-item">
+               <label class="layui-form-label">开播时间:</label>
+                   <div class="layui-input-block">
+                       <div class="input-group date">
+                           <input type="text" name="openTime" class="layui-input"
+                               id="openTime" >
+                       </div>
+                   </div>
+           </div>
+           <div class="layui-form-item">
+               <label class="layui-form-label">下播时间:</label>
+                   <div class="layui-input-block">
+                       <div class="input-group date">
+                           <input type="text" name="closeTime" class="layui-input"
+                               id="closeTime" >
+                       </div>
+                   </div>
+           </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">直播间状态:</label>
+                <div class="layui-input-block">
+                    <div class="radio-box" radio-dict-code="input"
+                        th:attr="default-value=*{status}" name="status">
+                    </div>
+                </div>
+           </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">主播ID:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="anchorId" th:field="*{anchorId}"
+                        placeholder="请输入主播ID" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">主播名称:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="anchorName" th:field="*{anchorName}"
+                        placeholder="请输入主播名称" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">主播昵称:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="anchorNickName" th:field="*{anchorNickName}"
+                        placeholder="请输入主播昵称" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">主播头像:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="anchorLogo" th:field="*{anchorLogo}"
+                        placeholder="请输入主播头像" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">开播游戏:</label>
+                <div class="layui-input-block">
+                    <div class="radio-box" radio-dict-code="tk_game"
+                        th:attr="default-value=*{gameName}" name="gameName">
+                    </div>
+                </div>
+           </div>
+        </div>
+    </div>
+    <div class="bottom">
+        <div class="button-container">
+            <button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit=""
+                    lay-filter="anchorStudio-update">
+                <i class="layui-icon layui-icon-ok"></i>
+                提交
+            </button>
+            <button type="reset" class="pear-btn pear-btn-sm">
+                <i class="layui-icon layui-icon-refresh"></i>
+                重置
+            </button>
+        </div>
+    </div>
+</form>
+</body>
+<th:block th:include="include :: footer"/>
+<script th:inline="javascript">
+    layui.use(['form', 'jquery', 'laydate', 'dictionary'], function () {
+        let form = layui.form;
+        let $ = layui.jquery;
+        let laydate = layui.laydate;
+
+        let prefix = "/bz/anchorStudio/";
+
+                        laydate.render({
+                            elem: '#openTime'
+                        });
+                        laydate.render({
+                            elem: '#closeTime'
+                        });
+
+        form.on('submit(anchorStudio-update)', function (data) {
+            for (var key in data.field) {
+                var type = $(data.form).find("input[name='" + key + "']").attr("type");
+                if (type == "checkbox") {
+                    var value = "";
+                    $(data.form).find("input[name='" + key + "']:checked").each(function () {
+                        value += $(this).val() + ",";
+                    })
+                    if (value != "") {
+                        value = value.substr(0, value.length - 1);
+                        data.field[key] = value;
+                    }
+
+                }
+            }
+            $.ajax({
+                url: prefix + 'update',
+                data: JSON.stringify(data.field),
+                dataType: 'json',
+                contentType: 'application/json',
+                type: 'put',
+                success: function (result) {
+                    if (result.success) {
+                        layer.msg(result.msg, {icon: 1, time: 1000}, function () {
+                            parent.layer.close(parent.layer.getFrameIndex(window.name));
+                            parent.layui.table.reload("anchorStudio-table");
+                        });
+                    } else {
+                        layer.msg(result.msg, {icon: 2, time: 1000});
+                    }
+                }
+            })
+            return false;
+        });
+    });
+</script>
+</html>

+ 252 - 0
src/main/resources/templates/bz/anchorStudio/main.html

@@ -0,0 +1,252 @@
+<!DOCTYPE html>
+<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
+<head>
+    <th:block th:include="include :: header('主播直播间列表查询刷新列表')"/>
+</head>
+<body class="pear-container">
+<div class="layui-card">
+    <div class="layui-card-body">
+        <div class="col-sm-12 search-collapse">
+            <form id="formId" class="layui-form">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">平台:</label>
+                    <div class="layui-input-inline">
+                        <select name="platform" dict-code="platform" >
+                            <option value="">所有</option>
+                        </select>
+                    </div>
+                    <label class="layui-form-label">主播昵称:</label>
+                    <div class="layui-input-inline">
+                        <input type="text" name="anchorNickName" placeholder="请输入主播昵称"
+                            class="layui-input" />
+                    </div>
+                    <label class="layui-form-label">开播游戏:</label>
+                    <div class="layui-input-inline">
+                        <select name="gameName" dict-code="tk_game" >
+                            <option value="">所有</option>
+                        </select>
+                    </div>
+                    <button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="anchorStudio-query">
+                        <i class="layui-icon layui-icon-search"></i>
+                        查询
+                    </button>
+                    <button type="reset" class="pear-btn pear-btn-md">
+                        <i class="layui-icon layui-icon-refresh"></i>
+                        重置
+                    </button>
+                </div>
+            </form>
+        </div>
+    </div>
+</div>
+<div class="layui-card">
+    <div class="layui-card-body">
+        <table id="anchorStudio-table" lay-filter="anchorStudio-table"></table>
+<!--        <script type="text/html" id="anchorStudio-toolbar">-->
+<!--            <button sec:authorize="hasPermission('/bz/anchorStudio/add','bz:anchorStudio:add')"-->
+<!--                    class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">-->
+<!--                <i class="layui-icon layui-icon-add-1"></i>-->
+<!--                新增-->
+<!--            </button>-->
+<!--            <button sec:authorize="hasPermission('/bz/anchorStudio/remove','bz:anchorStudio:remove')"-->
+<!--                    class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">-->
+<!--                <i class="layui-icon layui-icon-delete"></i>-->
+<!--                删除-->
+<!--            </button>-->
+<!--        </script>-->
+        <script type="text/html" id="anchorStudio-bar">
+            <button sec:authorize="hasPermission('/bz/anchorStudio/edit','bz:anchorStudio:edit')"
+                    class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i
+                    class="layui-icon layui-icon-edit"></i>
+            </button>
+            <button sec:authorize="hasPermission('/bz/anchorStudio/remove','bz:anchorStudio:remove')"
+                    class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i
+                    class="layui-icon layui-icon-delete"></i>
+            </button>
+        </script>
+    </div>
+</div>
+        <script type="text/html" id="platform_parseDictText">
+                {{layui.dictionary.parseDictText(d.platform, 'platform')}}
+        </script>
+        <script type="text/html" id="gameName_parseDictText">
+                {{layui.dictionary.parseDictText(d.gameName, 'tk_game')}}
+        </script>
+<th:block th:include="include :: footer"/>
+<script>
+    layui.use(['table', 'form', 'jquery', 'dictionary', 'popup'], function () {
+        let table = layui.table;
+        let form = layui.form;
+        let $ = layui.jquery;
+        let popup = layui.popup;
+
+        let prefix = "/bz/anchorStudio/";
+
+        let cols = [
+            [
+                {type: 'checkbox'},
+                        {
+                            field: 'id',
+                            title: 'ID'
+                        },
+                        {
+                            field: 'code',
+                            title: 'CODE'
+                        },
+                        {
+                            field: 'platform',
+                            title: '平台'
+                                , templet: "#platform_parseDictText"
+                        },
+                        {
+                            field: 'roomId',
+                            title: 'roomId'
+                        },
+                        {
+                            field: 'openTime',
+                            title: '开播时间'
+                        },
+                        {
+                            field: 'closeTime',
+                            title: '下播时间'
+                        },
+                        {
+                            field: 'status',
+                            title: '直播间状态'
+                        },
+                        {
+                            field: 'anchorNickName',
+                            title: '主播昵称'
+                        },
+                        {
+                            field: 'anchorLogo',
+                            title: '主播头像'
+                        },
+                        {
+                            field: 'gameName',
+                            title: '开播游戏'
+                                , templet: "#gameName_parseDictText"
+                        },
+                {title: '操作', toolbar: '#anchorStudio-bar', align: 'center', width: 130}
+            ]
+        ]
+
+        table.render({
+            elem: '#anchorStudio-table',
+            url: prefix + 'data',
+            page: true,
+            cols: cols,
+            skin: 'line',
+            toolbar: '#anchorStudio-toolbar',
+            defaultToolbar: [{
+                layEvent: 'refresh',
+                icon: 'layui-icon-refresh',
+                title: '刷新'
+            }, 'filter']
+        });
+
+        table.on('tool(anchorStudio-table)', function (obj) {
+            if (obj.event === 'remove') {
+                window.remove(obj);
+            } else if (obj.event === 'edit') {
+                window.edit(obj);
+            }
+        });
+
+        table.on('toolbar(anchorStudio-table)', function (obj) {
+            if (obj.event === 'add') {
+                window.add();
+            } else if (obj.event === 'refresh') {
+                window.refresh();
+            } else if (obj.event === 'batchRemove') {
+                window.batchRemove(obj);
+            }
+        });
+
+        form.on('submit(anchorStudio-query)', function (data) {
+            table.reload('anchorStudio-table', {where: data.field})
+            return false;
+        });
+
+        window.add = function () {
+            layer.open({
+                type: 2,
+                title: '新增主播直播间列表查询刷新',
+                shade: 0.1,
+                area: ['550px', '500px'],
+                content: prefix + 'add'
+            });
+        }
+
+        window.edit = function (obj) {
+            layer.open({
+                type: 2,
+                title: '修改主播直播间列表查询刷新',
+                shade: 0.1,
+                area: ['550px', '500px'],
+                content: prefix + 'edit?id=' + obj.data['id']
+            });
+        }
+
+        window.remove = function (obj) {
+            layer.confirm('确定要删除该主播直播间列表查询刷新', {icon: 3, title: '提示'}, function (index) {
+                layer.close(index);
+                let loading = layer.load();
+                $.ajax({
+                    url: prefix + "remove/" + obj.data['id'],
+                    dataType: 'json',
+                    type: 'delete',
+                    success: function (result) {
+                        layer.close(loading);
+                        if (result.success) {
+                            layer.msg(result.msg, {icon: 1, time: 1000}, function () {
+                                obj.del();
+                            });
+                        } else {
+                            layer.msg(result.msg, {icon: 2, time: 1000});
+                        }
+                    }
+                })
+            });
+        }
+
+        window.batchRemove = function (obj) {
+            let data = table.checkStatus(obj.config.id).data;
+            if (data.length === 0) {
+                layer.msg("未选中数据", {icon: 3, time: 1000});
+                return false;
+            }
+            let ids = "";
+            for (let i = 0; i < data.length; i++) {
+                ids += data[i].id + ",";
+            }
+            ids = ids.substr(0, ids.length - 1);
+            layer.confirm('确定要删除这些主播直播间列表查询刷新', {icon: 3, title: '提示'}, function (index) {
+                layer.close(index);
+                let loading = layer.load();
+                $.ajax({
+                    url: prefix + "batchRemove",
+                    dataType: 'json',
+                    data: {"ids": ids},
+                    type: 'delete',
+                    success: function (result) {
+                        layer.close(loading);
+                        if (result.success) {
+                            layer.msg(result.msg, {icon: 1, time: 1000}, function () {
+                                table.reload('anchorStudio-table');
+                            });
+                        } else {
+                            layer.msg(result.msg, {icon: 2, time: 1000});
+                        }
+                    }
+                })
+            });
+        }
+
+        window.refresh = function (param) {
+            table.reload('anchorStudio-table', {where: param});
+        }
+    })
+</script>
+</body>
+</html>

+ 179 - 0
src/main/resources/templates/bz/giftRecord/add.html

@@ -0,0 +1,179 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org">
+<head>
+    <th:block th:include="include :: header('新增直播间礼物列表展示')"/>
+</head>
+<body>
+<form class="layui-form">
+    <div class="mainBox">
+        <div class="main-container">
+        <div class="layui-form-item">
+             <label class="layui-form-label">平台:</label>
+             <div class="layui-input-block">
+                 <div class="radio-box" radio-dict-code="platform" name="platform"></div>
+             </div>
+        </div>
+        <div class="layui-form-item">
+             <label class="layui-form-label">游戏:</label>
+             <div class="layui-input-block">
+                 <div class="radio-box" radio-dict-code="tk_game" name="game"></div>
+             </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">礼物信息:</label>
+            <div class="layui-input-block">
+                <input type="text" name="giftInfo" placeholder="请输入礼物信息"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">礼物数量:</label>
+            <div class="layui-input-block">
+                <input type="text" name="giftCount" placeholder="请输入礼物数量"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">总价值:</label>
+            <div class="layui-input-block">
+                <input type="text" name="giftValue" placeholder="请输入总价值"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+             <label class="layui-form-label">礼物状态:</label>
+             <div class="layui-input-block">
+                 <div class="radio-box" radio-dict-code="gift_status" name="status"></div>
+             </div>
+        </div>
+        <div class="layui-form-item">
+             <label class="layui-form-label">模式:</label>
+             <div class="layui-input-block">
+                 <div class="radio-box" radio-dict-code="gift_mode" name="mode"></div>
+             </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">用户昵称:</label>
+            <div class="layui-input-block">
+                <input type="text" name="userNickName" placeholder="请输入用户昵称"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">用户ID:</label>
+            <div class="layui-input-block">
+                <input type="text" name="userId" placeholder="请输入用户ID"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">主播CODE:</label>
+            <div class="layui-input-block">
+                <input type="text" name="anchorCode" placeholder="请输入主播CODE"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">主播ID:</label>
+            <div class="layui-input-block">
+                <input type="text" name="anchorId" placeholder="请输入主播ID"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">主播昵称:</label>
+            <div class="layui-input-block">
+                <input type="text" name="anchorNickName" placeholder="请输入主播昵称"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">直播间ID:</label>
+            <div class="layui-input-block">
+                <input type="text" name="studioId" placeholder="请输入直播间ID"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">roomId:</label>
+            <div class="layui-input-block">
+                <input type="text" name="roomId" placeholder="请输入roomId"
+                    class="layui-input" />
+            </div>
+        </div>
+        <div class="layui-form-item">
+            <label class="layui-form-label">赠送时间:</label>
+            <div class="layui-input-block">
+                <div class="input-group date">
+                    <input type="text" name="publishTime" class="layui-input"
+                        id="publishTime" >
+                </div>
+            </div>
+        </div>
+        </div>
+    </div>
+    <div class="bottom">
+        <div class="button-container">
+            <button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit="" lay-filter="giftRecord-save">
+                <i class="layui-icon layui-icon-ok"></i>
+                提交
+            </button>
+            <button type="reset" class="pear-btn pear-btn-sm">
+                <i class="layui-icon layui-icon-refresh"></i>
+                重置
+            </button>
+        </div>
+    </div>
+</form>
+</body>
+<th:block th:include="include :: footer"/>
+<script th:inline="javascript">
+
+    layui.use(['form', 'jquery', 'laydate', 'dictionary'], function () {
+        let form = layui.form;
+        let $ = layui.jquery;
+        let laydate = layui.laydate;
+
+        let prefix = "/bz/giftRecord/"
+
+        laydate.render({
+            elem: '#publishTime'
+        });
+
+        form.on('submit(giftRecord-save)', function (data) {
+            for (var key in data.field) {
+                var type = $(data.form).find("input[name='" + key + "']").attr("type");
+                if (type == "checkbox") {
+                    var value = "";
+                    $(data.form).find("input[name='" + key + "']:checked").each(function () {
+                        value += $(this).val() + ",";
+                    })
+                    if (value != "") {
+                        value = value.substr(0, value.length - 1);
+                        data.field[key] = value;
+                    }
+
+                }
+            }
+            $.ajax({
+                url: prefix + 'save',
+                data: JSON.stringify(data.field),
+                dataType: 'json',
+                contentType: 'application/json',
+                type: 'post',
+                success: function (result) {
+                    if (result.success) {
+                        layer.msg(result.msg, {icon: 1, time: 1000}, function () {
+                            parent.layer.close(parent.layer.getFrameIndex(window.name));
+                            parent.layui.table.reload("giftRecord-table");
+                        });
+                    } else {
+                        layer.msg(result.msg, {icon: 2, time: 1000});
+                    }
+                }
+            })
+            return false;
+        });
+    });
+</script>
+</html>

+ 188 - 0
src/main/resources/templates/bz/giftRecord/edit.html

@@ -0,0 +1,188 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org">
+<head>
+    <th:block th:include="include :: header('修改直播间礼物列表展示')"/>
+</head>
+<body>
+<form class="layui-form" th:object="${bzGiftRecord}">
+    <div class="mainBox">
+        <div class="main-container">
+            <input name="id" th:field="*{id}" type="hidden">
+            <div class="layui-form-item">
+                <label class="layui-form-label">平台:</label>
+                <div class="layui-input-block">
+                    <div class="radio-box" radio-dict-code="platform"
+                        th:attr="default-value=*{platform}" name="platform">
+                    </div>
+                </div>
+           </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">游戏:</label>
+                <div class="layui-input-block">
+                    <div class="radio-box" radio-dict-code="tk_game"
+                        th:attr="default-value=*{game}" name="game">
+                    </div>
+                </div>
+           </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">礼物信息:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="giftInfo" th:field="*{giftInfo}"
+                        placeholder="请输入礼物信息" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">礼物数量:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="giftCount" th:field="*{giftCount}"
+                        placeholder="请输入礼物数量" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">总价值:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="giftValue" th:field="*{giftValue}"
+                        placeholder="请输入总价值" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">礼物状态:</label>
+                <div class="layui-input-block">
+                    <div class="radio-box" radio-dict-code="gift_status"
+                        th:attr="default-value=*{status}" name="status">
+                    </div>
+                </div>
+           </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">模式:</label>
+                <div class="layui-input-block">
+                    <div class="radio-box" radio-dict-code="gift_mode"
+                        th:attr="default-value=*{mode}" name="mode">
+                    </div>
+                </div>
+           </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">用户昵称:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="userNickName" th:field="*{userNickName}"
+                        placeholder="请输入用户昵称" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">用户ID:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="userId" th:field="*{userId}"
+                        placeholder="请输入用户ID" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">主播CODE:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="anchorCode" th:field="*{anchorCode}"
+                        placeholder="请输入主播CODE" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">主播ID:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="anchorId" th:field="*{anchorId}"
+                        placeholder="请输入主播ID" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">主播昵称:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="anchorNickName" th:field="*{anchorNickName}"
+                        placeholder="请输入主播昵称" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">直播间ID:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="studioId" th:field="*{studioId}"
+                        placeholder="请输入直播间ID" class="layui-input" />
+                </div>
+            </div>
+            <div class="layui-form-item">
+                <label class="layui-form-label">roomId:</label>
+                <div class="layui-input-block">
+                    <input type="text" name="roomId" th:field="*{roomId}"
+                        placeholder="请输入roomId" class="layui-input" />
+                </div>
+            </div>
+           <div class="layui-form-item">
+               <label class="layui-form-label">赠送时间:</label>
+                   <div class="layui-input-block">
+                       <div class="input-group date">
+                           <input type="text" name="publishTime" class="layui-input"
+                               id="publishTime" >
+                       </div>
+                   </div>
+           </div>
+        </div>
+    </div>
+    <div class="bottom">
+        <div class="button-container">
+            <button type="submit" class="pear-btn pear-btn-primary pear-btn-sm" lay-submit=""
+                    lay-filter="giftRecord-update">
+                <i class="layui-icon layui-icon-ok"></i>
+                提交
+            </button>
+            <button type="reset" class="pear-btn pear-btn-sm">
+                <i class="layui-icon layui-icon-refresh"></i>
+                重置
+            </button>
+        </div>
+    </div>
+</form>
+</body>
+<th:block th:include="include :: footer"/>
+<script th:inline="javascript">
+    layui.use(['form', 'jquery', 'laydate', 'dictionary'], function () {
+        let form = layui.form;
+        let $ = layui.jquery;
+        let laydate = layui.laydate;
+
+        let prefix = "/bz/giftRecord/";
+
+                        laydate.render({
+                            elem: '#publishTime'
+                        });
+
+        form.on('submit(giftRecord-update)', function (data) {
+            for (var key in data.field) {
+                var type = $(data.form).find("input[name='" + key + "']").attr("type");
+                if (type == "checkbox") {
+                    var value = "";
+                    $(data.form).find("input[name='" + key + "']:checked").each(function () {
+                        value += $(this).val() + ",";
+                    })
+                    if (value != "") {
+                        value = value.substr(0, value.length - 1);
+                        data.field[key] = value;
+                    }
+
+                }
+            }
+            $.ajax({
+                url: prefix + 'update',
+                data: JSON.stringify(data.field),
+                dataType: 'json',
+                contentType: 'application/json',
+                type: 'put',
+                success: function (result) {
+                    if (result.success) {
+                        layer.msg(result.msg, {icon: 1, time: 1000}, function () {
+                            parent.layer.close(parent.layer.getFrameIndex(window.name));
+                            parent.layui.table.reload("giftRecord-table");
+                        });
+                    } else {
+                        layer.msg(result.msg, {icon: 2, time: 1000});
+                    }
+                }
+            })
+            return false;
+        });
+    });
+</script>
+</html>

+ 324 - 0
src/main/resources/templates/bz/giftRecord/main.html

@@ -0,0 +1,324 @@
+<!DOCTYPE html>
+<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
+<head>
+    <th:block th:include="include :: header('直播间礼物列表展示列表')"/>
+</head>
+<body class="pear-container">
+<div class="layui-card">
+    <div class="layui-card-body">
+        <div class="col-sm-12 search-collapse">
+            <form id="formId" class="layui-form">
+                <div class="layui-form-item">
+                    <label class="layui-form-label">平台:</label>
+                    <div class="layui-input-inline">
+                        <select name="platform" dict-code="platform" >
+                            <option value="">所有</option>
+                        </select>
+                    </div>
+                    <label class="layui-form-label">游戏:</label>
+                    <div class="layui-input-inline">
+                        <select name="game" dict-code="tk_game" >
+                            <option value="">所有</option>
+                        </select>
+                    </div>
+                    <label class="layui-form-label">礼物状态:</label>
+                    <div class="layui-input-inline">
+                        <select name="status" dict-code="gift_status" >
+                            <option value="">所有</option>
+                        </select>
+                    </div>
+                    <label class="layui-form-label">模式:</label>
+                    <div class="layui-input-inline">
+                        <select name="mode" dict-code="gift_mode" >
+                            <option value="">所有</option>
+                        </select>
+                    </div>
+                    <label class="layui-form-label">用户昵称:</label>
+                    <div class="layui-input-inline">
+                        <input type="text" name="userNickName" placeholder="请输入用户昵称"
+                            class="layui-input" />
+                    </div>
+                    <label class="layui-form-label">主播昵称:</label>
+                    <div class="layui-input-inline">
+                        <input type="text" name="anchorNickName" placeholder="请输入主播昵称"
+                            class="layui-input" />
+                    </div>
+                    <button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="giftRecord-query">
+                        <i class="layui-icon layui-icon-search"></i>
+                        查询
+                    </button>
+                    <button type="reset" class="pear-btn pear-btn-md">
+                        <i class="layui-icon layui-icon-refresh"></i>
+                        重置
+                    </button>
+                </div>
+            </form>
+        </div>
+    </div>
+</div>
+<div class="layui-card">
+    <div class="layui-card-body">
+        <div id="gift-statistics">
+            付费用户数量:<span id="user-count">0</span>&nbsp;&nbsp;
+            送礼次数:<span id="gift-count">0</span>&nbsp;&nbsp;
+            总价值:<span id="total-value">0</span>
+        </div>
+        <table id="giftRecord-table" lay-filter="giftRecord-table"></table>
+<!--        <script type="text/html" id="giftRecord-toolbar">-->
+<!--            <button sec:authorize="hasPermission('/bz/giftRecord/add','bz:giftRecord:add')"-->
+<!--                    class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">-->
+<!--                <i class="layui-icon layui-icon-add-1"></i>-->
+<!--                新增-->
+<!--            </button>-->
+<!--            <button sec:authorize="hasPermission('/bz/giftRecord/remove','bz:giftRecord:remove')"-->
+<!--                    class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">-->
+<!--                <i class="layui-icon layui-icon-delete"></i>-->
+<!--                删除-->
+<!--            </button>-->
+<!--        </script>-->
+<!--        <script type="text/html" id="giftRecord-bar">-->
+<!--            <button sec:authorize="hasPermission('/bz/giftRecord/edit','bz:giftRecord:edit')"-->
+<!--                    class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i-->
+<!--                    class="layui-icon layui-icon-edit"></i>-->
+<!--            </button>-->
+<!--            <button sec:authorize="hasPermission('/bz/giftRecord/remove','bz:giftRecord:remove')"-->
+<!--                    class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i-->
+<!--                    class="layui-icon layui-icon-delete"></i>-->
+<!--            </button>-->
+<!--        </script>-->
+    </div>
+</div>
+        <script type="text/html" id="platform_parseDictText">
+                {{layui.dictionary.parseDictText(d.platform, 'platform')}}
+        </script>
+        <script type="text/html" id="game_parseDictText">
+                {{layui.dictionary.parseDictText(d.game, 'tk_game')}}
+        </script>
+        <script type="text/html" id="status_parseDictText">
+                {{layui.dictionary.parseDictText(d.status, 'gift_status')}}
+        </script>
+        <script type="text/html" id="mode_parseDictText">
+                {{layui.dictionary.parseDictText(d.mode, 'gift_mode')}}
+        </script>
+<th:block th:include="include :: footer"/>
+<script>
+    layui.use(['table', 'form', 'jquery', 'dictionary', 'popup'], function () {
+        let table = layui.table;
+        let form = layui.form;
+        let $ = layui.jquery;
+        let popup = layui.popup;
+
+        let prefix = "/bz/giftRecord/";
+
+        let cols = [
+            [
+                {type: 'checkbox'},
+                        {
+                            field: 'id',
+                            title: 'ID'
+                        },
+                        {
+                            field: 'platform',
+                            title: '平台'
+                                , templet: "#platform_parseDictText"
+                        },
+                        {
+                            field: 'game',
+                            title: '游戏'
+                                , templet: "#game_parseDictText"
+                        },
+                        {
+                            field: 'giftInfo',
+                            title: '礼物信息'
+                        },
+                        {
+                            field: 'giftCount',
+                            title: '礼物数量'
+                        },
+                        {
+                            field: 'giftValue',
+                            title: '总价值'
+                        },
+                        {
+                            field: 'status',
+                            title: '礼物状态'
+                                , templet: "#status_parseDictText"
+                        },
+                        {
+                            field: 'mode',
+                            title: '模式'
+                                , templet: "#mode_parseDictText"
+                        },
+                        {
+                            field: 'userNickName',
+                            title: '用户昵称'
+                        },
+                        {
+                            field: 'userId',
+                            title: '用户ID'
+                        },
+                        {
+                            field: 'anchorCode',
+                            title: '主播CODE'
+                        },
+                        {
+                            field: 'anchorNickName',
+                            title: '主播昵称'
+                        },
+                        {
+                            field: 'roomId',
+                            title: 'roomId'
+                        },
+                        {
+                            field: 'publishTime',
+                            title: '赠送时间'
+                        },
+                        {
+                            field: 'remark',
+                            title: '备注'
+                        }
+                //         ,
+                // {title: '操作', toolbar: '#giftRecord-bar', align: 'center', width: 130}
+            ]
+        ]
+
+        table.render({
+            elem: '#giftRecord-table',
+            url: prefix + 'data',
+            page: true,
+            cols: cols,
+            skin: 'line',
+            toolbar: '#giftRecord-toolbar',
+            defaultToolbar: [{
+                layEvent: 'refresh',
+                icon: 'layui-icon-refresh',
+            }, 'filter']
+        });
+
+        table.on('tool(giftRecord-table)', function (obj) {
+            if (obj.event === 'remove') {
+                window.remove(obj);
+            } else if (obj.event === 'edit') {
+                window.edit(obj);
+            }
+        });
+
+        table.on('toolbar(giftRecord-table)', function (obj) {
+            if (obj.event === 'add') {
+                window.add();
+            } else if (obj.event === 'refresh') {
+                window.refresh();
+            } else if (obj.event === 'batchRemove') {
+                window.batchRemove(obj);
+            }
+        });
+
+        form.on('submit(giftRecord-query)', function (data) {
+            table.reload('giftRecord-table', {where: data.field})
+            $.ajax({
+                url: prefix + "statistics",
+                data: data.field,
+                dataType: 'json',
+                type: 'get',
+                success: function (result) {
+                    for (const key in result.data) {
+                        $("span#" + key).html(result.data[key]);
+                    }
+                }
+            })
+            return false;
+        });
+
+        window.add = function () {
+            layer.open({
+                type: 2,
+                title: '新增直播间礼物列表展示',
+                shade: 0.1,
+                area: ['550px', '500px'],
+                content: prefix + 'add'
+            });
+        }
+
+        window.edit = function (obj) {
+            layer.open({
+                type: 2,
+                title: '修改直播间礼物列表展示',
+                shade: 0.1,
+                area: ['550px', '500px'],
+                content: prefix + 'edit?id=' + obj.data['id']
+            });
+        }
+
+        window.remove = function (obj) {
+            layer.confirm('确定要删除该直播间礼物列表展示', {icon: 3, title: '提示'}, function (index) {
+                layer.close(index);
+                let loading = layer.load();
+                $.ajax({
+                    url: prefix + "remove/" + obj.data['id'],
+                    dataType: 'json',
+                    type: 'delete',
+                    success: function (result) {
+                        layer.close(loading);
+                        if (result.success) {
+                            layer.msg(result.msg, {icon: 1, time: 1000}, function () {
+                                obj.del();
+                            });
+                        } else {
+                            layer.msg(result.msg, {icon: 2, time: 1000});
+                        }
+                    }
+                })
+            });
+        }
+
+        window.batchRemove = function (obj) {
+            let data = table.checkStatus(obj.config.id).data;
+            if (data.length === 0) {
+                layer.msg("未选中数据", {icon: 3, time: 1000});
+                return false;
+            }
+            let ids = "";
+            for (let i = 0; i < data.length; i++) {
+                ids += data[i].id + ",";
+            }
+            ids = ids.substr(0, ids.length - 1);
+            layer.confirm('确定要删除这些直播间礼物列表展示', {icon: 3, title: '提示'}, function (index) {
+                layer.close(index);
+                let loading = layer.load();
+                $.ajax({
+                    url: prefix + "batchRemove",
+                    dataType: 'json',
+                    data: {"ids": ids},
+                    type: 'delete',
+                    success: function (result) {
+                        layer.close(loading);
+                        if (result.success) {
+                            layer.msg(result.msg, {icon: 1, time: 1000}, function () {
+                                table.reload('giftRecord-table');
+                            });
+                        } else {
+                            layer.msg(result.msg, {icon: 2, time: 1000});
+                        }
+                    }
+                })
+            });
+        }
+
+        window.refresh = function (param) {
+            table.reload('giftRecord-table', {where: param});
+            $.ajax({
+                url: prefix + "statistics",
+                data: param,
+                dataType: 'json',
+                type: 'get',
+                success: function (result) {
+                    for (const key in result.data) {
+                        $("span#" + key).html(result.data[key]);
+                    }
+                }
+            })
+        }
+    })
+</script>
+</body>
+</html>

+ 2 - 14
src/main/resources/templates/bz/player/add.html

@@ -10,7 +10,7 @@
         <div class="layui-form-item">
              <label class="layui-form-label">平台:</label>
              <div class="layui-input-block">
-                 <div class="radio-box" radio-dict-code="input" name="platform"></div>
+                 <div class="radio-box" radio-dict-code="platform" name="platform"></div>
              </div>
         </div>
         <div class="layui-form-item">
@@ -27,19 +27,10 @@
                     class="layui-input" />
             </div>
         </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">最后修改时间:</label>
-            <div class="layui-input-block">
-                <div class="input-group date">
-                    <input type="text" name="modifyTime" class="layui-input"
-                        id="modifyTime" >
-                </div>
-            </div>
-        </div>
         <div class="layui-form-item">
              <label class="layui-form-label">状态:</label>
              <div class="layui-input-block">
-                 <div class="radio-box" radio-dict-code="input" name="status"></div>
+                 <div class="radio-box" radio-dict-code="status" name="status"></div>
              </div>
         </div>
         </div>
@@ -68,9 +59,6 @@
 
         let prefix = "/bz/player/"
 
-        laydate.render({
-            elem: '#modifyTime'
-        });
 
         form.on('submit(player-save)', function (data) {
             for (var key in data.field) {

+ 2 - 2
src/main/resources/templates/bz/player/edit.html

@@ -11,7 +11,7 @@
             <div class="layui-form-item">
                 <label class="layui-form-label">平台:</label>
                 <div class="layui-input-block">
-                    <div class="radio-box" radio-dict-code="input"
+                    <div class="radio-box" radio-dict-code="platform"
                         th:attr="default-value=*{platform}" name="platform">
                     </div>
                 </div>
@@ -33,7 +33,7 @@
             <div class="layui-form-item">
                 <label class="layui-form-label">状态:</label>
                 <div class="layui-input-block">
-                    <div class="radio-box" radio-dict-code="input"
+                    <div class="radio-box" radio-dict-code="status"
                         th:attr="default-value=*{status}" name="status">
                     </div>
                 </div>

+ 56 - 58
src/main/resources/templates/bz/player/main.html

@@ -11,7 +11,7 @@
                 <div class="layui-form-item">
                     <label class="layui-form-label">平台:</label>
                     <div class="layui-input-inline">
-                        <select name="platform" dict-code="input" >
+                        <select name="platform" dict-code="platform" >
                             <option value="">所有</option>
                         </select>
                     </div>
@@ -22,7 +22,7 @@
                     </div>
                     <label class="layui-form-label">状态:</label>
                     <div class="layui-input-inline">
-                        <select name="status" dict-code="input" >
+                        <select name="status" dict-code="status" >
                             <option value="">所有</option>
                         </select>
                     </div>
@@ -42,32 +42,36 @@
 <div class="layui-card">
     <div class="layui-card-body">
         <table id="player-table" lay-filter="player-table"></table>
+        <script type="text/html" id="player-toolbar">
+            <button sec:authorize="hasPermission('/bz/player/add','bz:player:add')"
+                    class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
+                <i class="layui-icon layui-icon-add-1"></i>
+                新增
+            </button>
+            <button sec:authorize="hasPermission('/bz/player/remove','bz:player:remove')"
+                    class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">
+                <i class="layui-icon layui-icon-delete"></i>
+                删除
+            </button>
+        </script>
+        <script type="text/html" id="player-bar">
+            <button sec:authorize="hasPermission('/bz/player/edit','bz:player:edit')"
+                    class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i
+                    class="layui-icon layui-icon-edit"></i>
+            </button>
+            <button sec:authorize="hasPermission('/bz/player/remove','bz:player:remove')"
+                    class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i
+                    class="layui-icon layui-icon-delete"></i>
+            </button>
+        </script>
     </div>
 </div>
-
-<script type="text/html" id="player-toolbar">
-    <button sec:authorize="hasPermission('/bz/player/add','bz:player:add')"
-            class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
-        <i class="layui-icon layui-icon-add-1"></i>
-        新增
-    </button>
-    <button sec:authorize="hasPermission('/bz/player/remove','bz:player:remove')"
-            class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">
-        <i class="layui-icon layui-icon-delete"></i>
-        删除
-    </button>
-</script>
-<script type="text/html" id="player-bar">
-    <button sec:authorize="hasPermission('/bz/player/edit','bz:player:edit')"
-            class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i
-            class="layui-icon layui-icon-edit"></i>
-    </button>
-    <button sec:authorize="hasPermission('/bz/player/remove','bz:player:remove')"
-            class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i
-            class="layui-icon layui-icon-delete"></i>
-    </button>
-</script>
-</body>
+        <script type="text/html" id="platform_parseDictText">
+                {{layui.dictionary.parseDictText(d.platform, 'platform')}}
+        </script>
+        <script type="text/html" id="status_parseDictText">
+                {{layui.dictionary.parseDictText(d.status, 'status')}}
+        </script>
 <th:block th:include="include :: footer"/>
 <script>
     layui.use(['table', 'form', 'jquery', 'dictionary', 'popup'], function () {
@@ -81,35 +85,29 @@
         let cols = [
             [
                 {type: 'checkbox'},
-                {
-                    field: 'id',
-                    title: 'null'
-                },
-                {
-                    field: 'platform',
-                    title: '平台', align: 'center', width: 100
-                },
-                {
-                    field: 'cardNo',
-                    title: '账号(登录名)', align: 'center', width: 200
-                },
-                {
-                    field: 'cardPassword',
-                    title: '密码', align: 'center', width: 150
-                },
-                {
-                    field: 'createTime',
-                    title: '创建时间', align: 'center', width: 200
-                },
-                {
-                    field: 'modifyTime',
-                    title: '最后修改时间', align: 'center', width: 200
-                },
-                {
-                    field: 'status',
-                    title: '状态', align: 'center', width: 80
-                },
-                {title: '操作', toolbar: '#player-bar', align: 'center', width: 150}
+                        {
+                            field: 'id',
+                            title: 'ID'
+                        },
+                        {
+                            field: 'platform',
+                            title: '平台'
+                                , templet: "#platform_parseDictText"
+                        },
+                        {
+                            field: 'cardNo',
+                            title: '账号(登录名)'
+                        },
+                        {
+                            field: 'cardPassword',
+                            title: '密码'
+                        },
+                        {
+                            field: 'status',
+                            title: '状态'
+                                , templet: "#status_parseDictText"
+                        },
+                {title: '操作', toolbar: '#player-bar', align: 'center', width: 130}
             ]
         ]
 
@@ -119,13 +117,12 @@
             page: true,
             cols: cols,
             skin: 'line',
-            height: 'full-148',
             toolbar: '#player-toolbar',
             defaultToolbar: [{
-                title: '刷新',
                 layEvent: 'refresh',
                 icon: 'layui-icon-refresh',
-            }, 'filter', 'print', 'exports']
+                title: '刷新'
+            }, 'filter']
         });
 
         table.on('tool(player-table)', function (obj) {
@@ -231,4 +228,5 @@
         }
     })
 </script>
+</body>
 </html>

+ 1 - 0
src/main/resources/vm/java/controller.java.vm

@@ -43,6 +43,7 @@ public class ${ClassName}Controller extends BaseController {
     @GetMapping("/data")
     @PreAuthorize("hasPermission('/${moduleName}/${businessName}/data','${permissionPrefix}:data')")
     public ResultTable list(@ModelAttribute ${ClassName} ${className}, PageDomain pageDomain) {
+        baseDomainParamsInit(${className});
         PageInfo<${ClassName}> pageInfo = ${className}Service.select${ClassName}Page(${className}, pageDomain);
         return pageTable(pageInfo.getList(), pageInfo.getTotal());
     }

+ 6 - 8
src/main/resources/vm/java/domain.java.vm

@@ -3,12 +3,15 @@ package ${packageName}.domain;
 #foreach ($import in $importList)
 import ${import};
 #end
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
 #if($table.crud || $table.sub)
+    #set($Entity="BaseDomain")
 #elseif($table.tree)
+    #set($Entity="TreeDomain")
 #end
+import com.hy.common.web.base.${Entity};
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
 
 /**
  * ${functionName}实体
@@ -16,11 +19,6 @@ import lombok.Data;
  * @author ${author}
  * @date ${datetime}
  */
-#if($table.crud || $table.sub)
-    #set($Entity="BaseDomain")
-#elseif($table.tree)
-    #set($Entity="TreeDomain")
-#end
 @Data
 @TableName("${tableName}")
 public class ${ClassName} extends ${Entity}{