Commit 7c76de52 authored by liqin's avatar liqin 💬

Merge branch 'master' of http://111.203.232.171:8888/licc/shop-mall into master

parents 079a1636 c1b0d46c
......@@ -9,7 +9,6 @@ import org.apache.ibatis.annotations.Param;
*/
public interface MemberPercentMapper extends BaseMapper<MemberPercent> {
/**
*
* @param memberpercent 入参
* @return 1
*/
......@@ -17,6 +16,7 @@ public interface MemberPercentMapper extends BaseMapper<MemberPercent> {
/**
* 编辑
*
* @param memberpercent 入参
* @return 1
*/
......@@ -24,18 +24,18 @@ public interface MemberPercentMapper extends BaseMapper<MemberPercent> {
/**
* 删除
*
* @param id 主键id
* @return 1
*/
int delById(@Param("id") Integer id);
/**
* 获取会员等级对应的返佣比例
* 获取等级 某个类型的比列
* @param userLevel 会员等级
* @param type 类型
* @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;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
......@@ -27,15 +28,25 @@ public interface OrderMapper extends BaseMapper<OrderInfo> {
/**
* 根据tid获取订单数据
*
* @param tid 有赞生成的订单id
* @return 一条订单数据
*/
OrderInfo getByTid(@Param("tid")String tid);
OrderInfo getByTid(@Param("tid") String tid);
/**
* 获取当前用户的业绩
*
* @param userId
* @return
*/
BigDecimal getPerformanceByUserid(String userId);
/**
* 获取订单完成时间不为空,且订单完成时间小于当前时间
*
* @param successTime 订单完成时间
* @return 订单列表
*/
List<OrderInfo> getListBySuccessTime(@Param("successTime") Date successTime);
}
......@@ -70,15 +70,7 @@
where id = #{id}
</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
......
......@@ -95,7 +95,8 @@
</where>
</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
<include refid="table"/>
(<include refid="cols_exclude_id"/>)
......@@ -113,7 +114,7 @@
</where>
</select>
<select id="getPerformanceByUserid" resultType="java.math.BigDecimal" >
<select id="getPerformanceByUserid" resultType="java.math.BigDecimal">
select
sum(payment)
from
......@@ -123,4 +124,20 @@
</where>
</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>
\ 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;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
......@@ -61,13 +62,16 @@ public class AccountManager {
//1、计算返佣金额
BigDecimal bigDecimal = orderInfo.getPayment().multiply(memberPercent.getPercent());
BigDecimal extractMoney = accountInfo.getExtractMoney().add(bigDecimal);
extractMoney.setScale(2, RoundingMode.HALF_UP);
accountInfo.setExtractMoney(extractMoney);
BigDecimal performanceMonth = accountInfo.getEarningsMonth().add(bigDecimal);
performanceMonth.setScale(2, RoundingMode.HALF_UP);
accountInfo.setEarningsMonth(performanceMonth);
BigDecimal performanceTotal = accountInfo.getEarningsMonth().add(bigDecimal);
accountInfo.setEarningsMonth(performanceTotal);
performanceTotal.setScale(2, RoundingMode.HALF_UP);
accountInfo.setEarningsTotal(performanceTotal);
//2、修改订单返佣状态:已返佣 1
orderInfo.setRebateStatus(RebateStatusEnum.ALREADY_REBATE.getCode());
......@@ -75,7 +79,7 @@ public class AccountManager {
orderMapper.updateById(orderInfo);
//3、更新账户可用金额
accountMapper.updateById(accountInfo);
accountMapper.edit(accountInfo);
//4、添加交易流水记录
TradeRecord tradeRecord = new TradeRecord();
......
......@@ -15,11 +15,9 @@ public interface AccountService {
/**
* 订单返佣
*
* @param list 订单信息
* @return true or false
*/
R<Boolean> orderRebate(List<OrderInfo> list);
R<Boolean> orderRebate();
/**
* 获取账户信息
......
......@@ -5,6 +5,7 @@ import cn.wisenergy.common.utils.R;
import cn.wisenergy.mapper.*;
import cn.wisenergy.model.app.*;
import cn.wisenergy.model.enums.MemberPercentEnum;
import cn.wisenergy.model.enums.RebateStatusEnum;
import cn.wisenergy.model.enums.TradeRecordEnum;
import cn.wisenergy.model.enums.TradeStatusEnum;
......@@ -58,12 +59,18 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo>
@Autowired
private LastAccountMapper lastAccountMapper;
@Autowired
private OrderMapper orderMapper;
private static final String PATTERN = "yyyy-MM";
private static final Integer TWENTY = 20;
@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());
if (CollectionUtils.isEmpty(list)) {
return R.ok(0, true);
......@@ -75,7 +82,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, AccountInfo>
long time = System.currentTimeMillis();
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) {
continue;
}
......@@ -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) {
continue;
}
......
......@@ -40,4 +40,9 @@ public class AccountController {
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