Explorar o código

销售端直播代码提交

yuhongqi hai 1 semana
pai
achega
fee67bcee8
Modificáronse 18 ficheiros con 1440 adicións e 0 borrados
  1. 103 0
      fs-company/src/main/java/com/fs/company/controller/live/LiveGiftController.java
  2. 103 0
      fs-company/src/main/java/com/fs/company/controller/live/LiveSensitiveWordsController.java
  3. 103 0
      fs-company/src/main/java/com/fs/company/controller/live/LiveWatchConfigController.java
  4. 44 0
      fs-service/src/main/java/com/fs/live/domain/LiveGift.java
  5. 34 0
      fs-service/src/main/java/com/fs/live/domain/LiveSensitiveWords.java
  6. 106 0
      fs-service/src/main/java/com/fs/live/domain/LiveWatchConfig.java
  7. 61 0
      fs-service/src/main/java/com/fs/live/mapper/LiveGiftMapper.java
  8. 61 0
      fs-service/src/main/java/com/fs/live/mapper/LiveSensitiveWordsMapper.java
  9. 61 0
      fs-service/src/main/java/com/fs/live/mapper/LiveWatchConfigMapper.java
  10. 61 0
      fs-service/src/main/java/com/fs/live/service/ILiveGiftService.java
  11. 61 0
      fs-service/src/main/java/com/fs/live/service/ILiveSensitiveWordsService.java
  12. 61 0
      fs-service/src/main/java/com/fs/live/service/ILiveWatchConfigService.java
  13. 91 0
      fs-service/src/main/java/com/fs/live/service/impl/LiveGiftServiceImpl.java
  14. 91 0
      fs-service/src/main/java/com/fs/live/service/impl/LiveSensitiveWordsServiceImpl.java
  15. 95 0
      fs-service/src/main/java/com/fs/live/service/impl/LiveWatchConfigServiceImpl.java
  16. 76 0
      fs-service/src/main/resources/mapper/live/LiveGiftMapper.xml
  17. 61 0
      fs-service/src/main/resources/mapper/live/LiveSensitiveWordsMapper.xml
  18. 167 0
      fs-service/src/main/resources/mapper/live/LiveWatchConfigMapper.xml

+ 103 - 0
fs-company/src/main/java/com/fs/company/controller/live/LiveGiftController.java

