Commit 43d42d0c authored by hezhen's avatar hezhen

123

parent 990c424f
......@@ -3,6 +3,8 @@ package com.github.wxiaoqi.security.admin.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* 拥金明细
*/
......@@ -18,6 +20,12 @@ public class OrderGoodsDTO {
@ApiModelProperty(value = "商品id")
private Integer goodId;
/**
* 商品类型;1-租车;2-旅游;3-会员订单;4-营地
*/
@ApiModelProperty(value = "商品类型")
private Integer type;
/**
* 商品数量
*/
......@@ -41,6 +49,6 @@ public class OrderGoodsDTO {
* 售价
*/
@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;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
......@@ -39,35 +40,35 @@ public class MyWallet implements Serializable {
*/
@Column(name = "balance")
@ApiModelProperty(value = "余额(分)")
private Long balance;
private BigDecimal balance;
/**
* 已提现金额
*/
@Column(name = "withdrawals")
@ApiModelProperty(value = "已提现金额")
private Long withdrawals;
private BigDecimal withdrawals;
/**
* 进账总额(分)
*/
@Column(name = "total_amount")
@ApiModelProperty(value = "进账总额(分)")
private Long totalAmount;
private BigDecimal totalAmount;
/**
* 进账总额(分)
*/
@Column(name = "today_amount")
@ApiModelProperty(value = "进账总额(分)")
private Long todayAmount;
private BigDecimal todayAmount;
/**
* 未入账金额
*/
@Column(name = "unbooked")
@ApiModelProperty(value = "未入账金额")
private Long unbooked;
private BigDecimal unbooked;
/**
* 是否冻结:0-正常,1-冻结
......
package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
......@@ -60,7 +61,7 @@ public class MyWalletCath implements Serializable {
*/
@Column(name = "amount")
@ApiModelProperty(value = "提现金额")
private Long amount;
private BigDecimal amount;
/**
* 订单状态:0-未提现,待审核,1-已审核
......
package com.github.wxiaoqi.security.admin.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiModelProperty;
......@@ -53,7 +54,7 @@ public class MyWalletDetail implements Serializable {
*/
@Column(name = "amount")
@ApiModelProperty(value = "收入/支出的金额(分)")
private Long amount;
private BigDecimal amount;
/**
* 活动类型
......@@ -81,7 +82,7 @@ public class MyWalletDetail implements Serializable {
*/
@Column(name = "balance")
@ApiModelProperty(value = "加上当时的收入的余额")
private Long balance;
private BigDecimal balance;
/**
* 操作者ID(如果系统操作,-1)
......
......@@ -15,4 +15,10 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
*/
@Service
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;
import com.github.wxiaoqi.security.admin.dto.OrderGoodsDTO;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserRelation;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -12,6 +13,7 @@ import org.springframework.stereotype.Service;
import com.github.wxiaoqi.security.admin.entity.AppUserSellingWater;
import com.github.wxiaoqi.security.admin.mapper.AppUserSellingWaterMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import tk.mybatis.mapper.entity.Example;
import java.math.BigDecimal;
import java.util.HashMap;
......@@ -34,11 +36,20 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
@Autowired
AppUserRelationBiz relationBiz;
//计算用户拥金
public void doWaterByUserId(OrderWaterDTO orderWaterDTO){
@Autowired
BaseGoodCommissionBiz commissionBiz;
@Autowired
AppUserPositionBiz positionBiz;
@Autowired
AppUserDetailBiz detailBiz;
//购买计算用户拥金
public void payOrderWater(OrderWaterDTO orderWaterDTO){
if(orderWaterDTO==null){
log.info("计算用户拥金----doWaterByUserId----次数不能为空----");
log.info("购买计算用户拥金----payOrderWater----次数不能为空----");
return;
}
//订单id
......@@ -50,26 +61,99 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
//订单状态
Integer status=orderWaterDTO.getStatus();
List<OrderGoodsDTO> goodsDTOList=orderWaterDTO.getGoodsDTOList();
log.info("计算用户拥金----doWaterByUserId----userId===="+userId+"---orderId==="+orderId+"---orderNo==="+orderNo+"--status=="+status);
if(orderId==null||orderId==0||userId==null||userId==0||status==null||status==0){
log.info("计算用户拥金----doWaterByUserId----次数不能为空----orderId==="+orderId);
log.info("购买计算用户拥金----payOrderWater----userId===="+userId+"---orderId==="+orderId+"---orderNo==="+orderNo+"--status=="+status);
if(orderId==null||orderId==0||userId==null||userId==0||status==null||status==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("计算用户拥金----doWaterByUserId--------userId==="+userId+"---无上线");
log.info("购买计算用户拥金----payOrderWater--------userId==="+userId+"---无上线");
return;
}
Integer parentId=relation.getParentId();
/* //商品id
Integer goodId=orderWaterDTO.getGoodId();
Integer parentId=relation.getParentId();
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) {
Map<Integer,BigDecimal> memberIdAndIncomeMap = new HashMap<>();
......@@ -79,4 +163,5 @@ public class AppUserSellingWaterBiz extends BaseBiz<AppUserSellingWaterMapper,Ap
}
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;
import com.github.wxiaoqi.security.admin.entity.AppUserPosition;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
/**
......@@ -12,4 +13,7 @@ import tk.mybatis.mapper.common.Mapper;
*/
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