Commit c1b0d46c authored by licc's avatar licc

自测返佣接口

parent ff5319fb
...@@ -9,7 +9,6 @@ import org.apache.ibatis.annotations.Param; ...@@ -9,7 +9,6 @@ import org.apache.ibatis.annotations.Param;
*/ */
public interface MemberPercentMapper extends BaseMapper<MemberPercent> { public interface MemberPercentMapper extends BaseMapper<MemberPercent> {
/** /**
*
* @param memberpercent 入参 * @param memberpercent 入参
* @return 1 * @return 1
*/ */
...@@ -17,6 +16,7 @@ public interface MemberPercentMapper extends BaseMapper<MemberPercent> { ...@@ -17,6 +16,7 @@ public interface MemberPercentMapper extends BaseMapper<MemberPercent> {
/** /**
* 编辑 * 编辑
*
* @param memberpercent 入参 * @param memberpercent 入参
* @return 1 * @return 1
*/ */
...@@ -24,18 +24,18 @@ public interface MemberPercentMapper extends BaseMapper<MemberPercent> { ...@@ -24,18 +24,18 @@ public interface MemberPercentMapper extends BaseMapper<MemberPercent> {
/** /**
* 删除 * 删除
*
* @param id 主键id * @param id 主键id
* @return 1 * @return 1
*/ */
int delById(@Param("id") Integer id); int delById(@Param("id") Integer id);
/** /**
* 获取会员等级对应的返佣比例 * 获取等级 某个类型的比列
* @param userLevel 会员等级 * @param userLevel 会员等级
* @param type 类型
* @return 返佣比例 * @return 返佣比例
*/ */
MemberPercent getByLevel(@Param("userLevel") Integer userLevel); MemberPercent getByLevelAndType(@Param("userLevel") Integer userLevel, @Param("type") Integer type);
MemberPercent getByLevelAndType(@Param("userLevel") Integer userLevel,@Param("type") Integer type);
} }
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -27,15 +28,25 @@ public interface OrderMapper extends BaseMapper<OrderInfo> { ...@@ -27,15 +28,25 @@ public interface OrderMapper extends BaseMapper<OrderInfo> {
/** /**
* 根据tid获取订单数据 * 根据tid获取订单数据
*
* @param tid 有赞生成的订单id * @param tid 有赞生成的订单id
* @return 一条订单数据 * @return 一条订单数据
*/ */
OrderInfo getByTid(@Param("tid")String tid); OrderInfo getByTid(@Param("tid") String tid);
/** /**
* 获取当前用户的业绩 * 获取当前用户的业绩
*
* @param userId * @param userId
* @return * @return
*/ */
BigDecimal getPerformanceByUserid(String userId); BigDecimal getPerformanceByUserid(String userId);
/**
* 获取订单完成时间不为空,且订单完成时间小于当前时间
*
* @param successTime 订单完成时间
* @return 订单列表
*/
List<OrderInfo> getListBySuccessTime(@Param("successTime") Date successTime);
} }
...@@ -70,15 +70,7 @@ ...@@ -70,15 +70,7 @@
where id = #{id} where id = #{id}
</delete> </delete>
<select id="getByLevel" resultType="cn.wisenergy.model.app.MemberPercent">
select
<include refid="cols_all"/>
from
<include refid="table"/>
<where>
user_level=#{userLevel}
</where>
</select>
<select id="getByLevelAndType" resultType="cn.wisenergy.model.app.MemberPercent"> <select id="getByLevelAndType" resultType="cn.wisenergy.model.app.MemberPercent">
select select
......
...@@ -95,7 +95,8 @@ ...@@ -95,7 +95,8 @@
</where> </where>
</select> </select>
<insert id="insertYouZanOrders" parameterType="cn.wisenergy.model.app.OrderInfo" keyProperty="id" useGeneratedKeys="true"> <insert id="insertYouZanOrders" parameterType="cn.wisenergy.model.app.OrderInfo" keyProperty="id"
useGeneratedKeys="true">
insert into insert into
<include refid="table"/> <include refid="table"/>
(<include refid="cols_exclude_id"/>) (<include refid="cols_exclude_id"/>)
...@@ -113,7 +114,7 @@ ...@@ -113,7 +114,7 @@
</where> </where>
</select> </select>
<select id="getPerformanceByUserid" resultType="java.math.BigDecimal" > <select id="getPerformanceByUserid" resultType="java.math.BigDecimal">
select select
sum(payment) sum(payment)
from from
...@@ -123,4 +124,20 @@ ...@@ -123,4 +124,20 @@
</where> </where>
</select> </select>
<select id="getListBySuccessTime" resultType="cn.wisenergy.model.app.OrderInfo">
SELECT
<include refid="cols_all"/>
from
<include refid="table"/>
<where>
rebate_status=0
<if test="successTime != null ">
and success_time &lt; #{successTime}
AND(
YEAR(success_time) = YEAR(#{successTime})
AND MONTH(success_time) = MONTH(#{successTime}))
</if>
</where>
</select>
</mapper> </mapper>
\ No newline at end of file
package cn.wisenergy.model.enums;
/**
* @author 86187
* @ Description: 会员收益比例类型枚举
* @ Author : 86187
* @ Date : 2021/3/8 16:54
*/
public enum MemberPercentEnum {
/**
* 会员收益比例类型枚举 1:返佣 2:月度肥料 3:月度最大进步奖 4:运营中心补贴
*/
REBATE(1, "返佣"),
MONTH_MANURE(2, "月度肥料"),
MONTH_BEST_AWARD(3, "月度最大进步奖"),
RUN_CENTER_SUBSIDY(4, "运营中心补贴");
MemberPercentEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
private Integer code;
private String desc;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
...@@ -14,6 +14,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -14,6 +14,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -61,13 +62,16 @@ public class AccountManager { ...@@ -61,13 +62,16 @@ public class AccountManager {
//1、计算返佣金额 //1、计算返佣金额
BigDecimal bigDecimal = orderInfo.getPayment().multiply(memberPercent.getPercent()); BigDecimal bigDecimal = orderInfo.getPayment().multiply(memberPercent.getPercent());
BigDecimal extractMoney = accountInfo.getExtractMoney().add(bigDecimal); BigDecimal extractMoney = accountInfo.getExtractMoney().add(bigDecimal);
extractMoney.setScale(2, RoundingMode.HALF_UP);
accountInfo.setExtractMoney(extractMoney); accountInfo.setExtractMoney(extractMoney);
BigDecimal performanceMonth = accountInfo.getEarningsMonth().add(bigDecimal); BigDecimal performanceMonth = accountInfo.getEarningsMonth().add(bigDecimal);
performanceMonth.setScale(2, RoundingMode.HALF_UP);
accountInfo.setEarningsMonth(performanceMonth); accountInfo.setEarningsMonth(performanceMonth);
BigDecimal performanceTotal = accountInfo.getEarningsMonth().add(bigDecimal); BigDecimal performanceTotal = accountInfo.getEarningsMonth().add(bigDecimal);
accountInfo.setEarningsMonth(performanceTotal); performanceTotal.setScale(2, RoundingMode.HALF_UP);
accountInfo.setEarningsTotal(performanceTotal);
//2、修改订单返佣状态:已返佣 1 //2、修改订单返佣状态:已返佣 1
orderInfo.setRebateStatus(RebateStatusEnum.ALREADY_REBATE.getCode()); orderInfo.setRebateStatus(RebateStatusEnum.ALREADY_REBATE.getCode());
...@@ -75,7 +79,7 @@ public class AccountManager { ...@@ -75,7 +79,7 @@ public class AccountManager {
orderMapper.updateById(orderInfo); orderMapper.updateById(orderInfo);
//3、更新账户可用金额 //3、更新账户可用金额
accountMapper.updateById(accountInfo); accountMapper.edit(accountInfo);
//4、添加交易流水记录 //4、添加交易流水记录
TradeRecord tradeRecord = new TradeRecord(); TradeRecord tradeRecord = new TradeRecord();
......
...@@ -15,11 +15,9 @@ public interface AccountService { ...@@ -15,11 +15,9 @@ public interface AccountService {
/** /**
* 订单返佣 * 订单返佣
*
* @param list 订单信息
* @return true or false * @return true or false
*/ */
R<Boolean> orderRebate(List<OrderInfo> list); R<Boolean> orderRebate();
/** /**
* 获取账户信息 * 获取账户信息
......
...@@ -5,6 +5,7 @@ import cn.wisenergy.common.utils.R; ...@@ -5,6 +5,7 @@ import cn.wisenergy.common.utils.R;
import cn.wisenergy.mapper.*; import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.*; import cn.wisenergy.model.app.*;
import cn.wisenergy.model.enums.MemberPercentEnum;
import cn.wisenergy.model.enums.RebateStatusEnum; import cn.wisenergy.model.enums.RebateStatusEnum;
import cn.wisenergy.model.enums.TradeRecordEnum; import cn.wisenergy.model.enums.TradeRecordEnum;
import cn.wisenergy.model.enums.TradeStatusEnum; import cn.wisenergy.model.enums.TradeStatusEnum;
...@@ -58,12 +59,18 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo> ...@@ -58,12 +59,18 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo>
@Autowired @Autowired
private LastAccountMapper lastAccountMapper; private LastAccountMapper lastAccountMapper;
@Autowired
private OrderMapper orderMapper;
private static final String PATTERN = "yyyy-MM"; private static final String PATTERN = "yyyy-MM";
private static final Integer TWENTY = 20; private static final Integer TWENTY = 20;
@Override @Override
public R<Boolean> orderRebate(List<OrderInfo> list) { public R<Boolean> orderRebate() {
//获取返佣订单
List<OrderInfo> list=orderMapper.getListBySuccessTime(new Date());
log.info("shop-mall[]AccountServiceImpl[]orderRebate[]input.param.list:{}", list.size()); log.info("shop-mall[]AccountServiceImpl[]orderRebate[]input.param.list:{}", list.size());
if (CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
return R.ok(0, true); return R.ok(0, true);
...@@ -75,7 +82,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo> ...@@ -75,7 +82,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo>
long time = System.currentTimeMillis(); long time = System.currentTimeMillis();
if (RebateStatusEnum.NO_REBATE.getCode().equals(orderInfo.getRebateStatus()) && successTime <= time) { if (RebateStatusEnum.NO_REBATE.getCode().equals(orderInfo.getRebateStatus()) && successTime <= time) {
//获取用户信息 //获取用户信息
User user = usersMapper.selectById(orderInfo.getBuyerId()); User user = usersMapper.getByUserId(orderInfo.getBuyerId());
if (null == user) { if (null == user) {
continue; continue;
} }
...@@ -87,7 +94,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo> ...@@ -87,7 +94,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo>
} }
//获取返佣比例 //获取返佣比例
MemberPercent memberpercent = memberPercentMapper.getByLevel(user.getUserLevel()); MemberPercent memberpercent = memberPercentMapper.getByLevelAndType(user.getUserLevel(), MemberPercentEnum.REBATE.getCode());
if (null == memberpercent) { if (null == memberpercent) {
continue; continue;
} }
......
...@@ -40,4 +40,9 @@ public class AccountController { ...@@ -40,4 +40,9 @@ public class AccountController {
return accountService.getByList(userId); return accountService.getByList(userId);
} }
@ApiOperation(value = "订单佣金", notes = "订单佣金", httpMethod = "GET")
@GetMapping("/orderRebate")
public R<Boolean> orderRebate(){
return accountService.orderRebate();
}
} }
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