19 changed files with 291 additions and 41 deletions
@ -0,0 +1,113 @@ |
|||||
|
package cn.chjyj.szwh.service.impl; |
||||
|
|
||||
|
import cn.chjyj.szwh.bean.Order; |
||||
|
import cn.chjyj.szwh.bean.OrderGoodsDetail; |
||||
|
import cn.chjyj.szwh.bean.OrderUser; |
||||
|
import cn.chjyj.szwh.mapper.OrderGoodsDetailMapper; |
||||
|
import cn.chjyj.szwh.mapper.OrderMapper; |
||||
|
import cn.chjyj.szwh.mapper.OrderUserMapper; |
||||
|
import cn.chjyj.szwh.service.PayService; |
||||
|
import cn.chjyj.szwh.utils.SzwhApiUtils; |
||||
|
import org.apache.commons.lang3.StringUtils; |
||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||
|
import org.springframework.stereotype.Service; |
||||
|
import org.springframework.transaction.annotation.Transactional; |
||||
|
|
||||
|
import java.math.BigDecimal; |
||||
|
import java.text.SimpleDateFormat; |
||||
|
import java.util.*; |
||||
|
|
||||
|
@Service |
||||
|
@Transactional |
||||
|
public class PayServiceImpl implements PayService { |
||||
|
@Autowired |
||||
|
private OrderMapper orderMapper; |
||||
|
@Autowired |
||||
|
private OrderUserMapper orderUserMapper; |
||||
|
@Autowired |
||||
|
private OrderGoodsDetailMapper orderGoodsDetailMapper; |
||||
|
|
||||
|
/** |
||||
|
* 关闭七日以前的已经支付了的订单 |
||||
|
* @return |
||||
|
*/ |
||||
|
@Override |
||||
|
public void payComplete() { |
||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
||||
|
String nowStr = sdf.format(sdf)+" 23:59:59"; |
||||
|
List<Order> orderList=orderMapper.getOrderListUnderDate(nowStr,"2"); |
||||
|
for(Order od:orderList){ |
||||
|
// 更新订单完成状态
|
||||
|
payFinishOperate(od.getBatchcode()); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@Override |
||||
|
public int payFinishOperate(String batchcode) { |
||||
|
//获取订单信息
|
||||
|
Order order = orderMapper.getOrderByBatchcode(batchcode); |
||||
|
if(order==null){ |
||||
|
return 0; |
||||
|
} |
||||
|
if(order.getPayStatus()!=2){ |
||||
|
// do nothing
|
||||
|
} |
||||
|
Integer status = order.getStatus(); |
||||
|
Integer closeStatus= order.getCloseStatus(); |
||||
|
Integer type =order.getType(); |
||||
|
String buyIslicode = order.getBuyIslicode(); |
||||
|
//购买用户
|
||||
|
OrderUser oduser = orderUserMapper.getUserOrder(batchcode,buyIslicode); |
||||
|
String buyName = oduser.getName(); |
||||
|
Date paytime = order.getPaymenttime(); |
||||
|
// 同步到其他平台
|
||||
|
List syncList =new ArrayList<>(); |
||||
|
Calendar cal= Calendar.getInstance(); |
||||
|
|
||||
|
// 分配比例设置及详情
|
||||
|
|
||||
|
|
||||
|
//订单商品详情
|
||||
|
List<OrderGoodsDetail> orderGoodsDetailList = orderGoodsDetailMapper.getOrderGoodsDetailByBatchCode(batchcode); |
||||
|
for(OrderGoodsDetail odgd:orderGoodsDetailList){ |
||||
|
Map odmap = new HashMap(); |
||||
|
String dateStr="";//订单年限
|
||||
|
int transCount=1;//
|
||||
|
if(odgd.getGoodsEntrust()==1 || odgd.getChargesType()==1){ |
||||
|
dateStr="永久"; |
||||
|
transCount=1; |
||||
|
}else { |
||||
|
int years = odgd.getTransactionCount(); |
||||
|
cal.setTime(new Date()); |
||||
|
cal.add(Calendar.YEAR,+years); |
||||
|
dateStr=cal.getTime().toString(); |
||||
|
transCount=odgd.getTransactionCount(); |
||||
|
} |
||||
|
//
|
||||
|
// if(odgd.getMoney().compareTo(new BigDecimal(0))>0 &&status!=2){
|
||||
|
// return odgd;
|
||||
|
// }
|
||||
|
//合约关联编码(订单交易isli标识码)
|
||||
|
String contractcode=""; |
||||
|
if(StringUtils.isEmpty(odgd.getContractCode())){ |
||||
|
// $ratio_setting = AccountRatioSetting::where('is_deleted', 0)->where('status', 1)->find();
|
||||
|
// $entrust_ratio_detail = AccountRatioDetail::where('setting_id', $ratio_setting->id)->where('role_type', 1)->find();
|
||||
|
// $ratio = 0;
|
||||
|
// $entrust_number = 0;
|
||||
|
// if($entrust_ratio_detail['calculate'] == 1){
|
||||
|
// $entrust_number = $entrust_ratio_detail['ratio'];
|
||||
|
// }else{
|
||||
|
// $entrust_number = $entrust_ratio_detail['amount'];
|
||||
|
// }
|
||||
|
// $ratio = round(1 - ($entrust_number / 100), 4);
|
||||
|
String ratio="0.00"; |
||||
|
// 远程获取查询对应的 islicode
|
||||
|
SzwhApiUtils.getApplyLinkCode(odgd.getGoodsIslicode(),buyIslicode,ratio,transCount,dateStr,batchcode); |
||||
|
}else{ |
||||
|
contractcode = odgd.getContractCode(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
return 0; |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue