Commit 9faf969e authored by licc's avatar licc

代码提交

parent a3b41cbf
......@@ -2,6 +2,7 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.Actives;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* <p>
......@@ -12,5 +13,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @since 2021-06-15
*/
public interface ActivesMapper extends BaseMapper<Actives> {
/**
* 通过userId,获取用户身份信息
* @param userId 用户id
* @return 用户身份信息
*/
Actives getByUserId(@Param("userId") Long userId);
}
......@@ -2,6 +2,7 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.UsdtOrderDetails;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* <p>
......@@ -12,5 +13,18 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @since 2021-06-15
*/
public interface UsdtOrderDetailsMapper extends BaseMapper<UsdtOrderDetails> {
/**
* 计算该用户卖出金额
* @param userId 用户id
* @return 卖出金额
*/
Double getSaleTotal(@Param("userId") Long userId);
/**
* 计算该用户买入金额
* @param userId 用户id
* @return 买入金额
*/
Double getBuyTotal(@Param("userId") Long userId);
}
package cn.wisenergy.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @author 86187
*/
public interface UserRechargeMapper extends BaseMapper<UserRechargeMapper> {
/**
* 获取该用户充值总金额
* @param userId 用户id
* @return 充值总金额
*/
Double getTotalRecharge(@Param("userId") Long userId);
}
......@@ -2,6 +2,7 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.UserWithdraws;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* <p>
......@@ -12,5 +13,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @since 2021-06-15
*/
public interface UserWithdrawsMapper extends BaseMapper<UserWithdraws> {
/**
* 获取该用户提现总额
* @param userId 用户id
* @return 提现总额
*/
Double getTotalWithdrawal(@Param("userId") Long userId);
}
......@@ -2,7 +2,8 @@ package cn.wisenergy.mapper;
import cn.wisenergy.model.app.Users;
import cn.wisenergy.model.app.dto.UsersInfoDto;
import cn.wisenergy.model.dto.UsersInfoDto;
import cn.wisenergy.model.vo.UserVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -42,6 +43,30 @@ public interface UsersMapper extends BaseMapper<Users> {
*/
int delById(@Param("id") Integer id);
Users getById(@Param("id") Long id);
/**
* 获取所有用户的下一级信息
* @param parentId 父id
* @return
*/
List<UserVo> getLastUser(@Param("parentId") Integer parentId);
/**
* 向下最深层级层级数
* @param id 用户id
* @return 层级数
*/
Double getDownLevel(@Param("id") Long id,@Param("userId") Long userId);
/**
* 伞下人员总和
* @param id 用户id
* @return 伞下人员总和
*/
Integer getTotal(@Param("id") Long id);
/*************** chenqi****************/
......
......@@ -4,15 +4,15 @@
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.wisenergy.model.app.Actives">
<id column="id" property="id" />
<result column="user_id" property="userId" />
<result column="real_name" property="realName" />
<result column="id_number" property="idNumber" />
<result column="image" property="image" />
<result column="status" property="status" />
<result column="note" property="note" />
<result column="created_at" property="createdAt" />
<result column="updated_at" property="updatedAt" />
<id column="id" property="id"/>
<result column="user_id" property="userId"/>
<result column="real_name" property="realName"/>
<result column="id_number" property="idNumber"/>
<result column="image" property="image"/>
<result column="status" property="status"/>
<result column="note" property="note"/>
<result column="created_at" property="createdAt"/>
<result column="updated_at" property="updatedAt"/>
</resultMap>
<!-- 通用查询结果列 -->
......@@ -20,4 +20,18 @@
id, user_id, real_name, id_number, image, status, note, created_at, updated_at
</sql>
<sql id="table">
actives
</sql>
<select id="getByUserId" resultType="cn.wisenergy.model.app.Actives">
select
<include refid="Base_Column_List"/>
from
<include refid="table"/>
<where>
user_id=#{userId}
</where>
</select>
</mapper>
......@@ -28,4 +28,12 @@
id, order_no, user_id, sell_user_id, status, coin_name, trade_num, trade_price, fee, cny, pay_time, pay_name, prove, bank_info, reason, created_at, updated_at
</sql>
<select id="getSaleTotal" resultType="java.lang.Double">
select sum(trade_num) from usdt_order_details where status=3 and sell_user_id=#{userId}
</select>
<select id="getBuyTotal" resultType="java.lang.Double">
select sum(trade_num) from usdt_order_details where status=3 and user_id=#{userId}
</select>
</mapper>
......@@ -95,4 +95,8 @@
<if test="updatedAt != null">and #{updatedAt} &gt;= updated_at</if>
</sql>
<select id="getTotalRecharge" resultType="java.lang.Double">
select sum(amount) from user_recharge where status=1 and user_id=#{userId}
</select>
</mapper>
......@@ -39,4 +39,8 @@
id, withdraws_sn, user_id, currency_id, `name`, `type`, hash, `from`, `to`, bank_name, bank_branch, bank_real_name, bank_card, amount, fee, actual, status, user_ip, user_addr, user_device, review, review_name, review_ip, review_addr, receipt, remark, created_at, updated_at
</sql>
<select id="getTotalWithdrawal" resultType="java.lang.Double">
select sum(amount) from user_withdraws where status=1 and user_id=#{userId}
</select>
</mapper>
......@@ -13,7 +13,7 @@
<result column="fund_pass" property="fundPass"/>
<result column="nickname" property="nickname"/>
<result column="avatar" property="avatar"/>
<result column="invited_code" property="invitedCode"/>
<result column="invite_code" property="inviteCode"/>
<result column="token" property="token"/>
<result column="hash" property="hash"/>
<result column="level" property="level"/>
......@@ -47,7 +47,7 @@
</sql>
<sql id="cols_exclude_id">
parent_id,path,rank,country_code,phone,password,fund_pass,nickname, avatar,invited_code,token,hash,`level`,now_level,
parent_id,path,rank,country_code,phone,password,fund_pass,nickname, avatar,invite_code,token,hash,`level`,now_level,
grade,status,fund_status,active,note,reg_time,reg_ip,reg_address,did,read_time,start_at,expire_at,proxy,is_work,
work_at,created_at,updated_at
</sql>
......@@ -68,7 +68,7 @@
<if test="fundPass != null">fund_pass =#{fundPass},</if>
<if test="nickname != null">nickname =#{nickname},</if>
<if test="avatar != null">avatar =#{avatar},</if>
<if test="inviteCode != null">invited_code = #{inviteCode},</if>
<if test="inviteCode != null">invite_code = #{inviteCode},</if>
<if test="token != null">token = #{token},</if>
<if test="hash != null">hash =#{hash},</if>
<if test="level != null">`level` =#{level},</if>
......@@ -102,7 +102,7 @@
<if test="fundPass != null">and fund_pass =#{fundPass}</if>
<if test="nickname != null">and nickname =#{nickname}</if>
<if test="avatar != null">and avatar =#{avatar}</if>
<if test="inviteCode != null">and invited_code = #{inviteCode}</if>
<if test="inviteCode != null">and invite_code = #{inviteCode}</if>
<if test="token != null">and token = #{token}</if>
<if test="hash != null">and hash =#{hash}</if>
<if test="level != null">and `level` =#{level}</if>
......@@ -153,60 +153,52 @@
where id = #{id}
</delete>
<select id="getLastUser" resultType="cn.wisenergy.model.vo.UserVo">
select u.id as userId,u.parent_id as parentId,a.real_name as realName
from users u left join actives a
on u.id=a.user_id
where u.parent_id =#{parentId}
</select>
<select id="getById" resultType="cn.wisenergy.model.app.Users">
select
<include refid="cols_all"/>
from
<include refid="table"/>
<where>
id=#{id}
</where>
</select>
<!--*****************************************chenqi***************************************-->
<select id="getUsersById" resultType="cn.wisenergy.model.dto.UsersInfoDto">
SELECT u.id,a.real_name,a.id_number,u.phone,u.rank
FROM users u LEFT actives a ON u.id = a.user_id
LEFT user_recharge ur ON u.id = ur.user_id
LEFT user_withdraws uw ON u.id = uw.user_id
<where>
</where>
<!--*****************************************chenqi***************************************-->
<select id="getDownUsersById" resultType="cn.wisenergy.model.app.dto.UsersInfoDto">
SELECT
u.id ,
a.real_name ,
a.id_number ,
u.phone ,
ur.totalRecharge ,
uw.totalWithdrawal,
u.rank
FROM
users u
LEFT JOIN actives a ON u.id = a.user_id
LEFT JOIN (
SELECT
sum(amount) 'totalRecharge',user_id
FROM
user_recharge
WHERE
STATUS = 1
GROUP BY user_id
) ur ON ur.user_id=u.id
LEFT JOIN (
SELECT
sum(amount) 'totalWithdrawal',user_id
FROM
user_withdraws
WHERE
STATUS = 1
GROUP BY user_id
) uw ON uw.user_id=u.id
WHERE
u.path LIKE CONCAT('%,',#{userId},',%')
GROUP BY
u.id
ORDER BY
u.rank
</select>
<select id="getUsersById" resultType="cn.wisenergy.model.app.dto.UsersInfoDto">
SELECT id,
MAX(rank) 'bottom',
count(*)-1 'totalPeople'
FROM
users
WHERE
path LIKE CONCAT('%,',#{userId},',%')
<select id="getDownLevel" resultType="java.lang.Double">
select
((LENGTH(a.sub_path) - LENGTH(REPLACE(a.sub_path,",", ""))) / LENGTH(",")-2) as down_level from
(select id,SUBSTR(path,POSITION(",${id}," IN path)) as sub_path
from users where path LIKE CONCAT('%',#{id},'%')) a ORDER BY down_level desc limit 1
</select>
<select id="getTotal" resultType="java.lang.Integer">
select count(*)
from
<include refid="table"/>
<where>
path LIKE CONCAT('%',#{id},'%')
</where>
</select>
</mapper>
......@@ -192,5 +192,8 @@
<orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.3" level="project" />
<orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.11" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" />
<orderEntry type="library" name="Maven: junit:junit:4.13.2" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />
</component>
</module>
\ No newline at end of file
......@@ -88,8 +88,8 @@ public class Users implements Serializable {
/**
* 邀请码
*/
@ApiModelProperty(name = "invitedCode", value = "邀请码")
private String invitedCode;
@ApiModelProperty(name = "inviteCode", value = "邀请码")
private String inviteCode;
/**
* 登录token
......
package cn.wisenergy.model.app.dto;
package cn.wisenergy.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -14,8 +14,8 @@ import lombok.experimental.Accessors;
@ApiModel(value="userDto类", description="返回dto")
public class UsersInfoDto {
@ApiModelProperty(name = "id", value = "会员ID")
private Long id;
@ApiModelProperty(name = "userId", value = "会员ID")
private Long userId;
@ApiModelProperty(name = "realName",value = "姓名")
private String realName;
......@@ -40,4 +40,10 @@ public class UsersInfoDto {
@ApiModelProperty(name = "totalPeople", value = "伞下人员总和")
private Integer totalPeople;
@ApiModelProperty(name = "buyTotal", value = "otc卖入总额")
private String buyTotal;
@ApiModelProperty(name = "saleTotal", value = "otc卖出总额")
private String saleTotal;
}
package cn.wisenergy.model.vo;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
* @author 86187
*/
@Data
@ApiModel(value = "UserVo")
public class UserVo {
/**
* 用户id
*/
private Long userId;
/**
* 父id
*/
private Integer parentId;
/**
* 用户真实名字
*/
private String realName;
}
package cn.wisenergy.service.app;
import cn.wisenergy.model.app.dto.UsersInfoDto;
import cn.wisenergy.model.dto.UsersInfoDto;
import java.util.List;
......
......@@ -2,6 +2,10 @@ package cn.wisenergy.service.app;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.model.app.Users;
import cn.wisenergy.model.dto.UsersInfoDto;
import cn.wisenergy.model.vo.UserVo;
import java.util.List;
/**
* @author 86187
......@@ -22,15 +26,18 @@ public interface UserService {
Users getById(Long userId);
/**
* 根据手机号查询用户
* 获取用户下一级
*
* @return 树结构
*/
Users queryUsersByPhone(String userId);
R<List<UserVo>> getLastUser(Long userId);
/**
* 根据OpenId查询用户
* 获取用户详细信息
* @param userId 用户id
* @return
*/
Users queryUsersByOpenId(String openId);
R<UsersInfoDto> getByUserInfoById(Long userId);
}
......@@ -4,7 +4,7 @@ import cn.wisenergy.common.enums.RespCodeEnum;
import cn.wisenergy.common.utils.exception.BaseCustomException;
import cn.wisenergy.mapper.UsersMapper;
import cn.wisenergy.model.app.Users;
import cn.wisenergy.model.app.dto.UsersInfoDto;
import cn.wisenergy.model.dto.UsersInfoDto;
import cn.wisenergy.service.app.TestUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
......
package cn.wisenergy.service.app.impl;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.*;
import cn.wisenergy.model.dto.UsersInfoDto;
import cn.wisenergy.model.vo.UserVo;
import cn.wisenergy.service.app.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @author 86187
* @ Description: 用户接口实现
......@@ -21,18 +27,103 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, Users> implements
@Autowired
private UsersMapper usersMapper;
@Autowired
private ActivesMapper activesMapper;
@Autowired
private UserRechargeMapper userRechargeMapper;
@Autowired
private UserWithdrawsMapper withdrawsMapper;
@Autowired
private UsdtOrderDetailsMapper orderDetailsMapper;
@Override
public Users getById(Long userId) {
return null;
}
@Override
public Users queryUsersByPhone(String userId) {
return null;
public R<List<UserVo>> getLastUser(Long userId) {
//用户id为空时,查询最顶级
if (null == userId) {
userId = 1L;
Users users = usersMapper.getById(userId);
UserVo userVo = new UserVo();
userVo.setUserId(users.getId());
userVo.setParentId(users.getParentId());
userVo.setRealName(null);
List<UserVo> list = new ArrayList<>();
list.add(userVo);
return R.ok(list);
}
//id不为空,查询当前用户的下一级
Users user = usersMapper.getById(userId);
List<UserVo> lastList = usersMapper.getLastUser(Integer.valueOf(user.getId().toString()));
return R.ok(lastList);
}
@Override
public Users queryUsersByOpenId(String id) {
return null;
public R<UsersInfoDto> getByUserInfoById(Long userId) {
if (null == userId) {
return R.error("入参不能为空!");
}
UsersInfoDto userDto = new UsersInfoDto();
//1、获取用户信息
Users users = usersMapper.getById(userId);
if (null != users) {
userDto.setUserId(users.getId());
userDto.setPhone(users.getPhone());
userDto.setRank(users.getRank());
}
//2、获取用户身份信息
Actives actives = activesMapper.getByUserId(userId);
if (null != actives) {
userDto.setIdNumber(actives.getIdNumber());
userDto.setRealName(actives.getRealName());
}
//3、向下最深层级层级数
double downLevel = usersMapper.getDownLevel(userId, userId);
userDto.setBottom((int) downLevel);
//4、伞下人员总和
Integer total = usersMapper.getTotal(userId);
if (null != total) {
userDto.setTotalPeople(total);
}
//5、充值总额
Double totalRecharge = userRechargeMapper.getTotalRecharge(userId);
if (null != totalRecharge) {
userDto.setTotalRecharge(String.valueOf(totalRecharge));
}
//6、提现总额
Double totalWithdrawal = withdrawsMapper.getTotalWithdrawal(userId);
if (null != totalWithdrawal) {
userDto.setTotalWithdrawal(String.valueOf(totalWithdrawal));
}
//7、otc卖出总额
Double buyTotal = orderDetailsMapper.getBuyTotal(userId);
if (null != buyTotal) {
userDto.setBuyTotal(String.valueOf(buyTotal));
}
//8、otc买入总额
Double saleTotal = orderDetailsMapper.getSaleTotal(userId);
if (null != saleTotal) {
userDto.setSaleTotal(String.valueOf(saleTotal));
}
return R.ok(userDto);
}
}
......@@ -4,6 +4,8 @@ import cn.wisenergy.common.constant.RedisConsts;
import cn.wisenergy.common.utils.R;
import cn.wisenergy.common.utils.RedisUtils;
import cn.wisenergy.model.app.Users;
import cn.wisenergy.model.dto.UsersInfoDto;
import cn.wisenergy.model.vo.UserVo;
import cn.wisenergy.service.app.UserService;
import cn.wisenergy.web.common.BaseController;
import cn.wisenergy.web.config.JwtConfig;
......@@ -18,6 +20,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
......@@ -73,4 +76,17 @@ public class UserController extends BaseController {
}
@ApiOperation(value = "获取用户顶级/下一级", notes = "获取用户顶级/下一级", httpMethod = "GET")
@ApiImplicitParam(name = "userId", value = "用户id,空值查询顶级,其他查询下一级", dataType = "int")
@GetMapping("/user/getLastUser")
public R<List<UserVo>> getLastUser(Long userId) {
return userService.getLastUser(userId);
}
@ApiOperation(value = "获取用户详细信息", notes = "获取用户详细信息", httpMethod = "GET")
@ApiImplicitParam(name = "userId", value = "用户id", dataType = "int")
@GetMapping("/user/getUserInfo")
public R<UsersInfoDto> getUserInfo(Long userId) {
return userService.getByUserInfoById(userId);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment