From 6414d11724795daec088f622e517d5df59a53e83 Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期四, 23 四月 2020 01:54:53 +0800 Subject: [PATCH] 团队分红来源订单与用户映射相关服务实现 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java | 110 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 88 insertions(+), 22 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java index 7657bfe..f06dcf4 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/dividents/TeamDividentsSourceOrderUserMapServiceImpl.java @@ -1,89 +1,155 @@ package com.yeshi.fanli.service.impl.order.dividents; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; -import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.yeshi.fanli.dao.mybatis.order.dividents.TeamDividentsSourceOrderUserMapMapper; import com.yeshi.fanli.entity.order.dividents.TeamDividentsSourceOrderUserMap; import com.yeshi.fanli.exception.ParamsException; import com.yeshi.fanli.service.inter.order.dividents.TeamDividentsSourceOrderUserMapService; +import com.yeshi.fanli.util.MoneyBigDecimalUtil; @Service public class TeamDividentsSourceOrderUserMapServiceImpl implements TeamDividentsSourceOrderUserMapService { + @Resource + private TeamDividentsSourceOrderUserMapMapper teamDividentsSourceOrderUserMapMapper; + @Override public TeamDividentsSourceOrderUserMap selectByPrimaryKeyForUpdate(Long id) { - // TODO Auto-generated method stub - return null; + return teamDividentsSourceOrderUserMapMapper.selectByPrimaryKeyForUpdate(id); } + @Transactional @Override public void send(Long id) { - // TODO Auto-generated method stub - + TeamDividentsSourceOrderUserMap map = teamDividentsSourceOrderUserMapMapper.selectByPrimaryKeyForUpdate(id); + if (map == null) + return; + if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_JS) { + TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap(); + update.setId(id); + update.setState(TeamDividentsSourceOrderUserMap.STATE_YILINGQU); + update.setUpdateTime(new Date()); + teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update); + } } @Override public void addDividentsSourceOrderUserMap(TeamDividentsSourceOrderUserMap map) throws ParamsException { - // TODO Auto-generated method stub + if (map == null || map.getMoney() == null || map.getRate() == null || map.getSourceOrder() == null + || map.getSourceUid() == null || map.getTargetUid() == null || map.getType() == null) { + throw new ParamsException(1, "鍙傛暟涓嶅畬鏁�"); + } + List<Integer> typeList = new ArrayList<Integer>(); + typeList.add(map.getType()); + long count = teamDividentsSourceOrderUserMapMapper.count(map.getSourceOrder().getId(), null, map.getTargetUid(), + null, null, typeList); + if (count > 0) + return; + + if (map.getCreateTime() == null) + map.setCreateTime(new Date()); + + teamDividentsSourceOrderUserMapMapper.insertSelective(map); } @Override public List<TeamDividentsSourceOrderUserMap> listCanSend(Long sourceUid, Date maxPreSendTime, int page, int pageSize) { - // TODO Auto-generated method stub - return null; + + List<Integer> stateList = new ArrayList<Integer>(); + stateList.add(TeamDividentsSourceOrderUserMap.STATE_JS); + return teamDividentsSourceOrderUserMapMapper.list(null, sourceUid, null, maxPreSendTime, stateList, null, + (page - 1) * pageSize, pageSize); } @Override public long countCanSend(Long sourceUid, Date maxPreSendTime) { - // TODO Auto-generated method stub - return 0; + List<Integer> stateList = new ArrayList<Integer>(); + stateList.add(TeamDividentsSourceOrderUserMap.STATE_JS); + return teamDividentsSourceOrderUserMapMapper.count(null, sourceUid, null, maxPreSendTime, stateList, null); } @Override public long countBySourceOrderId(Long sourceOrderId) { - // TODO Auto-generated method stub - return 0; + return teamDividentsSourceOrderUserMapMapper.count(sourceOrderId, null, null, null, null, null); } @Override public List<TeamDividentsSourceOrderUserMap> listBySourceOrderId(Long sourceOrderId) { - // TODO Auto-generated method stub - return null; + return teamDividentsSourceOrderUserMapMapper.list(sourceOrderId, null, null, null, null, null, 0, 10000); } @Override public List<Long> listCanSendSourceUidByPreSendTime(Date preSendTime, int page, int count) { - // TODO Auto-generated method stub - return null; + return teamDividentsSourceOrderUserMapMapper.listCanSendSourceUidByPreSendTime(preSendTime, (page - 1) * count, + count); } @Override public Long countCanSendSourceUidByPreSendTime(Date preSendTime) { - // TODO Auto-generated method stub - return null; + return teamDividentsSourceOrderUserMapMapper.countCanSendSourceUidByPreSendTime(preSendTime); } + @Transactional @Override public void invalidBySourceOrderId(Long sourceOrderId) { - // TODO Auto-generated method stub + List<TeamDividentsSourceOrderUserMap> mapList = listBySourceOrderId(sourceOrderId); + if (mapList != null) + for (TeamDividentsSourceOrderUserMap map : mapList) { + if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_FK + || map.getState() == TeamDividentsSourceOrderUserMap.STATE_JS) { + TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap(); + update.setId(map.getId()); + update.setUpdateTime(new Date()); + update.setState(TeamDividentsSourceOrderUserMap.STATE_SX); + teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update); + } + } } + @Transactional @Override public void orderSettle(Long sourceOrderId, Date preSendTime, BigDecimal income) { - // TODO Auto-generated method stub + List<TeamDividentsSourceOrderUserMap> mapList = listBySourceOrderId(sourceOrderId); + if (mapList != null) + for (TeamDividentsSourceOrderUserMap map : mapList) { + if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_FK) { + TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap(); + update.setId(map.getId()); + update.setMoney(MoneyBigDecimalUtil.div(income.multiply(map.getRate()), new BigDecimal(100), 4)); + update.setUpdateTime(new Date()); + update.setState(TeamDividentsSourceOrderUserMap.STATE_JS); + teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update); + } + } } + @Transactional @Override public void updateMoney(Long sourceOrderId, BigDecimal income) { - // TODO Auto-generated method stub - + List<TeamDividentsSourceOrderUserMap> mapList = listBySourceOrderId(sourceOrderId); + if (mapList != null) + for (TeamDividentsSourceOrderUserMap map : mapList) { + if (map.getState() == TeamDividentsSourceOrderUserMap.STATE_FK) { + TeamDividentsSourceOrderUserMap update = new TeamDividentsSourceOrderUserMap(); + update.setId(map.getId()); + update.setMoney(MoneyBigDecimalUtil.div(income.multiply(map.getRate()), new BigDecimal(100), 4)); + update.setUpdateTime(new Date()); + teamDividentsSourceOrderUserMapMapper.updateByPrimaryKeySelective(update); + } + } } } -- Gitblit v1.8.0