nnnn
This commit is contained in:
12
doc/123.txt
12
doc/123.txt
@@ -1,2 +1,14 @@
|
|||||||
im权限
|
im权限
|
||||||
cai:user:im
|
cai:user:im
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ALTER TABLE cai_consume_log
|
||||||
|
ADD INDEX idx_consume_filter(type, status, one_user_id);
|
||||||
|
|
||||||
|
|
||||||
|
菜单
|
||||||
|
- 单账户管理 101 proxyUser
|
||||||
|
- 统计 0 proxyUserTotal cai/proxyUserTotal/index cai:proxyUser:proxyTotal
|
||||||
|
- 注册用户 1 bindUserList cai/proxtBindUserList/index cai:proxyUser:bindUserList
|
||||||
|
- 充值记录 2 orderLogList cai/proxyOrderLogList/index cai:proxyUser:orderLogList
|
||||||
|
|||||||
2
doc/20251021.sql
Normal file
2
doc/20251021.sql
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
ALTER TABLE sys_user
|
||||||
|
ADD COLUMN `bind_user_code` varchar(20);
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
package com.ruoyi.web.controller.cai.proxy;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckRole;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.ruoyi.cai.dto.proxy.BindUserListDTO;
|
||||||
|
import com.ruoyi.cai.dto.proxy.OrderListDTO;
|
||||||
|
import com.ruoyi.cai.dto.proxy.ProxyTotalDTO;
|
||||||
|
import com.ruoyi.cai.manager.ProxyUserManager;
|
||||||
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
||||||
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
import com.ruoyi.common.helper.LoginHelper;
|
||||||
|
import com.ruoyi.system.mapper.SysUserMapper;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/cai/proxyUser")
|
||||||
|
public class ProxyUserController {
|
||||||
|
@Autowired
|
||||||
|
private ProxyUserManager proxyUserManager;
|
||||||
|
@Resource
|
||||||
|
private SysUserMapper sysUserMapper;
|
||||||
|
|
||||||
|
@GetMapping("/orderLogList")
|
||||||
|
@SaCheckPermission("cai:proxyUser:orderLogList")
|
||||||
|
public TableDataInfo<OrderListDTO> orderLogList(PageQuery pageQuery, OrderListDTO query) {
|
||||||
|
String userCode = getBindUserCode();
|
||||||
|
IPage<OrderListDTO> orderListDTOIPage = proxyUserManager.orderLogList(userCode, pageQuery,query);
|
||||||
|
return TableDataInfo.build(orderListDTOIPage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/bindUserList")
|
||||||
|
@SaCheckPermission("cai:proxyUser:bindUserList")
|
||||||
|
public TableDataInfo<BindUserListDTO> bindUserList(PageQuery pageQuery, BindUserListDTO query) {
|
||||||
|
String userCode = getBindUserCode();
|
||||||
|
IPage<BindUserListDTO> data = proxyUserManager.bindUserList(userCode, pageQuery, query);
|
||||||
|
return TableDataInfo.build(data);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/proxyTotal")
|
||||||
|
@SaCheckRole("proxy")
|
||||||
|
public R<ProxyTotalDTO> proxyTotal() {
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
SysUser sysUser = sysUserMapper.selectOne(Wrappers.lambdaQuery(SysUser.class).eq(SysUser::getUserId, userId).select(SysUser::getBindUserCode));
|
||||||
|
if(sysUser == null || StringUtils.isBlank(sysUser.getBindUserCode())){
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
String userCode = sysUser.getBindUserCode();
|
||||||
|
ProxyTotalDTO dto = proxyUserManager.total(userCode);
|
||||||
|
return R.ok(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getBindUserCode(){
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
SysUser sysUser = sysUserMapper.selectOne(Wrappers.lambdaQuery(SysUser.class).eq(SysUser::getUserId, userId).select(SysUser::getBindUserCode));
|
||||||
|
if(sysUser == null || StringUtils.isBlank(sysUser.getBindUserCode())){
|
||||||
|
throw new RuntimeException("您的后台账户未绑定APP账户,请联系管理员操作");
|
||||||
|
}
|
||||||
|
return sysUser.getBindUserCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -20,7 +20,7 @@ spring:
|
|||||||
driverClassName: com.mysql.cj.jdbc.Driver
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
||||||
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
||||||
url: jdbc:mysql://124.222.254.188:4306/cai_v6?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
url: jdbc:mysql://124.222.254.188:4306/cai_wanyan?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true
|
||||||
username: root
|
username: root
|
||||||
password: tyYrk487R4y7FENM
|
password: tyYrk487R4y7FENM
|
||||||
# 从库数据源
|
# 从库数据源
|
||||||
|
|||||||
@@ -48,7 +48,10 @@ public class OrderLogsController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public TableDataInfo<OrderLogs> list(OrderLogs bo, PageQuery pageQuery) {
|
public TableDataInfo<OrderLogs> list(OrderLogs bo, PageQuery pageQuery) {
|
||||||
Page<OrderLogs> page = orderLogsService.page(pageQuery.build(), Wrappers.lambdaQuery(OrderLogs.class).orderByDesc(OrderLogs::getCreateTime));
|
Page<OrderLogs> page = orderLogsService.page(pageQuery.build(), Wrappers.lambdaQuery(bo)
|
||||||
|
.ge(bo.getCreateTimeMin() != null, OrderLogs::getCreateTime, bo.getCreateTimeMin())
|
||||||
|
.le(bo.getCreateTimeMax() != null,OrderLogs::getCreateTime, bo.getCreateTimeMax())
|
||||||
|
.orderByDesc(OrderLogs::getCreateTime));
|
||||||
return TableDataInfo.build(page);
|
return TableDataInfo.build(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package com.ruoyi.cai.domain;
|
package com.ruoyi.cai.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.joda.time.LocalDate;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -50,5 +52,9 @@ public class OrderLogs implements Serializable {
|
|||||||
private String success;
|
private String success;
|
||||||
|
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private LocalDateTime createTimeMin;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private LocalDateTime createTimeMax;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.ruoyi.cai.dto.proxy;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class BindUserListDTO {
|
||||||
|
private String usercode;
|
||||||
|
private String nickname;
|
||||||
|
private String avatar;
|
||||||
|
private Integer gender;
|
||||||
|
private LocalDateTime inviteTime;
|
||||||
|
private LocalDateTime inviteTimeMin;
|
||||||
|
private LocalDateTime inviteTimeMax;
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.ruoyi.cai.dto.proxy;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OrderListDTO {
|
||||||
|
/**
|
||||||
|
* 价格
|
||||||
|
*/
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 商品名称
|
||||||
|
*/
|
||||||
|
private String rechargeName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单号
|
||||||
|
*/
|
||||||
|
private String orderNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 昵称
|
||||||
|
*/
|
||||||
|
private String nickname;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 头像
|
||||||
|
*/
|
||||||
|
private String avatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户号/ID号
|
||||||
|
*/
|
||||||
|
private String usercode;
|
||||||
|
|
||||||
|
private LocalDateTime payTime;
|
||||||
|
|
||||||
|
private LocalDateTime payTimeMin;
|
||||||
|
private LocalDateTime payTimeMax;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.ruoyi.cai.dto.proxy;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ProxyTotalDTO {
|
||||||
|
private Long bindUserCount;
|
||||||
|
private BigDecimal priceSum;
|
||||||
|
}
|
||||||
@@ -75,6 +75,9 @@ public class CurrentUserManager {
|
|||||||
public CurrentUserInfoVo currentInfo() {
|
public CurrentUserInfoVo currentInfo() {
|
||||||
Long userId = LoginHelper.getUserId();
|
Long userId = LoginHelper.getUserId();
|
||||||
User user = userService.getById(userId);
|
User user = userService.getById(userId);
|
||||||
|
if(user == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
CurrentUserInfoVo res = BeanConvertUtil.convertTo(user, CurrentUserInfoVo::new);
|
CurrentUserInfoVo res = BeanConvertUtil.convertTo(user, CurrentUserInfoVo::new);
|
||||||
res.setUserId(userId);
|
res.setUserId(userId);
|
||||||
Anchor anchor = anchorService.getByUserId(userId);
|
Anchor anchor = anchorService.getByUserId(userId);
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
package com.ruoyi.cai.manager;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.ruoyi.cai.domain.User;
|
||||||
|
import com.ruoyi.cai.dto.proxy.BindUserListDTO;
|
||||||
|
import com.ruoyi.cai.dto.proxy.OrderListDTO;
|
||||||
|
import com.ruoyi.cai.dto.proxy.ProxyTotalDTO;
|
||||||
|
import com.ruoyi.cai.mapper.ConsumeLogMapper;
|
||||||
|
import com.ruoyi.cai.mapper.UserInviteMapper;
|
||||||
|
import com.ruoyi.cai.service.UserService;
|
||||||
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class ProxyUserManager {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserService userService;
|
||||||
|
@Resource
|
||||||
|
private ConsumeLogMapper consumeLogMapper;
|
||||||
|
@Resource
|
||||||
|
private UserInviteMapper userInviteMapper;
|
||||||
|
|
||||||
|
public IPage<OrderListDTO> orderLogList(String usercode,PageQuery pageQuery, OrderListDTO query){
|
||||||
|
User user = getUser(usercode);
|
||||||
|
return consumeLogMapper.selectProxyUserOrderPage(pageQuery.build(),user.getUsercode(), query);
|
||||||
|
}
|
||||||
|
|
||||||
|
public IPage<BindUserListDTO> bindUserList(String userCode, PageQuery pageQuery, BindUserListDTO query) {
|
||||||
|
User user = getUser(userCode);
|
||||||
|
return userInviteMapper.selectProxyBindUserPage(pageQuery.build(),user.getId(),query);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProxyTotalDTO total(String userCode) {
|
||||||
|
User user = getUser(userCode);
|
||||||
|
BigDecimal priceSum = consumeLogMapper.sumProxyUserOrder(user.getUsercode());
|
||||||
|
Long userCount = userInviteMapper.countProxyBindUser(user.getId());
|
||||||
|
ProxyTotalDTO proxyTotalDTO = new ProxyTotalDTO();
|
||||||
|
proxyTotalDTO.setBindUserCount(userCount == null ? 0 : userCount);
|
||||||
|
proxyTotalDTO.setPriceSum(priceSum == null ? BigDecimal.ZERO : priceSum);
|
||||||
|
return proxyTotalDTO;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private User getUser(String usercode){
|
||||||
|
User user = userService.getByUserCode(usercode);
|
||||||
|
if(user == null){
|
||||||
|
throw new RuntimeException("您的后台账户未绑定APP账户,请联系管理员操作");
|
||||||
|
}
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,12 @@
|
|||||||
package com.ruoyi.cai.mapper;
|
package com.ruoyi.cai.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.ruoyi.cai.domain.ConsumeLog;
|
import com.ruoyi.cai.domain.ConsumeLog;
|
||||||
|
import com.ruoyi.cai.dto.proxy.OrderListDTO;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 消费记录Mapper接口
|
* 消费记录Mapper接口
|
||||||
@@ -10,5 +15,9 @@ import com.ruoyi.cai.domain.ConsumeLog;
|
|||||||
* @date 2023-12-24
|
* @date 2023-12-24
|
||||||
*/
|
*/
|
||||||
public interface ConsumeLogMapper extends BaseMapper<ConsumeLog> {
|
public interface ConsumeLogMapper extends BaseMapper<ConsumeLog> {
|
||||||
|
IPage<OrderListDTO> selectProxyUserOrderPage(@Param("page") IPage<OrderListDTO> page,
|
||||||
|
@Param("proxyUserCode") String proxyUserCode,
|
||||||
|
@Param("query") OrderListDTO query);
|
||||||
|
|
||||||
|
BigDecimal sumProxyUserOrder(@Param("userCode") String userCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
package com.ruoyi.cai.mapper;
|
package com.ruoyi.cai.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.ruoyi.cai.domain.UserInvite;
|
import com.ruoyi.cai.domain.UserInvite;
|
||||||
import com.ruoyi.cai.dto.admin.vo.UserInviteAdminVo;
|
import com.ruoyi.cai.dto.admin.vo.UserInviteAdminVo;
|
||||||
import com.ruoyi.cai.dto.app.dto.InviteCountDTO;
|
import com.ruoyi.cai.dto.app.dto.InviteCountDTO;
|
||||||
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
|
import com.ruoyi.cai.dto.app.vo.user.UserListVo;
|
||||||
|
import com.ruoyi.cai.dto.proxy.BindUserListDTO;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -24,4 +26,8 @@ public interface UserInviteMapper extends BaseMapper<UserInvite> {
|
|||||||
Page<UserInviteAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserInviteAdminVo bo);
|
Page<UserInviteAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UserInviteAdminVo bo);
|
||||||
|
|
||||||
void incsCoinTotal(@Param("id") Long id, @Param("amount") Long amount);
|
void incsCoinTotal(@Param("id") Long id, @Param("amount") Long amount);
|
||||||
|
|
||||||
|
IPage<BindUserListDTO> selectProxyBindUserPage(Page<Object> build, @Param("userId") Long userId, @Param("query") BindUserListDTO query);
|
||||||
|
|
||||||
|
Long countProxyBindUser(@Param("userId") Long userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,41 +4,33 @@ 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.cai.mapper.ConsumeLogMapper">
|
<mapper namespace="com.ruoyi.cai.mapper.ConsumeLogMapper">
|
||||||
|
|
||||||
<resultMap type="com.ruoyi.cai.domain.ConsumeLog" id="CaiConsumeLogResult">
|
<select id="selectProxyUserOrderPage" resultType="com.ruoyi.cai.dto.proxy.OrderListDTO">
|
||||||
<result property="id" column="id"/>
|
select
|
||||||
<result property="type" column="type"/>
|
t2.price, t2.recharge_name, t2.order_no,t3.nickname, t3.avatar,t3.usercode,
|
||||||
<result property="sourceBusinessId" column="source_business_id"/>
|
t2.pay_time
|
||||||
<result property="amount" column="amount"/>
|
from cai_consume_log t1
|
||||||
<result property="anchorAmount" column="anchor_amount"/>
|
join cai_recharge_order t2 on t1.trace_id = t2.trace_id
|
||||||
<result property="oneAmount" column="one_amount"/>
|
left join cai_user t3 on t2.user_id = t3.id
|
||||||
<result property="twoAmount" column="two_amount"/>
|
where t1.type = 1 and t1.one_user_id = #{proxyUserCode} and t1.`status` = 1
|
||||||
<result property="platformAmount" column="platform_amount"/>
|
<if test="query.usercode != null and query.usercode != ''">
|
||||||
<result property="sourceUserId" column="source_user_id"/>
|
and t3.usercode = #{query.usercode}
|
||||||
<result property="sourceUsercode" column="source_usercode"/>
|
</if>
|
||||||
<result property="sourcePhone" column="source_phone"/>
|
<if test="query.payTimeMin != null ">
|
||||||
<result property="targetUserId" column="target_user_id"/>
|
and t2.pay_time >= #{query.payTimeMin}
|
||||||
<result property="targetUsercode" column="target_usercode"/>
|
</if>
|
||||||
<result property="targetPhone" column="target_phone"/>
|
<if test="query.payTimeMax != null">
|
||||||
<result property="oneUserId" column="one_user_id"/>
|
<![CDATA[
|
||||||
<result property="oneUsercode" column="one_usercode"/>
|
and t2.pay_time <= #{query.payTimeMax}
|
||||||
<result property="onePhone" column="one_phone"/>
|
]]>
|
||||||
<result property="oneRate" column="one_rate"/>
|
</if>
|
||||||
<result property="oneIsUnion" column="one_is_union"/>
|
order by t2.pay_time desc
|
||||||
<result property="twoUserId" column="two_user_id"/>
|
</select>
|
||||||
<result property="twoUsercode" column="two_usercode"/>
|
|
||||||
<result property="twoPhone" column="two_phone"/>
|
|
||||||
<result property="twoRate" column="two_rate"/>
|
|
||||||
<result property="twoIsUnion" column="two_is_union"/>
|
|
||||||
<result property="calculateStatus" column="calculate_status"/>
|
|
||||||
<result property="status" column="status"/>
|
|
||||||
<result property="admin" column="admin"/>
|
|
||||||
<result property="adminId" column="admin_id"/>
|
|
||||||
<result property="adminName" column="admin_name"/>
|
|
||||||
<result property="opId" column="op_id"/>
|
|
||||||
<result property="opName" column="op_name"/>
|
|
||||||
<result property="opCreate" column="op_create"/>
|
|
||||||
<result property="createTime" column="create_time"/>
|
|
||||||
</resultMap>
|
|
||||||
|
|
||||||
|
|
||||||
|
<select id="sumProxyUserOrder" resultType="java.math.BigDecimal">
|
||||||
|
select
|
||||||
|
sum(t2.price)
|
||||||
|
from cai_consume_log t1
|
||||||
|
join cai_recharge_order t2 on t1.trace_id = t2.trace_id
|
||||||
|
where t1.type = 1 and t1.one_user_id = #{userCode} and t1.`status` = 1
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -56,5 +56,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
order by t1.create_time desc
|
order by t1.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectProxyBindUserPage" resultType="com.ruoyi.cai.dto.proxy.BindUserListDTO">
|
||||||
|
select
|
||||||
|
t2.usercode, t2.nickname,t2.avatar,t1.create_time as invite_time,t2.gender
|
||||||
|
from cai_user_invite t1
|
||||||
|
left join cai_user t2 on t1.user_id = t2.id
|
||||||
|
where t1.invite_id = #{userId}
|
||||||
|
<if test="query.usercode != null and query.usercode != ''">
|
||||||
|
and t2.usercode = #{query.usercode}
|
||||||
|
</if>
|
||||||
|
<if test="query.nickname != null and query.nickname != ''">
|
||||||
|
and t2.nickname like concat('%',#{query.nickname},'%')
|
||||||
|
</if>
|
||||||
|
<if test="query.inviteTimeMin != null ">
|
||||||
|
and t1.create_time >= #{query.inviteTimeMin}
|
||||||
|
</if>
|
||||||
|
<if test="query.inviteTimeMax != null">
|
||||||
|
<![CDATA[
|
||||||
|
and t1.create_time <= #{query.inviteTimeMax}
|
||||||
|
]]>
|
||||||
|
</if>
|
||||||
|
order by t1.create_time desc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="countProxyBindUser" resultType="java.lang.Long">
|
||||||
|
select
|
||||||
|
count(1)
|
||||||
|
from cai_user_invite t1
|
||||||
|
where t1.invite_id = #{userId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -158,6 +158,8 @@ public class SysUser extends BaseEntity {
|
|||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Long roleId;
|
private Long roleId;
|
||||||
|
|
||||||
|
private String bindUserCode;
|
||||||
|
|
||||||
public SysUser(Long userId) {
|
public SysUser(Long userId) {
|
||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
<result property="loginDate" column="login_date"/>
|
<result property="loginDate" column="login_date"/>
|
||||||
<result property="createBy" column="create_by"/>
|
<result property="createBy" column="create_by"/>
|
||||||
<result property="createTime" column="create_time"/>
|
<result property="createTime" column="create_time"/>
|
||||||
|
<result property="bindUserCode" column="bind_user_code"/>
|
||||||
<result property="updateBy" column="update_by"/>
|
<result property="updateBy" column="update_by"/>
|
||||||
<result property="updateTime" column="update_time"/>
|
<result property="updateTime" column="update_time"/>
|
||||||
<result property="remark" column="remark"/>
|
<result property="remark" column="remark"/>
|
||||||
@@ -65,6 +66,7 @@
|
|||||||
u.create_by,
|
u.create_by,
|
||||||
u.create_time,
|
u.create_time,
|
||||||
u.remark,
|
u.remark,
|
||||||
|
u.bind_user_code,
|
||||||
d.dept_id,
|
d.dept_id,
|
||||||
d.parent_id,
|
d.parent_id,
|
||||||
d.ancestors,
|
d.ancestors,
|
||||||
@@ -85,7 +87,7 @@
|
|||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectPageUserList" resultMap="SysUserResult">
|
<select id="selectPageUserList" resultMap="SysUserResult">
|
||||||
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
|
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.bind_user_code,
|
||||||
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
|
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
|
||||||
from sys_user u
|
from sys_user u
|
||||||
left join sys_dept d on u.dept_id = d.dept_id
|
left join sys_dept d on u.dept_id = d.dept_id
|
||||||
|
|||||||
Reference in New Issue
Block a user