Commit c132733e authored by libin's avatar libin

会员

parent 2e4c4a80
...@@ -24,7 +24,7 @@ public class UserTeamMemberBo { ...@@ -24,7 +24,7 @@ public class UserTeamMemberBo {
/** /**
* 用户名 * 用户名
*/ */
private String userNamem; private String userName;
/** /**
* 昵称 * 昵称
......
package com.github.wxiaoqi.security.admin.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/12 8:42
*/
@Data
public class WalletDTO {
@ApiModelProperty(value = "id")
private Long id;
/**
* 用户ID
*/
@ApiModelProperty("用户ID")
private Integer userId;
/**
* 余额(分)
*/
@ApiModelProperty(value = "余额(元)")
private BigDecimal balance;
/**
* 已提现金额
*/
@ApiModelProperty(value = "已提现金额")
private BigDecimal withdrawals;
/**
* 进账总额(元)
*/
@ApiModelProperty(value = "进账总额(元)")
private BigDecimal totalAmount;
/**
* 进账总额(分)
*/
@ApiModelProperty(value = "进账总额(元)")
private BigDecimal todayAmount;
/**
* 未入账金额
*/
@ApiModelProperty(value = "未入账金额")
private BigDecimal unbooked;
/**
* 是否冻结:0-正常,1-冻结
*/
@ApiModelProperty(value = "是否冻结:0-正常,1-冻结")
private Integer isFrozen;
/**
* 最后进账时间
*/
@ApiModelProperty(value = "最后进账时间")
private Long lastIntime;
}
package com.github.wxiaoqi.security.admin.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/12 9:20
*/
@Data
public class AppletWalletVo {
/**
* 用户ID
*/
@ApiModelProperty("用户ID")
private Integer userId;
/**
* 余额(元)
*/
@ApiModelProperty(value = "余额(元)")
private BigDecimal balance;
/**
* 进账总额(元)
*/
@ApiModelProperty(value = "进账总额(元)")
private BigDecimal totalAmount;
/**
* 今日收益(元)
*/
@ApiModelProperty(value = "今日收益(元)")
private BigDecimal todayAmount;
}
package com.github.wxiaoqi.security.admin.vo;
import com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description 用户的团队成员
* @data 2019/7/11 14:46
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserTeamMemberVo {
private BigDecimal totalIncome;
private List<UserTeamMemberBo> userTeamMemberBos;
private Integer pageNo;
private Integer pageSize;
private Integer totalCount;
private Integer totalPage;
}
package com.github.wxiaoqi.security.admin.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/12 9:20
*/
@Data
public class WalletVo {
@ApiModelProperty(value = "id")
private Long id;
/**
* 用户ID
*/
@ApiModelProperty("用户ID")
private Integer userId;
/**
* 余额(元)
*/
@ApiModelProperty(value = "余额(元)")
private BigDecimal balance;
/**
* 已提现金额
*/
@ApiModelProperty(value = "已提现金额")
private BigDecimal withdrawals;
/**
* 进账总额(元)
*/
@ApiModelProperty(value = "进账总额(元)")
private BigDecimal totalAmount;
/**
* 进账总额(分)
*/
@ApiModelProperty(value = "进账总额(元)")
private BigDecimal todayAmount;
/**
* 未入账金额
*/
@ApiModelProperty(value = "未入账金额")
private BigDecimal unbooked;
/**
* 是否冻结:0-正常,1-冻结
*/
@ApiModelProperty(value = "是否冻结:0-正常,1-冻结")
private Integer isFrozen;
/**
* 最后进账时间
*/
@ApiModelProperty(value = "最后进账时间")
private Long lastIntime;
}
package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.entity.MyWallet;
import com.github.wxiaoqi.security.admin.mapper.MyWalletMapper;
import com.github.wxiaoqi.security.admin.vo.AppletWalletVo;
import com.github.wxiaoqi.security.admin.vo.WalletVo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/12 9:18
*/
@Transactional
@Service
public class MyWalletBiz extends BaseBiz<MyWalletMapper, MyWallet> {
public AppletWalletVo findMyWallet(Integer userId){
AppletWalletVo appletWalletVo = new AppletWalletVo();
Example example = new Example(MyWallet.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId",userId);
List<MyWallet> wallets = mapper.selectByExample(example);
MyWallet myWallet = wallets.get(0);
BeanUtils.copyProperties(myWallet,appletWalletVo);
return appletWalletVo;
}
}
...@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo; ...@@ -4,6 +4,7 @@ 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.entity.AppUserRelation;
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.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -38,21 +39,21 @@ public class UserBusinessBiz { ...@@ -38,21 +39,21 @@ public class UserBusinessBiz {
@Autowired @Autowired
private AppUserDetailBiz appUserDetailBiz; private AppUserDetailBiz appUserDetailBiz;
public PageDataVO<UserTeamMemberBo> findTeamMemberPageByUserId(Integer userId, Integer pageNo, Integer pageSize) { public UserTeamMemberVo findTeamMemberPageByUserId(Integer userId, Integer pageNo, Integer pageSize) {
PageDataVO<UserTeamMemberBo> teamMemberPage = new PageDataVO<>(); UserTeamMemberVo userTeamMemberVo = new UserTeamMemberVo();
//根据用户id去关系表里查询下级 //根据用户id去关系表里查询下级
PageDataVO<AppUserRelation> memberPage = appUserRelationBiz.findMemberPageByLeaderId(userId, pageNo, pageSize); PageDataVO<AppUserRelation> memberPage = appUserRelationBiz.findMemberPageByLeaderId(userId, pageNo, pageSize);
List<AppUserRelation> teamMemberBos = memberPage.getData(); List<AppUserRelation> teamMemberBos = memberPage.getData();
if (CollectionUtils.isEmpty(teamMemberBos)) { if (CollectionUtils.isEmpty(teamMemberBos)) {
return teamMemberPage; return userTeamMemberVo;
} }
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, BigDecimal> memberIdAndIncomeMap = appUserSellingWaterBiz.findMemberIdAndIncomeMapByMemberIds(memberIds); Map<Integer, BigDecimal> memberIdAndIncomeMap = appUserSellingWaterBiz.findMemberIdAndIncomeMapByMemberIds(memberIds);
if (memberIdAndIncomeMap == null) { if (memberIdAndIncomeMap == null) {
return teamMemberPage; return userTeamMemberVo;
} }
Map<Integer,AppUserLogin> userIdAndAppUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(memberIds); Map<Integer,AppUserLogin> userIdAndAppUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(memberIds);
...@@ -60,6 +61,7 @@ public class UserBusinessBiz { ...@@ -60,6 +61,7 @@ public class UserBusinessBiz {
List<UserTeamMemberBo> userTeamMemberBos = new ArrayList<>(); List<UserTeamMemberBo> userTeamMemberBos = new ArrayList<>();
UserTeamMemberBo userTeamMemberBo; UserTeamMemberBo userTeamMemberBo;
BigDecimal totalIncome = new BigDecimal(0);
for (AppUserRelation appUserRelation : teamMemberBos) { for (AppUserRelation appUserRelation : teamMemberBos) {
userTeamMemberBo = new UserTeamMemberBo(); userTeamMemberBo = new UserTeamMemberBo();
...@@ -68,7 +70,7 @@ public class UserBusinessBiz { ...@@ -68,7 +70,7 @@ public class UserBusinessBiz {
if (userIdAndAppUserLoginMap!=null){ if (userIdAndAppUserLoginMap!=null){
AppUserLogin appUserLogin = userIdAndAppUserLoginMap.get(appUserRelation.getUserId()); AppUserLogin appUserLogin = userIdAndAppUserLoginMap.get(appUserRelation.getUserId());
userTeamMemberBo.setUserNamem(appUserLogin.getUsername()); userTeamMemberBo.setUserName(appUserLogin.getUsername());
} }
if (UserIdAndAppUserDetailMap!=null){ if (UserIdAndAppUserDetailMap!=null){
AppUserDetail appUserDetail = UserIdAndAppUserDetailMap.get(appUserRelation.getUserId()); AppUserDetail appUserDetail = UserIdAndAppUserDetailMap.get(appUserRelation.getUserId());
...@@ -76,13 +78,15 @@ public class UserBusinessBiz { ...@@ -76,13 +78,15 @@ public class UserBusinessBiz {
userTeamMemberBo.setNickName(appUserDetail==null?"":appUserDetail.getNickname()); userTeamMemberBo.setNickName(appUserDetail==null?"":appUserDetail.getNickname());
} }
userTeamMemberBo.setIncome(memberIdAndIncomeMap.get(appUserRelation.getUserId())); userTeamMemberBo.setIncome(memberIdAndIncomeMap.get(appUserRelation.getUserId()));
totalIncome = totalIncome.add(userTeamMemberBo.getIncome());
userTeamMemberBos.add(userTeamMemberBo); userTeamMemberBos.add(userTeamMemberBo);
} }
teamMemberPage.setPageNum(memberPage.getPageNum()); userTeamMemberVo.setPageNo(memberPage.getPageNum());
teamMemberPage.setPageSize(memberPage.getPageSize()); userTeamMemberVo.setPageSize(memberPage.getPageSize());
teamMemberPage.setTotalCount(memberPage.getTotalCount()); userTeamMemberVo.setTotalCount(memberPage.getTotalCount().intValue());
teamMemberPage.setTotalPage(memberPage.getTotalPage()); userTeamMemberVo.setTotalPage(memberPage.getTotalPage());
teamMemberPage.setData(userTeamMemberBos); userTeamMemberVo.setUserTeamMemberBos(userTeamMemberBos);
return teamMemberPage; userTeamMemberVo.setTotalIncome(totalIncome);
return userTeamMemberVo;
} }
} }
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.MyWalletBiz;
import com.github.wxiaoqi.security.admin.vo.AppletWalletVo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.UserAuthUtil;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
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.RestController;
import javax.servlet.http.HttpServletRequest;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/12 9:17
*/
@RestController
@RequestMapping("/wallet")
public class MyWalletController {
@Autowired
private UserAuthUtil userAuthUtil;
@Autowired
private UserAuthConfig userAuthConfig;
@Autowired
private MyWalletBiz myWalletBiz;
@GetMapping
public ObjectRestResponse<AppletWalletVo> findMyWallet(HttpServletRequest request){
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
AppletWalletVo wallet = myWalletBiz.findMyWallet(Integer.valueOf(infoFromToken.getId()));
return ObjectRestResponse.succ(wallet);
} catch (Exception e) {
throw new BaseException(e);
}
}
}
...@@ -2,6 +2,7 @@ package com.github.wxiaoqi.security.admin.rest; ...@@ -2,6 +2,7 @@ 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.UserTeamMemberBo; import com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo;
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;
...@@ -36,11 +37,11 @@ public class UserBussinessController { ...@@ -36,11 +37,11 @@ public class UserBussinessController {
private UserBusinessBiz businessBiz; private UserBusinessBiz businessBiz;
@GetMapping("/teams") @GetMapping("/teams")
public ObjectRestResponse<PageDataVO<UserTeamMemberBo>> findTeamPage(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, HttpServletRequest request){ public ObjectRestResponse<UserTeamMemberVo> findTeamPage(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, HttpServletRequest request){
try { try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request)); IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
PageDataVO<UserTeamMemberBo> teamMemberBoPageDataVO = businessBiz.findTeamMemberPageByUserId(Integer.valueOf(infoFromToken.getId()), pageNo, pageSize); UserTeamMemberVo userTeamMemberVo = businessBiz.findTeamMemberPageByUserId(Integer.valueOf(infoFromToken.getId()), pageNo, pageSize);
return ObjectRestResponse.succ(teamMemberBoPageDataVO); return ObjectRestResponse.succ(userTeamMemberVo);
} catch (Exception e) { } catch (Exception e) {
throw new BaseException(e); throw new BaseException(e);
} }
......
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