Commit 02ca2d89 authored by wuwz's avatar wuwz

增加我的推荐接口

parent 4009caeb
...@@ -33,4 +33,5 @@ public class UserTeamMemberVo { ...@@ -33,4 +33,5 @@ public class UserTeamMemberVo {
private Integer totalPage; private Integer totalPage;
private Integer totalTeams;
} }
...@@ -367,6 +367,18 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A ...@@ -367,6 +367,18 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, A
return sellingWalletPagVo; return sellingWalletPagVo;
} }
//查询我的用户佣金
public SellingWalletPagVo findSellingWaterPageb(Integer divisionType, Integer userId, Integer pageNo, Integer pageSize) {
SellingWalletPagVo sellingWalletPagVo = new SellingWalletPagVo();
PageDataVO<SellingWalletVo> pageDataVO = PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.findSellingWaterPageb(userId, divisionType));
sellingWalletPagVo.setPageNum(pageNo);
sellingWalletPagVo.setPageSize(pageSize);
sellingWalletPagVo.setSellingWaters(pageDataVO.getData());
sellingWalletPagVo.setTotalCount(pageDataVO.getTotalCount().intValue());
sellingWalletPagVo.setTotalPage(pageDataVO.getTotalPage());
return sellingWalletPagVo;
}
public List<Integer> findMemberIdByLeaderIdAndOrdreType(Integer leaderId, int orderType) { public List<Integer> findMemberIdByLeaderIdAndOrdreType(Integer leaderId, int orderType) {
Example example = new Example(AppUserSellingWater.class); Example example = new Example(AppUserSellingWater.class);
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
......
...@@ -7,11 +7,13 @@ import com.github.wxiaoqi.security.admin.entity.AppUserDetail; ...@@ -7,11 +7,13 @@ 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.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 com.xxfc.platform.vehicle.entity.BranchCompany;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; 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 tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
...@@ -40,6 +42,9 @@ public class UserBusinessBiz { ...@@ -40,6 +42,9 @@ public class UserBusinessBiz {
@Autowired @Autowired
private AppUserDetailBiz appUserDetailBiz; private AppUserDetailBiz appUserDetailBiz;
@Autowired
private BranchCompanyBiz branchCompanyBiz;
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();
...@@ -98,6 +103,72 @@ public class UserBusinessBiz { ...@@ -98,6 +103,72 @@ public class UserBusinessBiz {
return userTeamMemberVo; return userTeamMemberVo;
} }
public UserTeamMemberVo findTeamMemberPageByUserId1(Integer userId, Integer pageNo, Integer pageSize) {
UserTeamMemberVo userTeamMemberVo = new UserTeamMemberVo();
//查询推荐的团队
Example example = new Example(BranchCompany.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("inviterAccount",userId);
criteria.andEqualTo("isDel",0);
List<com.github.wxiaoqi.security.admin.entity.BranchCompany> list = branchCompanyBiz.selectByExample(example);
userTeamMemberVo.setTotalTeams(list == null ?0:list.size());
PageDataVO<UserIncomeBo> dataVO = appUserSellingWaterBiz.findMemberIdAndIncomeMapByMemberIds(userId, pageNo, pageSize);
List<UserIncomeBo> data = dataVO.getData();
if (CollectionUtils.isEmpty(data)) {
userTeamMemberVo.setPageNum(pageNo);
userTeamMemberVo.setPageSize(pageSize);
userTeamMemberVo.setTotalCount(0);
userTeamMemberVo.setTotalPage(0);
userTeamMemberVo.setTotalIncome(new BigDecimal(0));
userTeamMemberVo.setUserTeamMemberBos(Collections.EMPTY_LIST);
return userTeamMemberVo;
}
Map<Integer, UserIncomeBo> userIdAndIncomMap = data.stream().collect(Collectors.toMap(UserIncomeBo::getUserId, Function.identity()));
List<Integer> memberIds = data.stream().map(UserIncomeBo::getUserId).collect(Collectors.toList());
Map<Integer, AppUserLogin> userIdAndAppUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(memberIds);
Map<Integer, AppUserDetail> userIdAndAppUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(memberIds);
List<UserTeamMemberBo> userTeamMemberBos = new ArrayList<>();
UserTeamMemberBo userTeamMemberBo;
BigDecimal totalIncome = new BigDecimal(0);
for (Integer memberId : memberIds) {
userTeamMemberBo = new UserTeamMemberBo();
userTeamMemberBo.setLeagueTime(userIdAndIncomMap.get(memberId).getLeagueTime());
userTeamMemberBo.setUserId(memberId);
if (userIdAndAppUserLoginMap != null) {
AppUserLogin appUserLogin = userIdAndAppUserLoginMap.get(memberId);
if (appUserLogin == null) {
continue;
}
userTeamMemberBo.setUserName(appUserLogin.getUsername());
}
if (userIdAndAppUserDetailMap != null) {
AppUserDetail appUserDetail = userIdAndAppUserDetailMap.get(memberId);
userTeamMemberBo.setHeadUrl(appUserDetail == null ? "" : appUserDetail.getHeadimgurl());
userTeamMemberBo.setNickName(appUserDetail == null ? "" : appUserDetail.getNickname());
userTeamMemberBo.setRealName(appUserDetail == null ? "" : appUserDetail.getRealname());
}
BigDecimal income = userIdAndIncomMap.get(memberId).getIncome() == null ? new BigDecimal(0) : userIdAndIncomMap.get(memberId).getIncome();
userTeamMemberBo.setIncome(income);
totalIncome = totalIncome.add(income);
userTeamMemberBos.add(userTeamMemberBo);
}
userTeamMemberBos.sort(Comparator.comparing(UserTeamMemberBo::getIncome).reversed());
userTeamMemberVo.setPageNum(dataVO.getPageNum());
userTeamMemberVo.setPageSize(dataVO.getPageSize());
userTeamMemberVo.setTotalCount(dataVO.getTotalCount().intValue());
userTeamMemberVo.setTotalPage(dataVO.getTotalPage());
userTeamMemberVo.setUserTeamMemberBos(userTeamMemberBos);
userTeamMemberVo.setTotalIncome(totalIncome);
return userTeamMemberVo;
}
public PromoteBO getPromoteBoByUserId(Integer userId) { public PromoteBO getPromoteBoByUserId(Integer userId) {
PromoteBO promoteBO = new PromoteBO(); PromoteBO promoteBO = new PromoteBO();
......
...@@ -34,4 +34,6 @@ public interface AppUserSellingWaterMapper extends Mapper<AppUserSellingWater> { ...@@ -34,4 +34,6 @@ public interface AppUserSellingWaterMapper extends Mapper<AppUserSellingWater> {
@Param("startTime") Long startTime, @Param("startTime") Long startTime,
@Param("endTime") Long endTime); @Param("endTime") Long endTime);
List<AppUserSellingWater> getCommisionByOrder(@Param("orderId") Integer orderId); List<AppUserSellingWater> getCommisionByOrder(@Param("orderId") Integer orderId);
List<SellingWalletVo>findSellingWaterPageb(@Param("userId") Integer userId, @Param("divisionType") Integer divisionType);
} }
...@@ -46,6 +46,17 @@ public class UserBussinessController { ...@@ -46,6 +46,17 @@ public class UserBussinessController {
} }
} }
@GetMapping("/teams1")
public ObjectRestResponse<UserTeamMemberVo> findTeamPage1(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, HttpServletRequest request){
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
UserTeamMemberVo userTeamMemberVo = businessBiz.findTeamMemberPageByUserId1(Integer.valueOf(infoFromToken.getId()), pageNo, pageSize);
return ObjectRestResponse.succ(userTeamMemberVo);
} catch (Exception e) {
throw new BaseException(e);
}
}
@GetMapping("/promote") @GetMapping("/promote")
public ObjectRestResponse<PromoteBO> findPromoteBo(HttpServletRequest request){ public ObjectRestResponse<PromoteBO> findPromoteBo(HttpServletRequest request){
try { try {
......
...@@ -68,6 +68,20 @@ public class UserSellingWaterController { ...@@ -68,6 +68,20 @@ public class UserSellingWaterController {
} }
} }
@GetMapping("/pageb")
public ObjectRestResponse<SellingWalletPagVo> findSellingWaterPageb(@RequestParam(required = false,value = "divisionType") Integer divisionType,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize,
HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
SellingWalletPagVo sellingWalletPagVo = appUserSellingWaterBiz.findSellingWaterPageb(divisionType, Integer.valueOf(infoFromToken.getId()), pageNo, pageSize);
return ObjectRestResponse.succ(sellingWalletPagVo);
} catch (Exception e) {
throw new BaseException(e);
}
}
@PostMapping("app/unauth/order") @PostMapping("app/unauth/order")
public ObjectRestResponse order(@RequestBody OrderWaterDTO orderWaterDTO) { public ObjectRestResponse order(@RequestBody OrderWaterDTO orderWaterDTO) {
try { try {
......
...@@ -189,4 +189,22 @@ FROM ...@@ -189,4 +189,22 @@ FROM
) r ) r
GROUP BY r.user_id GROUP BY r.user_id
</select> </select>
<select id="findSellingWaterPageb" resultType="com.github.wxiaoqi.security.admin.dto.AppUserSellingWaterDTO">
SELECT
wa.user_id AS 'userId',
SUM(wa.commission) as commission ,
wa.crt_time as crtTime,
wa.source_id as sourceId,
ul.username as sourceName
FROM
app_user_selling_water wa
LEFT JOIN base_order_accept_detailed bo ON wa.accept_id = bo.id
LEFT JOIN app_user_login ul ON wa.source_id = ul.id
where wa.waiting = 1
and wa.user_id = #{userId}
and bo.division_type = #{divisionType}
and bo.`status` = 1
GROUP BY wa.source_id
</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