Commit a5eedbf2 authored by libin's avatar libin

团队

parent 7895b080
package com.github.wxiaoqi.security.admin.bo; package com.github.wxiaoqi.security.admin.bo;
import lombok.Data;
import java.math.BigDecimal;
/** /**
* @author libin * @author libin
* @version 1.0 * @version 1.0
* @description * @description
* @data 2019/7/11 16:30 * @data 2019/7/11 16:30
*/ */
@Data
public class UserIncomeBo { public class UserIncomeBo {
private Integer userId;
private BigDecimal income;
} }
...@@ -5,6 +5,8 @@ import lombok.Builder; ...@@ -5,6 +5,8 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/** /**
* @author libin * @author libin
* @version 1.0 * @version 1.0
...@@ -42,5 +44,5 @@ public class UserTeamMemberBo { ...@@ -42,5 +44,5 @@ public class UserTeamMemberBo {
/** /**
* 收入 * 收入
*/ */
private double income; private BigDecimal income;
} }
package com.github.wxiaoqi.security.admin.entity; package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -109,7 +110,7 @@ public class AppUserSellingWater implements Serializable { ...@@ -109,7 +110,7 @@ public class AppUserSellingWater implements Serializable {
*/ */
@Column(name = "price") @Column(name = "price")
@ApiModelProperty(value = "售价") @ApiModelProperty(value = "售价")
private Long price; private BigDecimal price;
/** /**
* 提成百分比 * 提成百分比
...@@ -138,6 +139,11 @@ public class AppUserSellingWater implements Serializable { ...@@ -138,6 +139,11 @@ public class AppUserSellingWater implements Serializable {
@Column(name = "upd_time") @Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true ) @ApiModelProperty(value = "更新时间", hidden = true )
private Integer updTime; private Integer updTime;
/**
* 所获佣金
*/
private BigDecimal commission;
} }
...@@ -8,13 +8,17 @@ import com.github.wxiaoqi.security.admin.rpc.service.AppPermissionService; ...@@ -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.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.time.Instant; import java.time.Instant;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* ${DESCRIPTION} * ${DESCRIPTION}
...@@ -28,13 +32,14 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -28,13 +32,14 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
@Override @Override
@CacheClear(pre="user{1.userid}") @CacheClear(pre = "user{1.userid}")
public void updateSelectiveById(AppUserDetail entity) { public void updateSelectiveById(AppUserDetail entity) {
super.updateSelectiveById(entity); super.updateSelectiveById(entity);
} }
/** /**
* 根据用户id获取用户信息 * 根据用户id获取用户信息
*
* @param userid * @param userid
* @return * @return
*/ */
...@@ -50,26 +55,28 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -50,26 +55,28 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
/** /**
* 获取用户信息 * 获取用户信息
*
* @param userid * @param userid
* @return * @return
*/ */
@Cache(key="user{1}") @Cache(key = "user{1}")
public AppUserVo getUserInfoById(Integer userid){ public AppUserVo getUserInfoById(Integer userid) {
return mapper.getUserInfo(userid); return mapper.getUserInfo(userid);
} }
/** /**
* 更新用户信息 * 更新用户信息
*
* @param userVo * @param userVo
*/ */
@CacheClear(pre="user{1.userid}") @CacheClear(pre = "user{1.userid}")
public void updUuserInfoById(AppUserVo userVo){ public void updUuserInfoById(AppUserVo userVo) {
AppUserDetail entity =new AppUserDetail(); AppUserDetail entity = new AppUserDetail();
try { try {
BeanUtils.copyProperties(entity,userVo); BeanUtils.copyProperties(entity, userVo);
if(entity!=null){ if (entity != null) {
entity.setUpdHost(AppPermissionService.getIp()); entity.setUpdHost(AppPermissionService.getIp());
entity.setUpdatetime(Instant.now().toEpochMilli()/1000L); entity.setUpdatetime(Instant.now().toEpochMilli() / 1000L);
super.updateSelectiveById(entity); super.updateSelectiveById(entity);
} }
} catch (Exception e) { } catch (Exception e) {
...@@ -80,6 +87,16 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail ...@@ -80,6 +87,16 @@ public class AppUserDetailBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
public Map<Integer, AppUserDetail> findUserIdAndUserDetailMapByMemberIds(List<Integer> memberIds) { 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; ...@@ -14,10 +14,12 @@ import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.time.Instant; import java.time.Instant;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -170,6 +172,11 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> { ...@@ -170,6 +172,11 @@ public class AppUserLoginBiz extends BaseBiz<AppUserLoginMapper, AppUserLogin> {
} }
public Map<Integer, AppUserLogin> findUserIdAndUserLoginMapByMemberIds(List<Integer> memberIds) { 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 ...@@ -154,7 +154,6 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
Example example = new Example(AppUserRelation.class); Example example = new Example(AppUserRelation.class);
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("parentId",userId); criteria.andEqualTo("parentId",userId);
criteria.andEqualTo("isForever",1);
criteria.andEqualTo("isDel",0); criteria.andEqualTo("isDel",0);
return PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.selectByExample(example)); return PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.selectByExample(example));
} }
......
package com.github.wxiaoqi.security.admin.biz; package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.bo.UserIncomeBo;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO; import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater; import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater;
import com.github.wxiaoqi.security.admin.mapper.AppUserSellingWaterMapper; import com.github.wxiaoqi.security.admin.mapper.AppUserSellingWaterMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 拥金明细表 * 拥金明细表
...@@ -25,7 +30,12 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap ...@@ -25,7 +30,12 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
orderWaterDTO.getOrderId(); orderWaterDTO.getOrderId();
} }
public Map<Integer, Double> findMemberIdAndIncome(List<Integer> memberIds) { public Map<Integer, BigDecimal> findMemberIdAndIncomeMapByMemberIds(List<Integer> memberIds) {
return null; 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; package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo; 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.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin; import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.AppUserRelation; 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.github.wxiaoqi.security.common.vo.PageDataVO;
import com.sun.org.apache.regexp.internal.RE;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.temporal.TemporalAccessor; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -53,9 +49,8 @@ public class UserBusinessBiz { ...@@ -53,9 +49,8 @@ public class UserBusinessBiz {
return teamMemberPage; return teamMemberPage;
} }
//根据成员id查询佣金记录
List<Integer> memberIds = teamMemberBos.stream().map(team -> team.getUserId()).collect(Collectors.toList()); 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) { if (memberIdAndIncomeMap == null) {
return teamMemberPage; return teamMemberPage;
} }
...@@ -83,6 +78,11 @@ public class UserBusinessBiz { ...@@ -83,6 +78,11 @@ public class UserBusinessBiz {
userTeamMemberBo.setIncome(memberIdAndIncomeMap.get(appUserRelation.getUserId())); userTeamMemberBo.setIncome(memberIdAndIncomeMap.get(appUserRelation.getUserId()));
userTeamMemberBos.add(userTeamMemberBo); userTeamMemberBos.add(userTeamMemberBo);
} }
teamMemberPage.setPageNum(memberPage.getPageNum());
teamMemberPage.setPageSize(memberPage.getPageSize());
teamMemberPage.setTotalCount(memberPage.getTotalCount());
teamMemberPage.setTotalPage(memberPage.getTotalPage());
teamMemberPage.setData(userTeamMemberBos);
return teamMemberPage; return teamMemberPage;
} }
} }
...@@ -4,11 +4,12 @@ import com.github.wxiaoqi.security.admin.entity.AppUserLogin; ...@@ -4,11 +4,12 @@ import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.AppUserManage; import com.github.wxiaoqi.security.admin.entity.AppUserManage;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update; import org.apache.ibatis.annotations.Update;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List; 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; package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.bo.UserIncomeBo;
import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater; import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 拥金明细表 * 拥金明细表
* *
...@@ -11,5 +15,6 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -11,5 +15,6 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-07-11 14:14:54 * @date 2019-07-11 14:14:54
*/ */
public interface AppUserSellingWaterMapper extends Mapper<AppUserSellingWater> { public interface AppUserSellingWaterMapper extends Mapper<AppUserSellingWater> {
List<UserIncomeBo> accquireIncomeByMemberIds(@Param("memberIds") List<Integer> memberIds);
} }
package com.github.wxiaoqi.security.admin.rest; 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 * @author libin
* @version 1.0 * @version 1.0
* @description * @description
* @data 2019/7/11 17:48 * @data 2019/7/11 17:48
*/ */
@RestController
@RequestMapping("/team")
public class UserBussinessController { 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" ?> <?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" > <!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"> <mapper namespace="com.github.wxiaoqi.security.admin.mapper.AppUserSellingWaterMapper">
<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>
<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> </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