Commit a5eedbf2 authored by libin's avatar libin

团队

parent 7895b080
package com.github.wxiaoqi.security.admin.bo;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/11 16:30
*/
@Data
public class UserIncomeBo {
private Integer userId;
private BigDecimal income;
}
......@@ -5,6 +5,8 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
......@@ -42,5 +44,5 @@ public class UserTeamMemberBo {
/**
* 收入
*/
private double income;
private BigDecimal income;
}
package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
......@@ -109,7 +110,7 @@ public class AppUserSellingWater implements Serializable {
*/
@Column(name = "price")
@ApiModelProperty(value = "售价")
private Long price;
private BigDecimal price;
/**
* 提成百分比
......@@ -138,6 +139,11 @@ public class AppUserSellingWater implements Serializable {
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Integer updTime;
/**
* 所获佣金
*/
private BigDecimal commission;
}
......@@ -8,13 +8,17 @@ import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.time.Instant;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* ${DESCRIPTION}
......@@ -28,13 +32,14 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
@Override
@CacheClear(pre="user{1.userid}")
@CacheClear(pre = "user{1.userid}")
public void updateSelectiveById(AppUserDetail entity) {
super.updateSelectiveById(entity);
}
/**
* 根据用户id获取用户信息
*
* @param userid
* @return
*/
......@@ -50,26 +55,28 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
/**
* 获取用户信息
*
* @param userid
* @return
*/
@Cache(key="user{1}")
public AppUserVo getUserInfoById(Integer userid){
@Cache(key = "user{1}")
public AppUserVo getUserInfoById(Integer userid) {
return mapper.getUserInfo(userid);
}
/**
* 更新用户信息
*
* @param userVo
*/
@CacheClear(pre="user{1.userid}")
public void updUuserInfoById(AppUserVo userVo){
AppUserDetail entity =new AppUserDetail();
@CacheClear(pre = "user{1.userid}")
public void updUuserInfoById(AppUserVo userVo) {
AppUserDetail entity = new AppUserDetail();
try {
BeanUtils.copyProperties(entity,userVo);
if(entity!=null){
entity.setUpdHost(AppPermissionService.getIp());
entity.setUpdatetime(Instant.now().toEpochMilli()/1000L);
BeanUtils.copyProperties(entity, userVo);
if (entity != null) {
entity.setUpdHost(AppPermissionService.getIp());
entity.setUpdatetime(Instant.now().toEpochMilli() / 1000L);
super.updateSelectiveById(entity);
}
} catch (Exception e) {
......@@ -80,6 +87,16 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
public Map<Integer, AppUserDetail> findUserIdAndUserDetailMapByMemberIds(List<Integer> memberIds) {
return null;
Map<Integer, AppUserDetail> userIdAndAppUserDetailMap = new HashMap<>();
Example example = new Example(AppUserDetail.class);
Example.Criteria criteria = example.createCriteria();
criteria.andIn("userid", memberIds);
List<AppUserDetail> appUserDetails = mapper.selectByExample(example);
if (CollectionUtils.isNotEmpty(appUserDetails)){
userIdAndAppUserDetailMap = appUserDetails.stream().collect(Collectors.toMap(AppUserDetail::getUserid, Function.identity()));
}
return userIdAndAppUserDetailMap;
}
}
......@@ -14,10 +14,12 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.time.Instant;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
......@@ -170,6 +172,11 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
}
public Map<Integer, AppUserLogin> findUserIdAndUserLoginMapByMemberIds(List<Integer> memberIds) {
return null;
Map<Integer,AppUserLogin> userIdAndAppUserLoginMap = new HashMap<>();
List<AppUserLogin> appUserLogins = mapper.selectByIdList(memberIds);
if (CollectionUtils.isNotEmpty(appUserLogins)){
userIdAndAppUserLoginMap = appUserLogins.stream().collect(Collectors.toMap(AppUserLogin::getId, Function.identity()));
}
return userIdAndAppUserLoginMap;
}
}
......@@ -154,7 +154,6 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
Example example = new Example(AppUserRelation.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("parentId",userId);
criteria.andEqualTo("isForever",1);
criteria.andEqualTo("isDel",0);
return PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.selectByExample(example));
}
......
package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.bo.UserIncomeBo;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater;
import com.github.wxiaoqi.security.admin.mapper.AppUserSellingWaterMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 拥金明细表
......@@ -25,7 +30,12 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
orderWaterDTO.getOrderId();
}
public Map<Integer, Double> findMemberIdAndIncome(List<Integer> memberIds) {
return null;
public Map<Integer, BigDecimal> findMemberIdAndIncomeMapByMemberIds(List<Integer> memberIds) {
Map<Integer,BigDecimal> memberIdAndIncomeMap = new HashMap<>();
List<UserIncomeBo> userIncomeBos = mapper.accquireIncomeByMemberIds(memberIds);
if (CollectionUtils.isNotEmpty(userIncomeBos)){
memberIdAndIncomeMap = userIncomeBos.stream().collect(Collectors.toMap(UserIncomeBo::getUserId,UserIncomeBo::getIncome));
}
return memberIdAndIncomeMap;
}
}
\ No newline at end of file
package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo;
import com.github.wxiaoqi.security.admin.dto.AppUserSellingWaterDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.AppUserRelation;
import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.sun.org.apache.regexp.internal.RE;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.temporal.TemporalAccessor;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
......@@ -53,9 +49,8 @@ public class UserBusinessBiz {
return teamMemberPage;
}
//根据成员id查询佣金记录
List<Integer> memberIds = teamMemberBos.stream().map(team -> team.getUserId()).collect(Collectors.toList());
Map<Integer, Double> memberIdAndIncomeMap = appUserSellingWaterBiz.findMemberIdAndIncome(memberIds);
Map<Integer, BigDecimal> memberIdAndIncomeMap = appUserSellingWaterBiz.findMemberIdAndIncomeMapByMemberIds(memberIds);
if (memberIdAndIncomeMap == null) {
return teamMemberPage;
}
......@@ -83,6 +78,11 @@ public class UserBusinessBiz {
userTeamMemberBo.setIncome(memberIdAndIncomeMap.get(appUserRelation.getUserId()));
userTeamMemberBos.add(userTeamMemberBo);
}
teamMemberPage.setPageNum(memberPage.getPageNum());
teamMemberPage.setPageSize(memberPage.getPageSize());
teamMemberPage.setTotalCount(memberPage.getTotalCount());
teamMemberPage.setTotalPage(memberPage.getTotalPage());
teamMemberPage.setData(userTeamMemberBos);
return teamMemberPage;
}
}
......@@ -4,11 +4,12 @@ import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.AppUserManage;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface AppUserLoginMapper extends Mapper<AppUserLogin> {
public interface AppUserLoginMapper extends Mapper<AppUserLogin>, SelectByIdListMapper<AppUserLogin,Integer> {
/**
......
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.bo.UserIncomeBo;
import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/**
* 拥金明细表
*
......@@ -11,5 +15,6 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-07-11 14:14:54
*/
public interface AppUserSellingWaterMapper extends Mapper<AppUserSellingWater> {
List<UserIncomeBo> accquireIncomeByMemberIds(@Param("memberIds") List<Integer> memberIds);
}
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.UserBusinessBiz;
import com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/11 17:48
*/
@RestController
@RequestMapping("/team")
public class UserBussinessController {
@Autowired
private UserBusinessBiz businessBiz;
@GetMapping("/teams")
public ObjectRestResponse<PageDataVO<UserTeamMemberBo>> sda(@RequestParam("userId") Integer userId,@RequestParam("pageNo") Integer pageNo,@RequestParam("pageSize") Integer pageSize){
PageDataVO<UserTeamMemberBo> teamMemberBoPageDataVO = businessBiz.findTeamMemberPageByUserId(userId, pageNo, pageSize);
return ObjectRestResponse.succ(teamMemberBoPageDataVO);
}
}
<?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.github.wxiaoqi.security.admin.mapper.AppUserMapper">
<insert id="insertAppUserGroup">
insert into app_group_member(user_id, group_id)
VALUES
<trim suffixOverrides=",">
<foreach collection="groups" item="groupId">
(#{appUserId}, #{groupId}),
</foreach>
</trim>
</insert>
<delete id="deleteAppUserGroup">
delete from app_group_member
where user_id = #{appUserId}
</delete>
<select id="selectGroupsByAppUserId" resultType="com.github.wxiaoqi.security.admin.entity.Group">
select *
from base_group bg
right join app_group_member agm on bg.id = agm.group_id
where user_id = #{id}
</select>
<mapper namespace="com.github.wxiaoqi.security.admin.mapper.AppUserSellingWaterMapper">
<select id="accquireIncomeByMemberIds" resultType="com.github.wxiaoqi.security.admin.bo.UserIncomeBo">
SELECT DISTINCT
source_id,
(( SELECT SUM(commission) FROM `app_user_selling_water` WHERE source_id=ausw.source_id AND `status` = 0 AND `waiting` = 1 )
- ( SELECT SUM(commission) FROM `app_user_selling_water` WHERE source_id=ausw.source_id AND `status` = 1 AND `waiting` = 1 )) as `income`
FROM
`app_user_selling_water` as ausw
WHERE
source_id in
<foreach collection="memberIds" item="memberId" open="(" close=")" separator=",">
#{memberId}
</foreach>
</select>
</mapper>
\ No newline at end of file
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