1. 渠道类改名

This commit is contained in:
邱贞招 2024-09-06 17:10:37 +08:00
parent a6aebd38bb
commit 2ae3c8e279
12 changed files with 54 additions and 55 deletions

View File

@ -10,7 +10,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.Channel; import com.ruoyi.system.domain.Channel;
import com.ruoyi.system.domain.ChannelQuery; import com.ruoyi.system.domain.ChannelQuery;
import com.ruoyi.system.domain.ChannelVO; import com.ruoyi.system.domain.ChannelVO;
import com.ruoyi.system.service.ChannelService; import com.ruoyi.system.service.EtChannelService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -27,10 +27,10 @@ import java.util.List;
*/ */
@RestController @RestController
@RequestMapping("/system/channel") @RequestMapping("/system/channel")
public class SmChannelController extends BaseController public class EtChannelController extends BaseController
{ {
@Autowired @Autowired
private ChannelService smChannelService; private EtChannelService smEtChannelService;
/** /**
* 查询充值渠道列表 * 查询充值渠道列表
@ -40,7 +40,7 @@ public class SmChannelController extends BaseController
public TableDataInfo list(ChannelQuery smChannel) public TableDataInfo list(ChannelQuery smChannel)
{ {
startPage(); startPage();
List<ChannelVO> list = smChannelService.selectSmChannelList(smChannel); List<ChannelVO> list = smEtChannelService.selectSmChannelList(smChannel);
return getDataTable(list); return getDataTable(list);
} }
@ -52,7 +52,7 @@ public class SmChannelController extends BaseController
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, ChannelQuery smChannel) public void export(HttpServletResponse response, ChannelQuery smChannel)
{ {
List<ChannelVO> list = smChannelService.selectSmChannelList(smChannel); List<ChannelVO> list = smEtChannelService.selectSmChannelList(smChannel);
ExcelUtil<ChannelVO> util = new ExcelUtil<ChannelVO>(ChannelVO.class); ExcelUtil<ChannelVO> util = new ExcelUtil<ChannelVO>(ChannelVO.class);
util.exportExcel(response, list, "充值渠道数据"); util.exportExcel(response, list, "充值渠道数据");
} }
@ -64,7 +64,7 @@ public class SmChannelController extends BaseController
@GetMapping(value = "/{channelId}") @GetMapping(value = "/{channelId}")
public AjaxResult getInfo(@PathVariable("channelId") Long channelId) public AjaxResult getInfo(@PathVariable("channelId") Long channelId)
{ {
return success(smChannelService.selectSmChannelByChannelId(channelId)); return success(smEtChannelService.selectSmChannelByChannelId(channelId));
} }
/** /**
@ -80,7 +80,7 @@ public class SmChannelController extends BaseController
channel.setEnabled(form.getEnabled()); channel.setEnabled(form.getEnabled());
channel.setCostRate(form.getCostRate()); channel.setCostRate(form.getCostRate());
channel.setPicture(form.getPicture()); channel.setPicture(form.getPicture());
return toAjax(smChannelService.updateSmChannel(channel)); return toAjax(smEtChannelService.updateSmChannel(channel));
} }
} }

View File

@ -9,7 +9,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.ChannelWithdraw; import com.ruoyi.system.domain.ChannelWithdraw;
import com.ruoyi.system.domain.ChannelWithdrawQuery; import com.ruoyi.system.domain.ChannelWithdrawQuery;
import com.ruoyi.system.domain.ChannelWithdrawVO; import com.ruoyi.system.domain.ChannelWithdrawVO;
import com.ruoyi.system.service.ChannelWithdrawService; import com.ruoyi.system.service.EtChannelWithdrawService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -25,10 +25,10 @@ import java.util.List;
*/ */
@RestController @RestController
@RequestMapping("/ss/channelWithdraw") @RequestMapping("/ss/channelWithdraw")
public class ChannelWithdrawController extends BaseController public class EtChannelWithdrawController extends BaseController
{ {
@Autowired @Autowired
private ChannelWithdrawService channelWithdrawService; private EtChannelWithdrawService etChannelWithdrawService;
/** /**
* 查询提现渠道列表 * 查询提现渠道列表
@ -39,7 +39,7 @@ public class ChannelWithdrawController extends BaseController
{ {
startPage(); startPage();
startOrderBy(); startOrderBy();
List<ChannelWithdrawVO> list = channelWithdrawService.selectChannelWithdrawList(query); List<ChannelWithdrawVO> list = etChannelWithdrawService.selectChannelWithdrawList(query);
return getDataTable(list); return getDataTable(list);
} }
@ -51,7 +51,7 @@ public class ChannelWithdrawController extends BaseController
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, ChannelWithdrawQuery query) public void export(HttpServletResponse response, ChannelWithdrawQuery query)
{ {
List<ChannelWithdrawVO> list = channelWithdrawService.selectChannelWithdrawList(query); List<ChannelWithdrawVO> list = etChannelWithdrawService.selectChannelWithdrawList(query);
ExcelUtil<ChannelWithdrawVO> util = new ExcelUtil<ChannelWithdrawVO>(ChannelWithdrawVO.class); ExcelUtil<ChannelWithdrawVO> util = new ExcelUtil<ChannelWithdrawVO>(ChannelWithdrawVO.class);
util.exportExcel(response, list, "提现渠道数据"); util.exportExcel(response, list, "提现渠道数据");
} }
@ -63,7 +63,7 @@ public class ChannelWithdrawController extends BaseController
@GetMapping(value = "/{channelId}") @GetMapping(value = "/{channelId}")
public AjaxResult getInfo(@PathVariable("channelId") Long channelId) public AjaxResult getInfo(@PathVariable("channelId") Long channelId)
{ {
return success(channelWithdrawService.selectChannelWithdrawByChannelId(channelId)); return success(etChannelWithdrawService.selectChannelWithdrawByChannelId(channelId));
} }
/** /**
@ -74,7 +74,7 @@ public class ChannelWithdrawController extends BaseController
@PostMapping @PostMapping
public AjaxResult add(@RequestBody ChannelWithdraw channelWithdraw) public AjaxResult add(@RequestBody ChannelWithdraw channelWithdraw)
{ {
return toAjax(channelWithdrawService.insertChannelWithdraw(channelWithdraw)); return toAjax(etChannelWithdrawService.insertChannelWithdraw(channelWithdraw));
} }
/** /**
@ -85,7 +85,7 @@ public class ChannelWithdrawController extends BaseController
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody ChannelWithdraw channelWithdraw) public AjaxResult edit(@RequestBody ChannelWithdraw channelWithdraw)
{ {
return toAjax(channelWithdrawService.updateChannelWithdraw(channelWithdraw)); return toAjax(etChannelWithdrawService.updateChannelWithdraw(channelWithdraw));
} }
/** /**
@ -96,6 +96,6 @@ public class ChannelWithdrawController extends BaseController
@DeleteMapping("/{channelIds}") @DeleteMapping("/{channelIds}")
public AjaxResult remove(@PathVariable Long[] channelIds) public AjaxResult remove(@PathVariable Long[] channelIds)
{ {
return toAjax(channelWithdrawService.deleteChannelWithdrawByChannelIds(channelIds)); return toAjax(etChannelWithdrawService.deleteChannelWithdrawByChannelIds(channelIds));
} }
} }

View File

@ -12,7 +12,7 @@ import javax.validation.constraints.Min;
import java.math.BigDecimal; import java.math.BigDecimal;
/** /**
* 充值渠道对象 sm_channel * 充值渠道对象 et_channel
* *
* @author ruoyi * @author ruoyi
* @date 2024-04-15 * @date 2024-04-15

View File

@ -9,7 +9,7 @@ import javax.validation.constraints.Min;
import java.math.BigDecimal; import java.math.BigDecimal;
/** /**
* 提现渠道对象 ss_channel_withdraw * 提现渠道对象 et_channel_withdraw
* *
* @author ruoyi * @author ruoyi
* @date 2024-08-02 * @date 2024-08-02

View File

@ -13,7 +13,7 @@ import java.util.List;
* @author ruoyi * @author ruoyi
* @date 2024-04-15 * @date 2024-04-15
*/ */
public interface ChannelMapper public interface EtChannelMapper
{ {
/** /**
* 查询充值渠道 * 查询充值渠道

View File

@ -13,7 +13,7 @@ import java.util.List;
* @author ruoyi * @author ruoyi
* @date 2024-08-02 * @date 2024-08-02
*/ */
public interface ChannelWithdrawMapper public interface EtChannelWithdrawMapper
{ {
/** /**
* 查询提现渠道 * 查询提现渠道

View File

@ -14,7 +14,7 @@ import java.util.function.Function;
* @author ruoyi * @author ruoyi
* @date 2024-04-15 * @date 2024-04-15
*/ */
public interface ChannelService public interface EtChannelService
{ {
/** /**
* 查询充值渠道 * 查询充值渠道

View File

@ -12,7 +12,7 @@ import java.util.List;
* @author ruoyi * @author ruoyi
* @date 2024-08-02 * @date 2024-08-02
*/ */
public interface ChannelWithdrawService public interface EtChannelWithdrawService
{ {
/** /**
* 查询提现渠道 * 查询提现渠道

View File

@ -3,9 +3,8 @@ package com.ruoyi.system.service.impl;
import com.ruoyi.system.domain.Channel; import com.ruoyi.system.domain.Channel;
import com.ruoyi.system.domain.ChannelQuery; import com.ruoyi.system.domain.ChannelQuery;
import com.ruoyi.system.domain.ChannelVO; import com.ruoyi.system.domain.ChannelVO;
import com.ruoyi.system.mapper.ChannelMapper; import com.ruoyi.system.mapper.EtChannelMapper;
import com.ruoyi.system.service.ChannelService; import com.ruoyi.system.service.EtChannelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -21,10 +20,10 @@ import java.util.stream.Collectors;
* @date 2024-04-15 * @date 2024-04-15
*/ */
@Service @Service
public class ChannelServiceImpl implements ChannelService public class EtChannelServiceImpl implements EtChannelService
{ {
@Resource @Resource
private ChannelMapper channelMapper; private EtChannelMapper etChannelMapper;
/** /**
* 查询充值渠道 * 查询充值渠道
@ -35,7 +34,7 @@ public class ChannelServiceImpl implements ChannelService
@Override @Override
public ChannelVO selectSmChannelByChannelId(Long channelId) public ChannelVO selectSmChannelByChannelId(Long channelId)
{ {
return channelMapper.selectSmChannelByChannelId(channelId); return etChannelMapper.selectSmChannelByChannelId(channelId);
} }
/** /**
@ -47,7 +46,7 @@ public class ChannelServiceImpl implements ChannelService
@Override @Override
public List<ChannelVO> selectSmChannelList(ChannelQuery smChannel) public List<ChannelVO> selectSmChannelList(ChannelQuery smChannel)
{ {
return channelMapper.selectSmChannelList(smChannel); return etChannelMapper.selectSmChannelList(smChannel);
} }
/** /**
@ -59,7 +58,7 @@ public class ChannelServiceImpl implements ChannelService
@Override @Override
public int insertSmChannel(Channel channel) public int insertSmChannel(Channel channel)
{ {
return channelMapper.insertSmChannel(channel); return etChannelMapper.insertSmChannel(channel);
} }
/** /**
@ -71,7 +70,7 @@ public class ChannelServiceImpl implements ChannelService
@Override @Override
public int updateSmChannel(Channel channel) public int updateSmChannel(Channel channel)
{ {
return channelMapper.updateSmChannel(channel); return etChannelMapper.updateSmChannel(channel);
} }
/** /**
@ -83,7 +82,7 @@ public class ChannelServiceImpl implements ChannelService
@Override @Override
public int deleteSmChannelByChannelIds(Long[] channelIds) public int deleteSmChannelByChannelIds(Long[] channelIds)
{ {
return channelMapper.deleteSmChannelByChannelIds(channelIds); return etChannelMapper.deleteSmChannelByChannelIds(channelIds);
} }
/** /**
@ -95,7 +94,7 @@ public class ChannelServiceImpl implements ChannelService
@Override @Override
public int deleteSmChannelByChannelId(Long channelId) public int deleteSmChannelByChannelId(Long channelId)
{ {
return channelMapper.deleteSmChannelByChannelId(channelId); return etChannelMapper.deleteSmChannelByChannelId(channelId);
} }
@Override @Override

View File

@ -3,8 +3,8 @@ package com.ruoyi.system.service.impl;
import com.ruoyi.system.domain.ChannelWithdraw; import com.ruoyi.system.domain.ChannelWithdraw;
import com.ruoyi.system.domain.ChannelWithdrawQuery; import com.ruoyi.system.domain.ChannelWithdrawQuery;
import com.ruoyi.system.domain.ChannelWithdrawVO; import com.ruoyi.system.domain.ChannelWithdrawVO;
import com.ruoyi.system.mapper.ChannelWithdrawMapper; import com.ruoyi.system.mapper.EtChannelWithdrawMapper;
import com.ruoyi.system.service.ChannelWithdrawService; import com.ruoyi.system.service.EtChannelWithdrawService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -17,10 +17,10 @@ import java.util.List;
* @date 2024-08-02 * @date 2024-08-02
*/ */
@Service @Service
public class ChannelWithdrawServiceImpl implements ChannelWithdrawService public class EtChannelWithdrawServiceImpl implements EtChannelWithdrawService
{ {
@Resource @Resource
private ChannelWithdrawMapper channelWithdrawMapper; private EtChannelWithdrawMapper etChannelWithdrawMapper;
// @Autowired // @Autowired
// private AccountService accountService; // private AccountService accountService;
@ -34,7 +34,7 @@ public class ChannelWithdrawServiceImpl implements ChannelWithdrawService
@Override @Override
public ChannelWithdrawVO selectChannelWithdrawByChannelId(Long channelId) public ChannelWithdrawVO selectChannelWithdrawByChannelId(Long channelId)
{ {
return channelWithdrawMapper.selectChannelWithdrawByChannelId(channelId); return etChannelWithdrawMapper.selectChannelWithdrawByChannelId(channelId);
} }
/** /**
@ -46,7 +46,7 @@ public class ChannelWithdrawServiceImpl implements ChannelWithdrawService
@Override @Override
public List<ChannelWithdrawVO> selectChannelWithdrawList(ChannelWithdrawQuery channelWithdraw) public List<ChannelWithdrawVO> selectChannelWithdrawList(ChannelWithdrawQuery channelWithdraw)
{ {
return channelWithdrawMapper.selectChannelWithdrawList(channelWithdraw); return etChannelWithdrawMapper.selectChannelWithdrawList(channelWithdraw);
} }
/** /**
@ -58,7 +58,7 @@ public class ChannelWithdrawServiceImpl implements ChannelWithdrawService
@Override @Override
public int insertChannelWithdraw(ChannelWithdraw channelWithdraw) public int insertChannelWithdraw(ChannelWithdraw channelWithdraw)
{ {
return channelWithdrawMapper.insertChannelWithdraw(channelWithdraw); return etChannelWithdrawMapper.insertChannelWithdraw(channelWithdraw);
} }
/** /**
@ -70,7 +70,7 @@ public class ChannelWithdrawServiceImpl implements ChannelWithdrawService
@Override @Override
public int updateChannelWithdraw(ChannelWithdraw channelWithdraw) public int updateChannelWithdraw(ChannelWithdraw channelWithdraw)
{ {
return channelWithdrawMapper.updateChannelWithdraw(channelWithdraw); return etChannelWithdrawMapper.updateChannelWithdraw(channelWithdraw);
} }
/** /**
@ -82,7 +82,7 @@ public class ChannelWithdrawServiceImpl implements ChannelWithdrawService
@Override @Override
public int deleteChannelWithdrawByChannelIds(Long[] channelIds) public int deleteChannelWithdrawByChannelIds(Long[] channelIds)
{ {
return channelWithdrawMapper.deleteChannelWithdrawByChannelIds(channelIds); return etChannelWithdrawMapper.deleteChannelWithdrawByChannelIds(channelIds);
} }
/** /**
@ -94,7 +94,7 @@ public class ChannelWithdrawServiceImpl implements ChannelWithdrawService
@Override @Override
public int deleteChannelWithdrawByChannelId(Long channelId) public int deleteChannelWithdrawByChannelId(Long channelId)
{ {
return channelWithdrawMapper.deleteChannelWithdrawByChannelId(channelId); return etChannelWithdrawMapper.deleteChannelWithdrawByChannelId(channelId);
} }
@Override @Override

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.ChannelMapper"> <mapper namespace="com.ruoyi.system.mapper.EtChannelMapper">
<resultMap type="ChannelVO" id="SmChannelResult" autoMapping="true"> <resultMap type="ChannelVO" id="SmChannelResult" autoMapping="true">
<result property="costRate" column="cost_rate" typeHandler="com.ruoyi.system.mapper.typehandler.NonNullDecimalTypeHandler"/> <result property="costRate" column="cost_rate" typeHandler="com.ruoyi.system.mapper.typehandler.NonNullDecimalTypeHandler"/>
@ -15,7 +15,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sc.enabled, sc.enabled,
sc.cost_rate, sc.cost_rate,
sc.picture sc.picture
from sm_channel sc from et_channel sc
</sql> </sql>
<sql id="searchCondition"> <sql id="searchCondition">
@ -42,7 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<insert id="insertSmChannel" parameterType="Channel"> <insert id="insertSmChannel" parameterType="Channel">
insert into sm_channel insert into et_channel
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="channelId != null">channel_id,</if> <if test="channelId != null">channel_id,</if>
<if test="name != null">`name`,</if> <if test="name != null">`name`,</if>
@ -60,7 +60,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</insert> </insert>
<update id="updateSmChannel" parameterType="Channel"> <update id="updateSmChannel" parameterType="Channel">
update sm_channel update et_channel
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="data.name != null">name = #{data.name},</if> <if test="data.name != null">name = #{data.name},</if>
<if test="data.enabled != null">enabled = #{data.enabled},</if> <if test="data.enabled != null">enabled = #{data.enabled},</if>
@ -71,11 +71,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update> </update>
<delete id="deleteSmChannelByChannelId" parameterType="Long"> <delete id="deleteSmChannelByChannelId" parameterType="Long">
delete from sm_channel where channel_id = #{channelId} delete from et_channel where channel_id = #{channelId}
</delete> </delete>
<delete id="deleteSmChannelByChannelIds" parameterType="String"> <delete id="deleteSmChannelByChannelIds" parameterType="String">
delete from sm_channel where channel_id in delete from et_channel where channel_id in
<foreach item="channelId" collection="array" open="(" separator="," close=")"> <foreach item="channelId" collection="array" open="(" separator="," close=")">
#{channelId} #{channelId}
</foreach> </foreach>

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper <!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.ChannelWithdrawMapper"> <mapper namespace="com.ruoyi.system.mapper.EtChannelWithdrawMapper">
<resultMap type="ChannelWithdrawVO" id="ChannelWithdrawResult" autoMapping="true"> <resultMap type="ChannelWithdrawVO" id="ChannelWithdrawResult" autoMapping="true">
<result property="serviceRate" column="service_rate" typeHandler="com.ruoyi.system.mapper.typehandler.NonNullDecimalTypeHandler"/> <result property="serviceRate" column="service_rate" typeHandler="com.ruoyi.system.mapper.typehandler.NonNullDecimalTypeHandler"/>
@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
scw.picture, scw.picture,
scw.min_amount, scw.min_amount,
scw.max_amount scw.max_amount
from ss_channel_withdraw scw from et_channel_withdraw scw
</sql> </sql>
<sql id="searchCondition"> <sql id="searchCondition">
@ -51,7 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<insert id="insertChannelWithdraw" parameterType="ChannelWithdraw" useGeneratedKeys="true" keyProperty="channelId"> <insert id="insertChannelWithdraw" parameterType="ChannelWithdraw" useGeneratedKeys="true" keyProperty="channelId">
insert into ss_channel_withdraw insert into et_channel_withdraw
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="name != null and name != ''">name,</if> <if test="name != null and name != ''">name,</if>
<if test="accountType != null and accountType != ''">account_type,</if> <if test="accountType != null and accountType != ''">account_type,</if>
@ -77,7 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</insert> </insert>
<update id="updateChannelWithdraw" parameterType="ChannelWithdraw"> <update id="updateChannelWithdraw" parameterType="ChannelWithdraw">
update ss_channel_withdraw update et_channel_withdraw
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="data.name != null and data.name != ''">name = #{data.name},</if> <if test="data.name != null and data.name != ''">name = #{data.name},</if>
<if test="data.accountType != null and data.accountType != ''">account_type = #{data.accountType},</if> <if test="data.accountType != null and data.accountType != ''">account_type = #{data.accountType},</if>
@ -93,11 +93,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update> </update>
<delete id="deleteChannelWithdrawByChannelId" parameterType="Long"> <delete id="deleteChannelWithdrawByChannelId" parameterType="Long">
delete from ss_channel_withdraw where channel_id = #{channelId} delete from et_channel_withdraw where channel_id = #{channelId}
</delete> </delete>
<delete id="deleteChannelWithdrawByChannelIds" parameterType="String"> <delete id="deleteChannelWithdrawByChannelIds" parameterType="String">
delete from ss_channel_withdraw where channel_id in delete from et_channel_withdraw where channel_id in
<foreach item="channelId" collection="array" open="(" separator="," close=")"> <foreach item="channelId" collection="array" open="(" separator="," close=")">
#{channelId} #{channelId}
</foreach> </foreach>