Commit 2712c7bf authored by hezhen's avatar hezhen
parents 89afd892 6a7acb64
...@@ -16,4 +16,6 @@ public class UserIncomeBo { ...@@ -16,4 +16,6 @@ public class UserIncomeBo {
private Integer userId; private Integer userId;
private BigDecimal income; private BigDecimal income;
private Long leagueTime;
} }
...@@ -25,7 +25,10 @@ public class UserTeamMemberBo { ...@@ -25,7 +25,10 @@ public class UserTeamMemberBo {
* 用户名 * 用户名
*/ */
private String userName; private String userName;
/**
* 真实名称
*/
private String realName;
/** /**
* 昵称 * 昵称
*/ */
......
package com.github.wxiaoqi.security.admin.vo; package com.github.wxiaoqi.security.admin.vo;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -57,8 +58,27 @@ public class SellingWalletVo { ...@@ -57,8 +58,27 @@ public class SellingWalletVo {
@ApiModelProperty("'类别:0-正;1-负(退款时)") @ApiModelProperty("'类别:0-正;1-负(退款时)")
private Integer status; private Integer status;
@JSONField(serialize = false)
private Integer sourceId;
@JSONField(serialize = false)
private BigDecimal commissionnm;
/** /**
* 所获佣金 * 所获佣金
*/ */
private BigDecimal commission; private BigDecimal commission;
/**
* 订单状态
*/
private Integer sellerStatus;
/**
* 订单文案
*/
private String statusText;
/**
* 是否显示 默认false
*/
private Boolean isShow;
} }
...@@ -242,8 +242,8 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel ...@@ -242,8 +242,8 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
return AopContext.currentProxy() != null ? (AppUserRelationBiz) AopContext.currentProxy() : this; return AopContext.currentProxy() != null ? (AppUserRelationBiz) AopContext.currentProxy() : this;
} }
public PageDataVO<AppUserRelation> findMemberPageByLeaderId(Integer leaderId, Integer pageNo, Integer pageSize) { public List<AppUserRelation> findMemberPageByLeaderId(Integer leaderId) {
return PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.selectByLeaderId(leaderId)); return mapper.selectByLeaderId(leaderId);
} }
public InviteMemberVo findInviteMemberByActivitState(Integer leaderId, Integer state, Integer page, Integer limit) { public InviteMemberVo findInviteMemberByActivitState(Integer leaderId, Integer state, Integer page, Integer limit) {
......
...@@ -105,22 +105,22 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -105,22 +105,22 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
log.info("购买计算用户拥金----payOrderWater--------userId===" + userId + "---parentId===" + parentId); log.info("购买计算用户拥金----payOrderWater--------userId===" + userId + "---parentId===" + parentId);
Integer positionId = 6; Integer positionId = 6;
Integer level = 0; Integer level = 0;
AppUserPosition position=positionBiz.getExtract(parentId); AppUserPosition position = positionBiz.getExtract(parentId);
if (position!=null){ if (position != null) {
positionId=position.getId(); positionId = position.getId();
} }
AppUserPosition position1=positionBiz.getExtract(userId); AppUserPosition position1 = positionBiz.getExtract(userId);
if (position!=null){ if (position != null) {
level=position1.getLevel(); level = position1.getLevel();
} }
log.info("购买计算用户拥金----payOrderWater--------userId===" + userId + "---positionId===" + positionId+"---level==="+level); log.info("购买计算用户拥金----payOrderWater--------userId===" + userId + "---positionId===" + positionId + "---level===" + level);
if(level!=0){ if (level != 0) {
log.info("购买计算用户拥金----payOrderWater--------userId===" + userId +"----无法享受拥金"); log.info("购买计算用户拥金----payOrderWater--------userId===" + userId + "----无法享受拥金");
return; return;
} }
BigDecimal amount = new BigDecimal("0.00"); BigDecimal amount = new BigDecimal("0.00");
//商品类型 //商品类型
Integer orderType=0; Integer orderType = 0;
for (OrderGoodsDTO goodsDto : goodsDTOList) { for (OrderGoodsDTO goodsDto : goodsDTOList) {
//商品id //商品id
Integer goodId = goodsDto.getGoodId(); Integer goodId = goodsDto.getGoodId();
...@@ -164,11 +164,11 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -164,11 +164,11 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
amount = amount.add(commission); amount = amount.add(commission);
} }
} }
log.info("购买计算用户未入账----payOrderWater--------userId===" + parentId+"----amount===="+amount+"--orderType==="+orderType); log.info("购买计算用户未入账----payOrderWater--------userId===" + parentId + "----amount====" + amount + "--orderType===" + orderType);
if(orderType==3){ if (orderType == 3) {
finishOrderWater(orderWaterDTO); finishOrderWater(orderWaterDTO);
}else if(orderType==1||orderType==2){ } else if (orderType == 1 || orderType == 2) {
myWaterBiz.updMyWalletUnbooked(parentId,amount,1); myWaterBiz.updMyWalletUnbooked(parentId, amount, 1);
} }
} }
...@@ -183,16 +183,16 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -183,16 +183,16 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
List<AppUserSellingWater> list = getWaterList(orderId); List<AppUserSellingWater> list = getWaterList(orderId);
BigDecimal amount = new BigDecimal("0.00"); BigDecimal amount = new BigDecimal("0.00");
Integer userId = 0; Integer userId = 0;
Integer orderType=0; Integer orderType = 0;
if (list.size() > 0) { if (list.size() > 0) {
for (AppUserSellingWater sellingWater : list) { for (AppUserSellingWater sellingWater : list) {
Integer id = sellingWater.getId(); Integer id = sellingWater.getId();
orderType=sellingWater.getOrderType(); orderType = sellingWater.getOrderType();
userId = sellingWater.getUserId(); userId = sellingWater.getUserId();
sellingWater.setWaiting(1); sellingWater.setWaiting(1);
updateById(sellingWater); updateById(sellingWater);
BigDecimal commission = sellingWater.getCommission(); BigDecimal commission = sellingWater.getCommission();
log.info("订单完成计算用户拥金----finishOrderWater----id====" + id + "---commission==" + commission+"----orderType==="+orderType); log.info("订单完成计算用户拥金----finishOrderWater----id====" + id + "---commission==" + commission + "----orderType===" + orderType);
amount = amount.add(commission); amount = amount.add(commission);
} }
...@@ -200,14 +200,14 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -200,14 +200,14 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
int r = amount.compareTo(BigDecimal.ZERO); int r = amount.compareTo(BigDecimal.ZERO);
//更新钱包 //更新钱包
if (r == 1 && userId > 0) { if (r == 1 && userId > 0) {
MyWalletDetail detail=new MyWalletDetail(); MyWalletDetail detail = new MyWalletDetail();
detail.setUserId(userId); detail.setUserId(userId);
detail.setAmount(amount); detail.setAmount(amount);
detail.setCono(orderId); detail.setCono(orderId);
detail.setSource(1); detail.setSource(1);
myWaterBiz.updMyWater(detail); myWaterBiz.updMyWater(detail);
if(orderType==1||orderType==2){ if (orderType == 1 || orderType == 2) {
myWaterBiz.updMyWalletUnbooked(userId,amount,2); myWaterBiz.updMyWalletUnbooked(userId, amount, 2);
} }
} }
...@@ -228,11 +228,11 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -228,11 +228,11 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
BigDecimal amount = new BigDecimal("0.00"); BigDecimal amount = new BigDecimal("0.00");
BigDecimal unbooked = new BigDecimal("0.00"); BigDecimal unbooked = new BigDecimal("0.00");
Integer userId = 0; Integer userId = 0;
Integer orderType=0; Integer orderType = 0;
if (list.size() > 0) { if (list.size() > 0) {
for (AppUserSellingWater sellingWater : list) { for (AppUserSellingWater sellingWater : list) {
Integer id = sellingWater.getId(); Integer id = sellingWater.getId();
orderType=sellingWater.getOrderType(); orderType = sellingWater.getOrderType();
userId = sellingWater.getUserId(); userId = sellingWater.getUserId();
sellingWater.setWaiting(1); sellingWater.setWaiting(1);
updateById(sellingWater); updateById(sellingWater);
...@@ -240,22 +240,22 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -240,22 +240,22 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
sellingWater.setStatus(1); sellingWater.setStatus(1);
insertSelective(sellingWater); insertSelective(sellingWater);
BigDecimal commission = sellingWater.getCommission(); BigDecimal commission = sellingWater.getCommission();
log.info("订单完成计算用户拥金----refundOrderWater----id====" + id + "---commission==" + commission+"---orderType===="+orderType); log.info("订单完成计算用户拥金----refundOrderWater----id====" + id + "---commission==" + commission + "---orderType====" + orderType);
unbooked=unbooked.add(commission); unbooked = unbooked.add(commission);
} }
log.info("订单完成计算用户拥金----refundOrderWater----orderId====" + orderId + "---amount==" + amount+"---unbooked==="+unbooked); log.info("订单完成计算用户拥金----refundOrderWater----orderId====" + orderId + "---amount==" + amount + "---unbooked===" + unbooked);
int r = amount.compareTo(BigDecimal.ZERO); int r = amount.compareTo(BigDecimal.ZERO);
//更新钱包 //更新钱包
if (r == 1 && userId > 0) { if (r == 1 && userId > 0) {
MyWalletDetail detail=new MyWalletDetail(); MyWalletDetail detail = new MyWalletDetail();
detail.setUserId(userId); detail.setUserId(userId);
detail.setAmount(amount); detail.setAmount(amount);
detail.setCono(orderId); detail.setCono(orderId);
detail.setSource(1); detail.setSource(1);
myWaterBiz.updMyWater(detail); myWaterBiz.updMyWater(detail);
} }
if(orderType==1||orderType==2){ if (orderType == 1 || orderType == 2) {
myWaterBiz.updMyWalletUnbooked(userId,unbooked,2); myWaterBiz.updMyWalletUnbooked(userId, unbooked, 2);
} }
} }
...@@ -271,13 +271,8 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -271,13 +271,8 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
} }
public Map<Integer, BigDecimal> findMemberIdAndIncomeMapByMemberIds(List<Integer> memberIds) { public PageDataVO<UserIncomeBo> findMemberIdAndIncomeMapByMemberIds(Integer parentId, Integer pageNo, Integer pageSize) {
Map<Integer, BigDecimal> memberIdAndIncomeMap = new HashMap<>(); return PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.accquireIncomeByMemberIds(parentId));
List<UserIncomeBo> userIncomeBos = mapper.accquireIncomeByMemberIds(memberIds);
if (CollectionUtils.isNotEmpty(userIncomeBos)) {
memberIdAndIncomeMap = userIncomeBos.stream().collect(Collectors.toMap(UserIncomeBo::getUserId, userIncomeBo -> userIncomeBo.getIncome() == null ? new BigDecimal(0) : userIncomeBo.getIncome()));
}
return memberIdAndIncomeMap;
} }
public SellingWalletPagVo findSellingWaterPageByWaiting(Integer waiting, Integer userId, Integer pageNo, Integer pageSize) { public SellingWalletPagVo findSellingWaterPageByWaiting(Integer waiting, Integer userId, Integer pageNo, Integer pageSize) {
...@@ -302,7 +297,7 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -302,7 +297,7 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
return sellingWalletPagVo; return sellingWalletPagVo;
} }
List<Integer> memberIds = appUserSellingWaters.stream().map(AppUserSellingWater::getSourceId).collect(Collectors.toList()); List<Integer> memberIds = appUserSellingWaters.stream().map(AppUserSellingWater::getSourceId).distinct().collect(Collectors.toList());
Map<Integer, AppUserLogin> userIdAndAppUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(memberIds); Map<Integer, AppUserLogin> userIdAndAppUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(memberIds);
Map<Integer, AppUserDetail> userIdAndAppUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(memberIds); Map<Integer, AppUserDetail> userIdAndAppUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(memberIds);
...@@ -348,8 +343,89 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -348,8 +343,89 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
public void deleteByMemberIds(Collection<Integer> userIds) { public void deleteByMemberIds(Collection<Integer> userIds) {
Example example = new Example(AppUserSellingWater.class); Example example = new Example(AppUserSellingWater.class);
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
criteria.orIn("sourceId",userIds); criteria.orIn("sourceId", userIds);
criteria.orIn("userId",userIds); criteria.orIn("userId", userIds);
mapper.deleteByExample(example); mapper.deleteByExample(example);
} }
public SellingWalletPagVo findSellingWaterPageForAppByWaiting(Integer wating, Integer userId, Integer pageNo, Integer pageSize) {
SellingWalletPagVo sellingWalletPagVo = new SellingWalletPagVo();
PageDataVO<SellingWalletVo> pageDataVO = PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.selectSellerWalterByUserIdAndWating(userId, wating));
List<SellingWalletVo> data = pageDataVO.getData();
if (CollectionUtils.isEmpty(data)) {
sellingWalletPagVo.setPageNum(pageNo);
sellingWalletPagVo.setPageSize(pageSize);
sellingWalletPagVo.setSellingWaters(Collections.EMPTY_LIST);
sellingWalletPagVo.setTotalCount(0);
sellingWalletPagVo.setTotalPage(0);
return sellingWalletPagVo;
}
List<Integer> memberIds = data.stream().map(SellingWalletVo::getSourceId).distinct().collect(Collectors.toList());
Map<Integer, AppUserLogin> userIdAndAppUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(memberIds);
Map<Integer, AppUserDetail> userIdAndAppUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(memberIds);
for (SellingWalletVo sellingWalletVo : data) {
String username = userIdAndAppUserLoginMap.get(sellingWalletVo.getSourceId()).getUsername();
sellingWalletVo.setUsername(username);
if (userIdAndAppUserDetailMap != null) {
AppUserDetail appUserDetail = userIdAndAppUserDetailMap.get(sellingWalletVo.getSourceId());
sellingWalletVo.setNickName(appUserDetail == null ? "" : appUserDetail.getNickname());
sellingWalletVo.setHeadUrl(appUserDetail == null ? "" : appUserDetail.getHeadimgurl());
}
//取消单
if (sellingWalletVo.getSellerStatus()==1) {
sellingWalletVo.setSellerStatus(SellerWallterStatus.CANCEL.getCode());
sellingWalletVo.setStatusText(SellerWallterStatus.CANCEL.getText());
sellingWalletVo.setIsShow(true);
}else {
if (sellingWalletVo.getWaiting()==SellerWallterStatus.POST.getCode()){
sellingWalletVo.setSellerStatus(SellerWallterStatus.POST.getCode());
sellingWalletVo.setStatusText(SellerWallterStatus.POST.getText());
sellingWalletVo.setIsShow(false);
}
if (sellingWalletVo.getWaiting()==SellerWallterStatus.NO_POST.getCode()){
sellingWalletVo.setSellerStatus(SellerWallterStatus.NO_POST.getCode());
sellingWalletVo.setStatusText(SellerWallterStatus.NO_POST.getText());
sellingWalletVo.setIsShow(false);
}
}
}
sellingWalletPagVo.setPageNum(pageNo);
sellingWalletPagVo.setPageSize(pageSize);
sellingWalletPagVo.setSellingWaters(data);
sellingWalletPagVo.setTotalCount(pageDataVO.getTotalCount().intValue());
sellingWalletPagVo.setTotalPage(pageDataVO.getTotalPage());
return sellingWalletPagVo;
}
private enum SellerWallterStatus {
CANCEL(2, "取消订单"),
POST(1, "已入账"),
NO_POST(0, "未入账");
private int code;
private String text;
SellerWallterStatus(int code, String text) {
this.code = code;
this.text = text;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
} }
\ 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.PromoteBO; import com.github.wxiaoqi.security.admin.bo.PromoteBO;
import com.github.wxiaoqi.security.admin.bo.UserIncomeBo;
import com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo; import com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo;
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.vo.UserTeamMemberVo; import com.github.wxiaoqi.security.admin.vo.UserTeamMemberVo;
import com.github.wxiaoqi.security.common.vo.PageDataVO; import com.github.wxiaoqi.security.common.vo.PageDataVO;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
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.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -41,11 +43,10 @@ public class UserBusinessBiz { ...@@ -41,11 +43,10 @@ public class UserBusinessBiz {
public UserTeamMemberVo findTeamMemberPageByUserId(Integer userId, Integer pageNo, Integer pageSize) { public UserTeamMemberVo findTeamMemberPageByUserId(Integer userId, Integer pageNo, Integer pageSize) {
UserTeamMemberVo userTeamMemberVo = new UserTeamMemberVo(); UserTeamMemberVo userTeamMemberVo = new UserTeamMemberVo();
//根据用户id去关系表里查询下级
PageDataVO<AppUserRelation> memberPage = appUserRelationBiz.findMemberPageByLeaderId(userId, pageNo, pageSize);
List<AppUserRelation> teamMemberBos = memberPage.getData(); PageDataVO<UserIncomeBo> dataVO = appUserSellingWaterBiz.findMemberIdAndIncomeMapByMemberIds(userId, pageNo, pageSize);
if (CollectionUtils.isEmpty(teamMemberBos)) { List<UserIncomeBo> data = dataVO.getData();
if (CollectionUtils.isEmpty(data)) {
userTeamMemberVo.setPageNum(pageNo); userTeamMemberVo.setPageNum(pageNo);
userTeamMemberVo.setPageSize(pageSize); userTeamMemberVo.setPageSize(pageSize);
userTeamMemberVo.setTotalIncome(new BigDecimal(0)); userTeamMemberVo.setTotalIncome(new BigDecimal(0));
...@@ -53,45 +54,43 @@ public class UserBusinessBiz { ...@@ -53,45 +54,43 @@ public class UserBusinessBiz {
return userTeamMemberVo; return userTeamMemberVo;
} }
List<Integer> memberIds = teamMemberBos.stream().map(team -> team.getUserId()).collect(Collectors.toList()); Map<Integer, UserIncomeBo> userIdAndIncomMap = data.stream().collect(Collectors.toMap(UserIncomeBo::getUserId, Function.identity()));
Map<Integer, BigDecimal> memberIdAndIncomeMap = appUserSellingWaterBiz.findMemberIdAndIncomeMapByMemberIds(memberIds); List<Integer> memberIds = data.stream().map(UserIncomeBo::getUserId).collect(Collectors.toList());
if (memberIdAndIncomeMap == null) { Map<Integer, AppUserLogin> userIdAndAppUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(memberIds);
return userTeamMemberVo;
}
Map<Integer,AppUserLogin> userIdAndAppUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(memberIds);
Map<Integer, AppUserDetail> userIdAndAppUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(memberIds); Map<Integer, AppUserDetail> userIdAndAppUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(memberIds);
List<UserTeamMemberBo> userTeamMemberBos = new ArrayList<>(); List<UserTeamMemberBo> userTeamMemberBos = new ArrayList<>();
UserTeamMemberBo userTeamMemberBo; UserTeamMemberBo userTeamMemberBo;
BigDecimal totalIncome = new BigDecimal(0); BigDecimal totalIncome = new BigDecimal(0);
for (AppUserRelation appUserRelation : teamMemberBos) { for (Integer memberId : memberIds) {
userTeamMemberBo = new UserTeamMemberBo(); userTeamMemberBo = new UserTeamMemberBo();
userTeamMemberBo.setLeagueTime(appUserRelation.getBindTime()); userTeamMemberBo.setLeagueTime(userIdAndIncomMap.get(memberId).getLeagueTime());
userTeamMemberBo.setUserId(appUserRelation.getUserId()); userTeamMemberBo.setUserId(memberId);
if (userIdAndAppUserLoginMap!=null){ if (userIdAndAppUserLoginMap != null) {
AppUserLogin appUserLogin = userIdAndAppUserLoginMap.get(appUserRelation.getUserId()); AppUserLogin appUserLogin = userIdAndAppUserLoginMap.get(memberId);
if (appUserLogin==null){ if (appUserLogin == null) {
continue; continue;
} }
userTeamMemberBo.setUserName(appUserLogin.getUsername()); userTeamMemberBo.setUserName(appUserLogin.getUsername());
} }
if (userIdAndAppUserDetailMap!=null){ if (userIdAndAppUserDetailMap != null) {
AppUserDetail appUserDetail = userIdAndAppUserDetailMap.get(appUserRelation.getUserId()); AppUserDetail appUserDetail = userIdAndAppUserDetailMap.get(memberId);
userTeamMemberBo.setHeadUrl(appUserDetail==null?"":appUserDetail.getHeadimgurl()); userTeamMemberBo.setHeadUrl(appUserDetail == null ? "" : appUserDetail.getHeadimgurl());
userTeamMemberBo.setNickName(appUserDetail==null?"":appUserDetail.getNickname()); userTeamMemberBo.setNickName(appUserDetail == null ? "" : appUserDetail.getNickname());
userTeamMemberBo.setRealName(appUserDetail == null ? "" : appUserDetail.getRealname());
} }
BigDecimal income=memberIdAndIncomeMap.get(appUserRelation.getUserId())==null?new BigDecimal(0):memberIdAndIncomeMap.get(appUserRelation.getUserId()); BigDecimal income = userIdAndIncomMap.get(memberId).getIncome() == null ? new BigDecimal(0) : userIdAndIncomMap.get(memberId).getIncome();
userTeamMemberBo.setIncome(income); userTeamMemberBo.setIncome(income);
totalIncome = totalIncome.add(income); totalIncome = totalIncome.add(income);
userTeamMemberBos.add(userTeamMemberBo); userTeamMemberBos.add(userTeamMemberBo);
} }
userTeamMemberVo.setPageNum(memberPage.getPageNum()); userTeamMemberBos.sort(Comparator.comparing(UserTeamMemberBo::getIncome).reversed());
userTeamMemberVo.setPageSize(memberPage.getPageSize()); userTeamMemberVo.setPageNum(dataVO.getPageNum());
userTeamMemberVo.setTotalCount(memberPage.getTotalCount().intValue()); userTeamMemberVo.setPageSize(dataVO.getPageSize());
userTeamMemberVo.setTotalPage(memberPage.getTotalPage()); userTeamMemberVo.setTotalCount(dataVO.getTotalCount().intValue());
userTeamMemberVo.setTotalPage(dataVO.getTotalPage());
userTeamMemberVo.setUserTeamMemberBos(userTeamMemberBos); userTeamMemberVo.setUserTeamMemberBos(userTeamMemberBos);
userTeamMemberVo.setTotalIncome(totalIncome); userTeamMemberVo.setTotalIncome(totalIncome);
return userTeamMemberVo; return userTeamMemberVo;
...@@ -101,23 +100,25 @@ public class UserBusinessBiz { ...@@ -101,23 +100,25 @@ public class UserBusinessBiz {
PromoteBO promoteBO = new PromoteBO(); PromoteBO promoteBO = new PromoteBO();
Integer leaderId = appUserRelationBiz.findLeaderIdByMemberId(userId); Integer leaderId = appUserRelationBiz.findLeaderIdByMemberId(userId);
Map<Integer,Integer> memberStateAndCountMap = appUserRelationBiz.findMemberSateAndCountMapByLeaderId(userId); Map<Integer, Integer> memberStateAndCountMap = appUserRelationBiz.findMemberSateAndCountMapByLeaderId(userId);
if (leaderId != 0) { if (leaderId != 0) {
Map<Integer, AppUserLogin> userIdAndUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(Arrays.asList(leaderId)); Map<Integer, AppUserLogin> userIdAndUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(Arrays.asList(leaderId));
Map<Integer, AppUserDetail> userIdAndUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(Arrays.asList(leaderId)); Map<Integer, AppUserDetail> userIdAndUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(Arrays.asList(leaderId));
if (!userIdAndUserLoginMap.isEmpty()){ if (!userIdAndUserLoginMap.isEmpty()) {
promoteBO.setLeaderUsername(userIdAndUserLoginMap.get(leaderId).getUsername()); promoteBO.setLeaderUsername(userIdAndUserLoginMap.get(leaderId).getUsername());
} }
if (!userIdAndUserDetailMap.isEmpty()){ if (!userIdAndUserDetailMap.isEmpty()) {
promoteBO.setLeaderHeadUrl(userIdAndUserDetailMap.get(leaderId).getHeadimgurl()); AppUserDetail appUserDetail = userIdAndUserDetailMap.get(leaderId);
promoteBO.setLeaderHeadUrl(StringUtils.isEmpty(appUserDetail.getHeadimgurl()) ? "" : appUserDetail.getHeadimgurl());
promoteBO.setLeaderUsername(StringUtils.isEmpty(appUserDetail.getRealname()) ? promoteBO.getLeaderUsername() : appUserDetail.getRealname());
} }
} }
promoteBO.setInviteNumber(memberStateAndCountMap.get(0)); promoteBO.setInviteNumber(memberStateAndCountMap.get(0));
promoteBO.setActivatedNumber(memberStateAndCountMap.get(1)); promoteBO.setActivatedNumber(memberStateAndCountMap.get(1));
BigDecimal totalIncome = appUserSellingWaterBiz.selectTotalIncomeByUserId(userId); BigDecimal totalIncome = appUserSellingWaterBiz.selectTotalIncomeByUserId(userId);
promoteBO.setTotalIncome(totalIncome==null?new BigDecimal(0):totalIncome); promoteBO.setTotalIncome(totalIncome == null ? new BigDecimal(0) : totalIncome);
return promoteBO; return promoteBO;
} }
} }
...@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.mapper; ...@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.bo.UserIncomeBo; 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 com.github.wxiaoqi.security.admin.vo.SellingWalletVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
...@@ -17,7 +18,9 @@ import java.util.List; ...@@ -17,7 +18,9 @@ import java.util.List;
*/ */
public interface AppUserSellingWaterMapper extends Mapper<AppUserSellingWater> { public interface AppUserSellingWaterMapper extends Mapper<AppUserSellingWater> {
List<UserIncomeBo> accquireIncomeByMemberIds(@Param("memberIds") List<Integer> memberIds); List<UserIncomeBo> accquireIncomeByMemberIds(@Param("parentId") Integer parentId);
BigDecimal selectTotalIncomeByUserId(@Param("userId") Integer userId); BigDecimal selectTotalIncomeByUserId(@Param("userId") Integer userId);
List<SellingWalletVo> selectSellerWalterByUserIdAndWating(@Param("userId") Integer userId, @Param("wating") Integer wating);
} }
...@@ -2,14 +2,12 @@ package com.github.wxiaoqi.security.admin.rest; ...@@ -2,14 +2,12 @@ package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.UserBusinessBiz; import com.github.wxiaoqi.security.admin.biz.UserBusinessBiz;
import com.github.wxiaoqi.security.admin.bo.PromoteBO; import com.github.wxiaoqi.security.admin.bo.PromoteBO;
import com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo;
import com.github.wxiaoqi.security.admin.vo.UserTeamMemberVo; import com.github.wxiaoqi.security.admin.vo.UserTeamMemberVo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig; import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil; import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo; import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; 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.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
......
...@@ -48,4 +48,17 @@ public class UserSellingWaterController { ...@@ -48,4 +48,17 @@ public class UserSellingWaterController {
} }
} }
@GetMapping("/pagea")
public ObjectRestResponse<SellingWalletPagVo> findSellingWaterPagea(@RequestParam(required = false,value = "type") Integer wating,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize,
HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
SellingWalletPagVo sellingWalletPagVo = appUserSellingWaterBiz.findSellingWaterPageForAppByWaiting(wating, Integer.valueOf(infoFromToken.getId()), pageNo, pageSize);
return ObjectRestResponse.succ(sellingWalletPagVo);
} catch (Exception e) {
throw new BaseException(e);
}
}
} }
...@@ -4,19 +4,24 @@ ...@@ -4,19 +4,24 @@
<select id="accquireIncomeByMemberIds" resultType="com.github.wxiaoqi.security.admin.bo.UserIncomeBo"> <select id="accquireIncomeByMemberIds" resultType="com.github.wxiaoqi.security.admin.bo.UserIncomeBo">
SELECT DISTINCT SELECT
`source_id`as userId, aur.user_id,
IFNULL((( SELECT SUM(commission) FROM `app_user_selling_water` WHERE source_id=ausw.source_id AND `status` = 0 AND aur.bind_time as `leagueTime`,
`waiting` = 1 ) IFNULL(ausww.income,0) AS `income`
- ( SELECT SUM(commission) FROM `app_user_selling_water` WHERE source_id=ausw.source_id AND `status` = 1 AND FROM
`waiting` = 1 )),0) as `income` `app_user_relation` AS `aur`
FROM LEFT JOIN (SELECT DISTINCT
`app_user_selling_water` as ausw `source_id` AS userId,
WHERE IFNULL(
source_id in (
<foreach collection="memberIds" item="memberId" open="(" close=")" separator=","> ( SELECT IFNULL(SUM( commission ),0) FROM `app_user_selling_water` WHERE source_id = ausw.source_id AND `status` = 0 ) - ( SELECT IFNULL(SUM( commission ),0) FROM `app_user_selling_water` WHERE source_id = ausw.source_id AND `status` = 1 )
#{memberId} ),
</foreach> 0
) AS `income`
FROM
`app_user_selling_water` AS ausw) AS ausww ON ausww.userId=aur.user_id
WHERE aur.parent_id=#{parentId}
ORDER BY ausww.`income` DESC
</select> </select>
<select id="selectTotalIncomeByUserId" resultType="java.math.BigDecimal"> <select id="selectTotalIncomeByUserId" resultType="java.math.BigDecimal">
...@@ -26,4 +31,57 @@ FROM ...@@ -26,4 +31,57 @@ FROM
( SELECT IFNULL(SUM( commission ),0) AS upIncome FROM `app_user_selling_water` WHERE STATUS = 0 AND `user_id` = #{userId} ) AS `auswu`, ( SELECT IFNULL(SUM( commission ),0) AS upIncome FROM `app_user_selling_water` WHERE STATUS = 0 AND `user_id` = #{userId} ) AS `auswu`,
( SELECT IFNULL(SUM( commission ),0) AS `dowIncome` FROM `app_user_selling_water` WHERE STATUS = 1 AND `user_id` = #{userId} ) AS `auswd`; ( SELECT IFNULL(SUM( commission ),0) AS `dowIncome` FROM `app_user_selling_water` WHERE STATUS = 1 AND `user_id` = #{userId} ) AS `auswd`;
</select> </select>
<select id="selectSellerWalterByUserIdAndWating" resultType="com.github.wxiaoqi.security.admin.vo.SellingWalletVo">
<!--
SELECT
e.*,
f.order_no AS `f_order`,
f.outcommission,
( IFNULL( e.incommission, 0 ) - IFNULL( f.outcommission, 0 ) ) AS `final_commission` ,
f.sellerStatus,
f.cancelTime
FROM
(
SELECT
a.*,
b.incommission
FROM
( SELECT * FROM `app_user_selling_water` WHERE STATUS = 0 and user_id=313 ) AS `a`
INNER JOIN ( SELECT order_no, IFNULL( SUM( commission ), 0 ) AS `incommission` FROM `app_user_selling_water` WHERE `status` = 0 and user_id=313 GROUP BY `order_no` ) AS `b` ON a.order_no = b.order_no
) AS `e`
LEFT JOIN (
SELECT
c.order_no,
d.outcommission,
1 AS `sellerStatus`,
c.crt_time AS `cancelTime`
FROM
( SELECT * FROM `app_user_selling_water` WHERE STATUS = 1 and user_id=313 ) AS `c`
INNER JOIN ( SELECT order_no,IFNULL( SUM( commission ), 0 ) AS `outcommission` FROM `app_user_selling_water` WHERE `status` = 1 and user_id=313 GROUP BY `order_no` ) AS `d` ON c.order_no = d.order_no
) AS `f` ON e.order_no = f.order_no
-->
SELECT w.*,o.commission as commission ,o.type AS `sellerStatus` FROM (
SELECT t.order_no,IFNULL(SUM(t.z),0)-IFNULL(SUM(t.f),0) as commission,IF(SUM(t.f)>0,'1',0)as type FROM (
SELECT order_no,commission as z,0 as f FROM app_user_selling_water WHERE user_id=#{userId}
AND `status`=0 and commission>0
UNION
SELECT order_no,0 as z,commission as f FROM app_user_selling_water WHERE user_id=#{userId}
AND `status`=1 and commission>0
) as t
GROUP BY t.order_no
) o LEFT JOIN ( SELECT order_no,user_id,source_id,order_type,img,price,title,waiting,`crt_time` FROM
app_user_selling_water WHERE
id IN ( SELECT MAX( id ) FROM app_user_selling_water GROUP BY order_no)) w
ON o.order_no=w.order_no
where 1=1
<if test="wating!=null">
and `waiting`= #{wating} and <![CDATA[
o.`type`<>1 ]]>
</if>
ORDER BY `crt_time`
</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