新增代充转赠明细
This commit is contained in:
@@ -12,6 +12,7 @@ public interface UserMapperExpand {
|
||||
|
||||
/**
|
||||
* 分页查询用户信息
|
||||
*
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
@@ -19,6 +20,7 @@ public interface UserMapperExpand {
|
||||
|
||||
/**
|
||||
* 查询用户数量
|
||||
*
|
||||
* @param erNos
|
||||
* @return
|
||||
*/
|
||||
@@ -40,4 +42,11 @@ public interface UserMapperExpand {
|
||||
|
||||
/*用户明细流量团队分页查询*/
|
||||
List<UserDeatilVo> userDetailFlowTeamListV2(@Param("userDetailQueryDto") UserDetailQueryDto userDetailQueryDto);
|
||||
|
||||
/**
|
||||
* 获取用户地区
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getRegion();
|
||||
}
|
@@ -3,6 +3,7 @@ package com.accompany.admin.mapper.recharge;
|
||||
import com.accompany.admin.vo.charge.RechargeDiamondGiveAdminVo;
|
||||
import com.accompany.admin.vo.charge.RechargeDiamondGiveDetailAdminVo;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
@@ -19,14 +20,19 @@ public interface RechargeDiamondGiveHistoryAdminMapper {
|
||||
* @param endTime
|
||||
* @return
|
||||
*/
|
||||
Page<RechargeDiamondGiveAdminVo> giveByDayPage(Page<RechargeDiamondGiveAdminVo> page, String startTime, String endTime);
|
||||
Page<RechargeDiamondGiveAdminVo> giveByDayPage(Page<RechargeDiamondGiveAdminVo> page, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
|
||||
/**
|
||||
* 代充转赠明细
|
||||
*
|
||||
* @param objectPage
|
||||
* @param page
|
||||
* @param fromErBanNo
|
||||
* @param toErBanNo
|
||||
* @param toRegion
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @param giveDate
|
||||
* @return
|
||||
*/
|
||||
Page<RechargeDiamondGiveDetailAdminVo> giveDetailByDayPage(Page<RechargeDiamondGiveDetailAdminVo> objectPage, String giveDate);
|
||||
Page<RechargeDiamondGiveDetailAdminVo> giveDetailByDayPage(Page<RechargeDiamondGiveDetailAdminVo> page, @Param("fromErBanNo") String fromErBanNo, @Param("toErBanNo") String toErBanNo, @Param("toRegion") String toRegion, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("giveDate") String giveDate);
|
||||
}
|
||||
|
@@ -4,6 +4,9 @@ import com.accompany.admin.vo.charge.RechargeDiamondGiveAdminVo;
|
||||
import com.accompany.admin.vo.charge.RechargeDiamondGiveDetailAdminVo;
|
||||
import com.accompany.common.model.PageReq;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.springframework.web.context.request.ServletWebRequest;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
@@ -25,9 +28,35 @@ public interface RechargeDiamondGiveHistoryAdminService {
|
||||
/**
|
||||
* 代充转赠明细
|
||||
*
|
||||
* @param fromErBanNo
|
||||
* @param toErBanNo
|
||||
* @param toRegion
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @param giveDate
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
Page<RechargeDiamondGiveDetailAdminVo> giveDetailByDayPage(String giveDate, PageReq req);
|
||||
Page<RechargeDiamondGiveDetailAdminVo> giveDetailByDayPage(String fromErBanNo, String toErBanNo, String toRegion, String startTime, String endTime, String giveDate, PageReq req);
|
||||
|
||||
/**
|
||||
* 导出
|
||||
*
|
||||
* @param fromErBanNo
|
||||
* @param toErBanNo
|
||||
* @param toRegion
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @param giveDate
|
||||
* @param servletWebRequest
|
||||
*/
|
||||
void export(String fromErBanNo, String toErBanNo, String toRegion, String startTime, String endTime, String giveDate, ServletWebRequest servletWebRequest);
|
||||
|
||||
/**
|
||||
* 获取用户地区
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<String> getRegion();
|
||||
|
||||
}
|
||||
|
@@ -1,14 +1,28 @@
|
||||
package com.accompany.admin.service.recharge.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.accompany.admin.mapper.UserMapperExpand;
|
||||
import com.accompany.admin.mapper.recharge.RechargeDiamondGiveHistoryAdminMapper;
|
||||
import com.accompany.admin.service.recharge.RechargeDiamondGiveHistoryAdminService;
|
||||
import com.accompany.admin.vo.charge.RechargeDiamondGiveAdminVo;
|
||||
import com.accompany.admin.vo.charge.RechargeDiamondGiveDetailAdminVo;
|
||||
import com.accompany.common.model.PageReq;
|
||||
import com.accompany.payment.mapper.RechargeUserRegionMapper;
|
||||
import com.accompany.payment.model.RechargeUserRegion;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.context.request.ServletWebRequest;
|
||||
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
@@ -19,6 +33,12 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class RechargeDiamondGiveHistoryAdminServiceImpl implements RechargeDiamondGiveHistoryAdminService {
|
||||
|
||||
@Autowired
|
||||
private UserMapperExpand userMapperExpand;
|
||||
|
||||
@Autowired
|
||||
private RechargeUserRegionMapper rechargeUserRegionMapper;
|
||||
|
||||
@Autowired
|
||||
private RechargeDiamondGiveHistoryAdminMapper rechargeDiamondGiveHistoryAdminMapper;
|
||||
|
||||
@@ -28,7 +48,60 @@ public class RechargeDiamondGiveHistoryAdminServiceImpl implements RechargeDiamo
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<RechargeDiamondGiveDetailAdminVo> giveDetailByDayPage(String giveDate, PageReq req) {
|
||||
return rechargeDiamondGiveHistoryAdminMapper.giveDetailByDayPage(new Page<>(req.getPage(), req.getPageSize()), giveDate);
|
||||
public Page<RechargeDiamondGiveDetailAdminVo> giveDetailByDayPage(String fromErBanNo, String toErBanNo, String toRegion, String startTime, String endTime, String giveDate, PageReq req) {
|
||||
Page<RechargeDiamondGiveDetailAdminVo> iPage = rechargeDiamondGiveHistoryAdminMapper.giveDetailByDayPage(new Page<>(req.getPage(), req.getPageSize()), fromErBanNo, toErBanNo, toRegion, startTime, endTime, giveDate);
|
||||
List<RechargeDiamondGiveDetailAdminVo> records = iPage.getRecords();
|
||||
if (CollectionUtil.isNotEmpty(records)) {
|
||||
List<Long> fromUidList = records.stream().map(RechargeDiamondGiveDetailAdminVo::getFromUid).distinct().collect(Collectors.toList());
|
||||
List<RechargeUserRegion> rechargeUserRegions = rechargeUserRegionMapper.selectList(Wrappers.<RechargeUserRegion>lambdaQuery()
|
||||
.in(RechargeUserRegion::getUid, fromUidList));
|
||||
Map<Long, List<RechargeUserRegion>> userRegionMap = null;
|
||||
if (CollectionUtil.isNotEmpty(rechargeUserRegions)) {
|
||||
userRegionMap = rechargeUserRegions.stream().collect(Collectors.groupingBy(RechargeUserRegion::getUid));
|
||||
}
|
||||
for (RechargeDiamondGiveDetailAdminVo record : records) {
|
||||
Long fromUid = record.getFromUid();
|
||||
StringBuilder fromRegion = new StringBuilder(StrUtil.EMPTY);
|
||||
if (CollectionUtil.isNotEmpty(userRegionMap) && userRegionMap.containsKey(fromUid)) {
|
||||
List<RechargeUserRegion> userRegions = userRegionMap.get(fromUid).stream().sorted(Comparator.comparing(RechargeUserRegion::getSeq)).collect(Collectors.toList());
|
||||
for (int i = 0, len = userRegions.size(); i < len; i++) {
|
||||
RechargeUserRegion userRegion = userRegions.get(i);
|
||||
fromRegion.append(userRegion.getName());
|
||||
if (i != len - 1) {
|
||||
fromRegion.append(StrUtil.COMMA);
|
||||
}
|
||||
}
|
||||
}
|
||||
record.setFromRegion(fromRegion.toString());
|
||||
}
|
||||
}
|
||||
return iPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void export(String fromErBanNo, String toErBanNo, String toRegion, String startTime, String endTime, String giveDate, ServletWebRequest servletWebRequest) {
|
||||
PageReq req = new PageReq();
|
||||
req.setPage(1);
|
||||
req.setPageSize(10000);
|
||||
Page<RechargeDiamondGiveDetailAdminVo> page = giveDetailByDayPage(fromErBanNo, toErBanNo, toRegion, startTime, endTime, giveDate, req);
|
||||
List<RechargeDiamondGiveDetailAdminVo> records = page.getRecords();
|
||||
if (servletWebRequest.getResponse() != null) {
|
||||
try {
|
||||
//这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
|
||||
servletWebRequest.getResponse().setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||
servletWebRequest.getResponse().setCharacterEncoding("utf-8");
|
||||
//这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
|
||||
String fileName = URLEncoder.encode(giveDate + "代充转赠明细", "UTF-8").replaceAll("\\+", "%20");
|
||||
servletWebRequest.getResponse().setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
|
||||
EasyExcel.write(servletWebRequest.getResponse().getOutputStream(), RechargeDiamondGiveDetailAdminVo.class).sheet(giveDate + "代充转赠明细").doWrite(records);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getRegion() {
|
||||
return userMapperExpand.getRegion();
|
||||
}
|
||||
}
|
||||
|
@@ -21,6 +21,11 @@ public class RechargeDiamondGiveDetailAdminVo {
|
||||
@ExcelProperty("时间")
|
||||
private String createTime;
|
||||
|
||||
/**
|
||||
* 转出人UID
|
||||
*/
|
||||
private Long fromUid;
|
||||
|
||||
/**
|
||||
* 转出人peko id
|
||||
*/
|
||||
|
@@ -12,10 +12,10 @@
|
||||
select ru.uid from recharge_user as ru where ru.type != 0
|
||||
)
|
||||
<if test="startTime != null and startTime != ''">
|
||||
and date_format(dgh.create_time, '%Y-%m-%d') >= #{startTime}
|
||||
and date_format(dgh.create_time, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d')
|
||||
</if>
|
||||
<if test="endTime != null and endTime != ''">
|
||||
and date_format(dgh.create_time, '%Y-%m-%d') <![CDATA[ <= ]]> #{endTime}
|
||||
and date_format(dgh.create_time, '%Y-%m-%d') <![CDATA[ <= ]]> date_format(#{endTime}, '%Y-%m-%d')
|
||||
</if>
|
||||
group by giveDate
|
||||
order by giveDate desc
|
||||
@@ -40,6 +40,21 @@
|
||||
left join clan as c on c.id = ch.clan_id
|
||||
left join recharge_user as ru on ru.uid = u1.uid
|
||||
left join users as u2 on u2.uid = dgh.to_uid
|
||||
<if test="fromErBanNo != null and fromErBanNo != ''">
|
||||
and u1.erban_no like concat('%', #{fromErBanNo}, '%')
|
||||
</if>
|
||||
<if test="toErBanNo != null and toErBanNo != ''">
|
||||
and u2.erban_no like concat('%', #{toErBanNo}, '%')
|
||||
</if>
|
||||
<if test="toRegion != null and toRegion != ''">
|
||||
and u2.region = #{toRegion}
|
||||
</if>
|
||||
<if test="startTime != null and startTime != ''">
|
||||
and dgh.create_time >= #{startTime}
|
||||
</if>
|
||||
<if test="endTime != null and endTime != ''">
|
||||
and dgh.create_time <![CDATA[ <= ]]> #{endTime}
|
||||
</if>
|
||||
<if test="giveDate != null and giveDate != ''">
|
||||
and date_format(dgh.create_time, '%Y-%m-%d') = #{giveDate}
|
||||
</if>
|
||||
|
@@ -1,248 +1,254 @@
|
||||
<?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.accompany.admin.mapper.UserMapperExpand" >
|
||||
<resultMap id="BaseResultMap" type="com.accompany.admin.vo.UsersVo" >
|
||||
<id column="uid" property="uid" jdbcType="BIGINT" />
|
||||
<result column="erban_no" property="erbanNo" jdbcType="BIGINT" />
|
||||
<result column="phone" property="phone" jdbcType="VARCHAR" />
|
||||
<result column="birth" property="birth" jdbcType="DATE" />
|
||||
<result column="star" property="star" jdbcType="TINYINT" />
|
||||
<result column="nick" property="nick" jdbcType="VARCHAR" />
|
||||
<result column="email" property="email" jdbcType="VARCHAR" />
|
||||
<result column="signture" property="signture" jdbcType="VARCHAR" />
|
||||
<result column="user_voice" property="userVoice" jdbcType="VARCHAR" />
|
||||
<result column="voice_dura" property="voiceDura" jdbcType="INTEGER" />
|
||||
<result column="follow_num" property="followNum" jdbcType="INTEGER" />
|
||||
<result column="fans_num" property="fansNum" jdbcType="INTEGER" />
|
||||
<result column="def_user" property="defUser" jdbcType="TINYINT" />
|
||||
<result column="fortune" property="fortune" jdbcType="BIGINT" />
|
||||
<result column="channel_type" property="channelType" jdbcType="TINYINT" />
|
||||
<result column="last_login_time" property="lastLoginTime" jdbcType="TIMESTAMP" />
|
||||
<result column="last_login_ip" property="lastLoginIp" jdbcType="VARCHAR" />
|
||||
<result column="gender" property="gender" jdbcType="TINYINT" />
|
||||
<result column="avatar" property="avatar" jdbcType="VARCHAR" />
|
||||
<result column="region" property="region" jdbcType="VARCHAR" />
|
||||
<result column="user_desc" property="userDesc" jdbcType="VARCHAR" />
|
||||
<result column="alipay_account" property="alipayAccount" jdbcType="VARCHAR" />
|
||||
<result column="alipay_account_name" property="alipayAccountName" jdbcType="VARCHAR" />
|
||||
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
|
||||
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
|
||||
<result column="wx_pub_fans_openid" property="wxPubFansOpenid" jdbcType="VARCHAR" />
|
||||
<result column="wx_pub_fans_gender" property="wxPubFansGender" jdbcType="TINYINT" />
|
||||
<result column="room_uid" property="roomUid" jdbcType="BIGINT" />
|
||||
<result column="share_uid" property="shareUid" jdbcType="BIGINT" />
|
||||
<result column="share_channel" property="shareChannel" jdbcType="TINYINT" />
|
||||
<result column="wx_openId" property="wxOpenid" jdbcType="VARCHAR" />
|
||||
<result column="os" property="os" jdbcType="VARCHAR" />
|
||||
<result column="osVersion" property="osversion" jdbcType="VARCHAR" />
|
||||
<result column="app" property="app" jdbcType="VARCHAR" />
|
||||
<result column="imei" property="imei" jdbcType="VARCHAR" />
|
||||
<result column="channel" property="channel" jdbcType="VARCHAR" />
|
||||
<result column="linkedme_channel" property="linkedmeChannel" jdbcType="VARCHAR" />
|
||||
<result column="isp_type" property="ispType" jdbcType="VARCHAR" />
|
||||
<result column="net_type" property="netType" jdbcType="VARCHAR" />
|
||||
<result column="model" property="model" jdbcType="VARCHAR" />
|
||||
<result column="device_id" property="deviceId" jdbcType="VARCHAR" />
|
||||
<result column="app_version" property="appVersion" jdbcType="VARCHAR" />
|
||||
<result column="gold_num" property="goldNum" jdbcType="BIGINT" />
|
||||
<result column="radish_num" property="radishNum" jdbcType="BIGINT" />
|
||||
<result column="diamonds_num" property="diamondsNum" jdbcType="DOUBLE"/>
|
||||
</resultMap>
|
||||
<mapper namespace="com.accompany.admin.mapper.UserMapperExpand">
|
||||
<resultMap id="BaseResultMap" type="com.accompany.admin.vo.UsersVo">
|
||||
<id column="uid" property="uid" jdbcType="BIGINT"/>
|
||||
<result column="erban_no" property="erbanNo" jdbcType="BIGINT"/>
|
||||
<result column="phone" property="phone" jdbcType="VARCHAR"/>
|
||||
<result column="birth" property="birth" jdbcType="DATE"/>
|
||||
<result column="star" property="star" jdbcType="TINYINT"/>
|
||||
<result column="nick" property="nick" jdbcType="VARCHAR"/>
|
||||
<result column="email" property="email" jdbcType="VARCHAR"/>
|
||||
<result column="signture" property="signture" jdbcType="VARCHAR"/>
|
||||
<result column="user_voice" property="userVoice" jdbcType="VARCHAR"/>
|
||||
<result column="voice_dura" property="voiceDura" jdbcType="INTEGER"/>
|
||||
<result column="follow_num" property="followNum" jdbcType="INTEGER"/>
|
||||
<result column="fans_num" property="fansNum" jdbcType="INTEGER"/>
|
||||
<result column="def_user" property="defUser" jdbcType="TINYINT"/>
|
||||
<result column="fortune" property="fortune" jdbcType="BIGINT"/>
|
||||
<result column="channel_type" property="channelType" jdbcType="TINYINT"/>
|
||||
<result column="last_login_time" property="lastLoginTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="last_login_ip" property="lastLoginIp" jdbcType="VARCHAR"/>
|
||||
<result column="gender" property="gender" jdbcType="TINYINT"/>
|
||||
<result column="avatar" property="avatar" jdbcType="VARCHAR"/>
|
||||
<result column="region" property="region" jdbcType="VARCHAR"/>
|
||||
<result column="user_desc" property="userDesc" jdbcType="VARCHAR"/>
|
||||
<result column="alipay_account" property="alipayAccount" jdbcType="VARCHAR"/>
|
||||
<result column="alipay_account_name" property="alipayAccountName" jdbcType="VARCHAR"/>
|
||||
<result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
|
||||
<result column="wx_pub_fans_openid" property="wxPubFansOpenid" jdbcType="VARCHAR"/>
|
||||
<result column="wx_pub_fans_gender" property="wxPubFansGender" jdbcType="TINYINT"/>
|
||||
<result column="room_uid" property="roomUid" jdbcType="BIGINT"/>
|
||||
<result column="share_uid" property="shareUid" jdbcType="BIGINT"/>
|
||||
<result column="share_channel" property="shareChannel" jdbcType="TINYINT"/>
|
||||
<result column="wx_openId" property="wxOpenid" jdbcType="VARCHAR"/>
|
||||
<result column="os" property="os" jdbcType="VARCHAR"/>
|
||||
<result column="osVersion" property="osversion" jdbcType="VARCHAR"/>
|
||||
<result column="app" property="app" jdbcType="VARCHAR"/>
|
||||
<result column="imei" property="imei" jdbcType="VARCHAR"/>
|
||||
<result column="channel" property="channel" jdbcType="VARCHAR"/>
|
||||
<result column="linkedme_channel" property="linkedmeChannel" jdbcType="VARCHAR"/>
|
||||
<result column="isp_type" property="ispType" jdbcType="VARCHAR"/>
|
||||
<result column="net_type" property="netType" jdbcType="VARCHAR"/>
|
||||
<result column="model" property="model" jdbcType="VARCHAR"/>
|
||||
<result column="device_id" property="deviceId" jdbcType="VARCHAR"/>
|
||||
<result column="app_version" property="appVersion" jdbcType="VARCHAR"/>
|
||||
<result column="gold_num" property="goldNum" jdbcType="BIGINT"/>
|
||||
<result column="radish_num" property="radishNum" jdbcType="BIGINT"/>
|
||||
<result column="diamonds_num" property="diamondsNum" jdbcType="DOUBLE"/>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectUserWithGold" parameterType="java.util.Map" resultMap="BaseResultMap">
|
||||
select b.erban_no,b.nick,b.avatar,golds as gold_num, diamonds as diamonds_num, crystals as radish_num from user_purse as a
|
||||
join users as b on a.uid=b.uid
|
||||
where b.erban_no in
|
||||
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
limit #{start},#{pageSize}
|
||||
</select>
|
||||
<select id="selectUserWithGold" parameterType="java.util.Map" resultMap="BaseResultMap">
|
||||
select b.erban_no,b.nick,b.avatar,golds as gold_num, diamonds as diamonds_num, crystals as radish_num from
|
||||
user_purse as a
|
||||
join users as b on a.uid=b.uid
|
||||
where b.erban_no in
|
||||
<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
limit #{start},#{pageSize}
|
||||
</select>
|
||||
|
||||
<select id="selectChannelList" resultType="java.lang.String">
|
||||
select distinct channel from users
|
||||
</select>
|
||||
<select id="selectChannelList" resultType="java.lang.String">
|
||||
select distinct channel from users
|
||||
</select>
|
||||
|
||||
<select id="getUserWithGoldCount" parameterType="java.util.List" resultType="java.lang.Integer">
|
||||
select count(1) from users where erban_no in
|
||||
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
<select id="getUserWithGoldCount" parameterType="java.util.List" resultType="java.lang.Integer">
|
||||
select count(1) from users where erban_no in
|
||||
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<!-- 用户明细全部分页查询 -->
|
||||
<select id="userDetailList" resultType="com.accompany.admin.vo.stats.UserDeatilVo">
|
||||
select
|
||||
u.uid,u.erban_no,u.nick,u.create_time,u.channel,u.model,u.new_device,u.invite_code,u.invite_uid,u.device_id,
|
||||
ac.register_ip
|
||||
from
|
||||
(
|
||||
select uid,erban_no,nick,create_time,channel,model,new_device,invite_code,invite_uid,device_id from users
|
||||
<where>
|
||||
def_user = 1
|
||||
<if test="userDetailQueryDto.erbanNo != null and userDetailQueryDto.erbanNo != '' ">
|
||||
and erban_no = #{userDetailQueryDto.erbanNo}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.phone != null and userDetailQueryDto.phone != '' ">
|
||||
and phone = #{userDetailQueryDto.phone}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.startDate != null and userDetailQueryDto.startDate != '' ">
|
||||
and create_time >= #{userDetailQueryDto.startDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.endDate != null and userDetailQueryDto.endDate != '' ">
|
||||
and create_time < #{userDetailQueryDto.endDate}
|
||||
</if>
|
||||
</where>
|
||||
) u
|
||||
left join account ac on u.uid = ac.uid
|
||||
order by u.create_time desc
|
||||
</select>
|
||||
<!-- 用户明细全部分页查询 -->
|
||||
<select id="userDetailList" resultType="com.accompany.admin.vo.stats.UserDeatilVo">
|
||||
select
|
||||
u.uid,u.erban_no,u.nick,u.create_time,u.channel,u.model,u.new_device,u.invite_code,u.invite_uid,u.device_id,
|
||||
ac.register_ip
|
||||
from
|
||||
(
|
||||
select uid,erban_no,nick,create_time,channel,model,new_device,invite_code,invite_uid,device_id from users
|
||||
<where>
|
||||
def_user = 1
|
||||
<if test="userDetailQueryDto.erbanNo != null and userDetailQueryDto.erbanNo != '' ">
|
||||
and erban_no = #{userDetailQueryDto.erbanNo}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.phone != null and userDetailQueryDto.phone != '' ">
|
||||
and phone = #{userDetailQueryDto.phone}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.startDate != null and userDetailQueryDto.startDate != '' ">
|
||||
and create_time >= #{userDetailQueryDto.startDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.endDate != null and userDetailQueryDto.endDate != '' ">
|
||||
and create_time < #{userDetailQueryDto.endDate}
|
||||
</if>
|
||||
</where>
|
||||
) u
|
||||
left join account ac on u.uid = ac.uid
|
||||
order by u.create_time desc
|
||||
</select>
|
||||
|
||||
<!--直播导流分页查询-->
|
||||
<select id="userLiveDetailList" resultType="com.accompany.admin.vo.stats.UserDeatilVo">
|
||||
select
|
||||
u.uid,u.erban_no,u.nick,u.create_time,u.channel,u.model,u.new_device,u.invite_code,u.invite_uid,u.device_id,
|
||||
ac.register_ip
|
||||
from
|
||||
(
|
||||
select uid,erban_no,nick,create_time,channel,model,new_device,invite_code,invite_uid,device_id from users
|
||||
<where>
|
||||
def_user = 1
|
||||
<if test="userDetailQueryDto.erbanNo != null and userDetailQueryDto.erbanNo != '' ">
|
||||
and erban_no = #{userDetailQueryDto.erbanNo}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.phone != null and userDetailQueryDto.phone != '' ">
|
||||
and phone = #{userDetailQueryDto.phone}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.startDate != null and userDetailQueryDto.startDate != '' ">
|
||||
and create_time >= #{userDetailQueryDto.startDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.endDate != null and userDetailQueryDto.endDate != '' ">
|
||||
and create_time < #{userDetailQueryDto.endDate}
|
||||
</if>
|
||||
</where>
|
||||
) u
|
||||
left join account ac on u.uid = ac.uid
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 2 ">
|
||||
inner join (
|
||||
SELECT DISTINCT(ufs.uid) FROM
|
||||
(
|
||||
SELECT uss.*,rmv.start_time,rmv.end_time from
|
||||
(
|
||||
SELECT uid,invite_uid,create_time FROM users uts WHERE uts.invite_uid IS NOT NULL AND uts.invite_uid != ''
|
||||
) uss
|
||||
INNER JOIN room_visitor rmv ON uss.invite_uid = rmv.uid
|
||||
) ufs
|
||||
LEFT JOIN user_in_room_record uirr
|
||||
ON ufs.uid = uirr.uid AND ufs.invite_uid = uirr.roomUid
|
||||
WHERE uirr.create_time >= ufs.start_time AND <![CDATA[ uirr.create_time <= ufs.end_time]]> AND ufs.create_time >= ufs.start_time AND <![CDATA[ ufs.create_time <= ufs.end_time]]>
|
||||
) fti
|
||||
on fti.uid = u.uid
|
||||
</if>
|
||||
</select>
|
||||
<!--直播导流分页查询-->
|
||||
<select id="userLiveDetailList" resultType="com.accompany.admin.vo.stats.UserDeatilVo">
|
||||
select
|
||||
u.uid,u.erban_no,u.nick,u.create_time,u.channel,u.model,u.new_device,u.invite_code,u.invite_uid,u.device_id,
|
||||
ac.register_ip
|
||||
from
|
||||
(
|
||||
select uid,erban_no,nick,create_time,channel,model,new_device,invite_code,invite_uid,device_id from users
|
||||
<where>
|
||||
def_user = 1
|
||||
<if test="userDetailQueryDto.erbanNo != null and userDetailQueryDto.erbanNo != '' ">
|
||||
and erban_no = #{userDetailQueryDto.erbanNo}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.phone != null and userDetailQueryDto.phone != '' ">
|
||||
and phone = #{userDetailQueryDto.phone}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.startDate != null and userDetailQueryDto.startDate != '' ">
|
||||
and create_time >= #{userDetailQueryDto.startDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.endDate != null and userDetailQueryDto.endDate != '' ">
|
||||
and create_time < #{userDetailQueryDto.endDate}
|
||||
</if>
|
||||
</where>
|
||||
) u
|
||||
left join account ac on u.uid = ac.uid
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 2 ">
|
||||
inner join (
|
||||
SELECT DISTINCT(ufs.uid) FROM
|
||||
(
|
||||
SELECT uss.*,rmv.start_time,rmv.end_time from
|
||||
(
|
||||
SELECT uid,invite_uid,create_time FROM users uts WHERE uts.invite_uid IS NOT NULL AND uts.invite_uid != ''
|
||||
) uss
|
||||
INNER JOIN room_visitor rmv ON uss.invite_uid = rmv.uid
|
||||
) ufs
|
||||
LEFT JOIN user_in_room_record uirr
|
||||
ON ufs.uid = uirr.uid AND ufs.invite_uid = uirr.roomUid
|
||||
WHERE uirr.create_time >= ufs.start_time AND <![CDATA[ uirr.create_time <= ufs.end_time]]> AND
|
||||
ufs.create_time >= ufs.start_time AND <![CDATA[ ufs.create_time <= ufs.end_time]]>
|
||||
) fti
|
||||
on fti.uid = u.uid
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!--流量团队分页查询-->
|
||||
<select id="userDetailFlowTeamList" resultType="com.accompany.admin.vo.stats.UserDeatilVo">
|
||||
select
|
||||
u.uid,u.erban_no,u.nick,u.create_time,u.channel,u.model,u.new_device,u.invite_code,u.device_id,
|
||||
ac.register_ip
|
||||
from
|
||||
(
|
||||
select uid,erban_no,nick,create_time,channel,model,new_device,invite_code,device_id from users
|
||||
<where>
|
||||
def_user = 1
|
||||
<if test="userDetailQueryDto.erbanNo != null and userDetailQueryDto.erbanNo != '' ">
|
||||
and erban_no = #{userDetailQueryDto.erbanNo}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.phone != null and userDetailQueryDto.phone != '' ">
|
||||
and phone = #{userDetailQueryDto.phone}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.startDate != null and userDetailQueryDto.startDate != '' ">
|
||||
and create_time >= #{userDetailQueryDto.startDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.endDate != null and userDetailQueryDto.endDate != '' ">
|
||||
and create_time < #{userDetailQueryDto.endDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 1 ">
|
||||
and invite_code IS NOT NULL AND invite_code !=''
|
||||
</if>
|
||||
</where>
|
||||
) u
|
||||
left join account ac on u.uid = ac.uid
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 1 ">
|
||||
inner join (select ic.invite_code,ftm.create_time from flow_team_member_invite_code ic left join flow_team_member ftm on ic.member_id = ftm.member_id where ftm.member_status = 1) fti on u.invite_code = fti.invite_code
|
||||
</if>
|
||||
where u.create_time > fti.create_time
|
||||
order by u.create_time desc
|
||||
</select>
|
||||
<!--流量团队分页查询-->
|
||||
<select id="userDetailFlowTeamList" resultType="com.accompany.admin.vo.stats.UserDeatilVo">
|
||||
select
|
||||
u.uid,u.erban_no,u.nick,u.create_time,u.channel,u.model,u.new_device,u.invite_code,u.device_id,
|
||||
ac.register_ip
|
||||
from
|
||||
(
|
||||
select uid,erban_no,nick,create_time,channel,model,new_device,invite_code,device_id from users
|
||||
<where>
|
||||
def_user = 1
|
||||
<if test="userDetailQueryDto.erbanNo != null and userDetailQueryDto.erbanNo != '' ">
|
||||
and erban_no = #{userDetailQueryDto.erbanNo}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.phone != null and userDetailQueryDto.phone != '' ">
|
||||
and phone = #{userDetailQueryDto.phone}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.startDate != null and userDetailQueryDto.startDate != '' ">
|
||||
and create_time >= #{userDetailQueryDto.startDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.endDate != null and userDetailQueryDto.endDate != '' ">
|
||||
and create_time < #{userDetailQueryDto.endDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 1 ">
|
||||
and invite_code IS NOT NULL AND invite_code !=''
|
||||
</if>
|
||||
</where>
|
||||
) u
|
||||
left join account ac on u.uid = ac.uid
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 1 ">
|
||||
inner join (select ic.invite_code,ftm.create_time from flow_team_member_invite_code ic left join
|
||||
flow_team_member ftm on ic.member_id = ftm.member_id where ftm.member_status = 1) fti on u.invite_code =
|
||||
fti.invite_code
|
||||
</if>
|
||||
where u.create_time > fti.create_time
|
||||
order by u.create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
<!--直播导流分页查询-->
|
||||
<select id="userLiveDetailListV2" resultType="com.accompany.admin.vo.stats.UserDeatilVo">
|
||||
select
|
||||
u.uid,u.erban_no,u.nick,u.create_time,u.channel,u.model,u.new_device,u.invite_code,u.invite_uid,u.device_id,
|
||||
ac.register_ip
|
||||
from
|
||||
(
|
||||
select uid,erban_no,nick,create_time,channel,model,new_device,invite_code,invite_uid,device_id from users
|
||||
<where>
|
||||
def_user = 1
|
||||
<if test="userDetailQueryDto.erbanNo != null and userDetailQueryDto.erbanNo != '' ">
|
||||
and erban_no = #{userDetailQueryDto.erbanNo}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.phone != null and userDetailQueryDto.phone != '' ">
|
||||
and phone = #{userDetailQueryDto.phone}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.startDate != null and userDetailQueryDto.startDate != '' ">
|
||||
and create_time >= #{userDetailQueryDto.startDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.endDate != null and userDetailQueryDto.endDate != '' ">
|
||||
and create_time < #{userDetailQueryDto.endDate}
|
||||
</if>
|
||||
</where>
|
||||
) u
|
||||
left join account ac on u.uid = ac.uid
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 2 ">
|
||||
inner join room_visitor_user_dict rvud
|
||||
on rvud.uid = u.uid
|
||||
</if>
|
||||
order by u.create_time desc
|
||||
</select>
|
||||
<!--直播导流分页查询-->
|
||||
<select id="userLiveDetailListV2" resultType="com.accompany.admin.vo.stats.UserDeatilVo">
|
||||
select
|
||||
u.uid,u.erban_no,u.nick,u.create_time,u.channel,u.model,u.new_device,u.invite_code,u.invite_uid,u.device_id,
|
||||
ac.register_ip
|
||||
from
|
||||
(
|
||||
select uid,erban_no,nick,create_time,channel,model,new_device,invite_code,invite_uid,device_id from users
|
||||
<where>
|
||||
def_user = 1
|
||||
<if test="userDetailQueryDto.erbanNo != null and userDetailQueryDto.erbanNo != '' ">
|
||||
and erban_no = #{userDetailQueryDto.erbanNo}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.phone != null and userDetailQueryDto.phone != '' ">
|
||||
and phone = #{userDetailQueryDto.phone}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.startDate != null and userDetailQueryDto.startDate != '' ">
|
||||
and create_time >= #{userDetailQueryDto.startDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.endDate != null and userDetailQueryDto.endDate != '' ">
|
||||
and create_time < #{userDetailQueryDto.endDate}
|
||||
</if>
|
||||
</where>
|
||||
) u
|
||||
left join account ac on u.uid = ac.uid
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 2 ">
|
||||
inner join room_visitor_user_dict rvud
|
||||
on rvud.uid = u.uid
|
||||
</if>
|
||||
order by u.create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
<!--流量团队分页查询-->
|
||||
<select id="userDetailFlowTeamListV2" resultType="com.accompany.admin.vo.stats.UserDeatilVo">
|
||||
select
|
||||
u.uid,u.erban_no,u.nick,u.create_time,u.channel,u.model,u.new_device,u.invite_code,u.device_id,
|
||||
ac.register_ip
|
||||
from
|
||||
(
|
||||
select uid,erban_no,nick,create_time,channel,model,new_device,invite_code,device_id from users
|
||||
<where>
|
||||
def_user = 1
|
||||
<if test="userDetailQueryDto.erbanNo != null and userDetailQueryDto.erbanNo != '' ">
|
||||
and erban_no = #{userDetailQueryDto.erbanNo}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.phone != null and userDetailQueryDto.phone != '' ">
|
||||
and phone = #{userDetailQueryDto.phone}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.startDate != null and userDetailQueryDto.startDate != '' ">
|
||||
and create_time >= #{userDetailQueryDto.startDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.endDate != null and userDetailQueryDto.endDate != '' ">
|
||||
and create_time < #{userDetailQueryDto.endDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 1 ">
|
||||
and invite_code IS NOT NULL AND invite_code !=''
|
||||
</if>
|
||||
</where>
|
||||
) u
|
||||
left join account ac on u.uid = ac.uid
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 1 ">
|
||||
inner join `flow_team_member_invite_user` ftiu on u.uid = ftiu.uid
|
||||
</if>
|
||||
order by u.create_time desc
|
||||
</select>
|
||||
|
||||
<!--流量团队分页查询-->
|
||||
<select id="userDetailFlowTeamListV2" resultType="com.accompany.admin.vo.stats.UserDeatilVo">
|
||||
select
|
||||
u.uid,u.erban_no,u.nick,u.create_time,u.channel,u.model,u.new_device,u.invite_code,u.device_id,
|
||||
ac.register_ip
|
||||
from
|
||||
(
|
||||
select uid,erban_no,nick,create_time,channel,model,new_device,invite_code,device_id from users
|
||||
<where>
|
||||
def_user = 1
|
||||
<if test="userDetailQueryDto.erbanNo != null and userDetailQueryDto.erbanNo != '' ">
|
||||
and erban_no = #{userDetailQueryDto.erbanNo}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.phone != null and userDetailQueryDto.phone != '' ">
|
||||
and phone = #{userDetailQueryDto.phone}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.startDate != null and userDetailQueryDto.startDate != '' ">
|
||||
and create_time >= #{userDetailQueryDto.startDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.endDate != null and userDetailQueryDto.endDate != '' ">
|
||||
and create_time < #{userDetailQueryDto.endDate}
|
||||
</if>
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 1 ">
|
||||
and invite_code IS NOT NULL AND invite_code !=''
|
||||
</if>
|
||||
</where>
|
||||
) u
|
||||
left join account ac on u.uid = ac.uid
|
||||
<if test="userDetailQueryDto.flowChannelType != null and userDetailQueryDto.flowChannelType == 1 ">
|
||||
inner join `flow_team_member_invite_user` ftiu on u.uid = ftiu.uid
|
||||
</if>
|
||||
order by u.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="getRegion" resultType="java.lang.String">
|
||||
select distinct region from users where region is not null;
|
||||
</select>
|
||||
</mapper>
|
@@ -4,6 +4,7 @@ import com.accompany.admin.service.recharge.RechargeDiamondGiveHistoryAdminServi
|
||||
import com.accompany.admin.vo.charge.RechargeDiamondGiveAdminVo;
|
||||
import com.accompany.admin.vo.charge.RechargeDiamondGiveDetailAdminVo;
|
||||
import com.accompany.common.model.PageReq;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.result.PageResult;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -11,6 +12,11 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.context.request.ServletWebRequest;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
@@ -42,13 +48,47 @@ public class RechargeDiamondGiveHistoryAdminController {
|
||||
/**
|
||||
* 代充转赠明细
|
||||
*
|
||||
* @param fromErBanNo
|
||||
* @param toErBanNo
|
||||
* @param toRegion
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @param giveDate
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("代充转赠明细")
|
||||
@GetMapping("dayDetailPage")
|
||||
public PageResult<RechargeDiamondGiveDetailAdminVo> giveDetailByDayPage(String giveDate, PageReq req) {
|
||||
return new PageResult<>(rechargeDiamondGiveHistoryAdminService.giveDetailByDayPage(giveDate, req));
|
||||
public PageResult<RechargeDiamondGiveDetailAdminVo> giveDetailByDayPage(String fromErBanNo, String toErBanNo, String toRegion, String startTime, String endTime, String giveDate, PageReq req) {
|
||||
return new PageResult<>(rechargeDiamondGiveHistoryAdminService.giveDetailByDayPage(fromErBanNo, toErBanNo, toRegion, startTime, endTime, giveDate, req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出
|
||||
*
|
||||
* @param fromErBanNo
|
||||
* @param toErBanNo
|
||||
* @param toRegion
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @param giveDate
|
||||
* @param request
|
||||
* @param response
|
||||
*/
|
||||
@ApiOperation("导出")
|
||||
@GetMapping("export")
|
||||
public void export(String fromErBanNo, String toErBanNo, String toRegion, String startTime, String endTime, String giveDate, HttpServletRequest request, HttpServletResponse response) {
|
||||
rechargeDiamondGiveHistoryAdminService.export(fromErBanNo, toErBanNo, toRegion, startTime, endTime, giveDate, new ServletWebRequest(request, response));
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户地区
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ApiOperation("用户地区")
|
||||
@GetMapping("getRegion")
|
||||
public BusiResult<List<String>> getRegion() {
|
||||
return BusiResult.success(rechargeDiamondGiveHistoryAdminService.getRegion());
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,169 @@
|
||||
<section class="content">
|
||||
<div class="box box-primary">
|
||||
<div class="box-body">
|
||||
<!-- Content Header (Page header) -->
|
||||
<section class="content-header">
|
||||
<h1 id="itemTitle"></h1>
|
||||
</section>
|
||||
<!-- .content -->
|
||||
<div id="table"></div>
|
||||
<div id="toolbar">
|
||||
<form id="searchForm" action="/admin/recharge/user/give/export" method="get" target="_blank">
|
||||
<div class="col-sm-12">
|
||||
<label for="fromErBanNo" class="col-sm-1 control-label">转出人id:</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" class="form-control" name="fromErBanNo" id="fromErBanNo">
|
||||
</div>
|
||||
<label for="toErBanNo" class="col-sm-1 control-label">收入人id:</label>
|
||||
<div class="col-sm-2">
|
||||
<input type="text" class="form-control" name="toErBanNo" id="toErBanNo">
|
||||
</div>
|
||||
<label for="toRegion" class="col-sm-1 control-label">收入人地区:</label>
|
||||
<div class="col-sm-2">
|
||||
<select name="toRegion" id="toRegion" data-btn-class="btn-warning"
|
||||
class="form-control">
|
||||
<option value="" selected="selected">全部</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<label for="startTime" class="col-sm-2 control-label">时间:</label>
|
||||
<div class="col-sm-2"><input type="text" class="form-control" name="startTime"
|
||||
id="startTime"></div>
|
||||
<label for="endTime" class="col-sm-1 control-label">-</label>
|
||||
<div class="col-sm-2"><input type="text" class="form-control" name="endTime"
|
||||
id="endTime"></div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="col-sm-12">
|
||||
<button id="btnSearch" class="btn btn-default">
|
||||
<i class="glyphicon glyphicon-search"></i>查询
|
||||
</button>
|
||||
</div>
|
||||
<button id="btnExport" class="btn btn-default">
|
||||
<i class="glyphicon glyphicon-Export"></i>导出
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
userRegion();
|
||||
$('#table').bootstrapTable('destroy');
|
||||
$('#table').bootstrapTable({
|
||||
columns: [
|
||||
{field: 'createTime', title: '时间', align: 'center', width: '5%'},
|
||||
{field: 'fromErBanNo', title: '转出人peko id', align: 'center', width: '5%'},
|
||||
{field: 'fromNick', title: '转出人昵称', align: 'center', width: '5%'},
|
||||
{field: 'fromClanName', title: '转出人所在公会', align: 'center', width: '5%'},
|
||||
{
|
||||
field: 'fromRegion',
|
||||
title: '转出人所属代充地区',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
formatter: function (val, row, index) {
|
||||
var value = '';
|
||||
if (value) {
|
||||
var array = value.split(',');
|
||||
for (let i = 0, len = array.length; i < len; i++) {
|
||||
var region = array[i];
|
||||
value += region;
|
||||
if (i != len - 1) {
|
||||
value += '<br/>';
|
||||
}
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{field: 'toErBanNo', title: '收入人peko id', align: 'center', width: '5%'},
|
||||
{field: 'toNick', title: '收入人昵称', align: 'center', width: '5%'},
|
||||
{field: 'toRegion', title: '收入人地区', align: 'center', width: '5%'},
|
||||
{field: 'inviteCode', title: '收入人填写的邀请码', align: 'center', width: '5%'},
|
||||
{field: 'diamondNum', title: '转赠数额', align: 'center', width: '5%'},
|
||||
],
|
||||
cache: false,
|
||||
striped: true,
|
||||
showRefresh: false,
|
||||
pageSize: 20,
|
||||
pagination: true,
|
||||
pageList: [20, 50, 100],
|
||||
search: false,
|
||||
sidePagination: "server", //表示服务端请求
|
||||
//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
|
||||
//设置为limit可以获取limit, offset, search, sort, order
|
||||
queryParamsType: "undefined",
|
||||
queryParams: function queryParams(params) { //设置查询参数
|
||||
var param = {
|
||||
page: params.pageNumber,
|
||||
pageSize: params.pageSize,
|
||||
fromErBanNo: $('#fromErBanNo').val(),
|
||||
toErBanNo: $('#toErBanNo').val(),
|
||||
toRegion: $('#toRegion').val(),
|
||||
startTime: $('#startTime').val(),
|
||||
endTime: $('#endTime').val(),
|
||||
};
|
||||
return param;
|
||||
},
|
||||
toolbar: '#toolbar',
|
||||
url: '/admin/recharge/user/give/dayDetailPage',
|
||||
onLoadSuccess: function () { //加载成功时执行
|
||||
console.log("load success");
|
||||
},
|
||||
onLoadError: function () { //加载失败时执行
|
||||
console.log("load fail");
|
||||
}
|
||||
});
|
||||
|
||||
var picker1 = $("#startTime").datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
todayBtn: true,
|
||||
autoclose: true,
|
||||
});
|
||||
var picker2 = $("#endTime").datetimepicker({
|
||||
format: 'yyyy-mm-dd hh:ii:00',
|
||||
todayBtn: true,
|
||||
autoclose: true
|
||||
});
|
||||
picker1.on('changeDate', function () {
|
||||
var date = $('#startTime').datepicker('getDate');
|
||||
picker2.datepicker('setStartDate', date);
|
||||
});
|
||||
picker2.on('changeDate', function () {
|
||||
var date = $('#endTime').datepicker('getDate');
|
||||
picker1.datepicker('setEndDate', date);
|
||||
});
|
||||
|
||||
//导出功能
|
||||
$("#btnExport").on('click',function () {
|
||||
$("#searchForm").submit();
|
||||
});
|
||||
|
||||
//用户地区
|
||||
function userRegion() {
|
||||
var array;
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/admin/recharge/user/give/getRegion",
|
||||
dataType: "json",
|
||||
async: false,
|
||||
success: function (json) {
|
||||
if (json.success == 'true' || json.code == 200) {
|
||||
array = json.data;
|
||||
}
|
||||
}
|
||||
});
|
||||
var $select = $('#toRegion');
|
||||
for(let i = 0; i < array.length; i++){
|
||||
var value = data[i];
|
||||
var $option = $('<option value="'+ value +'" />');
|
||||
$option.html(value);
|
||||
$select.append($option);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
@@ -20,7 +20,7 @@
|
||||
<div id="table"></div>
|
||||
<div id="toolbar">
|
||||
<div class="col-sm-12">
|
||||
<label for="startTime" class="col-sm-2 control-label">申请提现时间:</label>
|
||||
<label for="startTime" class="col-sm-2 control-label">日期:</label>
|
||||
<div class="col-sm-2"><input type="text" class="form-control" name="startTime"
|
||||
id="startTime"></div>
|
||||
<label for="endTime" class="col-sm-1 control-label">-</label>
|
||||
@@ -46,13 +46,16 @@
|
||||
</button>
|
||||
<h4 class="modal-title" id="modalLabel"></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<!-- .content -->
|
||||
<div id="detailTable"></div>
|
||||
</div>
|
||||
<form id="searchForm" action="/admin/recharge/user/give/export" method="get" target="_blank">
|
||||
<input type="hidden" name="giveDate" id="giveDate"/>
|
||||
<div class="modal-body">
|
||||
<!-- .content -->
|
||||
<div id="detailTable"></div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
||||
<button type="button" class="btn btn-primary" id="export">导出</button>
|
||||
<button type="button" class="btn btn-primary" id="btnExport">导出</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -141,6 +144,7 @@
|
||||
$('#table').on('click', '.opt-detail', function () {
|
||||
const currentData = $('#table').bootstrapTable('getData')[$(this).data('index')];
|
||||
var giveDate = currentData.giveDate;
|
||||
$('#giveDate').val(giveDate);
|
||||
$('#modalLabel').html(giveDate + '代充转赠明细');
|
||||
$("#detailModal").modal('show');
|
||||
$('#detailTable').bootstrapTable('destroy');
|
||||
@@ -150,7 +154,26 @@
|
||||
{field: 'fromErBanNo', title: '转出人peko id', align: 'center', width: '5%'},
|
||||
{field: 'fromNick', title: '转出人昵称', align: 'center', width: '5%'},
|
||||
{field: 'fromClanName', title: '转出人所在公会', align: 'center', width: '5%'},
|
||||
{field: 'fromRegion', title: '转出人所属代充地区', align: 'center', width: '5%'},
|
||||
{
|
||||
field: 'fromRegion',
|
||||
title: '转出人所属代充地区',
|
||||
align: 'center',
|
||||
width: '5%',
|
||||
formatter: function (val, row, index) {
|
||||
var value = '';
|
||||
if (value) {
|
||||
var array = value.split(',');
|
||||
for (let i = 0, len = array.length; i < len; i++) {
|
||||
var region = array[i];
|
||||
value += region;
|
||||
if (i != len - 1) {
|
||||
value += '<br/>';
|
||||
}
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{field: 'toErBanNo', title: '收入人peko id', align: 'center', width: '5%'},
|
||||
{field: 'toNick', title: '收入人昵称', align: 'center', width: '5%'},
|
||||
{field: 'toRegion', title: '收入人地区', align: 'center', width: '5%'},
|
||||
@@ -173,7 +196,8 @@
|
||||
queryParams: function queryParams(params) {
|
||||
var param = {
|
||||
page: params.pageNumber,
|
||||
pageSize: params.pageSize
|
||||
pageSize: params.pageSize,
|
||||
giveDate: giveDate
|
||||
};
|
||||
return param;
|
||||
},
|
||||
@@ -188,6 +212,11 @@
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//导出功能
|
||||
$("#btnExport").on('click',function () {
|
||||
$("#searchForm").submit();
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
@@ -1,6 +1,9 @@
|
||||
package com.accompany.payment.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.redis.RedisKey;
|
||||
import com.accompany.core.service.common.JedisService;
|
||||
import com.accompany.payment.mapper.RechargeUserMapper;
|
||||
import com.accompany.payment.model.RechargeUser;
|
||||
import com.accompany.payment.service.RechargeUserService;
|
||||
@@ -11,7 +14,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
@@ -25,12 +30,20 @@ public class RechargeUserServiceImpl extends ServiceImpl<RechargeUserMapper, Rec
|
||||
@Autowired
|
||||
private RechargeUserMapper rechargeUserMapper;
|
||||
|
||||
@Autowired
|
||||
private JedisService jedisService;
|
||||
|
||||
@Override
|
||||
public List<RechargeUserVo> selectList(String regionCode) {
|
||||
List<RechargeUserVo> rechargeUserList = rechargeUserMapper.getRechargeUserList(regionCode);
|
||||
if (CollectionUtil.isEmpty(rechargeUserList)) {
|
||||
List<RechargeUserVo> list = rechargeUserMapper.getRechargeUserList(regionCode);
|
||||
if (CollectionUtil.isEmpty(list)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return rechargeUserList;
|
||||
if (CollectionUtil.isNotEmpty(list)) {
|
||||
for (RechargeUserVo user : list) {
|
||||
user.setIsOnline(jedisService.hget(RedisKey.user_online_status.getKey(), user.getUid().toString()) != null ? Constant.Yes1No0.YES : Constant.Yes1No0.NO);
|
||||
}
|
||||
}
|
||||
return list.stream().sorted(Comparator.comparing(RechargeUserVo::getIsOnline).reversed().thenComparing(RechargeUserVo::getSeq)).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
@@ -1,9 +1,7 @@
|
||||
package com.accompany.business.controller.recharge;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.accompany.business.service.room.RoomService;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.core.service.common.JedisService;
|
||||
import com.accompany.payment.service.RechargeUserService;
|
||||
import com.accompany.payment.vo.RechargeUserVo;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -14,9 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
@@ -32,7 +28,7 @@ public class RechargeUserController {
|
||||
private RechargeUserService rechargeUserService;
|
||||
|
||||
@Autowired
|
||||
private RoomService roomService;
|
||||
private JedisService jedisService;
|
||||
|
||||
/**
|
||||
* 列表
|
||||
@@ -43,13 +39,7 @@ public class RechargeUserController {
|
||||
@ApiOperation("列表")
|
||||
@GetMapping("list")
|
||||
public BusiResult<List<RechargeUserVo>> list(@RequestParam("regionCode") String regionCode) {
|
||||
List<RechargeUserVo> list = rechargeUserService.selectList(regionCode);
|
||||
if (CollectionUtil.isNotEmpty(list)) {
|
||||
for (RechargeUserVo user : list) {
|
||||
user.setIsOnline(roomService.isOnline(user.getRoomId(), user.getUid()) ? Constant.Yes1No0.YES : Constant.Yes1No0.NO);
|
||||
}
|
||||
}
|
||||
return BusiResult.success(list.stream().sorted(Comparator.comparing(RechargeUserVo::getIsOnline).reversed().thenComparing(RechargeUserVo::getSeq)).collect(Collectors.toList()));
|
||||
return BusiResult.success(rechargeUserService.selectList(regionCode));
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user