| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | |
| | | |
| | | Double laveActivityMoney = driver1.getLaveActivityMoney(); |
| | | Double laveBusinessMoney = driver1.getLaveBusinessMoney(); |
| | | if(laveActivityMoney.compareTo(payMoney) < 0){ |
| | | //活动余额小于结算金额 |
| | | if(null != laveActivityMoney && 0 < laveActivityMoney && laveActivityMoney.compareTo(payMoney) < 0){ |
| | | driver1.setLaveActivityMoney(0D); |
| | | BigDecimal m = new BigDecimal(payMoney).subtract(new BigDecimal(laveActivityMoney)); |
| | | BigDecimal m = new BigDecimal(payMoney).subtract(new BigDecimal(laveActivityMoney)).setScale(2, RoundingMode.HALF_EVEN); |
| | | driver1.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(m).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | settlementRecord.setPayMoney(laveActivityMoney); |
| | | settlementRecord.setPaymentStatus(2); |
| | |
| | | settlementRecord1.setPayMoney(m.doubleValue()); |
| | | settlementRecord1.setBalanceType(2); |
| | | this.insert(settlementRecord1); |
| | | |
| | | }else{ |
| | | } |
| | | //活动余额大于结算金额 |
| | | if(null != laveActivityMoney && 0 < laveActivityMoney && laveActivityMoney.compareTo(payMoney) >= 0){ |
| | | driver1.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | settlementRecord.setPaymentStatus(2); |
| | | settlementRecord.setPayType(payType); |
| | |
| | | this.updateById(settlementRecord); |
| | | balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, payMoney, settlementRecord.getType() + 2); |
| | | } |
| | | if(null == laveActivityMoney || 0 == laveActivityMoney){ |
| | | driver1.setLaveActivityMoney(0D); |
| | | driver1.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | settlementRecord.setPaymentStatus(2); |
| | | settlementRecord.setPayType(payType); |
| | | settlementRecord.setBalanceType(1); |
| | | settlementRecord.setPayTime(new Date()); |
| | | this.updateById(settlementRecord); |
| | | balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, payMoney, settlementRecord.getType() + 2); |
| | | } |
| | | |
| | | driver1.setBalance(new BigDecimal(driver1.getBalance()).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | |
| | | //添加交易明细 |
| | |
| | | public List<QueryHistoricalSettlement> queryHistoricalSettlement(Integer language, Integer driverId, Integer pageNum, Integer size) { |
| | | pageNum = (pageNum - 1) * size; |
| | | List<Map<String, Object>> list = this.baseMapper.queryHistoricalSettlement(driverId, pageNum, size); |
| | | Double aDouble = this.baseMapper.queryHistoricalSettlementTotal(driverId); |
| | | List<QueryHistoricalSettlement> datas = new ArrayList<>(); |
| | | for (Map<String, Object> map : list) { |
| | | QueryHistoricalSettlement queryHistoricalSettlement = new QueryHistoricalSettlement(); |
| | |
| | | break; |
| | | } |
| | | } |
| | | queryHistoricalSettlement.setTotalPrice(aDouble); |
| | | datas.add(queryHistoricalSettlement); |
| | | } |
| | | return datas; |
| | |
| | | w = w == 1 ? 7 : w - 1; |
| | | int d = today.get(Calendar.DAY_OF_MONTH); |
| | | if(null != settlementAllocation){ |
| | | List<Map<String, Object>> list = settlementDetailService.queryGroupDriver(); |
| | | JSONObject jsonObject = JSON.parseObject(settlementAllocation.getContent()); |
| | | Integer type = jsonObject.getInteger("type"); |
| | | Integer day = jsonObject.getInteger("day"); |
| | | if(type == 2 && w == day){//周结算 |
| | | List<Map<String, Object>> list = settlementDetailService.queryGroupDriver(); |
| | | for (Map<String, Object> map : list) { |
| | | Integer driverId = Integer.valueOf(map.get("driverId").toString()); |
| | | Double price = Double.valueOf(map.get("price").toString()); |
| | |
| | | } |
| | | } |
| | | if(type == 3 && d == day){//月结算 |
| | | List<Map<String, Object>> list = settlementDetailService.queryGroupDriver(); |
| | | for (Map<String, Object> map : list) { |
| | | Integer driverId = Integer.valueOf(map.get("driverId").toString()); |
| | | Double price = Double.valueOf(map.get("price").toString()); |