Commit 6a6c6413 authored by 周健威's avatar 周健威

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

parents 97586cc1 0d1d172f
......@@ -33,6 +33,4 @@ public class UserTeamMemberVo {
private Integer totalPage;
private Integer totalTeams;
}
......@@ -7,13 +7,11 @@ import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.vo.UserTeamMemberVo;
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.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal;
import java.util.*;
......@@ -42,9 +40,6 @@ public class UserBusinessBiz {
@Autowired
private AppUserDetailBiz appUserDetailBiz;
@Autowired
private BranchCompanyBiz branchCompanyBiz;
public UserTeamMemberVo findTeamMemberPageByUserId(Integer userId, Integer pageNo, Integer pageSize) {
UserTeamMemberVo userTeamMemberVo = new UserTeamMemberVo();
......@@ -103,72 +98,6 @@ public class UserBusinessBiz {
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<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) {
PromoteBO promoteBO = new PromoteBO();
......
......@@ -27,44 +27,33 @@ import javax.servlet.http.HttpServletRequest;
public class UserBussinessController {
@Autowired
private UserAuthUtil userAuthUtil;
private UserAuthUtil userAuthUtil;
@Autowired
private UserAuthConfig userAuthConfig;
@Autowired
@Autowired
private UserBusinessBiz businessBiz;
@GetMapping("/teams")
public ObjectRestResponse<UserTeamMemberVo> findTeamPage(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, HttpServletRequest request){
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
UserTeamMemberVo userTeamMemberVo = businessBiz.findTeamMemberPageByUserId(Integer.valueOf(infoFromToken.getId()), pageNo, pageSize);
return ObjectRestResponse.succ(userTeamMemberVo);
} catch (Exception e) {
throw new BaseException(e);
}
}
@GetMapping("/teams1")
public ObjectRestResponse<UserTeamMemberVo> findTeamPage1(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize, HttpServletRequest request){
@GetMapping("/teams")
public ObjectRestResponse<UserTeamMemberVo> findTeamPage(@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);
UserTeamMemberVo userTeamMemberVo = businessBiz.findTeamMemberPageByUserId(Integer.valueOf(infoFromToken.getId()), pageNo, pageSize);
return ObjectRestResponse.succ(userTeamMemberVo);
} catch (Exception e) {
throw new BaseException(e);
}
}
@GetMapping("/promote")
public ObjectRestResponse<PromoteBO> findPromoteBo(HttpServletRequest request){
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
PromoteBO promoteBO = businessBiz.getPromoteBoByUserId(Integer.valueOf(infoFromToken.getId()));
return ObjectRestResponse.succ(promoteBO);
} catch (Exception e) {
throw new BaseException(e);
}
}
@GetMapping("/promote")
public ObjectRestResponse<PromoteBO> findPromoteBo(HttpServletRequest request){
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
PromoteBO promoteBO = businessBiz.getPromoteBoByUserId(Integer.valueOf(infoFromToken.getId()));
return ObjectRestResponse.succ(promoteBO);
} catch (Exception e) {
throw new BaseException(e);
}
}
}
......@@ -220,9 +220,9 @@ public class BaseOrder implements Serializable {
private Integer version;
/**
* 下单来源 1--app;2--小程序
* 下单来源 1--app;2--小程序 3--后台
*/
@ApiModelProperty(value = "下单来源 1--app;2--小程序")
@ApiModelProperty(value = "下单来源 1--app;2--小程序, 3--后台")
@Column(name = "order_origin")
private Integer orderOrigin;
......
......@@ -12,21 +12,8 @@ import java.math.BigDecimal;
*/
@Data
public class MemberOrderStatisticsBo {
//0为全部,其他为会员等级
private Integer type;
private Integer orderNum;
private BigDecimal totalAmount;
/**
* 钻石
*/
private Integer diamondOrderNum;
private BigDecimal totalDiamondAmount;
/**
* 黄金
*/
private Integer goldOrderNum;
private BigDecimal totalGoldAmount;
/**
* 普通
*/
private Integer generalOrderNum;
private BigDecimal totalGeneralAmount;
}
......@@ -5,6 +5,8 @@ import com.xxfc.platform.order.pojo.dto.MemberOrderBo;
import com.xxfc.platform.order.pojo.dto.MemberOrderStatisticsBo;
import lombok.Data;
import java.util.List;
/**
* @author libin
* @version 1.0
......@@ -13,6 +15,6 @@ import lombok.Data;
*/
@Data
public class MemberOrderPageVo {
private MemberOrderStatisticsBo memberOrderStatisticsBo;
private List<MemberOrderStatisticsBo> memberOrderStatisticsBo;
private PageDataVO<MemberOrderBo> memberOrderPage;
}
package com.xxfc.platform.order.biz;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.BaseUserMemberLevel;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.config.rabbit.RabbitConstant;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.OrderUtil;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderAccount;
import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.entity.OrderMemberDetail;
import com.xxfc.platform.order.mapper.OrderMemberDetailMapper;
import com.xxfc.platform.order.pojo.order.add.AddMemberDTO;
import com.xxfc.platform.universal.feign.MQSenderFeign;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
......@@ -24,7 +38,8 @@ import java.util.concurrent.atomic.AtomicReference;
* @date 2019-06-19 17:00:35
*/
@Service
public class OrderMemberDetailBiz extends BaseBiz<OrderMemberDetailMapper,OrderMemberDetail> {
@Slf4j
public class OrderMemberDetailBiz extends BaseBiz<OrderMemberDetailMapper,OrderMemberDetail> implements UserRestInterface {
@Autowired
UserFeign userFeign;
......@@ -32,23 +47,107 @@ public class OrderMemberDetailBiz extends BaseBiz<OrderMemberDetailMapper,OrderM
@Autowired
BaseOrderBiz baseOrderBiz;
@Autowired
MQSenderFeign mqSenderFeign;
@Autowired
OrderItemBiz orderItemBiz;
@Autowired
OrderAccountBiz orderAccountBiz;
/**
* 后台创建订单
* @param dto
*/
public void createOrder(AddMemberDTO dto) {
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
throw new BaseException(ResultCode.getMsg(ResultCode.RSTOKEN_EXPIRED_CODE));
}
AppUserLogin appUserLogin = userFeign.one(dto.getPhone());
if (appUserLogin != null) {
List<BaseUserMemberLevel> baseUserMemberLevelList = userFeign.levels();
if (baseUserMemberLevelList != null && baseUserMemberLevelList.size() > 0) {
BaseOrder baseOrder = new BaseOrder();
AtomicReference<BaseUserMemberLevel> currentLevel = null;
AtomicReference<BaseUserMemberLevel> currentLevel = new AtomicReference<>();
baseUserMemberLevelList.parallelStream().forEach(baseUserMemberLevel -> {
if (dto.getMemberLevel().equals(baseUserMemberLevel.getLevel())) {
currentLevel.set(baseUserMemberLevel);
}
});
if (currentLevel != null && currentLevel.get() != null) {
BaseUserMemberLevel baseUserMemberLevel = currentLevel.get();
baseOrder.setNo(OrderUtil.GetOrderNumber("", OrderUtil.APP_MID));
baseOrder.setUserId(appUserLogin.getId());
baseOrder.setGoodsAmount(dto.getOrderAmount());
baseOrder.setOrderAmount(dto.getOrderAmount());
baseOrder.setRealAmount(dto.getOrderAmount());
baseOrder.setStatus(OrderStatusEnum.ORDER_FINISH.getCode());
baseOrder.setName(baseUserMemberLevel.getName());
if (dto.getPayTime() != null) {
baseOrder.setPayTime(dto.getPayTime());
} else {
baseOrder.setPayTime(System.currentTimeMillis());
}
baseOrder.setType(OrderTypeEnum.MEMBER.getCode());
baseOrder.setHasPay(1);
baseOrder.setOrderOrigin(3);
baseOrder.setCrtUser(userDTO.getUsername());
baseOrder.setCrtName(userDTO.getName());
baseOrder.setVersion(1);
baseOrderBiz.insertSelectiveRe(baseOrder);
OrderMemberDetail orderMemberDetail = new OrderMemberDetail();
orderMemberDetail.setOrderId(baseOrder.getId());
orderMemberDetail.setMemberLevel(baseUserMemberLevel.getLevel());
orderMemberDetail.setMemberLevelId(baseUserMemberLevel.getId());
orderMemberDetail.setName(baseUserMemberLevel.getName());
orderMemberDetail.setRebate(baseUserMemberLevel.getDiscount());
orderMemberDetail.setRentFreeNum(baseUserMemberLevel.getNumber());
insertSelectiveRe(orderMemberDetail);
baseOrder.setDetailId(orderMemberDetail.getId());
baseOrderBiz.updateSelectiveByIdRe(baseOrder);
OrderItem orderItem = new OrderItem();
orderItem.setOrderId(baseOrder.getId());
orderItem.setName(baseOrder.getName());
orderItem.setBuyNum(1);
orderItem.setAwardNum(1);
orderItem.setType(6);
orderItem.setMetaUnitPrice(baseUserMemberLevel.getPrice());
orderItem.setUnitPrice(baseUserMemberLevel.getPrice());
orderItem.setTotalNum(1);
orderItem.setBuyNum(1);
orderItem.setAwardNum(0);
orderItem.setCutNum(0);
orderItem.setGoodId(baseUserMemberLevel.getId());
orderItemBiz.insertSelectiveRe(orderItem);
OrderAccount orderAccount = new OrderAccount();
orderAccount.setAccountAmount(baseOrder.getOrderAmount());
orderAccount.setOrderId(baseOrder.getId());
orderAccount.setTradeNo(baseOrder.getNo());
orderAccount.setAccountTime(System.currentTimeMillis());
orderAccount.setAccountType(101);
orderAccount.setAccountStatus(1);
orderAccount.setAccountDesc("会员订单支付");
orderAccount.setAccountDesc("{\"depositAmount\":0,\"orderAmount\":"+ baseOrder.getOrderAmount() + ",\"originDepositAmount\":0,\"originOrderAmount\":"+ baseOrder.getOrderAmount() + ",\"deductions\":[]}");
orderAccount.setOriginalAmount(baseOrder.getOrderAmount());
orderAccount.setDeductAmount(BigDecimal.ZERO);
orderAccountBiz.insertSelectiveRe(orderAccount);
//触发会员效益
UserMemberDTO userMemberDTO = new UserMemberDTO() {{
setUserId(baseOrder.getUserId());
setIsBind(ISBIND_BIND);
}};
userMemberDTO.setMemberLevel(orderMemberDetail.getMemberLevel());
userMemberDTO.setRentFreeDays(orderMemberDetail.getRentFreeNum());
userMemberDTO.setTotalNumber(orderMemberDetail.getRentFreeNum());
userMemberDTO.setDiscount(orderMemberDetail.getRebate());
ObjectRestResponse orr = userFeign.buyMember(userMemberDTO);
log.info("orr.getStatus() : " + orr.getStatus());
//发送消息队列到admin,进行分成计算
mqSenderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, RabbitConstant.KEY_MEMBER_SHARE, JSONUtil.toJsonStr(orderMemberDetail));
}
......@@ -60,4 +159,8 @@ public class OrderMemberDetailBiz extends BaseBiz<OrderMemberDetailMapper,OrderM
}
}
@Override
public UserFeign getUserFeign() {
return userFeign;
}
}
\ No newline at end of file
......@@ -172,6 +172,4 @@ public class BranchCompany {
@Column(name = "is_del")
private Integer isDel;
@Column(name = "inviter_account")
private Long inviterAccount;
}
\ 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