Commit 0cce3a82 authored by jiaorz's avatar jiaorz

Merge remote-tracking branch 'origin/base-modify' into base-modify

# Conflicts:
#	ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/service/AppPermissionService.java
#	xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/handler/IntegralMQHandler.java
parents 368ca1e6 c0d21086
package com.github.wxiaoqi.security.admin.bo;
import lombok.Data;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/18 19:25
*/
@Data
public class InviteMemberBO {
private String username;
private String headUrl;
private Long joinTime;
private Long bindTime;
}
package com.github.wxiaoqi.security.admin.bo;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/18 20:11
*/
@Data
public class PromoteBO {
/**
* 累计收益
*/
private BigDecimal totalIncome;
/**
* 已邀请人数
*/
private Integer inviteNumber;
/**
* 已激活人数
*/
private Integer activatedNumber;
/**
* 上级用户名
*/
private String leaderUsername;
/**
* 上级头像
*/
private String leaderHeadUrl;
}
......@@ -45,4 +45,8 @@ public class UserTeamMemberBo {
* 收入
*/
private BigDecimal income;
private BigDecimal orderAmount;
private Integer recordedState;
}
......@@ -15,4 +15,5 @@ public class RegisterParamDTO {
String unionid;
Integer type;
String code;
String activityCode;
}
......@@ -5,7 +5,22 @@ import lombok.Data;
@Data
public class RegisterQueueDTO {
RegisterParamDTO registerParamDTO;
public static final Integer SIGN_NEW = 1;
public static final Integer SIGN_ACTIVATE = 2;
public static final Integer SIGN_LOGIN = 3;
/**
* 执行方法的入参
*/
RegisterParamDTO InParamDTO;
/**
* app用户id
*/
Integer appUserId;
JSONObject data;
/**
* 标识:1--新注册;2--激活;3--登录
*/
Integer sign;
}
......@@ -9,6 +9,12 @@ import lombok.Data;
@Data
public class AppUserDTO {
public static final Integer CHANNEL_APP = 1;
public static final Integer CHANNEL_SMALL = 2;
public static final Integer source_APP = 1;
public static final Integer source_SMALL = 2;
private Integer id;
private Integer userid;
private Integer isMember;
......
package com.github.wxiaoqi.security.admin.vo;
import com.github.wxiaoqi.security.admin.bo.InviteMemberBO;
import lombok.Data;
import java.util.List;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/7/18 19:57
*/
@Data
public class InviteMemberVo {
private Long failureTime;
private List<InviteMemberBO> inviteMembers;
private Integer page;
private Integer limit;
private Integer totalCount;
private Integer totalPage;
}
......@@ -2,20 +2,28 @@ package com.github.wxiaoqi.security.admin.biz;
import com.ace.cache.annotation.Cache;
import com.ace.cache.annotation.CacheClear;
import com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.AppUserRelationTemp;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.bo.InviteMemberBO;
import com.github.wxiaoqi.security.admin.vo.InviteMemberVo;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.aop.framework.AopContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.AppUserRelation;
import com.github.wxiaoqi.security.admin.mapper.AppUserRelationMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import tk.mybatis.mapper.entity.Example;
import java.util.*;
import java.util.stream.Collectors;
/**
* 用户关系表
*
......@@ -32,6 +40,12 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
@Autowired
AppUserDetailBiz userDetailBiz;
@Autowired
private AppUserLoginBiz appUserLoginBiz;
@Value("${temamember.failureTime:60}")
private Long failureTime;
/**
* 关系绑定
* @param userId
......@@ -153,4 +167,66 @@ public class AppUserRelationBiz extends BaseBiz<AppUserRelationMapper,AppUserRel
public PageDataVO<AppUserRelation> findMemberPageByLeaderId(Integer leaderId, Integer pageNo, Integer pageSize) {
return PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.selectByLeaderId(leaderId));
}
public InviteMemberVo findInviteMemberByActivitState(Integer leaderId, Integer state, Integer page, Integer limit) {
InviteMemberVo inviteMemberVo = new InviteMemberVo();
inviteMemberVo.setPage(page);
inviteMemberVo.setLimit(limit);
inviteMemberVo.setFailureTime(failureTime*24*60*60);
Example example = new Example(AppUserRelation.class);
Example.Criteria criteria = example.createCriteria();
if (state!=null) {
criteria.andEqualTo("isForever", state);
}
criteria.andEqualTo("parentId",leaderId);
PageDataVO<AppUserRelation> pageDataVO = PageDataVO.pageInfo(page, limit, () -> mapper.selectByExample(example));
List<AppUserRelation> appUserRelations = pageDataVO.getData();
if (CollectionUtils.isEmpty(appUserRelations)){
inviteMemberVo.setInviteMembers(Collections.EMPTY_LIST);
return inviteMemberVo;
}
List<Integer> memberIds = appUserRelations.stream().map(AppUserRelation::getUserId).collect(Collectors.toList());
Map<Integer, AppUserLogin> userIdAndUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(memberIds);
Map<Integer, AppUserDetail> userIdAndUserDetailMap = userDetailBiz.findUserIdAndUserDetailMapByMemberIds(memberIds);
List<InviteMemberBO> inviteMemberBOS = new ArrayList<>();
InviteMemberBO inviteMemberBO;
for (AppUserRelation appUserRelation : appUserRelations) {
inviteMemberBO = new InviteMemberBO();
inviteMemberBO.setBindTime(appUserRelation.getBindTime());
inviteMemberBO.setJoinTime(appUserRelation.getBindTime());
inviteMemberBO.setUsername(userIdAndUserLoginMap.get(appUserRelation.getUserId()).getUsername());
inviteMemberBO.setHeadUrl(userIdAndUserDetailMap.get(appUserRelation.getUserId()).getHeadimgurl());
inviteMemberBOS.add(inviteMemberBO);
}
inviteMemberVo.setTotalCount(pageDataVO.getTotalCount().intValue());
inviteMemberVo.setTotalPage(pageDataVO.getTotalPage());
inviteMemberVo.setInviteMembers(inviteMemberBOS);
return inviteMemberVo;
}
public Integer findLeaderIdByMemberId(Integer userId) {
Example example = new Example(AppUserRelation.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("userId",userId);
List<AppUserRelation> appUserRelations = mapper.selectByExample(example);
if (CollectionUtils.isEmpty(appUserRelations)){
return 0;
}
return appUserRelations.get(0).getParentId();
}
public Map<Integer, Integer> findMemberSateAndCountMapByLeaderId(Integer userId) {
Map<Integer,Integer> memberSateAndCountMap = new HashMap<>();
AppUserRelation appUserRelation = new AppUserRelation();
appUserRelation.setParentId(userId);
int totalCount = mapper.selectCount(appUserRelation);
appUserRelation.setIsForever(1);
int activityCount = mapper.selectCount(appUserRelation);
memberSateAndCountMap.put(0,totalCount);
memberSateAndCountMap.put(1,activityCount);
return memberSateAndCountMap;
}
}
\ No newline at end of file
......@@ -34,7 +34,7 @@ import java.util.stream.Stream;
*/
@Service
@Slf4j
public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,AppUserSellingWater> {
public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper, AppUserSellingWater> {
@Autowired
......@@ -61,77 +61,77 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
//计算用户拥金
public void orderWater(OrderWaterDTO orderWaterDTO){
if(orderWaterDTO==null){
public void orderWater(OrderWaterDTO orderWaterDTO) {
if (orderWaterDTO == null) {
log.info("计算用户拥金----orderWater----次数不能为空----");
return;
}
//订单状态
Integer status=orderWaterDTO.getStatus();
if(status==null||status==0){
log.info("购买计算用户拥金----payOrderWater----参数不能为空----status==="+status);
Integer status = orderWaterDTO.getStatus();
if (status == null || status == 0) {
log.info("购买计算用户拥金----payOrderWater----参数不能为空----status===" + status);
return;
}
if(status==1){
if (status == 1) {
payOrderWater(orderWaterDTO);
}else if(status==2){
} else if (status == 2) {
finishOrderWater(orderWaterDTO);
}else {
} else {
refundOrderWater(orderWaterDTO);
}
}
//购买计算用户拥金
public void payOrderWater(OrderWaterDTO orderWaterDTO){
public void payOrderWater(OrderWaterDTO orderWaterDTO) {
//订单id
Integer orderId=orderWaterDTO.getOrderId();
Integer orderId = orderWaterDTO.getOrderId();
//订单号
String orderNo=orderWaterDTO.getOrderNo();
String orderNo = orderWaterDTO.getOrderNo();
//用户id
Integer userId=orderWaterDTO.getUserId();
List<OrderGoodsDTO> goodsDTOList=orderWaterDTO.getGoodsDTOList();
log.info("购买计算用户拥金----payOrderWater----userId===="+userId+"---orderId==="+orderId+"---orderNo==="+orderNo);
if(orderId==null||orderId==0||userId==null||userId==0|CollectionUtils.isEmpty(goodsDTOList)){
log.info("购买计算用户拥金----payOrderWater----参数不能为空----orderId==="+orderId);
Integer userId = orderWaterDTO.getUserId();
List<OrderGoodsDTO> goodsDTOList = orderWaterDTO.getGoodsDTOList();
log.info("购买计算用户拥金----payOrderWater----userId====" + userId + "---orderId===" + orderId + "---orderNo===" + orderNo);
if (orderId == null || orderId == 0 || userId == null || userId == 0 | CollectionUtils.isEmpty(goodsDTOList)) {
log.info("购买计算用户拥金----payOrderWater----参数不能为空----orderId===" + orderId);
return;
}
AppUserRelation relation=relationBiz.getRelationByUserId(userId);
if(relation==null||relation.getParentId()==null||relation.getParentId()==0){
log.info("购买计算用户拥金----payOrderWater--------userId==="+userId+"---无上线");
AppUserRelation relation = relationBiz.getRelationByUserId(userId);
if (relation == null || relation.getParentId() == null || relation.getParentId() == 0) {
log.info("购买计算用户拥金----payOrderWater--------userId===" + userId + "---无上线");
return;
}
Integer parentId=relation.getParentId();
log.info("购买计算用户拥金----payOrderWater--------userId==="+userId+"---parentId==="+parentId);
for(OrderGoodsDTO goodsDto:goodsDTOList){
Integer parentId = relation.getParentId();
log.info("购买计算用户拥金----payOrderWater--------userId===" + userId + "---parentId===" + parentId);
for (OrderGoodsDTO goodsDto : goodsDTOList) {
//商品id
Integer goodId=goodsDto.getGoodId();
Integer goodId = goodsDto.getGoodId();
//商品价格
BigDecimal price=goodsDto.getPrice();
BigDecimal price = goodsDto.getPrice();
//商品类型
Integer type=goodsDto.getType();
Integer type = goodsDto.getType();
//商品比例
Integer extract=commissionBiz.getExtract(type,goodId);
AppUserVo userVo=detailBiz.getUserInfoById(parentId);
Integer positionId=6;
if (userVo!=null){
positionId= userVo.getPositionId();
}
if(extract==null||extract==0){
extract=positionBiz.getExtract(parentId);
}
log.info("购买计算用户拥金----payOrderWater--------userId==="+userId+"---extract==="+extract);
if(extract!=null&&extract>0){
AppUserSellingWater sellingWater=new AppUserSellingWater();
Integer extract = commissionBiz.getExtract(type, goodId);
AppUserVo userVo = detailBiz.getUserInfoById(parentId);
Integer positionId = 6;
if (userVo != null) {
positionId = userVo.getPositionId();
}
if (extract == null || extract == 0) {
extract = positionBiz.getExtract(parentId);
}
log.info("购买计算用户拥金----payOrderWater--------userId===" + userId + "---extract===" + extract);
if (extract != null && extract > 0) {
AppUserSellingWater sellingWater = new AppUserSellingWater();
sellingWater.setOrderId(orderId);
sellingWater.setGoodId(goodId);
sellingWater=selectOne(sellingWater);
if(sellingWater!=null){
sellingWater = selectOne(sellingWater);
if (sellingWater != null) {
continue;
}
BigDecimal commission=price.multiply(new BigDecimal(extract+"")).divide(new BigDecimal("100"),2,BigDecimal.ROUND_HALF_UP);
log.info("购买计算用户拥金----payOrderWater--------userId==="+userId+"---commission==="+commission);
sellingWater=new AppUserSellingWater();
BigDecimal commission = price.multiply(new BigDecimal(extract + "")).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
log.info("购买计算用户拥金----payOrderWater--------userId===" + userId + "---commission===" + commission);
sellingWater = new AppUserSellingWater();
sellingWater.setUserId(parentId);
sellingWater.setSourceId(userId);
sellingWater.setPositionId(positionId);
......@@ -145,106 +145,106 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
sellingWater.setGoodNumber(goodsDto.getGoodNumber());
sellingWater.setCommission(commission);
insertSelective(sellingWater);
log.info("购买计算用户拥成功----payOrderWater--------userId==="+userId);
log.info("购买计算用户拥成功----payOrderWater--------userId===" + userId);
}
}
}
//订单完成计算用户拥金
public void finishOrderWater(OrderWaterDTO orderWaterDTO){
public void finishOrderWater(OrderWaterDTO orderWaterDTO) {
//订单id
Integer orderId=orderWaterDTO.getOrderId();
log.info("订单完成计算用户拥金----finishOrderWater----orderId===="+orderId);
if(orderId==null||orderId==0){
Integer orderId = orderWaterDTO.getOrderId();
log.info("订单完成计算用户拥金----finishOrderWater----orderId====" + orderId);
if (orderId == null || orderId == 0) {
return;
}
List<AppUserSellingWater> list=getWaterList(orderId);
BigDecimal amount=new BigDecimal("0.00");
Integer userId=0;
if (list.size()>0){
for (AppUserSellingWater sellingWater:list){
Integer id=sellingWater.getId();
userId=sellingWater.getUserId();
List<AppUserSellingWater> list = getWaterList(orderId);
BigDecimal amount = new BigDecimal("0.00");
Integer userId = 0;
if (list.size() > 0) {
for (AppUserSellingWater sellingWater : list) {
Integer id = sellingWater.getId();
userId = sellingWater.getUserId();
sellingWater.setWaiting(1);
updateById(sellingWater);
BigDecimal commission=sellingWater.getCommission();
log.info("订单完成计算用户拥金----finishOrderWater----id===="+id+"---commission=="+commission);
amount=amount.add(commission);
BigDecimal commission = sellingWater.getCommission();
log.info("订单完成计算用户拥金----finishOrderWater----id====" + id + "---commission==" + commission);
amount = amount.add(commission);
}
}
log.info("订单完成计算用户拥金----finishOrderWater----orderId===="+orderId+"---amount=="+amount);
int r=amount.compareTo(BigDecimal.ZERO);
log.info("订单完成计算用户拥金----finishOrderWater----orderId====" + orderId + "---amount==" + amount);
int r = amount.compareTo(BigDecimal.ZERO);
//更新钱包
if(r==1&&userId>0){
myWaterBiz.updMyWater(userId,orderId,amount);
if (r == 1 && userId > 0) {
myWaterBiz.updMyWater(userId, orderId, amount);
}
}
//订单退款计算用户拥金
public void refundOrderWater(OrderWaterDTO orderWaterDTO){
public void refundOrderWater(OrderWaterDTO orderWaterDTO) {
//订单id
Integer orderId=orderWaterDTO.getOrderId();
log.info("订单完成计算用户拥金----refundOrderWater----orderId===="+orderId);
if(orderId==null||orderId==0){
Integer orderId = orderWaterDTO.getOrderId();
log.info("订单完成计算用户拥金----refundOrderWater----orderId====" + orderId);
if (orderId == null || orderId == 0) {
return;
}
List<AppUserSellingWater> list=getWaterList(orderId);
BigDecimal amount=new BigDecimal("0.00");
Integer userId=0;
if (list.size()>0){
for (AppUserSellingWater sellingWater:list){
Integer id=sellingWater.getId();
userId=sellingWater.getUserId();
List<AppUserSellingWater> list = getWaterList(orderId);
BigDecimal amount = new BigDecimal("0.00");
Integer userId = 0;
if (list.size() > 0) {
for (AppUserSellingWater sellingWater : list) {
Integer id = sellingWater.getId();
userId = sellingWater.getUserId();
sellingWater.setWaiting(1);
updateById(sellingWater);
sellingWater.setId(null);
sellingWater.setStatus(1);
insertSelective(sellingWater);
BigDecimal commission=sellingWater.getCommission();
log.info("订单完成计算用户拥金----refundOrderWater----id===="+id+"---commission=="+commission);
BigDecimal commission = sellingWater.getCommission();
log.info("订单完成计算用户拥金----refundOrderWater----id====" + id + "---commission==" + commission);
}
}
log.info("订单完成计算用户拥金----refundOrderWater----orderId===="+orderId+"---amount=="+amount);
int r=amount.compareTo(BigDecimal.ZERO);
log.info("订单完成计算用户拥金----refundOrderWater----orderId====" + orderId + "---amount==" + amount);
int r = amount.compareTo(BigDecimal.ZERO);
//更新钱包
if(r==1&&userId>0){
myWaterBiz.updMyWater(userId,orderId,amount);
if (r == 1 && userId > 0) {
myWaterBiz.updMyWater(userId, orderId, amount);
}
}
//获取拥金列表
public List<AppUserSellingWater> getWaterList(Integer orderId){
Example example=new Example(AppUserSellingWater.class);
example.createCriteria().andEqualTo("orderId",orderId).andEqualTo("waiting",0).andEqualTo("status",0);
public List<AppUserSellingWater> getWaterList(Integer orderId) {
Example example = new Example(AppUserSellingWater.class);
example.createCriteria().andEqualTo("orderId", orderId).andEqualTo("waiting", 0).andEqualTo("status", 0);
return mapper.selectByExample(example);
}
public Map<Integer, BigDecimal> findMemberIdAndIncomeMapByMemberIds(List<Integer> memberIds) {
Map<Integer,BigDecimal> memberIdAndIncomeMap = new HashMap<>();
Map<Integer, BigDecimal> memberIdAndIncomeMap = new HashMap<>();
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()));
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) {
SellingWalletPagVo sellingWalletPagVo = new SellingWalletPagVo();
Example example = new Example(AppUserSellingWater.class);
Example.Criteria criteria = example.createCriteria();
if (waiting!=null){
criteria.andEqualTo("waiting",waiting);
if (waiting != null) {
criteria.andEqualTo("waiting", waiting);
}
criteria.andEqualTo("userId",userId);
PageDataVO<AppUserSellingWater> appUserSellingWaterPageDataVO = PageDataVO.pageInfo(pageNo,pageSize,()->mapper.selectByExample(example));
criteria.andEqualTo("userId", userId);
PageDataVO<AppUserSellingWater> appUserSellingWaterPageDataVO = PageDataVO.pageInfo(pageNo, pageSize, () -> mapper.selectByExample(example));
List<AppUserSellingWater> appUserSellingWaters = appUserSellingWaterPageDataVO.getData();
if (CollectionUtils.isEmpty(appUserSellingWaters)){
if (CollectionUtils.isEmpty(appUserSellingWaters)) {
sellingWalletPagVo.setPageNum(pageNo);
sellingWalletPagVo.setPageSize(pageSize);
sellingWalletPagVo.setTotalCount(0);
......@@ -256,7 +256,7 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
List<Integer> memberIds = appUserSellingWaters.stream().map(AppUserSellingWater::getSourceId).collect(Collectors.toList());
Map<Integer,AppUserLogin> userIdAndAppUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(memberIds);
Map<Integer, AppUserLogin> userIdAndAppUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(memberIds);
Map<Integer, AppUserDetail> userIdAndAppUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(memberIds);
List<SellingWalletVo> sellingWaterVos = new ArrayList<>();
......@@ -264,21 +264,21 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
BigDecimal totalIncome = new BigDecimal(0);
for (AppUserSellingWater appUserSellingWater : appUserSellingWaters) {
sellingWaterVo = new SellingWalletVo();
BeanUtils.copyProperties(appUserSellingWater,sellingWaterVo);
BeanUtils.copyProperties(appUserSellingWater, sellingWaterVo);
sellingWaterVo.setUsername(userIdAndAppUserLoginMap.get(appUserSellingWater.getSourceId()).getUsername());
if (userIdAndAppUserDetailMap!=null){
if (userIdAndAppUserDetailMap != null) {
AppUserDetail appUserDetail = userIdAndAppUserDetailMap.get(appUserSellingWater.getSourceId());
sellingWaterVo.setNickName(appUserDetail==null?"":appUserDetail.getNickname());
sellingWaterVo.setHeadUrl(appUserDetail==null?"":appUserDetail.getHeadimgurl());
sellingWaterVo.setNickName(appUserDetail == null ? "" : appUserDetail.getNickname());
sellingWaterVo.setHeadUrl(appUserDetail == null ? "" : appUserDetail.getHeadimgurl());
}
totalIncome = totalIncome.add(sellingWaterVo.getCommission());
sellingWaterVos.add(sellingWaterVo);
}
if (waiting==null){
Supplier<Stream<AppUserSellingWater>> commissionStream = ()-> appUserSellingWaters.stream();
BigDecimal total = commissionStream.get().filter(x -> x.getStatus() == 0).map(AppUserSellingWater::getCommission).reduce(new BigDecimal(0),(x,y)->x.add(y));
BigDecimal refund = commissionStream.get().filter(x -> x.getStatus() == 1).map(AppUserSellingWater::getCommission).reduce(new BigDecimal(0),(x,y)->x.add(y));
if (waiting == null) {
Supplier<Stream<AppUserSellingWater>> commissionStream = () -> appUserSellingWaters.stream();
BigDecimal total = commissionStream.get().filter(x -> x.getStatus() == 0).map(AppUserSellingWater::getCommission).reduce(new BigDecimal(0), (x, y) -> x.add(y));
BigDecimal refund = commissionStream.get().filter(x -> x.getStatus() == 1).map(AppUserSellingWater::getCommission).reduce(new BigDecimal(0), (x, y) -> x.add(y));
totalIncome = total.subtract(refund);
}
......@@ -291,4 +291,8 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
return sellingWalletPagVo;
}
public BigDecimal selectTotalIncomeByUserId(Integer userId) {
return mapper.selectTotalIncomeByUserId(userId);
}
}
\ No newline at end of file
package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.bo.PromoteBO;
import com.github.wxiaoqi.security.admin.bo.UserTeamMemberBo;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
......@@ -12,9 +13,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -89,4 +88,24 @@ public class UserBusinessBiz {
userTeamMemberVo.setTotalIncome(totalIncome);
return userTeamMemberVo;
}
public PromoteBO getPromoteBoByUserId(Integer userId) {
PromoteBO promoteBO = new PromoteBO();
Integer leaderId = appUserRelationBiz.findLeaderIdByMemberId(userId);
Map<Integer,Integer> memberStateAndCountMap = appUserRelationBiz.findMemberSateAndCountMapByLeaderId(userId);
if (leaderId != 0) {
Map<Integer, AppUserLogin> userIdAndUserLoginMap = appUserLoginBiz.findUserIdAndUserLoginMapByMemberIds(Arrays.asList(leaderId));
Map<Integer, AppUserDetail> userIdAndUserDetailMap = appUserDetailBiz.findUserIdAndUserDetailMapByMemberIds(Arrays.asList(leaderId));
promoteBO.setLeaderUsername(userIdAndUserLoginMap.get(leaderId).getUsername());
promoteBO.setLeaderHeadUrl(userIdAndUserDetailMap.get(leaderId).getHeadimgurl());
}
promoteBO.setInviteNumber(memberStateAndCountMap.get(0));
promoteBO.setActivatedNumber(memberStateAndCountMap.get(1));
BigDecimal totalIncome = appUserSellingWaterBiz.selectTotalIncomeByUserId(userId);
promoteBO.setTotalIncome(totalIncome);
return promoteBO;
}
}
......@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -17,4 +18,6 @@ import java.util.List;
public interface AppUserSellingWaterMapper extends Mapper<AppUserSellingWater> {
List<UserIncomeBo> accquireIncomeByMemberIds(@Param("memberIds") List<Integer> memberIds);
BigDecimal selectTotalIncomeByUserId(@Param("userId") Integer userId);
}
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.vo.InviteMemberVo;
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 com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.admin.biz.AppUserRelationBiz;
import com.github.wxiaoqi.security.admin.entity.AppUserRelation;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("relation")
public class AppUserRelationController extends BaseController<AppUserRelationBiz,AppUserRelation> {
@Autowired
private UserAuthUtil userAuthUtil;
@Autowired
private UserAuthConfig userAuthConfig;
@RequestMapping(value = "app/unauth/small/share",method = RequestMethod.GET)
@ApiModelProperty("小程序分享绑定")
......@@ -26,4 +37,19 @@ public class AppUserRelationController extends BaseController<AppUserRelationBiz
return baseBiz.shareParentByUserId(userid,pid,platform_userid);
}
@ApiOperation("查询邀请的成员")
@GetMapping("/page")
public ObjectRestResponse<InviteMemberVo> findInviteMemberByActivitState(@RequestParam(value = "state",required = false) Integer state,
@RequestParam("page") Integer page,
@RequestParam("limit") Integer limit,
HttpServletRequest request){
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
InviteMemberVo inviteMemberVo = baseBiz.findInviteMemberByActivitState(Integer.valueOf(infoFromToken.getId()),state,page,limit);
return ObjectRestResponse.succ(inviteMemberVo);
} catch (Exception e) {
throw new BaseException(e);
}
}
}
\ No newline at end of file
package com.github.wxiaoqi.security.admin.rest;
import com.github.wxiaoqi.security.admin.biz.UserBusinessBiz;
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.auth.client.config.UserAuthConfig;
......@@ -45,6 +46,16 @@ public class UserBussinessController {
} 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);
}
}
}
......@@ -3,16 +3,17 @@ package com.github.wxiaoqi.security.admin.rpc.service;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.biz.*;
import com.github.wxiaoqi.security.admin.biz.AppUserBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserDetailBiz;
import com.github.wxiaoqi.security.admin.biz.AppUserLoginBiz;
import com.github.wxiaoqi.security.admin.biz.ElementBiz;
import com.github.wxiaoqi.security.admin.constant.RedisKey;
import com.github.wxiaoqi.security.admin.constant.enumerate.UserSourceEnum;
import com.github.wxiaoqi.security.admin.dto.BaseUserMemberExportDTO;
import com.github.wxiaoqi.security.admin.dto.RegisterParamDTO;
import com.github.wxiaoqi.security.admin.dto.RegisterQueueDTO;
import com.github.wxiaoqi.security.admin.dto.UserMemberDTO;
import com.github.wxiaoqi.security.admin.entity.AppUser;
import com.github.wxiaoqi.security.admin.entity.AppUserDetail;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.Element;
import com.github.wxiaoqi.security.admin.entity.*;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.admin.vo.ImiVo;
import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo;
......@@ -29,7 +30,7 @@ import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.im.feign.ImFeign;
import com.xxfc.platform.universal.dto.RegionDTO;
import com.xxfc.platform.universal.feign.MQSenderFeign;
import com.xxfc.platform.universal.feign.MQSerderFeign;
import com.xxfc.platform.universal.feign.RegionFeign;
import com.xxfc.platform.universal.feign.ThirdFeign;
import lombok.extern.slf4j.Slf4j;
......@@ -69,7 +70,7 @@ public class AppPermissionService {
ThirdFeign thirdFeign;
@Autowired
MQSenderFeign mqSenderFeign;
MQSerderFeign mqSerderFeign;
@Autowired
ImFeign imFeign;
......@@ -214,7 +215,7 @@ public class AppPermissionService {
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
public JSONObject register(String username, String password, String headimgurl,
String nickname, String mobilecode, String openId, String unionid, Integer type,String code) {
String activityCode;
String activityCode = null;
// 判断参数和验证码
if (StringUtils.isBlank(username) || StringUtils.isBlank(password) || StringUtils.isBlank(mobilecode)) {
......@@ -317,19 +318,7 @@ public class AppPermissionService {
data.put("imUserId", imUserId);
}
if (data != null) {
try {
//入参
RegisterQueueDTO registerQueueDTO = new RegisterQueueDTO(){{
setData(data);
setAppUserId(userid);
setRegisterParamDTO(new RegisterParamDTO(username, password, headimgurl,
nickname, mobilecode, openId, unionid, type, null));
}};
// //注册成功,发送队列
mqSenderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, KEY_REGISTER_SUCCESS, JSONUtil.toJsonStr(registerQueueDTO));
}catch (Exception e){
log.error(e.getMessage(), e);
}
sendQueue(username, password, headimgurl, nickname, mobilecode, openId, unionid, type, code, activityCode, userid);
return JsonResultUtil.createSuccessResultWithObj(data);
} else {
return JsonResultUtil.createDefaultFail();
......@@ -340,6 +329,22 @@ public class AppPermissionService {
}
}
private void sendQueue(String username, String password, String headimgurl, String nickname, String mobilecode, String openId, String unionid, Integer type, String code, String activityCode, Integer userid) {
try {
RegisterQueueDTO registerQueueDTO = new RegisterQueueDTO();
//出参
// registerQueueDTO.setData(data);
registerQueueDTO.setAppUserId(userid);
//入参
registerQueueDTO.setInParamDTO(new RegisterParamDTO(username, password, headimgurl,
nickname, mobilecode, openId, unionid, type, code, activityCode));
// 注册成功,发送队列
mqSerderFeign.sendMessage(RabbitConstant.ADMIN_TOPIC, KEY_REGISTER_SUCCESS, JSONUtil.toJsonStr(registerQueueDTO));
}catch (Exception e){
log.error(e.getMessage(), e);
}
}
/**
* 自动登录
*/
......
......@@ -16,4 +16,8 @@ WHERE
#{memberId}
</foreach>
</select>
<select id="selectTotalIncomeByUserId">
SELECT SUM(commission) FROM app_user_selling_water WHERE `user_id`=#{userId}
</select>
</mapper>
\ No newline at end of file
......@@ -78,7 +78,7 @@ public class ActivityPopularizeLog implements Serializable {
/**
* 推广活动项id
* 状态 0--未完成;1--完成;-1--失败
*/
@Column(name = "status")
@ApiModelProperty(value = "状态 0--未完成;1--完成;-1--失败")
......
......@@ -90,5 +90,11 @@ public class ActivityPopularizeUser implements Serializable {
@ApiModelProperty(value = "参与的用户的id")
private Integer userId;
/**
* 状态 0--未完成;1--完成;-1--失败
*/
@Column(name = "status")
@ApiModelProperty(value = "状态 0--未完成;1--完成;-1--失败")
private Integer status;
}
......@@ -18,6 +18,9 @@ import java.math.BigDecimal;
@FeignClient(value = "xx-activity")
public interface ActivityFeign {
public static final Integer IS_USE = 1;
public static final Integer NOT_USE = 0;
@ApiOperation("用户自动领取新人卷")
@RequestMapping(value = "/user/auth/led", method = RequestMethod.POST)
public String led(@RequestParam(value = "userId") Integer userId);
......@@ -30,10 +33,10 @@ public interface ActivityFeign {
@RequestMapping(value = "/user/use", method = RequestMethod.POST)
public BigDecimal use(
@RequestParam(value = "userId") Integer userId,
@RequestParam(value = "TickerNo") String TickerNo,
@RequestParam(value = "tickerNo") String tickerNo,
@RequestParam(value = "orderNo") String orderNo,
@RequestParam(value = "channel") Integer channel,
@RequestParam(value = "amout") BigDecimal amout,
@RequestParam(value = "amount") BigDecimal amount,
@RequestParam(value = "type") Integer type);
@ApiOperation("优惠卷取消使用")
......
package com.xxfc.platform.activity.vo.popularize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class FinishUserVO extends UserVO{
/**
* 头像
*/
@ApiModelProperty(value = "手机号")
private String phone;
}
package com.xxfc.platform.activity.biz;
import com.github.wxiaoqi.security.admin.dto.RegisterQueueDTO;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.xxfc.platform.activity.entity.ActivityPopularizeLog;
import com.xxfc.platform.activity.entity.ActivityPopularizeRelation;
import com.xxfc.platform.activity.entity.ActivityPopularizeUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xxfc.platform.activity.entity.ActivityPopularize;
import com.xxfc.platform.activity.mapper.ActivityPopularizeMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
/**
* 推广活动(邀请有礼)
*
......@@ -15,4 +25,80 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
*/
@Service
public class ActivityPopularizeBiz extends BaseBiz<ActivityPopularizeMapper,ActivityPopularize> {
@Autowired
ActivityPopularizeRelationBiz relationBiz;
@Autowired
ActivityPopularizeBiz popularizeBiz;
@Autowired
ActivityPopularizeUserBiz popularizeUserBiz;
@Autowired
ActivityPopularizeLogBiz popularizeLogBiz;
@Autowired
UserFeign userFeign;
public static final String POPULARIZE_0101 = "0101";
public void handleRegister(RegisterQueueDTO registerQueueDTO) {
String activityCode = registerQueueDTO.getInParamDTO().getActivityCode();
AppUserDTO appUserDTO = userFeign.userDetailById(registerQueueDTO.getAppUserId()).getData();
//获取活动code,并且注册来源是app 并且 是邀请注册
if(POPULARIZE_0101.equals(registerQueueDTO.getInParamDTO().getActivityCode())
&& RegisterQueueDTO.SIGN_LOGIN.equals(registerQueueDTO.getSign())) {
ActivityPopularize activityPopularize = popularizeBiz.selectOne(new ActivityPopularize(){{
setCode(activityCode);
}});
Integer majorUserId = Integer.valueOf(appUserDTO.getInviterAccount());
//添加活动关系
relationBiz.insertSelective(new ActivityPopularizeRelation(){{
setPopularizeId(activityPopularize.getId());
setMajorUserId(majorUserId);
setMinorUserId(appUserDTO.getUserid());
}});
ActivityPopularizeLog popularizeLog = popularizeLogBiz.selectOne(new ActivityPopularizeLog(){{
setUserId(majorUserId);
setItemId(3);
}});
//生成任务项
if(null == popularizeLog){
popularizeLogBiz.insertSelectiveRe(new ActivityPopularizeLog(){{
setItemId(3);
setUserId(majorUserId);
setStatus(SYS_FALSE);
setPopularizeId(activityPopularize.getId());
}});
}
//查出majorUser参与活动信息
ActivityPopularizeUser activityPopularizeUser = popularizeUserBiz.selectOne(new ActivityPopularizeUser(){{
setUserId(majorUserId);
setPopularizeId(activityPopularize.getId());
}});
//任务没有完成
if(!SYS_TRUE.equals(activityPopularizeUser.getStatus())) {
//检查是否满足奖励
if(relationBiz.selectList(new ActivityPopularizeRelation(){{
setMajorUserId(appUserDTO.getUserid());
setPopularizeId(activityPopularize.getId());
}}).size() >= 10) {
activityPopularizeUser.setStatus(SYS_TRUE);
popularizeUserBiz.updateSelectiveById(activityPopularizeUser);
popularizeLog.setStatus(SYS_TRUE);
popularizeLogBiz.updateSelectiveById(popularizeLog);
}
}
}
}
}
\ No newline at end of file
......@@ -153,14 +153,18 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> {
return couponAmout;
}
Example example=new Example(UserCoupon.class);
example.createCriteria().andEqualTo("TickerNo",TickerNo).andEqualTo("isDel",0);
example.createCriteria().andEqualTo("tickerNo",TickerNo).andEqualTo("isDel",0);
List<UserCoupon> list=selectByExample(example);
if(list.size()==0){
log.error(userId+"----已领优惠卷");
log.error(userId+"----没有可用优惠卷--TickerNo==="+TickerNo);
return couponAmout;
}
UserCoupon userCoupon=list.get(0);
if(userCoupon!=null&&userCoupon.getIsUse()==1){
log.error(userId+"----该优惠卷已使用--TickerNo=="+TickerNo);
return couponAmout;
}
if (type==1){
userCoupon.setIsUse(1);
userCoupon.setOrderNo(orderNo);
......@@ -181,7 +185,8 @@ public class UserCouponBiz extends BaseBiz<UserCouponMapper, UserCoupon> {
BigDecimal useAmout = coupon.getUsedAmount();
if (amout.compareTo(useAmout) > 0) {
if (type == 3 || (type == 1 && (amout.compareTo(coupon.getWithAmount()) >= 0))) {
couponAmout = amout.subtract(useAmout);
//couponAmout = amout.subtract(useAmout);
couponAmout=useAmout;
}
}
}
......
......@@ -22,44 +22,18 @@ import java.util.ArrayList;
public class RabbitActivityConfig extends RabbitCommonConfig {
public static final String INTEGRAL_QUEUE = "integral_queue";
// public static final String POPULARZIE_REGISTER_QUEUE = "popularzie.register.queue";
// public static final String POPULARZIE_AUTH_QUEUE = "popularzie.auth.queue";
public static final String POPULARZIE_0101_QUEUE = "popularzie.0101.queue";
static {
myQueue = new ArrayList<BindDTO>(){{
add(new BindDTO(INTEGRAL_QUEUE, RabbitConstant.ADMIN_TOPIC, "order.#"));
add(new BindDTO(INTEGRAL_QUEUE, RabbitConstant.ORDER_TOPIC, "order.#"));
add(new BindDTO(POPULARZIE_0101_QUEUE, RabbitConstant.ADMIN_TOPIC, "appUser.#"));
// add(new BindDTO(POPULARZIE_REGISTER_QUEUE, RabbitConstant.ADMIN_TOPIC, "appUser.register"));
// add(new BindDTO(POPULARZIE_AUTH_QUEUE, RabbitConstant.ADMIN_TOPIC, "appUser.login"));
}};
}
// public static final String BASE_EXC = "hz_exchange";
// public static final String INTEGRAL_QUEUE = "integral_queue";
// public static final String ORDER_WATER_KEY = "order";
// /**
// * 队列交换机
// * 注意这里的交换机类型:CustomExchange
// * @return
// */
// @Bean
// public DirectExchange directExchange(){
// return new DirectExchange(BASE_EXC, true, false);
// }
//
// /**
// * 队列
// * @return
// */
// @Bean
// public Queue orderWaterQueue(){
// return new Queue(INTEGRAL_QUEUE,true);
// }
//
// /**
// * 队列绑定交换机
// * @return
// */
// @Bean
// public Binding orderWaterBinding(Queue orderWaterQueue, DirectExchange directExchange){
// return BindingBuilder.bind(orderWaterQueue).to(directExchange).with(ORDER_WATER_KEY);
// }
}
package com.xxfc.platform.activity.config;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* rabbitmq配置类
* 包含: 不知道什么orderWater队列
* @author zhoujw
* @date 2019/7/15
*/
@Configuration
public class RabbitIntegralConfig {
public static final String HZ_EXC = "hz_exchange";
public static final String INTEGRAL_QUEUE = "integral_queue";
public static final String ORDER_WATER_KEY = "order";
// /**
// * 队列交换机
// * 注意这里的交换机类型:CustomExchange
// * @return
// */
// @Bean
// public DirectExchange directExchange(){
// return new DirectExchange(HZ_EXC, true, false);
// }
/**
* 队列
* @return
*/
@Bean
public Queue orderWaterQueue(){
return new Queue(INTEGRAL_QUEUE,true);
}
// /**
// * 队列绑定交换机
// * @return
// */
// @Bean
// public Binding orderWaterBinding(Queue orderWaterQueue, DirectExchange directExchange){
// return BindingBuilder.bind(orderWaterQueue).to(directExchange).with(ORDER_WATER_KEY);
// }
}
package com.xxfc.platform.activity.handler;
import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.admin.dto.RegisterQueueDTO;
import com.rabbitmq.client.Channel;
import com.xxfc.platform.activity.biz.ActivityPopularizeBiz;
import com.xxfc.platform.activity.biz.IntegralUserRecordBiz;
import com.xxfc.platform.activity.config.RabbitActivityConfig;
import com.xxfc.platform.activity.entity.ActivityPopularize;
import com.xxfc.platform.activity.vo.IntegralUserRecordDto;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.Headers;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@Component
@Slf4j
public class PopularizeMQHandler {
@Autowired
ActivityPopularizeBiz activityPopularizeBiz;
//@RabbitListener(queues = {RabbitActivityConfig.POPULARZIE_REGISTER_QUEUE,RabbitActivityConfig.POPULARZIE_AUTH_QUEUE})
@RabbitListener(queues = {RabbitActivityConfig.POPULARZIE_0101_QUEUE})
public void popularizeHandler(Message message, @Headers Map<String, Object> headers, Channel channel) {
ExecutorService executorService = Executors.newCachedThreadPool();
executorService.execute(new Runnable() {
@Override
public void run() {
try {
String messageId = message.getMessageProperties().getMessageId();
String msg = new String(message.getBody(), "UTF-8");
log.info("接收到的消息:msg = {}, 消息ID是:messageId = {} ", msg, messageId);
if (StringUtils.isNotBlank(msg)) {
RegisterQueueDTO registerQueueDTO = JSONObject.parseObject(msg, RegisterQueueDTO.class);
activityPopularizeBiz.handleRegister(registerQueueDTO);
}
executorService.shutdown();
Long deliveryTag = (Long) headers.get(AmqpHeaders.DELIVERY_TAG);
// 手动签收
channel.basicAck(deliveryTag, false);
} catch (Exception e) {
log.info("接收到的消息失败");
try {
channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, false);
} catch (IOException i) {
i.printStackTrace();
}
e.printStackTrace();
}
}
});
}
}
......@@ -11,14 +11,18 @@ import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.XxBizAssert;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.activity.biz.*;
import com.xxfc.platform.activity.dto.ItemAddDTO;
import com.xxfc.platform.activity.entity.*;
import com.xxfc.platform.activity.vo.popularize.FinishUserVO;
import com.xxfc.platform.activity.vo.popularize.ItemVO;
import com.xxfc.platform.activity.vo.popularize.PopularizeVO;
import com.xxfc.platform.activity.vo.popularize.UserVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
......@@ -35,6 +39,7 @@ import static com.github.wxiaoqi.security.common.constant.CommonConstants.*;
@RestController
@RequestMapping("activityPopularize")
@Api(value = "推广活动", tags = "推广活动")
@Slf4j
public class ActivityPopularizeController extends BaseController<ActivityPopularizeBiz,ActivityPopularize> implements UserRestInterface {
@Autowired
......@@ -72,10 +77,6 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular
setType(type);
}}).stream().map(v -> {
PopularizeVO vo = BeanUtil.toBean(v, PopularizeVO.class);
vo.setUserVOs(new ArrayList<UserVO>(){{
add(new UserVO(){{setNickname("小A");setHeadimgurl("https://xxtest.upyuns.com/image/app/default_%20avatar.png");}});
add(new UserVO(){{setNickname("小B");setHeadimgurl("https://xxtest.upyuns.com/image/app/default_%20avatar.png");}});
}});
ActivityPopularizeUser[] apu = new ActivityPopularizeUser[1];
Map<Integer, ActivityPopularizeLog>[] aplMap = new HashMap[1];
if(null != appUserDTO) {
......@@ -182,15 +183,27 @@ public class ActivityPopularizeController extends BaseController<ActivityPopular
@RequestMapping(value = "/app/unauth/relation-list", method = RequestMethod.GET)
@ResponseBody
@ApiOperation(value = "查询该活动邀请的好友")
@ApiOperation(value = "查询该活动参与成功的人")
@IgnoreClientToken
@IgnoreUserToken
public ObjectRestResponse<PopularizeVO> relationList(String code) {
checkAppUser();
// ActivityPopularize activityPopularize = popularizeBiz.selectOne(new ActivityPopularize(){{
// setCode(code);
// }});
// activityPopularize.get
return ObjectRestResponse.succ();
public ObjectRestResponse<List<FinishUserVO>> relationList(String code) {
ActivityPopularize activityPopularize = popularizeBiz.selectOne(new ActivityPopularize(){{
setCode(code);
}});
PageDataVO<ActivityPopularizeUser> pageDataVO = PageDataVO.pageInfo(1, 20, () -> popularizeUserBiz.selectByExample(new Example.Builder(ActivityPopularizeUser.class)
.where(WeekendSqls.<ActivityPopularizeUser>custom()
.andEqualTo(ActivityPopularizeUser::getPopularizeId, activityPopularize.getId())
.andEqualTo(ActivityPopularizeUser::getStatus, SYS_TRUE))
.orderByDesc("updTime").build()));
return ObjectRestResponse.succ(pageDataVO.getData().stream().map(value -> {
AppUserDTO appUserDTO = userFeign.userDetailById(value.getUserId()).getData();
FinishUserVO finishUserVO = BeanUtil.toBean(appUserDTO, FinishUserVO.class);
log.error(StringUtils.overlay(appUserDTO.getUsername(), "*****", 3, 8));
finishUserVO.setPhone(StringUtils.overlay(appUserDTO.getUsername(), "*****", 3, 8));
return finishUserVO;
}).collect(Collectors.toList()));
}
}
\ No newline at end of file
......@@ -57,13 +57,13 @@ public class UserCouponController extends ActivityBaseController<UserCouponBiz>
@RequestMapping(value = "/use", method = RequestMethod.POST)
public BigDecimal use(
@RequestParam(value = "userId",defaultValue ="0" ) Integer userId,
@RequestParam(value = "TickerNo",defaultValue ="" ) String TickerNo,
@RequestParam(value = "tickerNo",defaultValue ="" ) String tickerNo,
@RequestParam(value = "orderNo",defaultValue ="" ) String orderNo,
@RequestParam(value = "channel",defaultValue ="1" ) Integer channel,
@RequestParam(value = "amout",defaultValue ="0.00" ) BigDecimal amout,
@RequestParam(value = "amount",defaultValue ="0.00" ) BigDecimal amount,
@RequestParam(value = "type",defaultValue ="1" ) Integer type
) {
return baseBiz.useTickerNo(userId,TickerNo,orderNo,channel,amout,type);
return baseBiz.useTickerNo(userId,tickerNo,orderNo,channel,amount,type);
}
@ApiOperation("优惠卷取消使用")
......
......@@ -216,7 +216,7 @@ public class OrderRentVehicleService extends AbstractOrderHandle<OrderRentVehicl
//优惠券处理
//待完成
// activityFeign.use(dto.getUserid());
// activityFeign.use();
//如果有使用会员权益或者优惠券,则设置订单已优惠
if(SYS_TRUE.equals(detail.getOrder().getHasMemberRight())) {
......
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