Commit 0ef9993a authored by hanfeng's avatar hanfeng

Merge remote-tracking branch 'origin/dev' into dev

parents eaa362f3 35fa2eb4
...@@ -135,9 +135,11 @@ public class AuthController { ...@@ -135,9 +135,11 @@ public class AuthController {
return appAuthService.checkBindWechat(username); return appAuthService.checkBindWechat(username);
} }
@RequestMapping(value = "/wxlogin", method = RequestMethod.POST) @RequestMapping(value = "/wxlogin", method = RequestMethod.POST)
public JSONObject wxlogin(@RequestParam(value="openid",defaultValue="")String openid,@RequestParam(value="isQQ",defaultValue="0")Integer isQQ)throws Exception{ public JSONObject wxlogin(@RequestParam(value="openid",defaultValue="")String openid,
@RequestParam(value="isQQ",defaultValue="0")Integer isQQ,
@RequestParam(value="code",defaultValue="")String code)throws Exception{
log.info(openid+"----require wxlogin..."); log.info(openid+"----require wxlogin...");
JSONObject data=appAuthService.wxlogin(openid,isQQ); JSONObject data=appAuthService.wxlogin(openid,isQQ,code);
if(data!=null&&data.getInteger("status")== ResultCode.SUCCESS_CODE){ if(data!=null&&data.getInteger("status")== ResultCode.SUCCESS_CODE){
JSONObject result=data.getJSONObject("data"); JSONObject result=data.getJSONObject("data");
if(result==null){ if(result==null){
...@@ -154,10 +156,11 @@ public class AuthController { ...@@ -154,10 +156,11 @@ public class AuthController {
public JSONObject login(@RequestParam(value="username",defaultValue="")String username, public JSONObject login(@RequestParam(value="username",defaultValue="")String username,
@RequestParam(value="mobilecode",defaultValue="")String mobilecode, @RequestParam(value="mobilecode",defaultValue="")String mobilecode,
@RequestParam(value="password",defaultValue="")String password, @RequestParam(value="password",defaultValue="")String password,
@RequestParam(value="type",defaultValue="1")Integer type)throws Exception{ @RequestParam(value="type",defaultValue="1")Integer type,
@RequestParam(value="code",defaultValue="")String code)throws Exception{
log.info(username+"----require login..."); log.info(username+"----require login...");
JSONObject data=appAuthService.tlogin(username,password,mobilecode,type); JSONObject data=appAuthService.tlogin(username,password,mobilecode,type,code);
if(data!=null&&data.getInteger("status")== ResultCode.SUCCESS_CODE){ if(data!=null&&data.getInteger("status")== ResultCode.SUCCESS_CODE){
JSONObject result=data.getJSONObject("data"); JSONObject result=data.getJSONObject("data");
if(result==null){ if(result==null){
......
...@@ -42,12 +42,15 @@ public interface IUserService { ...@@ -42,12 +42,15 @@ public interface IUserService {
@RequestMapping(value = "/api/app/user/checkBindWechat",method = RequestMethod.POST) @RequestMapping(value = "/api/app/user/checkBindWechat",method = RequestMethod.POST)
public JSONObject checkBindWechat( @RequestParam(value="username")String username); public JSONObject checkBindWechat( @RequestParam(value="username")String username);
@RequestMapping(value = "/api/app/user/wxlogin",method = RequestMethod.POST) @RequestMapping(value = "/api/app/user/wxlogin",method = RequestMethod.POST)
public JSONObject wxlogin(@RequestParam(value="openid")String openid,@RequestParam(value="isQQ")Integer isQQ); public JSONObject wxlogin(@RequestParam(value="openid")String openid,
@RequestParam(value="isQQ")Integer isQQ,
@RequestParam(value="code",defaultValue="")String code);
@RequestMapping(value = "/api/app/user/login", method = RequestMethod.POST) @RequestMapping(value = "/api/app/user/login", method = RequestMethod.POST)
public JSONObject login( @RequestParam(value="username")String username, public JSONObject login( @RequestParam(value="username")String username,
@RequestParam(value="password")String password, @RequestParam(value="password")String password,
@RequestParam(value="mobilecode")String mobilecode, @RequestParam(value="mobilecode")String mobilecode,
@RequestParam(value="type")Integer type); @RequestParam(value="type")Integer type,
@RequestParam(value="")String code);
@RequestMapping(value = "/api/app/user/reset", method = RequestMethod.POST) @RequestMapping(value = "/api/app/user/reset", method = RequestMethod.POST)
public JSONObject reset( @RequestParam(value="username")String username, public JSONObject reset( @RequestParam(value="username")String username,
@RequestParam(value="mobilecode")String mobilecode, @RequestParam(value="mobilecode")String mobilecode,
......
...@@ -15,8 +15,8 @@ public interface AuthService { ...@@ -15,8 +15,8 @@ public interface AuthService {
JSONObject register(String username, String mobilecode, String password,String code) throws Exception; JSONObject register(String username, String mobilecode, String password,String code) throws Exception;
JSONObject wxregister( String username, String mobilecode, String password, String nickname, String headimgurl, String openid, String unionid, Integer type,Integer isQQ,String code) throws Exception; JSONObject wxregister( String username, String mobilecode, String password, String nickname, String headimgurl, String openid, String unionid, Integer type,Integer isQQ,String code) throws Exception;
JSONObject checkBindWechat(String username) throws Exception; JSONObject checkBindWechat(String username) throws Exception;
JSONObject wxlogin(String openid,Integer isQQ) throws Exception; JSONObject wxlogin(String openid,Integer isQQ,String code) throws Exception;
JSONObject tlogin(String username, String password,String mobilecode,Integer type) throws Exception; JSONObject tlogin(String username, String password,String mobilecode,Integer type,String code) throws Exception;
String getToken(String username,Integer id) throws Exception; String getToken(String username,Integer id) throws Exception;
JSONObject reset(String username, String mobilecode, String password) throws Exception; JSONObject reset(String username, String mobilecode, String password) throws Exception;
......
...@@ -84,13 +84,13 @@ public class AppAuthServiceImpl implements AuthService { ...@@ -84,13 +84,13 @@ public class AppAuthServiceImpl implements AuthService {
} }
@Override @Override
public JSONObject wxlogin(String openid,Integer isQQ) throws Exception { public JSONObject wxlogin(String openid,Integer isQQ,String code) throws Exception {
return userService.wxlogin(openid,isQQ); return userService.wxlogin(openid,isQQ,code);
} }
@Override @Override
public JSONObject tlogin(String username, String password, String mobilecode, Integer type) throws Exception { public JSONObject tlogin(String username, String password, String mobilecode, Integer type,String code) throws Exception {
return userService.login(username,password,mobilecode,type); return userService.login(username,password,mobilecode,type,code);
} }
@Override @Override
......
...@@ -82,13 +82,13 @@ public class AuthServiceImpl implements AuthService { ...@@ -82,13 +82,13 @@ public class AuthServiceImpl implements AuthService {
} }
@Override @Override
public JSONObject wxlogin(String openid,Integer isQQ) throws Exception { public JSONObject wxlogin(String openid,Integer isQQ,String code) throws Exception {
return userService.wxlogin(openid,isQQ); return userService.wxlogin(openid,isQQ,code);
} }
@Override @Override
public JSONObject tlogin(String username, String password, String mobilecode, Integer type) throws Exception { public JSONObject tlogin(String username, String password, String mobilecode, Integer type,String code) throws Exception {
return userService.login(username,password,mobilecode,type); return userService.login(username,password,mobilecode,type,code);
} }
@Override @Override
......
...@@ -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.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/23 16:51
*/
@Builder(toBuilder = true)
@Data
public class AppUserPositionTempDTO {
@ApiModelProperty("主键id")
private Integer id;
@ApiModelProperty(value = "手机号码")
private String phone;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "职位id")
private Integer positionId;
}
package com.github.wxiaoqi.security.admin.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/23 18:36
*/
@Data
public class AppUserPositionTempFindDTO extends PageParam {
private String phone;
private String name;
private Integer status;
}
package com.github.wxiaoqi.security.admin.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
/**
* 用户身份职位临时表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-07-09 10:00:42
*/
@Data
@Table(name = "app_user_position_temp")
public class AppUserPositionTemp implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
@Column(name = "user_id")
@ApiModelProperty(value = "用户id")
private Integer userId;
@Column(name = "phone")
@ApiModelProperty(value = "手机号码")
private String phone;
@Column(name = "position_id")
@ApiModelProperty(value = "职位id")
private Integer positionId;
@Column(name = "name")
@ApiModelProperty(value = "姓名")
private String name;
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
}
package com.github.wxiaoqi.security.admin.vo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/9/23 18:38
*/
@Builder(toBuilder = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AppUserPositionTempVo {
private Integer id;
@ApiModelProperty(value = "手机号码")
private String phone;
@ApiModelProperty(value = "姓名")
private String name;
@ApiModelProperty(value = "职位名")
private String positionName;
private Integer positionId;
@ApiModelProperty(value = "数据状态 1:已核销 2:未核销")
private Integer status;
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
}
...@@ -3,6 +3,7 @@ package com.github.wxiaoqi.security.admin.biz; ...@@ -3,6 +3,7 @@ package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.dto.UserPostionDTO; import com.github.wxiaoqi.security.admin.dto.UserPostionDTO;
import com.github.wxiaoqi.security.admin.vo.WalletPostionVo; import com.github.wxiaoqi.security.admin.vo.WalletPostionVo;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.jsoup.select.Collector;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -11,9 +12,10 @@ import com.github.wxiaoqi.security.admin.mapper.AppUserPositionMapper; ...@@ -11,9 +12,10 @@ import com.github.wxiaoqi.security.admin.mapper.AppUserPositionMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* 用户身份职位表 * 用户身份职位表
...@@ -23,7 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger; ...@@ -23,7 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger;
* @date 2019-07-09 10:00:42 * @date 2019-07-09 10:00:42
*/ */
@Transactional @Transactional
@Service @Service("appUserPositionBiz")
public class AppUserPositionBiz extends BaseBiz<AppUserPositionMapper,AppUserPosition> { public class AppUserPositionBiz extends BaseBiz<AppUserPositionMapper,AppUserPosition> {
...@@ -58,4 +60,19 @@ public class AppUserPositionBiz extends BaseBiz<AppUserPositionMapper,AppUserPos ...@@ -58,4 +60,19 @@ public class AppUserPositionBiz extends BaseBiz<AppUserPositionMapper,AppUserPos
} }
return counter.get(); return counter.get();
} }
public Map<Integer, AppUserPosition> findPostionIdAndPostionMapByIds(List<Integer> postionIds) {
Map<Integer,AppUserPosition> postionMap = new HashMap<>();
List<AppUserPosition> data= mapper.selectByIdList(postionIds);
if(CollectionUtils.isEmpty(data)){
return postionMap;
}
postionMap = data.stream().collect(Collectors.toMap(AppUserPosition::getId, Function.identity()));
return postionMap;
}
public Map<Integer, String> findPostionIdAndNameMap() {
List<AppUserPosition> postions = selectListAll();
return postions.stream().collect(Collectors.toMap(AppUserPosition::getId,AppUserPosition::getName));
}
} }
\ No newline at end of file
...@@ -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) {
......
...@@ -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) {
......
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;
...@@ -14,6 +15,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -14,6 +15,7 @@ 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;
/** /**
...@@ -40,12 +42,11 @@ public class UserBusinessBiz { ...@@ -40,12 +42,11 @@ 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,63 +54,61 @@ public class UserBusinessBiz { ...@@ -53,63 +54,61 @@ 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, AppUserDetail> userIdAndAppUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(memberIds);
}
Map<Integer,AppUserLogin> userIdAndAppUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(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;
} }
public PromoteBO getPromoteBoByUserId(Integer userId) { public PromoteBO getPromoteBoByUserId(Integer userId) {
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()); promoteBO.setLeaderHeadUrl(userIdAndUserDetailMap.get(leaderId).getHeadimgurl());
} }
} }
...@@ -117,7 +116,7 @@ public class UserBusinessBiz { ...@@ -117,7 +116,7 @@ public class UserBusinessBiz {
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;
} }
} }
package com.github.wxiaoqi.security.admin.mapper; package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.dto.UserPostionDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserPosition; import com.github.wxiaoqi.security.admin.entity.AppUserPosition;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.additional.idlist.IdListMapper;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
import java.util.List;
/** /**
* 用户身份职位表 * 用户身份职位表
* *
...@@ -14,7 +12,7 @@ import java.util.List; ...@@ -14,7 +12,7 @@ import java.util.List;
* @email 18178966185@163.com * @email 18178966185@163.com
* @date 2019-07-09 10:00:42 * @date 2019-07-09 10:00:42
*/ */
public interface AppUserPositionMapper extends Mapper<AppUserPosition> { public interface AppUserPositionMapper extends Mapper<AppUserPosition>, IdListMapper<AppUserPosition,Integer> {
AppUserPosition getExtractByUserId(@Param("userId")Integer userId); AppUserPosition getExtractByUserId(@Param("userId")Integer userId);
......
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.AppUserPositionTemp;
import org.apache.ibatis.annotations.Insert;
import tk.mybatis.mapper.common.Mapper;
/**
* 用户身份职位表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-07-09 10:00:42
*/
public interface AppUserPositionTempMapper extends Mapper<AppUserPositionTemp> {
@Insert("INSERT IGNORE INTO `app_user_position_temp`(`user_id`,`phone`,`name`,`position_id`,`crt_time`)VALUES(#{userId},#{phone},#{name},#{positionId},#{crtTime})")
void insertWithIgnoreRepeat(AppUserPositionTemp appUserPositionTemp);
}
...@@ -17,7 +17,7 @@ import java.util.List; ...@@ -17,7 +17,7 @@ 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);
} }
package com.github.wxiaoqi.security.admin.rest.admin; package com.github.wxiaoqi.security.admin.rest.admin;
import com.github.wxiaoqi.security.admin.biz.AppUserPositionBiz; import com.github.wxiaoqi.security.admin.biz.AppUserPositionBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserPositionTempBiz;
import com.github.wxiaoqi.security.admin.dto.AppUserPositionTempDTO;
import com.github.wxiaoqi.security.admin.dto.AppUserPositionTempFindDTO;
import com.github.wxiaoqi.security.admin.dto.UserPostionDTO; import com.github.wxiaoqi.security.admin.dto.UserPostionDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserPositionTempVo;
import com.github.wxiaoqi.security.admin.vo.WalletPostionVo; import com.github.wxiaoqi.security.admin.vo.WalletPostionVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse; import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.excel.ExcelImport;
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.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author libin * @author libin
...@@ -19,18 +27,66 @@ import java.util.List; ...@@ -19,18 +27,66 @@ import java.util.List;
@RequestMapping("/postion/admin") @RequestMapping("/postion/admin")
public class AppUserPositionController { public class AppUserPositionController {
@Autowired @Autowired
private AppUserPositionBiz appUserPositionBiz; private AppUserPositionBiz appUserPositionBiz;
@GetMapping("/postions") @Autowired
public ObjectRestResponse<List<WalletPostionVo>> findAllPostions(){ private AppUserPositionTempBiz appUserPositionTempBiz;
List<WalletPostionVo> walletPostionVos = appUserPositionBiz.findAllPostions();
return ObjectRestResponse.succ(walletPostionVos); @GetMapping("/postions")
} public ObjectRestResponse<List<WalletPostionVo>> findAllPostions() {
List<WalletPostionVo> walletPostionVos = appUserPositionBiz.findAllPostions();
@PutMapping return ObjectRestResponse.succ(walletPostionVos);
public ObjectRestResponse updateUserPostionPercentage(@RequestBody List<UserPostionDTO> userPostionDTOS){ }
appUserPositionBiz.updateUserPostionPercentage(userPostionDTOS);
return ObjectRestResponse.succ(); @PutMapping
} public ObjectRestResponse updateUserPostionPercentage(@RequestBody List<UserPostionDTO> userPostionDTOS) {
appUserPositionBiz.updateUserPostionPercentage(userPostionDTOS);
return ObjectRestResponse.succ();
}
/**
* 新增或编辑身份信息
* @return
*/
@PostMapping("/add")
public ObjectRestResponse<Void> addUserPostion(@RequestBody AppUserPositionTempDTO appUserPositionTempDTO){
appUserPositionTempBiz.add(appUserPositionTempDTO);
return ObjectRestResponse.succ();
}
/**
* 批量导入
* @param userPostionExcel
* @return
*/
@PostMapping("/excel/import")
public ObjectRestResponse<Map<String,Object>> importUserPostion(@RequestPart("file") MultipartFile userPostionExcel) {
List<String[]> userPostionData = ExcelImport.getExcelData(userPostionExcel);
if (userPostionData.size() < 2) {
return ObjectRestResponse.createFailedResult(1001, "导入不能没数据!!!");
}
userPostionData.remove(0);
Map<String,Object> result = appUserPositionTempBiz.importUserPostion(userPostionData);
return ObjectRestResponse.succ(result);
}
/**
* 删除
* @param id
* @return
*/
@DeleteMapping("/{id}")
public ObjectRestResponse<Void> deleteUserPostion(@PathVariable(value = "id") Integer id){
appUserPositionTempBiz.updateAppuserPostionStatusById(id,1);
return ObjectRestResponse.succ();
}
@PostMapping("/page")
public ObjectRestResponse<PageDataVO<AppUserPositionTempVo>> findWithPage(@RequestBody AppUserPositionTempFindDTO appUserPositionTempFindDTO){
PageDataVO<AppUserPositionTempVo> dataVO = appUserPositionTempBiz.findWithPage(appUserPositionTempFindDTO);
return ObjectRestResponse.succ(dataVO);
}
} }
...@@ -316,8 +316,8 @@ public class AppPermissionService { ...@@ -316,8 +316,8 @@ public class AppPermissionService {
}*/ }*/
//临时会员绑定 //临时会员绑定
insertUserMemberByUserIdAndPhone(userid, username); insertUserMemberByUserIdAndPhone(userid, username);
/*//参加新人活动 //参加新人活动
jionActivity(userid);*/ jionActivity(userid);
//创建钱包 //创建钱包
walletBiz.createWalletByUserId(appUserLogin.getId()); walletBiz.createWalletByUserId(appUserLogin.getId());
// 登录结果要做做统一处理 // 登录结果要做做统一处理
...@@ -950,8 +950,8 @@ public class AppPermissionService { ...@@ -950,8 +950,8 @@ public class AppPermissionService {
relationBiz.bindByUserId(userid, small_id); relationBiz.bindByUserId(userid, small_id);
//发送短信通知用户 //发送短信通知用户
thirdFeign.sendCode(username, password, SystemConfig.TEMPLATECODE); thirdFeign.sendCode(username, password, SystemConfig.TEMPLATECODE);
/* //参加新人活动 //参加新人活动
jionActivity(userid);*/ jionActivity(userid);
// 登录结果要做做统一处理 // 登录结果要做做统一处理
JSONObject data = autoLogin(userid, username, headimgurl, nickname,null,null,2); JSONObject data = autoLogin(userid, username, headimgurl, nickname,null,null,2);
// 到im注册,获取返回结果 // 到im注册,获取返回结果
......
...@@ -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 ) ausww.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 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 )
#{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">
......
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