Commit 068d69cb authored by hezhen's avatar hezhen

123

parent e1b46100
......@@ -48,8 +48,8 @@ public class BaseOrderRevenue implements Serializable {
@Column(name = "type")
@ApiModelProperty(value = "类型:1-租赁费;2-租赁费+上级拥金;3-违章押金")
private Integer type;
@ApiModelProperty(value = "类型s;逗号隔开")
private String type;
......
......@@ -64,6 +64,9 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
@Autowired
CompanyWalletDetailBiz companyWalletDetailBiz;
@Autowired
BaseOrderRevenueBiz revenueBiz;
//计算用户拥金
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
......@@ -83,6 +86,7 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
OrderDetailDTO orderDetailDTO = restResponse.getData();
if (status == 1) {
payOrderAccept(orderWaterDTO,orderDetailDTO);
revenueBiz.saveRevenue(orderWaterDTO);
} else if (status == 2) {
BigDecimal acceptAmount = orderDetailDTO.getAcceptAmount();
log.info("分账----acceptAmount===="+acceptAmount );
......@@ -363,4 +367,9 @@ public class BaseOrderAcceptDetailedBiz extends BaseBiz<BaseOrderAcceptDetailedM
return mapper.selectList(acceptDetailedDTO);
}
public List<BaseOrderRevenue> getListByRevenue(OrderWaterDTO orderWaterDTO){
return mapper.getListByOrderNo(orderWaterDTO);
}
}
\ No newline at end of file
......@@ -2,12 +2,18 @@ package com.github.wxiaoqi.security.admin.biz;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import com.github.wxiaoqi.security.admin.entity.*;
import com.github.wxiaoqi.security.admin.mapper.BaseOrderRevenueMapper;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import java.util.ArrayList;
import java.util.List;
@Service
......@@ -15,18 +21,49 @@ import org.springframework.stereotype.Service;
public class BaseOrderRevenueBiz extends BaseBiz<BaseOrderRevenueMapper, BaseOrderRevenue>{
@Autowired
BaseOrderAcceptDetailedBiz acceptDetailedBiz;
@Autowired
CompanyWalletDetailBiz walletDetailBiz;
public void addOrUpd(BaseOrderRevenue baseOrderRevenue){
BaseOrderRevenue baseOrderRevenue1 = mapper.infoByOrderNo(baseOrderRevenue.getOrderNo(), baseOrderRevenue.getType(),baseOrderRevenue.getCompanyId());
if (baseOrderRevenue1 == null ){
insertSelective(baseOrderRevenue);
}else {
baseOrderRevenue.setId(baseOrderRevenue1.getId());
updateSelectiveById(baseOrderRevenue);
}
}
public void addOrUpd(){
public void saveRevenue(OrderWaterDTO orderWaterDTO){
List<BaseOrderRevenue> list = acceptDetailedBiz.getListByRevenue(orderWaterDTO);
if (list.size() > 0){
for (BaseOrderRevenue baseOrderRevenue : list){
setTypes(baseOrderRevenue);
addOrUpd(baseOrderRevenue);
}
}
}
public void setTypes(BaseOrderRevenue baseOrderRevenue){
String type = baseOrderRevenue.getType();
if (StringUtils.isNotBlank(type)){
List<String> types = new ArrayList<>();
String[] split = type.split(",");
for (int i = 0; i < split.length; i++){
types.add(walletDetailBiz.setItype(Integer.parseInt(split[0]))+"");
}
baseOrderRevenue.setType(String.join(",",types));
}
}
}
......@@ -7,6 +7,7 @@ import com.github.wxiaoqi.security.admin.constant.enumerate.CompanyWalletSourceE
import com.github.wxiaoqi.security.admin.dto.BaseOrderAcceptDetailedDTO;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import com.github.wxiaoqi.security.admin.dto.WalletDetailDTO;
import com.github.wxiaoqi.security.admin.entity.BaseOrderRevenue;
import com.github.wxiaoqi.security.admin.entity.CompanyWalletDetail;
import com.github.wxiaoqi.security.admin.mapper.CompanyWalletDetailMapper;
import com.github.wxiaoqi.security.admin.vo.BaseOrderAcceptDetailedVO;
......@@ -41,6 +42,9 @@ public class CompanyWalletDetailBiz extends BaseBiz<CompanyWalletDetailMapper, C
@Autowired
CompanyWalletBiz companyWalletBiz;
@Autowired
BaseOrderRevenueBiz revenueBiz;
......@@ -80,6 +84,8 @@ public class CompanyWalletDetailBiz extends BaseBiz<CompanyWalletDetailMapper, C
public void updByIdOrOrderNo(BaseOrderAcceptDetailedDTO acceptDetailedDTO){
List<BaseOrderAcceptDetailedVO> list = acceptDetailedBiz.getList(acceptDetailedDTO);
List<CompanyWalletDetail> walletDetails = new ArrayList<>();
String orderNo = "";
String type = "";
if (list.size() > 0){
for (BaseOrderAcceptDetailedVO acceptDetailedVO : list){
BigDecimal divisionAmount = acceptDetailedVO.getDivisionAmount() == null ? BigDecimal.ZERO : acceptDetailedVO.getDivisionAmount();
......@@ -103,13 +109,27 @@ public class CompanyWalletDetailBiz extends BaseBiz<CompanyWalletDetailMapper, C
companyWalletDetail.setItype(CompanyWalletITypeEnum.COMPANY.getCode());
insertSelective(companyWalletDetail);
walletDetails.add(companyWalletDetail);
orderNo=acceptDetailedVO.getOrderNo();
type=companyWalletDetail.getType()+"";
}
}
}
if (walletDetails.size() > 0){
Map<Integer, BigDecimal> amountSum = walletDetails.stream().filter(t -> t.getAmount() != null)
.collect(Collectors.groupingBy(CompanyWalletDetail::getCompanyId, CollectorsUtil.summingBigDecimal(CompanyWalletDetail::getAmount)));
amountSum.forEach((k,v) -> updCompanyWallet(k,v));
for(Map.Entry<Integer, BigDecimal> entry : amountSum.entrySet()){
Integer companyId = entry.getKey();
BigDecimal amount = entry.getValue();
updCompanyWallet(companyId,amount);
BaseOrderRevenue baseOrderRevenue = new BaseOrderRevenue();
baseOrderRevenue.setAmount(amount);
baseOrderRevenue.setCompanyId(companyId);
baseOrderRevenue.setOrderNo(orderNo);
baseOrderRevenue.setType(type);
baseOrderRevenue.setStatus(1);
revenueBiz.addOrUpd(baseOrderRevenue);
}
}
}
......
package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.dto.BaseOrderAcceptDetailedDTO;
import com.github.wxiaoqi.security.admin.dto.OrderWaterDTO;
import com.github.wxiaoqi.security.admin.entity.BaseOrderAcceptDetailed;
import com.github.wxiaoqi.security.admin.entity.BaseOrderRevenue;
import com.github.wxiaoqi.security.admin.vo.BaseOrderAcceptDetailedVO;
import tk.mybatis.mapper.common.Mapper;
......@@ -19,4 +21,6 @@ public interface BaseOrderAcceptDetailedMapper extends Mapper<BaseOrderAcceptDet
List<BaseOrderAcceptDetailedVO> selectList(BaseOrderAcceptDetailedDTO acceptDetailedDTO);
List<BaseOrderRevenue> getListByOrderNo(OrderWaterDTO orderWaterDTO);
}
......@@ -2,8 +2,13 @@ package com.github.wxiaoqi.security.admin.mapper;
import com.github.wxiaoqi.security.admin.entity.BaseOrderRevenue;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.additional.idlist.SelectByIdListMapper;
import tk.mybatis.mapper.common.Mapper;
public interface BaseOrderRevenueMapper extends Mapper<BaseOrderRevenue>, SelectByIdListMapper<BaseOrderRevenue,Integer> {
BaseOrderRevenue infoByOrderNo(@Param("orderNo") String orderNo, @Param("type")String type,@Param("companyId")Integer companyId);
}
\ No newline at end of file
......@@ -46,5 +46,11 @@
</select>
<select id="getListByOrderNo" resultType="com.github.wxiaoqi.security.admin.entity.BaseOrderRevenue" parameterType="com.github.wxiaoqi.security.admin.dto.OrderWaterDTO">
SELECT order_no as orderNo,mch_id as companyId,user_id as userId,SUM(division_amount-fee) as amount,GROUP_CONCAT(division_type) as type FROM base_order_accept_detailed
WHERE type=1 AND `status`=0 and division_type in (3,5,6,7,8)AND order_no=#{orderNo}
GROUP BY order_no,mch_id
</select>
</mapper>
\ No newline at end of file
<?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.BaseOrderRevenueMapper">
<select id="infoByOrderNo" resultType="com.github.wxiaoqi.security.admin.entity.BaseOrderRevenue">
SELECT * FROM base_order_revenue WHERE order_no=#{orderNo} and company_id=#{companyId}
<if test=" type != null and type != '' ">
and FIND_IN_SET(type,#{type} )>0
</if>
</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