@@ -0,0 +1,103 @@
+package com.fs.live.controller;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.enums.BusinessType;
+import com.fs.live.domain.LiveGift;
+import com.fs.live.service.ILiveGiftService;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.common.core.page.TableDataInfo;
+
+/**
+ * 直播间礼物配置Controller
+ * 
+ * @author fs
+ * @date 2025-07-08
+ */
+@RestController
+@RequestMapping("/live/gift")
+public class LiveGiftController extends BaseController
+{
+    @Autowired
+    private ILiveGiftService liveGiftService;
+
+    /**
+     * 查询直播间礼物配置列表
+     */
+    @PreAuthorize("@ss.hasPermi('live:gift:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(LiveGift liveGift)
+    {
+        startPage();
+        List<LiveGift> list = liveGiftService.selectLiveGiftList(liveGift);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出直播间礼物配置列表
+     */
+    @PreAuthorize("@ss.hasPermi('live:gift:export')")
+    @Log(title = "直播间礼物配置", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(LiveGift liveGift)
+    {
+        List<LiveGift> list = liveGiftService.selectLiveGiftList(liveGift);
+        ExcelUtil<LiveGift> util = new ExcelUtil<LiveGift>(LiveGift.class);
+        return util.exportExcel(list, "直播间礼物配置数据");
+    }
+
+    /**
+     * 获取直播间礼物配置详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('live:gift:query')")
+    @GetMapping(value = "/{giftId}")
+    public AjaxResult getInfo(@PathVariable("giftId") Long giftId)
+    {
+        return AjaxResult.success(liveGiftService.selectLiveGiftByGiftId(giftId));
+    }
+
+    /**
+     * 新增直播间礼物配置
+     */
+    @PreAuthorize("@ss.hasPermi('live:gift:add')")
+    @Log(title = "直播间礼物配置", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody LiveGift liveGift)
+    {
+        return toAjax(liveGiftService.insertLiveGift(liveGift));
+    }
+
+    /**
+     * 修改直播间礼物配置
+     */
+    @PreAuthorize("@ss.hasPermi('live:gift:edit')")
+    @Log(title = "直播间礼物配置", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody LiveGift liveGift)
+    {
+        return toAjax(liveGiftService.updateLiveGift(liveGift));
+    }
+
+    /**
+     * 删除直播间礼物配置
+     */
+    @PreAuthorize("@ss.hasPermi('live:gift:remove')")
+    @Log(title = "直播间礼物配置", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{giftIds}")
+    public AjaxResult remove(@PathVariable Long[] giftIds)
+    {
+        return toAjax(liveGiftService.deleteLiveGiftByGiftIds(giftIds));
+    }
+}

+ 103 - 0
fs-company/src/main/java/com/fs/company/controller/live/LiveSensitiveWordsController.java

@@ -0,0 +1,103 @@
+package com.fs.company.controller.live;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.enums.BusinessType;
+import com.fs.live.domain.LiveSensitiveWords;
+import com.fs.live.service.ILiveSensitiveWordsService;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.common.core.page.TableDataInfo;
+
+/**
+ * 直播间敏感词过滤Controller
+ *
+ * @author fs
+ * @date 2025-07-08
+ */
+@RestController
+@RequestMapping("/live/words")
+public class LiveSensitiveWordsController extends BaseController
+{
+    @Autowired
+    private ILiveSensitiveWordsService liveSensitiveWordsService;
+
+    /**
+     * 查询直播间敏感词过滤列表
+     */
+    @PreAuthorize("@ss.hasPermi('live:words:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(LiveSensitiveWords liveSensitiveWords)
+    {
+        startPage();
+        List<LiveSensitiveWords> list = liveSensitiveWordsService.selectLiveSensitiveWordsList(liveSensitiveWords);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出直播间敏感词过滤列表
+     */
+    @PreAuthorize("@ss.hasPermi('live:words:export')")
+    @Log(title = "直播间敏感词过滤", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(LiveSensitiveWords liveSensitiveWords)
+    {
+        List<LiveSensitiveWords> list = liveSensitiveWordsService.selectLiveSensitiveWordsList(liveSensitiveWords);
+        ExcelUtil<LiveSensitiveWords> util = new ExcelUtil<LiveSensitiveWords>(LiveSensitiveWords.class);
+        return util.exportExcel(list, "直播间敏感词过滤数据");
+    }
+
+    /**
+     * 获取直播间敏感词过滤详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('live:words:query')")
+    @GetMapping(value = "/{wordId}")
+    public AjaxResult getInfo(@PathVariable("wordId") Long wordId)
+    {
+        return AjaxResult.success(liveSensitiveWordsService.selectLiveSensitiveWordsByWordId(wordId));
+    }
+
+    /**
+     * 新增直播间敏感词过滤
+     */
+    @PreAuthorize("@ss.hasPermi('live:words:add')")
+    @Log(title = "直播间敏感词过滤", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody LiveSensitiveWords liveSensitiveWords)
+    {
+        return toAjax(liveSensitiveWordsService.insertLiveSensitiveWords(liveSensitiveWords));
+    }
+
+    /**
+     * 修改直播间敏感词过滤
+     */
+    @PreAuthorize("@ss.hasPermi('live:words:edit')")
+    @Log(title = "直播间敏感词过滤", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody LiveSensitiveWords liveSensitiveWords)
+    {
+        return toAjax(liveSensitiveWordsService.updateLiveSensitiveWords(liveSensitiveWords));
+    }
+
+    /**
+     * 删除直播间敏感词过滤
+     */
+    @PreAuthorize("@ss.hasPermi('live:words:remove')")
+    @Log(title = "直播间敏感词过滤", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{wordIds}")
+    public AjaxResult remove(@PathVariable Long[] wordIds)
+    {
+        return toAjax(liveSensitiveWordsService.deleteLiveSensitiveWordsByWordIds(wordIds));
+    }
+}

+ 103 - 0
fs-company/src/main/java/com/fs/company/controller/live/LiveWatchConfigController.java

@@ -0,0 +1,103 @@
+package com.fs.company.controller.live;
+
+import java.util.List;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.enums.BusinessType;
+import com.fs.live.domain.LiveWatchConfig;
+import com.fs.live.service.ILiveWatchConfigService;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.common.core.page.TableDataInfo;
+
+/**
+ * 直播观看奖励设置Controller
+ *
+ * @author fs
+ * @date 2025-07-08
+ */
+@RestController
+@RequestMapping("/live/config")
+public class LiveWatchConfigController extends BaseController
+{
+    @Autowired
+    private ILiveWatchConfigService liveWatchConfigService;
+
+    /**
+     * 查询直播观看奖励设置列表
+     */
+    @PreAuthorize("@ss.hasPermi('live:config:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(LiveWatchConfig liveWatchConfig)
+    {
+        startPage();
+        List<LiveWatchConfig> list = liveWatchConfigService.selectLiveWatchConfigList(liveWatchConfig);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出直播观看奖励设置列表
+     */
+    @PreAuthorize("@ss.hasPermi('live:config:export')")
+    @Log(title = "直播观看奖励设置", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(LiveWatchConfig liveWatchConfig)
+    {
+        List<LiveWatchConfig> list = liveWatchConfigService.selectLiveWatchConfigList(liveWatchConfig);
+        ExcelUtil<LiveWatchConfig> util = new ExcelUtil<LiveWatchConfig>(LiveWatchConfig.class);
+        return util.exportExcel(list, "直播观看奖励设置数据");
+    }
+
+    /**
+     * 获取直播观看奖励设置详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('live:config:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return AjaxResult.success(liveWatchConfigService.selectLiveWatchConfigById(id));
+    }
+
+    /**
+     * 新增直播观看奖励设置
+     */
+    @PreAuthorize("@ss.hasPermi('live:config:add')")
+    @Log(title = "直播观看奖励设置", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody LiveWatchConfig liveWatchConfig)
+    {
+        return toAjax(liveWatchConfigService.insertLiveWatchConfig(liveWatchConfig));
+    }
+
+    /**
+     * 修改直播观看奖励设置
+     */
+    @PreAuthorize("@ss.hasPermi('live:config:edit')")
+    @Log(title = "直播观看奖励设置", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody LiveWatchConfig liveWatchConfig)
+    {
+        return toAjax(liveWatchConfigService.updateLiveWatchConfig(liveWatchConfig));
+    }
+
+    /**
+     * 删除直播观看奖励设置
+     */
+    @PreAuthorize("@ss.hasPermi('live:config:remove')")
+    @Log(title = "直播观看奖励设置", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(liveWatchConfigService.deleteLiveWatchConfigByIds(ids));
+    }
+}

+ 44 - 0
fs-service/src/main/java/com/fs/live/domain/LiveGift.java

@@ -0,0 +1,44 @@
+package com.fs.live.domain;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+import com.fs.common.core.domain.BaseEntity;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 直播间礼物配置对象 live_gift
+ *
+ * @author fs
+ * @date 2025-07-08
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class LiveGift extends BaseEntity{
+
+    /** 礼物唯一标识 */
+    private Long giftId;
+
+    /** 礼物名称 */
+    @Excel(name = "礼物名称")
+    private String giftName;
+
+    /** 礼物描述 */
+    @Excel(name = "礼物描述")
+    private String description;
+
+    /** 礼物图标链接地址 */
+    @Excel(name = "礼物图标链接地址")
+    private String iconUrl;
+
+    /** 礼物价格 */
+    @Excel(name = "礼物价格")
+    private BigDecimal price;
+
+    /** 礼物当前状态 */
+    @Excel(name = "礼物当前状态")
+    private String status;
+
+
+}

+ 34 - 0
fs-service/src/main/java/com/fs/live/domain/LiveSensitiveWords.java

@@ -0,0 +1,34 @@
+package com.fs.live.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+import com.fs.common.core.domain.BaseEntity;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 直播间敏感词过滤对象 live_sensitive_words
+ *
+ * @author fs
+ * @date 2025-07-08
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class LiveSensitiveWords extends BaseEntity{
+
+    /** 敏感词唯一标识 */
+    private Long wordId;
+
+    /** 需要过滤的敏感词 */
+    @Excel(name = "需要过滤的敏感词")
+    private String word;
+
+    /** 敏感词添加时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "敏感词添加时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date createdAt;
+
+
+}

+ 106 - 0
fs-service/src/main/java/com/fs/live/domain/LiveWatchConfig.java

@@ -0,0 +1,106 @@
+package com.fs.live.domain;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+import com.fs.common.core.domain.BaseEntity;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+/**
+ * 直播观看奖励设置对象 live_watch_config
+ *
+ * @author fs
+ * @date 2025-07-08
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class LiveWatchConfig extends BaseEntity{
+
+    /** 主键ID */
+    private Long id;
+
+    /** 直播ID */
+    @Excel(name = "直播ID")
+    private Long liveId;
+
+    /** 参与条件 1达到指定观看时长 */
+    @Excel(name = "参与条件 1达到指定观看时长")
+    private Long participateCondition;
+
+    /** 观看时长 */
+    @Excel(name = "观看时长")
+    private Long watchDuration;
+
+    /** 实施动作 1现金红包 2积分红包 */
+    @Excel(name = "实施动作 1现金红包 2积分红包")
+    private Long action;
+
+    /** 领取提示语 */
+    @Excel(name = "领取提示语")
+    private String receivePrompt;
+
+    /** 红包发放方式 1固定金额 2随机金额 */
+    @Excel(name = "红包发放方式 1固定金额 2随机金额")
+    private Long redPacketType;
+
+    /** 红包金额 */
+    @Excel(name = "红包金额")
+    private BigDecimal redPacketAmount;
+
+    /** 红包随机规则 */
+    @Excel(name = "红包随机规则")
+    private String redPacketRandomAmount;
+
+    /** 红包数量最大发放人数 */
+    @Excel(name = "红包数量最大发放人数")
+    private Long redPacketCount;
+
+    /** 红包领取方式 1二维码核销 2微信提现 */
+    @Excel(name = "红包领取方式 1二维码核销 2微信提现")
+    private Long redPacketReceiveMethod;
+
+    /** 红包领取时限 */
+    @Excel(name = "红包领取时限")
+    private Long redPacketReceiveTimeLimit;
+
+    /** 微信提现条件 1无条件 2添加过员工企微才可领取 */
+    @Excel(name = "微信提现条件 1无条件 2添加过员工企微才可领取")
+    private Long redPacketWithdrawCondition;
+
+    /** 客服引导 1跟进企业微信 2不设置 */
+    @Excel(name = "客服引导 1跟进企业微信 2不设置")
+    private Long redPacketGuide;
+
+    /** 客服引导语 */
+    @Excel(name = "客服引导语")
+    private String redPacketGuideText;
+
+    /** 积分值 */
+    @Excel(name = "积分值")
+    private Long scoreAmount;
+
+    /** 最大领取人数 */
+    @Excel(name = "最大领取人数")
+    private Long scoreMaxReceiver;
+
+    /** 客服引导 1引导外部链接 2不设置 */
+    @Excel(name = "客服引导 1引导外部链接 2不设置")
+    private Long scoreGuide;
+
+    /** 积分使用引导链接 */
+    @Excel(name = "积分使用引导链接")
+    private String scoreGuideLink;
+
+    /** 引导语 */
+    @Excel(name = "引导语")
+    private String scoreGuideText;
+    /** 配置json */
+    @Excel(name = "配置json")
+    private String configjson;
+
+
+
+
+}

+ 61 - 0
fs-service/src/main/java/com/fs/live/mapper/LiveGiftMapper.java

@@ -0,0 +1,61 @@
+package com.fs.live.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fs.live.domain.LiveGift;
+
+/**
+ * 直播间礼物配置Mapper接口
+ * 
+ * @author fs
+ * @date 2025-07-08
+ */
+public interface LiveGiftMapper extends BaseMapper<LiveGift>{
+    /**
+     * 查询直播间礼物配置
+     * 
+     * @param giftId 直播间礼物配置主键
+     * @return 直播间礼物配置
+     */
+    LiveGift selectLiveGiftByGiftId(Long giftId);
+
+    /**
+     * 查询直播间礼物配置列表
+     * 
+     * @param liveGift 直播间礼物配置
+     * @return 直播间礼物配置集合
+     */
+    List<LiveGift> selectLiveGiftList(LiveGift liveGift);
+
+    /**
+     * 新增直播间礼物配置
+     * 
+     * @param liveGift 直播间礼物配置
+     * @return 结果
+     */
+    int insertLiveGift(LiveGift liveGift);
+
+    /**
+     * 修改直播间礼物配置
+     * 
+     * @param liveGift 直播间礼物配置
+     * @return 结果
+     */
+    int updateLiveGift(LiveGift liveGift);
+
+    /**
+     * 删除直播间礼物配置
+     * 
+     * @param giftId 直播间礼物配置主键
+     * @return 结果
+     */
+    int deleteLiveGiftByGiftId(Long giftId);
+
+    /**
+     * 批量删除直播间礼物配置
+     * 
+     * @param giftIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteLiveGiftByGiftIds(Long[] giftIds);
+}

+ 61 - 0
fs-service/src/main/java/com/fs/live/mapper/LiveSensitiveWordsMapper.java

@@ -0,0 +1,61 @@
+package com.fs.live.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fs.live.domain.LiveSensitiveWords;
+
+/**
+ * 直播间敏感词过滤Mapper接口
+ * 
+ * @author fs
+ * @date 2025-07-08
+ */
+public interface LiveSensitiveWordsMapper extends BaseMapper<LiveSensitiveWords>{
+    /**
+     * 查询直播间敏感词过滤
+     * 
+     * @param wordId 直播间敏感词过滤主键
+     * @return 直播间敏感词过滤
+     */
+    LiveSensitiveWords selectLiveSensitiveWordsByWordId(Long wordId);
+
+    /**
+     * 查询直播间敏感词过滤列表
+     * 
+     * @param liveSensitiveWords 直播间敏感词过滤
+     * @return 直播间敏感词过滤集合
+     */
+    List<LiveSensitiveWords> selectLiveSensitiveWordsList(LiveSensitiveWords liveSensitiveWords);
+
+    /**
+     * 新增直播间敏感词过滤
+     * 
+     * @param liveSensitiveWords 直播间敏感词过滤
+     * @return 结果
+     */
+    int insertLiveSensitiveWords(LiveSensitiveWords liveSensitiveWords);
+
+    /**
+     * 修改直播间敏感词过滤
+     * 
+     * @param liveSensitiveWords 直播间敏感词过滤
+     * @return 结果
+     */
+    int updateLiveSensitiveWords(LiveSensitiveWords liveSensitiveWords);
+
+    /**
+     * 删除直播间敏感词过滤
+     * 
+     * @param wordId 直播间敏感词过滤主键
+     * @return 结果
+     */
+    int deleteLiveSensitiveWordsByWordId(Long wordId);
+
+    /**
+     * 批量删除直播间敏感词过滤
+     * 
+     * @param wordIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteLiveSensitiveWordsByWordIds(Long[] wordIds);
+}

+ 61 - 0
fs-service/src/main/java/com/fs/live/mapper/LiveWatchConfigMapper.java

@@ -0,0 +1,61 @@
+package com.fs.live.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fs.live.domain.LiveWatchConfig;
+
+/**
+ * 直播观看奖励设置Mapper接口
+ *
+ * @author fs
+ * @date 2025-07-08
+ */
+public interface LiveWatchConfigMapper extends BaseMapper<LiveWatchConfig>{
+    /**
+     * 查询直播观看奖励设置
+     *
+     * @param id 直播观看奖励设置主键
+     * @return 直播观看奖励设置
+     */
+    LiveWatchConfig selectLiveWatchConfigById(Long id);
+
+    /**
+     * 查询直播观看奖励设置列表
+     *
+     * @param liveWatchConfig 直播观看奖励设置
+     * @return 直播观看奖励设置集合
+     */
+    List<LiveWatchConfig> selectLiveWatchConfigList(LiveWatchConfig liveWatchConfig);
+
+    /**
+     * 新增直播观看奖励设置
+     *
+     * @param liveWatchConfig 直播观看奖励设置
+     * @return 结果
+     */
+    int insertLiveWatchConfig(LiveWatchConfig liveWatchConfig);
+
+    /**
+     * 修改直播观看奖励设置
+     *
+     * @param liveWatchConfig 直播观看奖励设置
+     * @return 结果
+     */
+    int updateLiveWatchConfig(LiveWatchConfig liveWatchConfig);
+
+    /**
+     * 删除直播观看奖励设置
+     *
+     * @param id 直播观看奖励设置主键
+     * @return 结果
+     */
+    int deleteLiveWatchConfigById(Long id);
+
+    /**
+     * 批量删除直播观看奖励设置
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteLiveWatchConfigByIds(Long[] ids);
+}

+ 61 - 0
fs-service/src/main/java/com/fs/live/service/ILiveGiftService.java

@@ -0,0 +1,61 @@
+package com.fs.live.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fs.live.domain.LiveGift;
+
+/**
+ * 直播间礼物配置Service接口
+ * 
+ * @author fs
+ * @date 2025-07-08
+ */
+public interface ILiveGiftService extends IService<LiveGift>{
+    /**
+     * 查询直播间礼物配置
+     * 
+     * @param giftId 直播间礼物配置主键
+     * @return 直播间礼物配置
+     */
+    LiveGift selectLiveGiftByGiftId(Long giftId);
+
+    /**
+     * 查询直播间礼物配置列表
+     * 
+     * @param liveGift 直播间礼物配置
+     * @return 直播间礼物配置集合
+     */
+    List<LiveGift> selectLiveGiftList(LiveGift liveGift);
+
+    /**
+     * 新增直播间礼物配置
+     * 
+     * @param liveGift 直播间礼物配置
+     * @return 结果
+     */
+    int insertLiveGift(LiveGift liveGift);
+
+    /**
+     * 修改直播间礼物配置
+     * 
+     * @param liveGift 直播间礼物配置
+     * @return 结果
+     */
+    int updateLiveGift(LiveGift liveGift);
+
+    /**
+     * 批量删除直播间礼物配置
+     * 
+     * @param giftIds 需要删除的直播间礼物配置主键集合
+     * @return 结果
+     */
+    int deleteLiveGiftByGiftIds(Long[] giftIds);
+
+    /**
+     * 删除直播间礼物配置信息
+     * 
+     * @param giftId 直播间礼物配置主键
+     * @return 结果
+     */
+    int deleteLiveGiftByGiftId(Long giftId);
+}

+ 61 - 0
fs-service/src/main/java/com/fs/live/service/ILiveSensitiveWordsService.java

@@ -0,0 +1,61 @@
+package com.fs.live.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fs.live.domain.LiveSensitiveWords;
+
+/**
+ * 直播间敏感词过滤Service接口
+ * 
+ * @author fs
+ * @date 2025-07-08
+ */
+public interface ILiveSensitiveWordsService extends IService<LiveSensitiveWords>{
+    /**
+     * 查询直播间敏感词过滤
+     * 
+     * @param wordId 直播间敏感词过滤主键
+     * @return 直播间敏感词过滤
+     */
+    LiveSensitiveWords selectLiveSensitiveWordsByWordId(Long wordId);
+
+    /**
+     * 查询直播间敏感词过滤列表
+     * 
+     * @param liveSensitiveWords 直播间敏感词过滤
+     * @return 直播间敏感词过滤集合
+     */
+    List<LiveSensitiveWords> selectLiveSensitiveWordsList(LiveSensitiveWords liveSensitiveWords);
+
+    /**
+     * 新增直播间敏感词过滤
+     * 
+     * @param liveSensitiveWords 直播间敏感词过滤
+     * @return 结果
+     */
+    int insertLiveSensitiveWords(LiveSensitiveWords liveSensitiveWords);
+
+    /**
+     * 修改直播间敏感词过滤
+     * 
+     * @param liveSensitiveWords 直播间敏感词过滤
+     * @return 结果
+     */
+    int updateLiveSensitiveWords(LiveSensitiveWords liveSensitiveWords);
+
+    /**
+     * 批量删除直播间敏感词过滤
+     * 
+     * @param wordIds 需要删除的直播间敏感词过滤主键集合
+     * @return 结果
+     */
+    int deleteLiveSensitiveWordsByWordIds(Long[] wordIds);
+
+    /**
+     * 删除直播间敏感词过滤信息
+     * 
+     * @param wordId 直播间敏感词过滤主键
+     * @return 结果
+     */
+    int deleteLiveSensitiveWordsByWordId(Long wordId);
+}

+ 61 - 0
fs-service/src/main/java/com/fs/live/service/ILiveWatchConfigService.java

@@ -0,0 +1,61 @@
+package com.fs.live.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fs.live.domain.LiveWatchConfig;
+
+/**
+ * 直播观看奖励设置Service接口
+ *
+ * @author fs
+ * @date 2025-07-08
+ */
+public interface ILiveWatchConfigService extends IService<LiveWatchConfig>{
+    /**
+     * 查询直播观看奖励设置
+     *
+     * @param id 直播观看奖励设置主键
+     * @return 直播观看奖励设置
+     */
+    LiveWatchConfig selectLiveWatchConfigById(Long id);
+
+    /**
+     * 查询直播观看奖励设置列表
+     *
+     * @param liveWatchConfig 直播观看奖励设置
+     * @return 直播观看奖励设置集合
+     */
+    List<LiveWatchConfig> selectLiveWatchConfigList(LiveWatchConfig liveWatchConfig);
+
+    /**
+     * 新增直播观看奖励设置
+     *
+     * @param liveWatchConfig 直播观看奖励设置
+     * @return 结果
+     */
+    int insertLiveWatchConfig(LiveWatchConfig liveWatchConfig);
+
+    /**
+     * 修改直播观看奖励设置
+     *
+     * @param liveWatchConfig 直播观看奖励设置
+     * @return 结果
+     */
+    int updateLiveWatchConfig(LiveWatchConfig liveWatchConfig);
+
+    /**
+     * 批量删除直播观看奖励设置
+     *
+     * @param ids 需要删除的直播观看奖励设置主键集合
+     * @return 结果
+     */
+    int deleteLiveWatchConfigByIds(Long[] ids);
+
+    /**
+     * 删除直播观看奖励设置信息
+     *
+     * @param id 直播观看奖励设置主键
+     * @return 结果
+     */
+    int deleteLiveWatchConfigById(Long id);
+}

+ 91 - 0
fs-service/src/main/java/com/fs/live/service/impl/LiveGiftServiceImpl.java

@@ -0,0 +1,91 @@
+package com.fs.live.service.impl;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.fs.live.mapper.LiveGiftMapper;
+import com.fs.live.domain.LiveGift;
+import com.fs.live.service.ILiveGiftService;
+
+/**
+ * 直播间礼物配置Service业务层处理
+ * 
+ * @author fs
+ * @date 2025-07-08
+ */
+@Service
+public class LiveGiftServiceImpl extends ServiceImpl<LiveGiftMapper, LiveGift> implements ILiveGiftService {
+
+    /**
+     * 查询直播间礼物配置
+     * 
+     * @param giftId 直播间礼物配置主键
+     * @return 直播间礼物配置
+     */
+    @Override
+    public LiveGift selectLiveGiftByGiftId(Long giftId)
+    {
+        return baseMapper.selectLiveGiftByGiftId(giftId);
+    }
+
+    /**
+     * 查询直播间礼物配置列表
+     * 
+     * @param liveGift 直播间礼物配置
+     * @return 直播间礼物配置
+     */
+    @Override
+    public List<LiveGift> selectLiveGiftList(LiveGift liveGift)
+    {
+        return baseMapper.selectLiveGiftList(liveGift);
+    }
+
+    /**
+     * 新增直播间礼物配置
+     * 
+     * @param liveGift 直播间礼物配置
+     * @return 结果
+     */
+    @Override
+    public int insertLiveGift(LiveGift liveGift)
+    {
+        return baseMapper.insertLiveGift(liveGift);
+    }
+
+    /**
+     * 修改直播间礼物配置
+     * 
+     * @param liveGift 直播间礼物配置
+     * @return 结果
+     */
+    @Override
+    public int updateLiveGift(LiveGift liveGift)
+    {
+        return baseMapper.updateLiveGift(liveGift);
+    }
+
+    /**
+     * 批量删除直播间礼物配置
+     * 
+     * @param giftIds 需要删除的直播间礼物配置主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLiveGiftByGiftIds(Long[] giftIds)
+    {
+        return baseMapper.deleteLiveGiftByGiftIds(giftIds);
+    }
+
+    /**
+     * 删除直播间礼物配置信息
+     * 
+     * @param giftId 直播间礼物配置主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLiveGiftByGiftId(Long giftId)
+    {
+        return baseMapper.deleteLiveGiftByGiftId(giftId);
+    }
+}

+ 91 - 0
fs-service/src/main/java/com/fs/live/service/impl/LiveSensitiveWordsServiceImpl.java

@@ -0,0 +1,91 @@
+package com.fs.live.service.impl;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.fs.live.mapper.LiveSensitiveWordsMapper;
+import com.fs.live.domain.LiveSensitiveWords;
+import com.fs.live.service.ILiveSensitiveWordsService;
+
+/**
+ * 直播间敏感词过滤Service业务层处理
+ * 
+ * @author fs
+ * @date 2025-07-08
+ */
+@Service
+public class LiveSensitiveWordsServiceImpl extends ServiceImpl<LiveSensitiveWordsMapper, LiveSensitiveWords> implements ILiveSensitiveWordsService {
+
+    /**
+     * 查询直播间敏感词过滤
+     * 
+     * @param wordId 直播间敏感词过滤主键
+     * @return 直播间敏感词过滤
+     */
+    @Override
+    public LiveSensitiveWords selectLiveSensitiveWordsByWordId(Long wordId)
+    {
+        return baseMapper.selectLiveSensitiveWordsByWordId(wordId);
+    }
+
+    /**
+     * 查询直播间敏感词过滤列表
+     * 
+     * @param liveSensitiveWords 直播间敏感词过滤
+     * @return 直播间敏感词过滤
+     */
+    @Override
+    public List<LiveSensitiveWords> selectLiveSensitiveWordsList(LiveSensitiveWords liveSensitiveWords)
+    {
+        return baseMapper.selectLiveSensitiveWordsList(liveSensitiveWords);
+    }
+
+    /**
+     * 新增直播间敏感词过滤
+     * 
+     * @param liveSensitiveWords 直播间敏感词过滤
+     * @return 结果
+     */
+    @Override
+    public int insertLiveSensitiveWords(LiveSensitiveWords liveSensitiveWords)
+    {
+        return baseMapper.insertLiveSensitiveWords(liveSensitiveWords);
+    }
+
+    /**
+     * 修改直播间敏感词过滤
+     * 
+     * @param liveSensitiveWords 直播间敏感词过滤
+     * @return 结果
+     */
+    @Override
+    public int updateLiveSensitiveWords(LiveSensitiveWords liveSensitiveWords)
+    {
+        return baseMapper.updateLiveSensitiveWords(liveSensitiveWords);
+    }
+
+    /**
+     * 批量删除直播间敏感词过滤
+     * 
+     * @param wordIds 需要删除的直播间敏感词过滤主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLiveSensitiveWordsByWordIds(Long[] wordIds)
+    {
+        return baseMapper.deleteLiveSensitiveWordsByWordIds(wordIds);
+    }
+
+    /**
+     * 删除直播间敏感词过滤信息
+     * 
+     * @param wordId 直播间敏感词过滤主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLiveSensitiveWordsByWordId(Long wordId)
+    {
+        return baseMapper.deleteLiveSensitiveWordsByWordId(wordId);
+    }
+}

+ 95 - 0
fs-service/src/main/java/com/fs/live/service/impl/LiveWatchConfigServiceImpl.java

@@ -0,0 +1,95 @@
+package com.fs.live.service.impl;
+
+import java.util.List;
+import com.fs.common.utils.DateUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.fs.live.mapper.LiveWatchConfigMapper;
+import com.fs.live.domain.LiveWatchConfig;
+import com.fs.live.service.ILiveWatchConfigService;
+
+/**
+ * 直播观看奖励设置Service业务层处理
+ *
+ * @author fs
+ * @date 2025-07-08
+ */
+@Service
+public class LiveWatchConfigServiceImpl extends ServiceImpl<LiveWatchConfigMapper, LiveWatchConfig> implements ILiveWatchConfigService {
+
+    /**
+     * 查询直播观看奖励设置
+     *
+     * @param id 直播观看奖励设置主键
+     * @return 直播观看奖励设置
+     */
+    @Override
+    public LiveWatchConfig selectLiveWatchConfigById(Long id)
+    {
+        return baseMapper.selectLiveWatchConfigById(id);
+    }
+
+    /**
+     * 查询直播观看奖励设置列表
+     *
+     * @param liveWatchConfig 直播观看奖励设置
+     * @return 直播观看奖励设置
+     */
+    @Override
+    public List<LiveWatchConfig> selectLiveWatchConfigList(LiveWatchConfig liveWatchConfig)
+    {
+        return baseMapper.selectLiveWatchConfigList(liveWatchConfig);
+    }
+
+    /**
+     * 新增直播观看奖励设置
+     *
+     * @param liveWatchConfig 直播观看奖励设置
+     * @return 结果
+     */
+    @Override
+    public int insertLiveWatchConfig(LiveWatchConfig liveWatchConfig)
+    {
+        liveWatchConfig.setCreateTime(DateUtils.getNowDate());
+
+        return baseMapper.insertLiveWatchConfig(liveWatchConfig);
+    }
+
+    /**
+     * 修改直播观看奖励设置
+     *
+     * @param liveWatchConfig 直播观看奖励设置
+     * @return 结果
+     */
+    @Override
+    public int updateLiveWatchConfig(LiveWatchConfig liveWatchConfig)
+    {
+        liveWatchConfig.setUpdateTime(DateUtils.getNowDate());
+        return baseMapper.updateLiveWatchConfig(liveWatchConfig);
+    }
+
+    /**
+     * 批量删除直播观看奖励设置
+     *
+     * @param ids 需要删除的直播观看奖励设置主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLiveWatchConfigByIds(Long[] ids)
+    {
+        return baseMapper.deleteLiveWatchConfigByIds(ids);
+    }
+
+    /**
+     * 删除直播观看奖励设置信息
+     *
+     * @param id 直播观看奖励设置主键
+     * @return 结果
+     */
+    @Override
+    public int deleteLiveWatchConfigById(Long id)
+    {
+        return baseMapper.deleteLiveWatchConfigById(id);
+    }
+}

+ 76 - 0
fs-service/src/main/resources/mapper/live/LiveGiftMapper.xml

@@ -0,0 +1,76 @@
+<?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.fs.live.mapper.LiveGiftMapper">
+    
+    <resultMap type="LiveGift" id="LiveGiftResult">
+        <result property="giftId"    column="gift_id"    />
+        <result property="giftName"    column="gift_name"    />
+        <result property="description"    column="description"    />
+        <result property="iconUrl"    column="icon_url"    />
+        <result property="price"    column="price"    />
+        <result property="status"    column="status"    />
+    </resultMap>
+
+    <sql id="selectLiveGiftVo">
+        select gift_id, gift_name, description, icon_url, price, status from live_gift
+    </sql>
+
+    <select id="selectLiveGiftList" parameterType="LiveGift" resultMap="LiveGiftResult">
+        <include refid="selectLiveGiftVo"/>
+        <where>  
+            <if test="giftName != null  and giftName != ''"> and gift_name like concat('%', #{giftName}, '%')</if>
+            <if test="description != null  and description != ''"> and description = #{description}</if>
+            <if test="iconUrl != null  and iconUrl != ''"> and icon_url = #{iconUrl}</if>
+            <if test="price != null "> and price = #{price}</if>
+            <if test="status != null  and status != ''"> and status = #{status}</if>
+        </where>
+    </select>
+    
+    <select id="selectLiveGiftByGiftId" parameterType="Long" resultMap="LiveGiftResult">
+        <include refid="selectLiveGiftVo"/>
+        where gift_id = #{giftId}
+    </select>
+        
+    <insert id="insertLiveGift" parameterType="LiveGift" useGeneratedKeys="true" keyProperty="giftId">
+        insert into live_gift
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="giftName != null and giftName != ''">gift_name,</if>
+            <if test="description != null">description,</if>
+            <if test="iconUrl != null">icon_url,</if>
+            <if test="price != null">price,</if>
+            <if test="status != null">status,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="giftName != null and giftName != ''">#{giftName},</if>
+            <if test="description != null">#{description},</if>
+            <if test="iconUrl != null">#{iconUrl},</if>
+            <if test="price != null">#{price},</if>
+            <if test="status != null">#{status},</if>
+         </trim>
+    </insert>
+
+    <update id="updateLiveGift" parameterType="LiveGift">
+        update live_gift
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="giftName != null and giftName != ''">gift_name = #{giftName},</if>
+            <if test="description != null">description = #{description},</if>
+            <if test="iconUrl != null">icon_url = #{iconUrl},</if>
+            <if test="price != null">price = #{price},</if>
+            <if test="status != null">status = #{status},</if>
+        </trim>
+        where gift_id = #{giftId}
+    </update>
+
+    <delete id="deleteLiveGiftByGiftId" parameterType="Long">
+        delete from live_gift where gift_id = #{giftId}
+    </delete>
+
+    <delete id="deleteLiveGiftByGiftIds" parameterType="String">
+        delete from live_gift where gift_id in 
+        <foreach item="giftId" collection="array" open="(" separator="," close=")">
+            #{giftId}
+        </foreach>
+    </delete>
+</mapper>

+ 61 - 0
fs-service/src/main/resources/mapper/live/LiveSensitiveWordsMapper.xml

@@ -0,0 +1,61 @@
+<?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.fs.live.mapper.LiveSensitiveWordsMapper">
+    
+    <resultMap type="LiveSensitiveWords" id="LiveSensitiveWordsResult">
+        <result property="wordId"    column="word_id"    />
+        <result property="word"    column="word"    />
+        <result property="createdAt"    column="created_at"    />
+    </resultMap>
+
+    <sql id="selectLiveSensitiveWordsVo">
+        select word_id, word, created_at from live_sensitive_words
+    </sql>
+
+    <select id="selectLiveSensitiveWordsList" parameterType="LiveSensitiveWords" resultMap="LiveSensitiveWordsResult">
+        <include refid="selectLiveSensitiveWordsVo"/>
+        <where>  
+            <if test="word != null  and word != ''"> and word = #{word}</if>
+            <if test="createdAt != null "> and created_at = #{createdAt}</if>
+        </where>
+    </select>
+    
+    <select id="selectLiveSensitiveWordsByWordId" parameterType="Long" resultMap="LiveSensitiveWordsResult">
+        <include refid="selectLiveSensitiveWordsVo"/>
+        where word_id = #{wordId}
+    </select>
+        
+    <insert id="insertLiveSensitiveWords" parameterType="LiveSensitiveWords" useGeneratedKeys="true" keyProperty="wordId">
+        insert into live_sensitive_words
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="word != null and word != ''">word,</if>
+            <if test="createdAt != null">created_at,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="word != null and word != ''">#{word},</if>
+            <if test="createdAt != null">#{createdAt},</if>
+         </trim>
+    </insert>
+
+    <update id="updateLiveSensitiveWords" parameterType="LiveSensitiveWords">
+        update live_sensitive_words
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="word != null and word != ''">word = #{word},</if>
+            <if test="createdAt != null">created_at = #{createdAt},</if>
+        </trim>
+        where word_id = #{wordId}
+    </update>
+
+    <delete id="deleteLiveSensitiveWordsByWordId" parameterType="Long">
+        delete from live_sensitive_words where word_id = #{wordId}
+    </delete>
+
+    <delete id="deleteLiveSensitiveWordsByWordIds" parameterType="String">
+        delete from live_sensitive_words where word_id in 
+        <foreach item="wordId" collection="array" open="(" separator="," close=")">
+            #{wordId}
+        </foreach>
+    </delete>
+</mapper>

+ 167 - 0
fs-service/src/main/resources/mapper/live/LiveWatchConfigMapper.xml

@@ -0,0 +1,167 @@
+<?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.fs.live.mapper.LiveWatchConfigMapper">
+
+    <resultMap type="LiveWatchConfig" id="LiveWatchConfigResult">
+        <result property="id"    column="id"    />
+        <result property="liveId"    column="live_id"    />
+        <result property="participateCondition"    column="participate_condition"    />
+        <result property="watchDuration"    column="watch_duration"    />
+        <result property="action"    column="action"    />
+        <result property="receivePrompt"    column="receive_prompt"    />
+        <result property="redPacketType"    column="red_packet_type"    />
+        <result property="redPacketAmount"    column="red_packet_amount"    />
+        <result property="redPacketRandomAmount"    column="red_packet_random_amount"    />
+        <result property="redPacketCount"    column="red_packet_count"    />
+        <result property="redPacketReceiveMethod"    column="red_packet_receive_method"    />
+        <result property="redPacketReceiveTimeLimit"    column="red_packet_receive_time_limit"    />
+        <result property="redPacketWithdrawCondition"    column="red_packet_withdraw_condition"    />
+        <result property="redPacketGuide"    column="red_packet_guide"    />
+        <result property="redPacketGuideText"    column="red_packet_guide_text"    />
+        <result property="scoreAmount"    column="score_amount"    />
+        <result property="scoreMaxReceiver"    column="score_max_receiver"    />
+        <result property="scoreGuide"    column="score_guide"    />
+        <result property="scoreGuideLink"    column="score_guide_link"    />
+        <result property="scoreGuideText"    column="score_guide_text"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="configjson"    column="configJson"    />
+    </resultMap>
+
+    <sql id="selectLiveWatchConfigVo">
+        select id, live_id, participate_condition, watch_duration, action, receive_prompt, red_packet_type, red_packet_amount, red_packet_random_amount, red_packet_count, red_packet_receive_method, red_packet_receive_time_limit, red_packet_withdraw_condition, red_packet_guide, red_packet_guide_text, score_amount, score_max_receiver, score_guide, score_guide_link, score_guide_text, create_time, create_by, update_time, update_by, configJson from live_watch_config
+    </sql>
+
+    <select id="selectLiveWatchConfigList" parameterType="LiveWatchConfig" resultMap="LiveWatchConfigResult">
+        <include refid="selectLiveWatchConfigVo"/>
+        <where>
+            <if test="liveId != null "> and live_id = #{liveId}</if>
+            <if test="participateCondition != null "> and participate_condition = #{participateCondition}</if>
+            <if test="watchDuration != null "> and watch_duration = #{watchDuration}</if>
+            <if test="action != null "> and action = #{action}</if>
+            <if test="receivePrompt != null  and receivePrompt != ''"> and receive_prompt = #{receivePrompt}</if>
+            <if test="redPacketType != null "> and red_packet_type = #{redPacketType}</if>
+            <if test="redPacketAmount != null "> and red_packet_amount = #{redPacketAmount}</if>
+            <if test="redPacketRandomAmount != null  and redPacketRandomAmount != ''"> and red_packet_random_amount = #{redPacketRandomAmount}</if>
+            <if test="redPacketCount != null "> and red_packet_count = #{redPacketCount}</if>
+            <if test="redPacketReceiveMethod != null "> and red_packet_receive_method = #{redPacketReceiveMethod}</if>
+            <if test="redPacketReceiveTimeLimit != null "> and red_packet_receive_time_limit = #{redPacketReceiveTimeLimit}</if>
+            <if test="redPacketWithdrawCondition != null "> and red_packet_withdraw_condition = #{redPacketWithdrawCondition}</if>
+            <if test="redPacketGuide != null "> and red_packet_guide = #{redPacketGuide}</if>
+            <if test="redPacketGuideText != null  and redPacketGuideText != ''"> and red_packet_guide_text = #{redPacketGuideText}</if>
+            <if test="scoreAmount != null "> and score_amount = #{scoreAmount}</if>
+            <if test="scoreMaxReceiver != null "> and score_max_receiver = #{scoreMaxReceiver}</if>
+            <if test="scoreGuide != null "> and score_guide = #{scoreGuide}</if>
+            <if test="scoreGuideLink != null  and scoreGuideLink != ''"> and score_guide_link = #{scoreGuideLink}</if>
+            <if test="scoreGuideText != null  and scoreGuideText != ''"> and score_guide_text = #{scoreGuideText}</if>
+            <if test="configjson != null  and configjson != ''"> and configJson = #{configjson}</if>
+        </where>
+    </select>
+
+    <select id="selectLiveWatchConfigById" parameterType="Long" resultMap="LiveWatchConfigResult">
+        <include refid="selectLiveWatchConfigVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertLiveWatchConfig" parameterType="LiveWatchConfig" useGeneratedKeys="true" keyProperty="id">
+        insert into live_watch_config
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="liveId != null">live_id,</if>
+            <if test="participateCondition != null">participate_condition,</if>
+            <if test="watchDuration != null">watch_duration,</if>
+            <if test="action != null">action,</if>
+            <if test="receivePrompt != null and receivePrompt != ''">receive_prompt,</if>
+            <if test="redPacketType != null">red_packet_type,</if>
+            <if test="redPacketAmount != null">red_packet_amount,</if>
+            <if test="redPacketRandomAmount != null">red_packet_random_amount,</if>
+            <if test="redPacketCount != null">red_packet_count,</if>
+            <if test="redPacketReceiveMethod != null">red_packet_receive_method,</if>
+            <if test="redPacketReceiveTimeLimit != null">red_packet_receive_time_limit,</if>
+            <if test="redPacketWithdrawCondition != null">red_packet_withdraw_condition,</if>
+            <if test="redPacketGuide != null">red_packet_guide,</if>
+            <if test="redPacketGuideText != null">red_packet_guide_text,</if>
+            <if test="scoreAmount != null">score_amount,</if>
+            <if test="scoreMaxReceiver != null">score_max_receiver,</if>
+            <if test="scoreGuide != null">score_guide,</if>
+            <if test="scoreGuideLink != null">score_guide_link,</if>
+            <if test="scoreGuideText != null">score_guide_text,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="createBy != null and createBy != ''">create_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="configjson != null">configJson,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="liveId != null">#{liveId},</if>
+            <if test="participateCondition != null">#{participateCondition},</if>
+            <if test="watchDuration != null">#{watchDuration},</if>
+            <if test="action != null">#{action},</if>
+            <if test="receivePrompt != null and receivePrompt != ''">#{receivePrompt},</if>
+            <if test="redPacketType != null">#{redPacketType},</if>
+            <if test="redPacketAmount != null">#{redPacketAmount},</if>
+            <if test="redPacketRandomAmount != null">#{redPacketRandomAmount},</if>
+            <if test="redPacketCount != null">#{redPacketCount},</if>
+            <if test="redPacketReceiveMethod != null">#{redPacketReceiveMethod},</if>
+            <if test="redPacketReceiveTimeLimit != null">#{redPacketReceiveTimeLimit},</if>
+            <if test="redPacketWithdrawCondition != null">#{redPacketWithdrawCondition},</if>
+            <if test="redPacketGuide != null">#{redPacketGuide},</if>
+            <if test="redPacketGuideText != null">#{redPacketGuideText},</if>
+            <if test="scoreAmount != null">#{scoreAmount},</if>
+            <if test="scoreMaxReceiver != null">#{scoreMaxReceiver},</if>
+            <if test="scoreGuide != null">#{scoreGuide},</if>
+            <if test="scoreGuideLink != null">#{scoreGuideLink},</if>
+            <if test="scoreGuideText != null">#{scoreGuideText},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="createBy != null and createBy != ''">#{createBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="configjson != null">#{configjson},</if>
+         </trim>
+    </insert>
+
+    <update id="updateLiveWatchConfig" parameterType="LiveWatchConfig">
+        update live_watch_config
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="liveId != null">live_id = #{liveId},</if>
+            <if test="participateCondition != null">participate_condition = #{participateCondition},</if>
+            <if test="watchDuration != null">watch_duration = #{watchDuration},</if>
+            <if test="action != null">action = #{action},</if>
+            <if test="receivePrompt != null and receivePrompt != ''">receive_prompt = #{receivePrompt},</if>
+            <if test="redPacketType != null">red_packet_type = #{redPacketType},</if>
+            <if test="redPacketAmount != null">red_packet_amount = #{redPacketAmount},</if>
+            <if test="redPacketRandomAmount != null">red_packet_random_amount = #{redPacketRandomAmount},</if>
+            <if test="redPacketCount != null">red_packet_count = #{redPacketCount},</if>
+            <if test="redPacketReceiveMethod != null">red_packet_receive_method = #{redPacketReceiveMethod},</if>
+            <if test="redPacketReceiveTimeLimit != null">red_packet_receive_time_limit = #{redPacketReceiveTimeLimit},</if>
+            <if test="redPacketWithdrawCondition != null">red_packet_withdraw_condition = #{redPacketWithdrawCondition},</if>
+            <if test="redPacketGuide != null">red_packet_guide = #{redPacketGuide},</if>
+            <if test="redPacketGuideText != null">red_packet_guide_text = #{redPacketGuideText},</if>
+            <if test="scoreAmount != null">score_amount = #{scoreAmount},</if>
+            <if test="scoreMaxReceiver != null">score_max_receiver = #{scoreMaxReceiver},</if>
+            <if test="scoreGuide != null">score_guide = #{scoreGuide},</if>
+            <if test="scoreGuideLink != null">score_guide_link = #{scoreGuideLink},</if>
+            <if test="scoreGuideText != null">score_guide_text = #{scoreGuideText},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="configjson != null">configJson = #{configjson},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteLiveWatchConfigById" parameterType="Long">
+        delete from live_watch_config where id = #{id}
+    </delete>
+
+    <delete id="deleteLiveWatchConfigByIds" parameterType="String">
+        delete from live_watch_config where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>