| | |
| | | import com.stylefeng.guns.modular.system.util.EmailUtil; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.*; |
| | | import com.stylefeng.guns.modular.system.warpper.BalanceUsageRecord; |
| | | import com.stylefeng.guns.modular.taxi.model.OrderTaxi; |
| | | import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService; |
| | | import io.swagger.annotations.Api; |
| | |
| | | |
| | | @Resource |
| | | private DriverActivityHistoryMapper driverActivityHistoryMapper; |
| | | |
| | | @Resource |
| | | private IBalanceUsageRecordService balanceUsageRecordService; |
| | | |
| | | |
| | | |
| | |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/driver/queryTotalRevenue") |
| | | @ApiOperation(value = "获取收入明细【2.0】", tags = {"司机端-个人中心"}, notes = "开发中") |
| | | @ApiOperation(value = "获取收入明细【2.0】", tags = {"司机端-个人中心"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), |
| | |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | List<Map<String, Object>> list = driverService.queryTotalRevenue(language, uid, pageNum, size); |
| | | |
| | | // TODO 待翻译 |
| | | List<BaseWarpper> data = new ArrayList<>(); |
| | | for(Map<String, Object> map : list){ |
| | | String type = map.get("type").toString(); |
| | |
| | | if("2".equals(type)){ |
| | | switch (Integer.valueOf(String.valueOf(null != map.get("orderType") ? map.get("orderType") : 0))){ |
| | | case 1: |
| | | baseWarpper.setName(language == 1 ? "打车" : language == 2 ? "Ride" : "Course"); |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(map.get("incomeId").toString()); |
| | | baseWarpper.setName(language == 1 ? (orderPrivateCar.getCancelMidway() == 0 ? "" : "【途中取消】") + "打车" : language == 2 ? (orderPrivateCar.getCancelMidway() == 0 ? "" : "【】") + "Ride" : (orderPrivateCar.getCancelMidway() == 0 ? "" : "【】") + "Course"); |
| | | break; |
| | | case 2: |
| | | baseWarpper.setName(language == 1 ? "出租车" : language == 2 ? "taxi" : "taxi"); |
| | |
| | | baseWarpper.setName(language == 1 ? "城际出行" : language == 2 ? "Intercity travel" : "Mobilité entre villes"); |
| | | break; |
| | | case 4: |
| | | baseWarpper.setName(language == 1 ? "包裹" : language == 2 ? "Delivery" : "Livraison"); |
| | | OrderLogistics orderLogistics = orderLogisticsService.selectById(map.get("incomeId").toString()); |
| | | baseWarpper.setName(language == 1 ? (orderLogistics.getCancelMidway() == 0 ? "" : "【途中取消】") + "包裹" : language == 2 ? (orderLogistics.getCancelMidway() == 0 ? "" : "【】") + "Delivery" : (orderLogistics.getCancelMidway() == 0 ? "" : "【】") + "Livraison"); |
| | | break; |
| | | case 5: |
| | | baseWarpper.setName(language == 1 ? "跨城小件物流" : language == 2 ? "Cross-city small parts logistics" : "Logistique des petites pièces à travers la ville"); |
| | |
| | | case 4: |
| | | OrderLogistics orderLogistics = orderLogisticsService.selectById(map.get("incomeId").toString()); |
| | | List<Income> incomes3 = incomeService.queryData(1, null, 2, orderLogistics.getId(), 4); |
| | | map1.put("travelMoney", orderLogistics != null ? orderLogistics.getOrderMoney() : 0);//行程费 |
| | | map1.put("parkMoney", 0);//停车费 |
| | | map1.put("parkMoney", orderLogistics != null ? orderLogistics.getParkMoney() : 0);//停车费 |
| | | map1.put("tipMoney", 0);//小费 |
| | | map1.put("roadTollMoney", 0);//过路费 |
| | | map1.put("roadTollMoney", orderLogistics != null ? orderLogistics.getRoadTollMoney() : 0);//过路费 |
| | | map1.put("rakeMoney", incomes3.size() > 0 ? incomes3.get(0).getMoney() : 0);//抽成 |
| | | break; |
| | | case 5: |
| | |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/api/driver/queryBalanceUsageRecord") |
| | | @ApiOperation(value = "获取余额使用记录【2.0】", tags = {"司机端-个人中心"}, notes = "开发中") |
| | | @ApiOperation(value = "获取余额使用记录【2.0】", tags = {"司机端-个人中心"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "体现类型(1=活动收入提现,2=业务收入提现)", name = "type", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "体现类型(1=活动收入,2=业务收入)", name = "type", required = true, dataType = "int"), |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") |
| | | }) |
| | | public ResultUtil<BalanceUsageRecord> queryWithdrawal(Integer language, Integer pageNum, Integer size, Integer type, HttpServletRequest request){ |
| | | public ResultUtil<BalanceUsageRecord> queryBalanceUsageRecord(Integer language, Integer pageNum, Integer size, Integer type, HttpServletRequest request){ |
| | | try { |
| | | Integer uid = driverService.getUserIdFormRedis(request); |
| | | if(null == uid){ |
| | | return ResultUtil.tokenErr(); |
| | | } |
| | | BalanceUsageRecord withdrawalWarpper1 = new BalanceUsageRecord(); |
| | | withdrawalWarpper1.setTotal(0D); |
| | | withdrawalWarpper1.setList(new ArrayList<BalanceUsageRecordList>()); |
| | | return ResultUtil.success(withdrawalWarpper1); |
| | | BalanceUsageRecord balanceUsageRecord = new BalanceUsageRecord(); |
| | | balanceUsageRecord.setTotal(balanceUsageRecordService.queryBalanceUsageRecordSum(uid, type)); |
| | | balanceUsageRecord.setList(balanceUsageRecordService.queryBalanceUsageRecord(language, uid, type, pageNum, size)); |
| | | return ResultUtil.success(balanceUsageRecord); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | return ResultUtil.runErr(); |
| | |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/api/settlementRecord/queryHistoricalSettlement") |
| | | @ApiOperation(value = "获取结算历史记录【2.0】", tags = {"司机端-个人中心"}, notes = "开发中") |
| | | @ApiOperation(value = "获取结算历史记录【2.0】", tags = {"司机端-个人中心"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), |
| | |
| | | */ |
| | | @ResponseBody |
| | | @PostMapping("/api/withdrawal/queryWithdrawal") |
| | | @ApiOperation(value = "获取历史提现数据【2.0】", tags = {"司机端-个人中心"}, notes = "开发中") |
| | | @ApiOperation(value = "获取历史提现数据【2.0】", tags = {"司机端-个人中心"}, notes = "") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"), |
| | | @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"), |
| | |
| | | List<Map<String, Object>> list = withdrawalService.queryWithdrawal(language, uid, type, state, pageNum, size); |
| | | List<WithdrawalListWarpper> withdrawalWarpper = WithdrawalListWarpper.getWithdrawalWarpper(list); |
| | | WithdrawalWarpper withdrawalWarpper1 = new WithdrawalWarpper(); |
| | | withdrawalWarpper1.setTotal(0D); |
| | | withdrawalWarpper1.setTotal(withdrawalService.queryWithdrawalSum(uid, type)); |
| | | withdrawalWarpper1.setList(withdrawalWarpper); |
| | | return ResultUtil.success(withdrawalWarpper1); |
| | | }catch (Exception e){ |
| | |
| | | */ |
| | | @TableField("destination") |
| | | private String destination; |
| | | /** |
| | | * 中途取消(0=否,1=是) |
| | | */ |
| | | @TableField("cancelMidway") |
| | | private Integer cancelMidway; |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.dao; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.BaseMapper; |
| | | import com.stylefeng.guns.modular.system.model.BalanceUsageRecord; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/5/13 10:24 |
| | | */ |
| | | public interface BalanceUsageRecordMapper extends BaseMapper<BalanceUsageRecord> { |
| | | |
| | | |
| | | /** |
| | | * 获取使用记录列表 |
| | | * @param driverId |
| | | * @param type |
| | | * @param pageNum |
| | | * @param size |
| | | * @return |
| | | */ |
| | | List<Map<String, Object>> queryBalanceUsageRecord(@Param("driverId") Integer driverId, @Param("type") Integer type, |
| | | @Param("pageNum") Integer pageNum, @Param("size") Integer size); |
| | | |
| | | |
| | | /** |
| | | * 获取使用记录总额 |
| | | * @param driverId |
| | | * @param type |
| | | * @return |
| | | */ |
| | | Double queryBalanceUsageRecordSum(@Param("driverId") Integer driverId, @Param("type") Integer type); |
| | | |
| | | } |
| | |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | |
| | | * @param driverId |
| | | * @return |
| | | */ |
| | | List<QueryHistoricalSettlement> queryHistoricalSettlement(@Param("driverId") Integer driverId, @Param("pageNum") Integer pageNum, |
| | | @Param("size") Integer size); |
| | | List<Map<String, Object>> queryHistoricalSettlement(@Param("driverId") Integer driverId, @Param("pageNum") Integer pageNum, |
| | | @Param("size") Integer size); |
| | | } |
| | |
| | | List<Map<String, Object>> queryWithdrawal(@Param("uid") Integer uid, @Param("userType") Integer userType, |
| | | @Param("type") Integer type, @Param("state") Integer state, @Param("pageNum") Integer pageNum, |
| | | @Param("size") Integer size); |
| | | |
| | | |
| | | /** |
| | | * 获取提现总额 |
| | | * @param uid |
| | | * @return |
| | | */ |
| | | Double queryWithdrawalSum(@Param("uid") Integer uid, @Param("userType") Integer userType, |
| | | @Param("type") Integer type); |
| | | } |
New 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.stylefeng.guns.modular.system.dao.BalanceUsageRecordMapper"> |
| | | |
| | | |
| | | |
| | | <select id="queryBalanceUsageRecord" resultType="map"> |
| | | select |
| | | DATE_FORMAT(createTime, '%Y-%m-%d') as createTime, |
| | | money, |
| | | purpose |
| | | from t_balance_usage_record type = #{type} and driverId = #{driverId} order by createTime desc limit #{pageNum}, #{size} |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="queryBalanceUsageRecordSum" resultType="double"> |
| | | select ifnull(sum(money), 0) from t_balance_usage_record where type = #{type} and driverId = #{driverId} |
| | | </select> |
| | | </mapper> |
| | |
| | | </resultMap> |
| | | |
| | | |
| | | <select id="queryHistoricalSettlement" resultType="com.stylefeng.guns.modular.system.warpper.QueryHistoricalSettlement"> |
| | | <select id="queryHistoricalSettlement" resultType="map"> |
| | | select |
| | | DATE_FORMAT(`day`, '%Y-%m-%d') as createTime, |
| | | payMoney as price, |
| | | `type` |
| | | `type`, |
| | | payType, |
| | | balanceType |
| | | from t_settlement_record where driverId = #{driverId} and paymentStatus = 2 order by insertTime desc limit #{pageNum}, #{size} |
| | | </select> |
| | | </mapper> |
| | |
| | | </if> |
| | | order by insertTime desc limit #{pageNum}, #{size} |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="queryWithdrawalSum" resultType="double"> |
| | | select |
| | | ifnull(sum(money), 0) as money |
| | | from t_pub_withdrawal |
| | | where flag != 3 and userType = #{userType} and userId = #{uid} and type = #{type} |
| | | </select> |
| | | </mapper> |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.model; |
| | | |
| | | import com.baomidou.mybatisplus.annotations.TableField; |
| | | import com.baomidou.mybatisplus.annotations.TableId; |
| | | import com.baomidou.mybatisplus.annotations.TableName; |
| | | import com.baomidou.mybatisplus.enums.IdType; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/5/13 10:21 |
| | | */ |
| | | @Data |
| | | @TableName("t_balance_usage_record") |
| | | public class BalanceUsageRecord { |
| | | /** |
| | | * 主键 |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | /** |
| | | * 司机id |
| | | */ |
| | | @TableField("driverId") |
| | | private Integer driverId; |
| | | /** |
| | | * 余额类型(1=奖励,2=收入) |
| | | */ |
| | | @TableField("type") |
| | | private Integer type; |
| | | /** |
| | | * 使用金额 |
| | | */ |
| | | @TableField("money") |
| | | private Double money; |
| | | /** |
| | | * 用途 |
| | | */ |
| | | @TableField("purpose") |
| | | private Integer purpose; |
| | | /** |
| | | * 使用时间 |
| | | */ |
| | | @TableField("createTime") |
| | | private Date createTime; |
| | | } |
| | |
| | | @TableField("payType") |
| | | private Integer payType; |
| | | /** |
| | | * 余额类型(1=奖励余额,2=收入余额) |
| | | */ |
| | | @TableField("balanceType") |
| | | private Integer balanceType; |
| | | /** |
| | | * 支付时间 |
| | | */ |
| | | @TableField("payTime") |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service; |
| | | |
| | | import com.baomidou.mybatisplus.service.IService; |
| | | import com.stylefeng.guns.modular.system.model.BalanceUsageRecord; |
| | | import com.stylefeng.guns.modular.system.warpper.BalanceUsageRecordList; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/5/13 10:25 |
| | | */ |
| | | public interface IBalanceUsageRecordService extends IService<BalanceUsageRecord> { |
| | | |
| | | /** |
| | | * 获取使用记录列表 |
| | | * @param driverId |
| | | * @param type |
| | | * @param pageNum |
| | | * @param size |
| | | * @return |
| | | */ |
| | | List<BalanceUsageRecordList> queryBalanceUsageRecord(Integer language, Integer driverId, Integer type, Integer pageNum, Integer size); |
| | | |
| | | |
| | | /** |
| | | * 获取使用记录总额 |
| | | * @param driverId |
| | | * @param type |
| | | * @return |
| | | */ |
| | | Double queryBalanceUsageRecordSum(Integer driverId, Integer type); |
| | | |
| | | |
| | | /** |
| | | * 保存数据 |
| | | * @param driverId |
| | | * @param type |
| | | * @param money |
| | | * @param purpose |
| | | */ |
| | | void saveBalanceUsageRecord(Integer driverId, Integer type, Double money, Integer purpose); |
| | | } |
| | |
| | | * @throws Exception |
| | | */ |
| | | ResultUtil withdrawalAudit(Integer id, Integer state, Integer language) throws Exception; |
| | | |
| | | |
| | | /** |
| | | * 获提现总额 |
| | | * @param uid |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | Double queryWithdrawalSum(Integer uid, Integer type) throws Exception; |
| | | } |
New file |
| | |
| | | package com.stylefeng.guns.modular.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.stylefeng.guns.modular.system.dao.BalanceUsageRecordMapper; |
| | | import com.stylefeng.guns.modular.system.model.BalanceUsageRecord; |
| | | import com.stylefeng.guns.modular.system.service.IBalanceUsageRecordService; |
| | | import com.stylefeng.guns.modular.system.util.DateUtil; |
| | | import com.stylefeng.guns.modular.system.warpper.BalanceUsageRecordList; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author zhibing.pu |
| | | * @Date 2024/5/13 10:25 |
| | | */ |
| | | @Service |
| | | public class BalanceUsageRecordServiceImpl extends ServiceImpl<BalanceUsageRecordMapper, BalanceUsageRecord> implements IBalanceUsageRecordService { |
| | | |
| | | |
| | | /** |
| | | * 获取使用记录列表 |
| | | * @param driverId |
| | | * @param type |
| | | * @param pageNum |
| | | * @param size |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<BalanceUsageRecordList> queryBalanceUsageRecord(Integer language, Integer driverId, Integer type, Integer pageNum, Integer size) { |
| | | pageNum = (pageNum - 1) * size; |
| | | List<Map<String, Object>> list = this.baseMapper.queryBalanceUsageRecord(driverId, type, pageNum, size); |
| | | List<BalanceUsageRecordList> datas = new ArrayList<>(); |
| | | // TODO 待翻译 |
| | | for (Map<String, Object> map : list) { |
| | | BalanceUsageRecordList balanceUsageRecordList = new BalanceUsageRecordList(); |
| | | if(null != map.get("createTime")){ |
| | | balanceUsageRecordList.setTime(DateUtil.conversionFormat(language, map.get("createTime").toString())); |
| | | } |
| | | if(null != map.get("money")){ |
| | | balanceUsageRecordList.setMoney(Double.valueOf(map.get("money").toString())); |
| | | } |
| | | if(null != map.get("purpose")){ |
| | | switch (map.get("purpose").toString()){ |
| | | case "1": |
| | | balanceUsageRecordList.setContent(language == 1 ? "打车支付" : language == 2 ? "" : ""); |
| | | break; |
| | | case "2": |
| | | balanceUsageRecordList.setContent(language == 1 ? "包裹支付" : language == 2 ? "" : ""); |
| | | break; |
| | | case "3": |
| | | balanceUsageRecordList.setContent(language == 1 ? "日结算" : language == 2 ? "" : ""); |
| | | break; |
| | | case "4": |
| | | balanceUsageRecordList.setContent(language == 1 ? "周结算" : language == 2 ? "" : ""); |
| | | break; |
| | | case "5": |
| | | balanceUsageRecordList.setContent(language == 1 ? "月结算" : language == 2 ? "" : ""); |
| | | break; |
| | | case "6": |
| | | balanceUsageRecordList.setContent(language == 1 ? "提现" : language == 2 ? "" : ""); |
| | | break; |
| | | } |
| | | } |
| | | datas.add(balanceUsageRecordList); |
| | | } |
| | | return datas; |
| | | } |
| | | |
| | | /** |
| | | * 获取使用记录总额 |
| | | * @param driverId |
| | | * @param type |
| | | * @return |
| | | */ |
| | | @Override |
| | | public Double queryBalanceUsageRecordSum(Integer driverId, Integer type) { |
| | | return this.baseMapper.queryBalanceUsageRecordSum(driverId, type); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 保存数据 |
| | | * @param driverId |
| | | * @param type |
| | | * @param money |
| | | * @param purpose |
| | | */ |
| | | @Override |
| | | public void saveBalanceUsageRecord(Integer driverId, Integer type, Double money, Integer purpose) { |
| | | BalanceUsageRecord balanceUsageRecord = new BalanceUsageRecord(); |
| | | balanceUsageRecord.setDriverId(driverId); |
| | | balanceUsageRecord.setType(type); |
| | | balanceUsageRecord.setMoney(money); |
| | | balanceUsageRecord.setPurpose(purpose); |
| | | balanceUsageRecord.setCreateTime(new Date()); |
| | | this.insert(balanceUsageRecord); |
| | | } |
| | | } |
| | |
| | | |
| | | @Autowired |
| | | private ISettlementRecordService settlementRecordService; |
| | | |
| | | @Resource |
| | | private IBalanceUsageRecordService balanceUsageRecordService; |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | if(payType == 3){//余额支付 |
| | | driver.setBalance(driver.getBalance() - money); |
| | | if(driver.getLaveBusinessMoney().compareTo(money) < 0){ |
| | | double b = money - driver.getLaveBusinessMoney(); |
| | | Double laveBusinessMoney = driver.getLaveBusinessMoney(); |
| | | if(laveBusinessMoney.compareTo(money) < 0){ |
| | | double b = money - laveBusinessMoney; |
| | | driver.setLaveBusinessMoney(0D); |
| | | driver.setLaveActivityMoney(driver.getLaveActivityMoney() - b); |
| | | driverService.updateById(driver); |
| | | balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 1, b, orderType == 1 ? 1 : 2); |
| | | balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, laveBusinessMoney, orderType == 1 ? 1 : 2); |
| | | }else{ |
| | | driver.setLaveBusinessMoney(driver.getLaveBusinessMoney() - money); |
| | | driverService.updateById(driver); |
| | | balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, money, orderType == 1 ? 1 : 2); |
| | | } |
| | | |
| | | if(orderType == 1){//专车 |
| | |
| | | import com.stylefeng.guns.modular.system.warpper.QueryHistoricalSettlement; |
| | | import com.stylefeng.guns.modular.system.warpper.QuerySettlementAmount; |
| | | import com.stylefeng.guns.modular.system.warpper.QuerySettlementAmountDetails; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | |
| | | |
| | | @Value("${callbackPath}") |
| | | private String callbackPath;//支付回调网关地址 |
| | | |
| | | @Resource |
| | | private IBalanceUsageRecordService balanceUsageRecordService; |
| | | |
| | | |
| | | |
| | |
| | | |
| | | Double laveActivityMoney = driver1.getLaveActivityMoney(); |
| | | Double laveBusinessMoney = driver1.getLaveBusinessMoney(); |
| | | if(laveBusinessMoney.compareTo(payMoney) < 0){ |
| | | driver1.setLaveBusinessMoney(0D); |
| | | BigDecimal m = new BigDecimal(payMoney).subtract(new BigDecimal(laveBusinessMoney)); |
| | | driver1.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(m).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | if(laveActivityMoney.compareTo(payMoney) < 0){ |
| | | driver1.setLaveActivityMoney(0D); |
| | | BigDecimal m = new BigDecimal(payMoney).subtract(new BigDecimal(laveActivityMoney)); |
| | | driver1.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(m).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | settlementRecord.setPayMoney(laveActivityMoney); |
| | | settlementRecord.setPaymentStatus(2); |
| | | settlementRecord.setPayType(payType); |
| | | settlementRecord.setBalanceType(1); |
| | | settlementRecord.setPayTime(new Date()); |
| | | this.updateById(settlementRecord); |
| | | balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 1, laveActivityMoney, settlementRecord.getType() + 2); |
| | | balanceUsageRecordService.saveBalanceUsageRecord(settlementRecord.getDriverId(), 2, m.doubleValue(), settlementRecord.getType() + 2); |
| | | |
| | | SettlementRecord settlementRecord1 = new SettlementRecord(); |
| | | BeanUtils.copyProperties(settlementRecord, settlementRecord1); |
| | | settlementRecord1.setId(null); |
| | | settlementRecord1.setPayMoney(m.doubleValue()); |
| | | settlementRecord1.setBalanceType(2); |
| | | this.insert(settlementRecord1); |
| | | |
| | | }else{ |
| | | driver1.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | driver1.setLaveActivityMoney(new BigDecimal(laveActivityMoney).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(), 1, payMoney, settlementRecord.getType() + 2); |
| | | } |
| | | driver1.setBalance(new BigDecimal(driver1.getBalance()).subtract(new BigDecimal(payMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(driverId, "线下结算", payMoney, 2, 1, 2, null, null); |
| | | driverService.updateById(driver1); |
| | | |
| | | settlementRecord.setPaymentStatus(2); |
| | | settlementRecord.setPayType(payType); |
| | | settlementRecord.setPayTime(new Date()); |
| | | this.updateById(settlementRecord); |
| | | return ResultUtil.success(""); |
| | | } |
| | | return resultUtil; |
| | |
| | | @Override |
| | | public List<QueryHistoricalSettlement> queryHistoricalSettlement(Integer language, Integer driverId, Integer pageNum, Integer size) { |
| | | pageNum = (pageNum - 1) * size; |
| | | List<QueryHistoricalSettlement> list = this.baseMapper.queryHistoricalSettlement(driverId, pageNum, size); |
| | | for (QueryHistoricalSettlement queryHistoricalSettlement : list) { |
| | | if(ToolUtil.isNotEmpty(queryHistoricalSettlement.getCreateTime())){ |
| | | String createTime = queryHistoricalSettlement.getCreateTime(); |
| | | queryHistoricalSettlement.setCreateTime(DateUtil.conversionFormat(language, createTime)); |
| | | List<Map<String, Object>> list = this.baseMapper.queryHistoricalSettlement(driverId, pageNum, size); |
| | | List<QueryHistoricalSettlement> datas = new ArrayList<>(); |
| | | for (Map<String, Object> map : list) { |
| | | QueryHistoricalSettlement queryHistoricalSettlement = new QueryHistoricalSettlement(); |
| | | if(null != map.get("createTime")){ |
| | | queryHistoricalSettlement.setCreateTime(DateUtil.conversionFormat(language, map.get("createTime").toString())); |
| | | } |
| | | if(null != map.get("price")){ |
| | | queryHistoricalSettlement.setPrice(Double.valueOf(map.get("price").toString())); |
| | | } |
| | | if(null != map.get("type")){ |
| | | queryHistoricalSettlement.setType(Integer.valueOf(map.get("type").toString())); |
| | | } |
| | | // TODO 待翻译 |
| | | if(null != map.get("payType")){ |
| | | Integer balanceType = Integer.valueOf(map.get("balanceType").toString()); |
| | | switch (map.get("payType").toString()){ |
| | | case "1": |
| | | queryHistoricalSettlement.setPayType(language == 1 ? "手机支付" : language == 2 ? "" : ""); |
| | | break; |
| | | case "2": |
| | | queryHistoricalSettlement.setPayType(language == 1 ? "线上支付" : language == 2 ? "" : ""); |
| | | break; |
| | | default: |
| | | queryHistoricalSettlement.setPayType(language == 1 ? "余额支付(" + (balanceType == 1 ? "奖励" : "收入") + ")" : language == 2 ? "" : ""); |
| | | break; |
| | | } |
| | | } |
| | | datas.add(queryHistoricalSettlement); |
| | | } |
| | | return list; |
| | | return datas; |
| | | } |
| | | |
| | | |
| | |
| | | import com.stylefeng.guns.modular.system.model.Driver; |
| | | import com.stylefeng.guns.modular.system.model.UserInfo; |
| | | import com.stylefeng.guns.modular.system.model.Withdrawal; |
| | | import com.stylefeng.guns.modular.system.service.IBalanceUsageRecordService; |
| | | import com.stylefeng.guns.modular.system.service.IDriverService; |
| | | import com.stylefeng.guns.modular.system.service.IWithdrawalService; |
| | | import com.stylefeng.guns.modular.system.util.ResultUtil; |
| | |
| | | |
| | | @Autowired |
| | | private IDriverService driverService; |
| | | |
| | | @Resource |
| | | private IBalanceUsageRecordService balanceUsageRecordService; |
| | | |
| | | |
| | | |
| | |
| | | driver.setLaveActivityMoney(v); |
| | | v = new BigDecimal(driver.getBalance()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | driver.setBalance(v); |
| | | balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 1, money, 6); |
| | | } |
| | | if(type == 2){ |
| | | double v = new BigDecimal(driver.getLaveBusinessMoney()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue(); |
| | | driver.setLaveBusinessMoney(v); |
| | | balanceUsageRecordService.saveBalanceUsageRecord(driver.getId(), 2, money, 6); |
| | | } |
| | | driverService.updateById(driver); |
| | | return ResultUtil.success(); |
| | |
| | | } |
| | | return ResultUtil.success(); |
| | | } |
| | | |
| | | /** |
| | | * 获取提现总额 |
| | | * @param uid |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | @Override |
| | | public Double queryWithdrawalSum(Integer uid, Integer type) throws Exception { |
| | | return this.baseMapper.queryWithdrawalSum(uid, 2, type); |
| | | } |
| | | } |