Commit 7bb19fd2 authored by libin's avatar libin

Merge branch 'base-modify' of http://113.105.137.151:22280/youjj/cloud-platform into base-modify

parents fc1efa49 c90be062
...@@ -3,6 +3,8 @@ package com.github.wxiaoqi.security.admin.dto; ...@@ -3,6 +3,8 @@ package com.github.wxiaoqi.security.admin.dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* 拥金明细 * 拥金明细
*/ */
...@@ -18,6 +20,12 @@ public class OrderGoodsDTO { ...@@ -18,6 +20,12 @@ public class OrderGoodsDTO {
@ApiModelProperty(value = "商品id") @ApiModelProperty(value = "商品id")
private Integer goodId; private Integer goodId;
/**
* 商品类型;1-租车;2-旅游;3-会员订单;4-营地
*/
@ApiModelProperty(value = "商品类型")
private Integer type;
/** /**
* 商品数量 * 商品数量
*/ */
...@@ -41,6 +49,6 @@ public class OrderGoodsDTO { ...@@ -41,6 +49,6 @@ public class OrderGoodsDTO {
* 售价 * 售价
*/ */
@ApiModelProperty(value = "售价") @ApiModelProperty(value = "售价")
private Long price; private BigDecimal price;
} }
\ No newline at end of file
package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 商品拥金表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-11 18:34:39
*/
@Data
@Table(name = "base_good_commission")
public class BaseGoodCommission implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键id
*/
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
/**
* 商品id
*/
@Column(name = "good_id")
@ApiModelProperty(value = "商品id")
private Integer goodId;
/**
* 1-租车;2-旅游;3-会员订单;4-营地
*/
@Column(name = "type")
@ApiModelProperty(value = "1-租车;2-旅游;3-会员订单;4-营地")
private Integer type;
/**
* 是否计算;0-不计算;1计算
*/
@Column(name = "is_reckon")
@ApiModelProperty(value = "是否计算;0-不计算;1计算")
private Integer isReckon;
/**
* 拥金比例
*/
@Column(name = "extract")
@ApiModelProperty(value = "拥金比例")
private Integer extract;
}
package com.github.wxiaoqi.security.admin.entity; package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -39,35 +40,35 @@ public class MyWallet implements Serializable { ...@@ -39,35 +40,35 @@ public class MyWallet implements Serializable {
*/ */
@Column(name = "balance") @Column(name = "balance")
@ApiModelProperty(value = "余额(分)") @ApiModelProperty(value = "余额(分)")
private Long balance; private BigDecimal balance;
/** /**
* 已提现金额 * 已提现金额
*/ */
@Column(name = "withdrawals") @Column(name = "withdrawals")
@ApiModelProperty(value = "已提现金额") @ApiModelProperty(value = "已提现金额")
private Long withdrawals; private BigDecimal withdrawals;
/** /**
* 进账总额(分) * 进账总额(分)
*/ */
@Column(name = "total_amount") @Column(name = "total_amount")
@ApiModelProperty(value = "进账总额(分)") @ApiModelProperty(value = "进账总额(分)")
private Long totalAmount; private BigDecimal totalAmount;
/** /**
* 进账总额(分) * 进账总额(分)
*/ */
@Column(name = "today_amount") @Column(name = "today_amount")
@ApiModelProperty(value = "进账总额(分)") @ApiModelProperty(value = "进账总额(分)")
private Long todayAmount; private BigDecimal todayAmount;
/** /**
* 未入账金额 * 未入账金额
*/ */
@Column(name = "unbooked") @Column(name = "unbooked")
@ApiModelProperty(value = "未入账金额") @ApiModelProperty(value = "未入账金额")
private Long unbooked; private BigDecimal unbooked;
/** /**
* 是否冻结:0-正常,1-冻结 * 是否冻结:0-正常,1-冻结
......
package com.github.wxiaoqi.security.admin.entity; package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -60,7 +61,7 @@ public class MyWalletCath implements Serializable { ...@@ -60,7 +61,7 @@ public class MyWalletCath implements Serializable {
*/ */
@Column(name = "amount") @Column(name = "amount")
@ApiModelProperty(value = "提现金额") @ApiModelProperty(value = "提现金额")
private Long amount; private BigDecimal amount;
/** /**
* 订单状态:0-未提现,待审核,1-已审核 * 订单状态:0-未提现,待审核,1-已审核
......
package com.github.wxiaoqi.security.admin.entity; package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -53,7 +54,7 @@ public class MyWalletDetail implements Serializable { ...@@ -53,7 +54,7 @@ public class MyWalletDetail implements Serializable {
*/ */
@Column(name = "amount") @Column(name = "amount")
@ApiModelProperty(value = "收入/支出的金额(分)") @ApiModelProperty(value = "收入/支出的金额(分)")
private Long amount; private BigDecimal amount;
/** /**
* 活动类型 * 活动类型
...@@ -81,7 +82,7 @@ public class MyWalletDetail implements Serializable { ...@@ -81,7 +82,7 @@ public class MyWalletDetail implements Serializable {
*/ */
@Column(name = "balance") @Column(name = "balance")
@ApiModelProperty(value = "加上当时的收入的余额") @ApiModelProperty(value = "加上当时的收入的余额")
private Long balance; private BigDecimal balance;
/** /**
* 操作者ID(如果系统操作,-1) * 操作者ID(如果系统操作,-1)
......
...@@ -15,4 +15,10 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz; ...@@ -15,4 +15,10 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
*/ */
@Service @Service
public class AppUserPositionBiz extends BaseBiz<AppUserPositionMapper,AppUserPosition> { public class AppUserPositionBiz extends BaseBiz<AppUserPositionMapper,AppUserPosition> {
//获取用户职位的折扣
public Integer getExtract(Integer userId){
return getExtract(userId);
}
} }
\ No newline at end of file
...@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.admin.bo.UserIncomeBo; ...@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.admin.bo.UserIncomeBo;
import com.github.wxiaoqi.security.admin.dto.OrderGoodsDTO; import com.github.wxiaoqi.security.admin.dto.OrderGoodsDTO;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO; import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserRelation; import com.github.wxiaoqi.security.admin.entity.AppUserRelation;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -12,6 +13,7 @@ import org.springframework.stereotype.Service; ...@@ -12,6 +13,7 @@ import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater; import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater;
import com.github.wxiaoqi.security.admin.mapper.AppUserSellingWaterMapper; import com.github.wxiaoqi.security.admin.mapper.AppUserSellingWaterMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
...@@ -34,11 +36,20 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap ...@@ -34,11 +36,20 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
@Autowired @Autowired
AppUserRelationBiz relationBiz; AppUserRelationBiz relationBiz;
//计算用户拥金 @Autowired
public void doWaterByUserId(OrderWaterDTO orderWaterDTO){ BaseGoodCommissionBiz commissionBiz;
@Autowired
AppUserPositionBiz positionBiz;
@Autowired
AppUserDetailBiz detailBiz;
//购买计算用户拥金
public void payOrderWater(OrderWaterDTO orderWaterDTO){
if(orderWaterDTO==null){ if(orderWaterDTO==null){
log.info("计算用户拥金----doWaterByUserId----次数不能为空----"); log.info("购买计算用户拥金----payOrderWater----次数不能为空----");
return; return;
} }
//订单id //订单id
...@@ -50,27 +61,100 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap ...@@ -50,27 +61,100 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
//订单状态 //订单状态
Integer status=orderWaterDTO.getStatus(); Integer status=orderWaterDTO.getStatus();
List<OrderGoodsDTO> goodsDTOList=orderWaterDTO.getGoodsDTOList(); List<OrderGoodsDTO> goodsDTOList=orderWaterDTO.getGoodsDTOList();
log.info("计算用户拥金----doWaterByUserId----userId===="+userId+"---orderId==="+orderId+"---orderNo==="+orderNo+"--status=="+status); log.info("购买计算用户拥金----payOrderWater----userId===="+userId+"---orderId==="+orderId+"---orderNo==="+orderNo+"--status=="+status);
if(orderId==null||orderId==0||userId==null||userId==0||status==null||status==0){ if(orderId==null||orderId==0||userId==null||userId==0||status==null||status==0||CollectionUtils.isEmpty(goodsDTOList)){
log.info("计算用户拥金----doWaterByUserId----次数不能为空----orderId==="+orderId); log.info("购买计算用户拥金----payOrderWater----次数不能为空----orderId==="+orderId);
return; return;
} }
AppUserRelation relation=relationBiz.getRelationByUserId(userId); AppUserRelation relation=relationBiz.getRelationByUserId(userId);
if(relation==null||relation.getParentId()==null||relation.getParentId()==0){ if(relation==null||relation.getParentId()==null||relation.getParentId()==0){
log.info("计算用户拥金----doWaterByUserId--------userId==="+userId+"---无上线"); log.info("购买计算用户拥金----payOrderWater--------userId==="+userId+"---无上线");
return; return;
} }
Integer parentId=relation.getParentId();
/* //商品id Integer parentId=relation.getParentId();
Integer goodId=orderWaterDTO.getGoodId(); log.info("购买计算用户拥金----payOrderWater--------userId==="+userId+"---parentId==="+parentId);
for(OrderGoodsDTO goodsDto:goodsDTOList){
//商品id
Integer goodId=goodsDto.getGoodId();
//商品价格 //商品价格
Long price=orderWaterDTO.getPrice();*/ BigDecimal price=goodsDto.getPrice();
//商品类型
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();
sellingWater.setOrderId(orderId);
sellingWater.setGoodId(goodId);
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();
sellingWater.setUserId(parentId);
sellingWater.setSourceId(userId);
sellingWater.setPositionId(positionId);
sellingWater.setOrderId(orderId);
sellingWater.setOrderNo(orderNo);
sellingWater.setGoodId(goodId);
sellingWater.setTitle(goodsDto.getTitle());
sellingWater.setImg(goodsDto.getImg());
sellingWater.setPrice(price);
sellingWater.setExtract(extract);
sellingWater.setCommission(commission);
insertSelective(sellingWater);
log.info("购买计算用户拥成功----payOrderWater--------userId==="+userId);
}
}
} }
//订单完成计算用户拥金
public void finishOrderWater(OrderWaterDTO orderWaterDTO){
//订单id
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");
if (list.size()>0){
for (AppUserSellingWater sellingWater:list){
Integer id=sellingWater.getId();
sellingWater.setWaiting(1);
updateById(sellingWater);
BigDecimal commission=sellingWater.getCommission();
log.info("订单完成计算用户拥金----finishOrderWater----id===="+id+"---commission=="+commission);
amount.add(commission);
}
}
}
//获取拥金列表
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) { 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); List<UserIncomeBo> userIncomeBos = mapper.accquireIncomeByMemberIds(memberIds);
...@@ -79,4 +163,5 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap ...@@ -79,4 +163,5 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
} }
return memberIdAndIncomeMap; return memberIdAndIncomeMap;
} }
} }
\ No newline at end of file
package com.github.wxiaoqi.security.admin.biz;
import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.BaseGoodCommission;
import com.github.wxiaoqi.security.admin.mapper.BaseGoodCommissionMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
/**
* 商品拥金表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-11 18:34:39
*/
@Service
public class BaseGoodCommissionBiz extends BaseBiz<BaseGoodCommissionMapper,BaseGoodCommission> {
public Integer getExtract(Integer type,Integer goodId){
Example example=new Example(BaseGoodCommission.class);
example.createCriteria().andEqualTo("goodId", goodId).andEqualTo("type", type).andEqualTo("isReckon",1);
List<BaseGoodCommission> list = mapper.selectByExample(example);
if (list != null && list.size() != 0) {
return list.get(0).getExtract();
}
return 0;
}
}
\ No newline at end of file
package com.github.wxiaoqi.security.admin.mapper; package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.AppUserPosition; import com.github.wxiaoqi.security.admin.entity.AppUserPosition;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
/** /**
...@@ -11,5 +12,8 @@ import tk.mybatis.mapper.common.Mapper; ...@@ -11,5 +12,8 @@ import tk.mybatis.mapper.common.Mapper;
* @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> {
Integer getExtractByUserId(@Param("userId")Integer userId);
} }
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.BaseGoodCommission;
import tk.mybatis.mapper.common.Mapper;
/**
* 商品拥金表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-11 18:34:39
*/
public interface BaseGoodCommissionMapper extends Mapper<BaseGoodCommission> {
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.github.wxiaoqi.security.admin.mapper.AppUserPositionMapper">
<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="com.github.wxiaoqi.security.admin.entity.AppUserPosition" id="appUserPositionMap">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="level" column="level"/>
<result property="number" column="number"/>
<result property="extract" column="extract"/>
<result property="status" column="status"/>
<result property="crtTime" column="crt_time"/>
<result property="updTime" column="upd_time"/>
<result property="isDel" column="is_del"/>
</resultMap>
<select id="getExtractByUserId" resultType="Integer">
SELECT p.extract FROM app_user_detail d LEFT JOIN app_user_position p
ON d.position_id=p.id
WHERE d.userid=#{userId} LIMIT 1
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment