From 92480c7fd17a6bf89205ffcf4b78eef17988f0d5 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 01 八月 2025 19:22:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TInvoiceController.java | 8
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderPrivateCarServiceImpl.java | 8
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITInvoiceService.java | 3
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tDriverPromotionActivity/tDriverPromotionActivity1.js | 17 +
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TInvoiceMapper.xml | 1
ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriverPromotionActivity/tPromotionOrder.html | 122 ++++++++++
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TPromotionOrderCarController.java | 12
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TInvoiceMapper.java | 3
ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tDriverPromotionActivity/tPromotionOrder.js | 271 ++++++++++++++++++++++
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TInvoiceServiceImpl.java | 4
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderPrivateCarMapper.xml | 24 +
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDriverPromotionActivityController.java | 17 +
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderPrivateCarService.java | 4
ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderPrivateCarMapper.java | 4
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java | 159 ++++++++----
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 14
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invoice.java | 11
17 files changed, 593 insertions(+), 89 deletions(-)
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TInvoiceController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TInvoiceController.java
index 3d6c786..70dba3c 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TInvoiceController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TInvoiceController.java
@@ -7,6 +7,7 @@
import com.stylefeng.guns.core.log.LogObjectHolder;
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.modular.system.model.TInvoice;
+import com.stylefeng.guns.modular.system.service.ITCompanyService;
import com.stylefeng.guns.modular.system.service.ITInvoiceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@@ -36,6 +37,9 @@
@Autowired
private ShiroExtUtil shiroExtUtil;
+
+ @Autowired
+ private ITCompanyService tCompanyService;
/**
* 跳转到开发票列表首页
@@ -88,6 +92,8 @@
String name,
Integer type,
Integer state) {
+ //获取当前用户的公司id
+ Integer companyId = tCompanyService.selectById(shiroExtUtil.getUser().getObjectId()).getId();
String beginTime = null;
String endTime = null;
if (SinataUtil.isNotEmpty(insertTime)) {
@@ -99,7 +105,7 @@
if (shiroExtUtil.getUser().getRoleType() != 1) {
page.setRecords(null);
} else {
- page.setRecords(tInvoiceService.getInvoiceList(page, beginTime, endTime, email, name, type, state));
+ page.setRecords(tInvoiceService.getInvoiceList(page, beginTime, endTime, email, name, type, state,companyId));
}
return super.packForBT(page);
}
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDriverPromotionActivityController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDriverPromotionActivityController.java
index cc921d3..008dfda 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDriverPromotionActivityController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TDriverPromotionActivityController.java
@@ -8,8 +8,11 @@
import com.stylefeng.guns.core.util.SinataUtil;
import com.stylefeng.guns.core.util.ToolUtil;
import com.stylefeng.guns.modular.system.model.DriverRankVo;
+import com.stylefeng.guns.modular.system.model.TOrderPrivateCar;
import com.stylefeng.guns.modular.system.model.TRegion;
+import com.stylefeng.guns.modular.system.service.ITOrderPrivateCarService;
import com.stylefeng.guns.modular.system.service.ITRegionService;
+import com.stylefeng.guns.modular.system.service.TAbnormalPayOrderService;
import com.stylefeng.guns.modular.system.util.ExcelExportUtil;
import lombok.SneakyThrows;
import org.springframework.stereotype.Controller;
@@ -49,6 +52,9 @@
@Autowired
private ShiroExtUtil shiroExtUtil;
+
+ @Autowired
+ private ITOrderPrivateCarService tOrderPrivateCarService;
/**
* 跳转到首页
*/
@@ -108,6 +114,17 @@
model.addAttribute("driverId",id);
return PREFIX + "tDriverPromotionActivityUser.html";
}
+ @RequestMapping("/tDriverPromotionActivity_viewMoney/{id}")
+ public String tDriverPromotionActivityViewMoney(@PathVariable Integer id, Model model) {
+ List<Map<String, Object>> list=new ArrayList<>();
+ list = tOrderPrivateCarService.promotionInfoExport(null, null, null, null, null, null, null, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(),id);
+ BigDecimal reduce = list.stream().map(e -> new BigDecimal(e.get("promotionMoney").toString())).reduce(BigDecimal.ZERO, BigDecimal::add);
+ model.addAttribute("money",reduce);
+ model.addAttribute("size",list.size());
+
+ model.addAttribute("driverId",id);
+ return PREFIX + "tPromotionOrder.html";
+ }
/**
* 跳转到修改
*/
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TPromotionOrderCarController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TPromotionOrderCarController.java
index 67e223b..af7f7a6 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TPromotionOrderCarController.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TPromotionOrderCarController.java
@@ -54,7 +54,7 @@
@RequestMapping("")
public String index(Model model) {
List<Map<String, Object>> list=new ArrayList<>();
- list = tOrderPrivateCarService.promotionInfoExport(null, null, null, null, null, null, null, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId());
+ list = tOrderPrivateCarService.promotionInfoExport(null, null, null, null, null, null, null, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(),null);
BigDecimal reduce = list.stream().map(e -> new BigDecimal(e.get("promotionMoney").toString())).reduce(BigDecimal.ZERO, BigDecimal::add);
model.addAttribute("money",reduce);
model.addAttribute("size",list.size());
@@ -72,7 +72,7 @@
String orderNum,
String userName,
String name,
- String driverName){
+ String driverName,Integer driverId){
String beginTime = null;
String endTime = null;
if (SinataUtil.isNotEmpty(insertTime)) {
@@ -81,7 +81,7 @@
endTime = timeArray[1];
}
Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
- page.setRecords(tOrderPrivateCarService.promotionInfo(page, beginTime, endTime, orderNum, userName, name, driverName, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId()));
+ page.setRecords(tOrderPrivateCarService.promotionInfo(page, beginTime, endTime, orderNum, userName, name, driverName, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(),driverId));
return super.packForBT(page);
}
@@ -93,7 +93,7 @@
String orderNum,
String userName,
String name,
- String driverName, HttpServletRequest request, HttpServletResponse response) {
+ String driverName,Integer driverId, HttpServletRequest request, HttpServletResponse response) {
try {
String beginTime = null;
String endTime = null;
@@ -103,7 +103,7 @@
endTime = timeArray[1];
}
List<Map<String, Object>> list=new ArrayList<>();
- list = tOrderPrivateCarService.promotionInfoExport(null, beginTime, endTime, orderNum, userName, name, driverName, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId());
+ list = tOrderPrivateCarService.promotionInfoExport(null, beginTime, endTime, orderNum, userName, name, driverName, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(),driverId);
// 表格数据【封装】
@@ -196,7 +196,7 @@
endTime = timeArray[1];
}
List<Map<String, Object>> list=new ArrayList<>();
- list = tOrderPrivateCarService.promotionInfoExport(null, beginTime, endTime, orderNum, userName, name, driverName, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId());
+ list = tOrderPrivateCarService.promotionInfoExport(null, beginTime, endTime, orderNum, userName, name, driverName, shiroExtUtil.getUser().getRoleType(), shiroExtUtil.getUser().getObjectId(),null);
HashMap<String, Object> map = new HashMap<>();
BigDecimal reduce = list.stream().map(e -> new BigDecimal(e.get("promotionMoney").toString())).reduce(BigDecimal.ZERO, BigDecimal::add);
map.put("money", reduce);
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TInvoiceMapper.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TInvoiceMapper.java
index 56d2a37..b751fc1 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TInvoiceMapper.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TInvoiceMapper.java
@@ -28,5 +28,6 @@
@Param("email") String email,
@Param("name") String name,
@Param("type") Integer type,
- @Param("state") Integer state);
+ @Param("state") Integer state,
+ @Param("companyId") Integer companyId);
}
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderPrivateCarMapper.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderPrivateCarMapper.java
index ef8edfb..de96020 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderPrivateCarMapper.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TOrderPrivateCarMapper.java
@@ -71,7 +71,7 @@
List<Map<String,Object>> getSurcharge(@Param("id") Object id,@Param("orderType") Integer orderType);
- List<Map<String, Object>> promotionInfo(@Param("page") Page<Map<String, Object>> page, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("orderNum") String orderNum, @Param("userName") String userName, @Param("name") String name, @Param("driverName") String driverName, @Param("roleType") Integer roleType, @Param("objectId") Integer objectId);
+ List<Map<String, Object>> promotionInfo(@Param("page") Page<Map<String, Object>> page, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("orderNum") String orderNum, @Param("userName") String userName, @Param("name") String name, @Param("driverName") String driverName, @Param("roleType") Integer roleType, @Param("objectId") Integer objectId, @Param("driverId") Integer driverId);
- List<Map<String, Object>> promotionInfoExport(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("orderNum") String orderNum, @Param("userName") String userName, @Param("name") String name, @Param("driverName") String driverName, @Param("roleType") Integer roleType, @Param("objectId") Integer objectId);
+ List<Map<String, Object>> promotionInfoExport(@Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("orderNum") String orderNum, @Param("userName") String userName, @Param("name") String name, @Param("driverName") String driverName, @Param("roleType") Integer roleType, @Param("objectId") Integer objectId, @Param("driverId") Integer driverId);
}
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TInvoiceMapper.xml b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TInvoiceMapper.xml
index dbf4efd..a2ffc1c 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TInvoiceMapper.xml
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TInvoiceMapper.xml
@@ -45,6 +45,7 @@
<if test="state != null and state != ''">
and o.state = #{state}
</if>
+ and o.companyId = #{companyId}
</where>
order by o.id desc
</select>
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderPrivateCarMapper.xml b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderPrivateCarMapper.xml
index 27d4230..c593fd3 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderPrivateCarMapper.xml
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TOrderPrivateCarMapper.xml
@@ -264,7 +264,7 @@
<select id="promotionInfo" resultType="java.util.Map">
select * from (
- select t1.orderNum,t1.promotionMoney,t1.successTime,t1.payMoney money,t2.activityTitle name,t3.name driverName,t4.nickName userName
+ select 1 as type,t1.id orderId,t1.orderNum,t1.promotionMoney,t1.successTime,t1.payMoney money,t2.activityTitle name,t3.name driverName,t4.nickName userName
from t_order_private_car t1
LEFT JOIN t_driver_promotion_activity t2 ON t1.promotionActivityId = t2.id
LEFT JOIN t_driver t3 ON t1.promotionDriverId = t3.id
@@ -288,9 +288,12 @@
<if test="roleType != null and roleType != '' and roleType != 1">
and t1.companyId = #{objectId}
</if>
+ <if test="driverId != null ">
+ and t1.promotionDriverId =#{driverId}
+ </if>
union all
- select t1.orderNum,t1.promotionMoney,t1.successTime,t1.payMoney money,t2.activityTitle name,t3.name driverName,t4.nickName userName
+ select 2 as type,t1.id orderId,t1.orderNum,t1.promotionMoney,t1.successTime,t1.payMoney money,t2.activityTitle name,t3.name driverName,t4.nickName userName
from t_order_taxi t1
LEFT JOIN t_driver_promotion_activity t2 ON t1.promotionActivityId = t2.id
LEFT JOIN t_driver t3 ON t1.promotionDriverId = t3.id
@@ -314,10 +317,13 @@
<if test="roleType != null and roleType != '' and roleType != 1">
and t1.companyId = #{objectId}
</if>
+ <if test="driverId != null ">
+ and t1.promotionDriverId =#{driverId}
+ </if>
union all
- select t1.orderNum,t1.promotionMoney,t1.successTime,t1.payMoney money,t2.activityTitle name,t3.name driverName,t4.nickName userName
+ select 3 as type,t1.id orderId,t1.orderNum,t1.promotionMoney,t1.successTime,t1.payMoney money,t2.activityTitle name,t3.name driverName,t4.nickName userName
from t_order_cross_city t1
LEFT JOIN t_driver_promotion_activity t2 ON t1.promotionActivityId = t2.id
LEFT JOIN t_driver t3 ON t1.promotionDriverId = t3.id
@@ -340,6 +346,9 @@
</if>
<if test="roleType != null and roleType != '' and roleType != 1">
and t1.companyId = #{objectId}
+ </if>
+ <if test="driverId != null ">
+ and t1.promotionDriverId =#{driverId}
</if>
) as t5 order by t5.successTime desc
@@ -367,6 +376,9 @@
<if test="driverName != null and driverName != ''">
and t3.name like CONCAT('%',#{driverName},'%')
</if>
+ <if test="driverId != null ">
+ and t1.promotionDriverId =#{driverId}
+ </if>
<if test="roleType != null and roleType != '' and roleType != 1">
and t1.companyId = #{objectId}
</if>
@@ -392,6 +404,9 @@
</if>
<if test="driverName != null and driverName != ''">
and t3.name like CONCAT('%',#{driverName},'%')
+ </if>
+ <if test="driverId != null ">
+ and t1.promotionDriverId =#{driverId}
</if>
<if test="roleType != null and roleType != '' and roleType != 1">
and t1.companyId = #{objectId}
@@ -420,6 +435,9 @@
<if test="driverName != null and driverName != ''">
and t3.name like CONCAT('%',#{driverName},'%')
</if>
+ <if test="driverId != null ">
+ and t1.promotionDriverId =#{driverId}
+ </if>
<if test="roleType != null and roleType != '' and roleType != 1">
and t1.companyId = #{objectId}
</if>
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITInvoiceService.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITInvoiceService.java
index 34df7a0..b5cf603 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITInvoiceService.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITInvoiceService.java
@@ -28,5 +28,6 @@
@Param("email") String email,
@Param("name") String name,
@Param("type") Integer type,
- @Param("state") Integer state);
+ @Param("state") Integer state,
+ @Param("companyId") Integer companyId);
}
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderPrivateCarService.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderPrivateCarService.java
index 7b1da0c..afaab8d 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderPrivateCarService.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITOrderPrivateCarService.java
@@ -71,8 +71,8 @@
List<Map<String,Object>> getSurcharge(Object id,Integer orderType);
- List<Map<String, Object>> promotionInfo(Page<Map<String, Object>> page, String beginTime, String endTime, String orderNum, String userName, String name, String driverName, Integer roleType, Integer objectId);
+ List<Map<String, Object>> promotionInfo(Page<Map<String, Object>> page, String beginTime, String endTime, String orderNum, String userName, String name, String driverName, Integer roleType, Integer objectId,Integer driverId);
- List<Map<String, Object>> promotionInfoExport(Object o, String beginTime, String endTime, String orderNum, String userName, String name, String driverName, Integer roleType, Integer objectId);
+ List<Map<String, Object>> promotionInfoExport(Object o, String beginTime, String endTime, String orderNum, String userName, String name, String driverName, Integer roleType, Integer objectId,Integer driverId);
}
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TInvoiceServiceImpl.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TInvoiceServiceImpl.java
index d3aca8e..4d58fff 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TInvoiceServiceImpl.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TInvoiceServiceImpl.java
@@ -22,7 +22,7 @@
public class TInvoiceServiceImpl extends ServiceImpl<TInvoiceMapper, TInvoice> implements ITInvoiceService {
@Override
- public List<Map<String, Object>> getInvoiceList(Page<Map<String, Object>> page, String beginTime, String endTime, String email, String name, Integer type, Integer state) {
- return this.baseMapper.getInvoiceList(page, beginTime, endTime, email, name, type, state);
+ public List<Map<String, Object>> getInvoiceList(Page<Map<String, Object>> page, String beginTime, String endTime, String email, String name, Integer type, Integer state,Integer companyId) {
+ return this.baseMapper.getInvoiceList(page, beginTime, endTime, email, name, type, state, companyId);
}
}
diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderPrivateCarServiceImpl.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderPrivateCarServiceImpl.java
index 6373e9d..cb73f5a 100644
--- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderPrivateCarServiceImpl.java
+++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderPrivateCarServiceImpl.java
@@ -115,12 +115,12 @@
}
@Override
- public List<Map<String, Object>> promotionInfo(Page<Map<String, Object>> page, String beginTime, String endTime, String orderNum, String userName, String name, String driverName, Integer roleType, Integer objectId) {
- return this.baseMapper.promotionInfo(page, beginTime, endTime, orderNum, userName, name, driverName, roleType, objectId);
+ public List<Map<String, Object>> promotionInfo(Page<Map<String, Object>> page, String beginTime, String endTime, String orderNum, String userName, String name, String driverName, Integer roleType, Integer objectId,Integer driverId) {
+ return this.baseMapper.promotionInfo(page, beginTime, endTime, orderNum, userName, name, driverName, roleType, objectId,driverId);
}
@Override
- public List<Map<String, Object>> promotionInfoExport(Object o, String beginTime, String endTime, String orderNum, String userName, String name, String driverName, Integer roleType, Integer objectId) {
- return this.baseMapper.promotionInfoExport(beginTime, endTime, orderNum, userName, name, driverName, roleType, objectId);
+ public List<Map<String, Object>> promotionInfoExport(Object o, String beginTime, String endTime, String orderNum, String userName, String name, String driverName, Integer roleType, Integer objectId,Integer driverId) {
+ return this.baseMapper.promotionInfoExport(beginTime, endTime, orderNum, userName, name, driverName, roleType, objectId,driverId);
}
}
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriverPromotionActivity/tPromotionOrder.html b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriverPromotionActivity/tPromotionOrder.html
new file mode 100644
index 0000000..43bad65
--- /dev/null
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tDriverPromotionActivity/tPromotionOrder.html
@@ -0,0 +1,122 @@
+@layout("/common/_container.html"){
+<div class="row">
+ <div class="col-sm-12">
+ <div class="ibox float-e-margins">
+ <div class="ibox-title">
+ <h5>推广收益明细</h5>
+ </div>
+ <div class="ibox-content">
+ <input type="hidden" id="driverId" value="${driverId}">
+ <div class="row row-lg">
+ <div class="col-sm-12">
+ <div class="row">
+ <div class="col-sm-3">
+ <#TimeCon id="insertTime" name="收益时间" isTime="false"/>
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="name" name="活动名称" />
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="driverName" name="司机名称" />
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="userName" name="用户名称" />
+ </div>
+ <div class="col-sm-3">
+ <#NameCon id="orderNum" name="订单编号" />
+ </div>
+
+ <div class="col-sm-3">
+ <#button name="搜索" icon="fa-search" clickFun="search()"/>
+ <#button name="重置" icon="fa-trash" clickFun="resetSearch()" space="true"/>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <div class="row">
+ <div class="col-sm-6">
+ <div class="stat-card" style=" border: none; padding: 20px; border-radius: 10px; margin-bottom: 15px; box-shadow: 0 4px 15px rgba(0,0,0,0.1);">
+ <div class="stat-content">
+ <div class="stat-number" style="font-size: 28px; font-weight: bold; margin-bottom: 5px;" id="money">
+ ${money}
+ </div>
+ <div class="stat-label" style="font-size: 14px; opacity: 0.9;">
+ 合计推广收益金额
+ </div>
+ </div>
+ <div style="clear: both;"></div>
+ </div>
+ </div>
+ <div class="col-sm-6">
+ <div class="stat-card" style=" border: none; padding: 20px; border-radius: 10px; margin-bottom: 15px; box-shadow: 0 4px 15px rgba(0,0,0,0.1);">
+ <div class="stat-content">
+ <div class="stat-number" style="font-size: 28px; font-weight: bold; margin-bottom: 5px;" id="size">
+ ${size}
+ </div>
+ <div class="stat-label" style="font-size: 14px; opacity: 0.9;">
+ 合计推广收益笔数
+ </div>
+ </div>
+ <div style="clear: both;"></div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="hidden-xs" id="TOrderPrivateCarTableToolbar" role="group">
+ <#button name="导出Excel" icon="" clickFun="TAbnormalOrder.exportExcel()" space="true"/>
+ </div>
+ <#table id="TOrderPrivateCarTable"/>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<script src="${ctxPath}/static/modular/system/tDriverPromotionActivity/tPromotionOrder.js"></script>
+<script>
+ laydate.render({
+ elem: '#insertTime'
+ ,range: true
+ });
+
+ function search() {
+
+ let insertTime = $('#insertTime').val();
+ let name = $('#name').val();
+ let driverName = $('#driverName').val();
+ let userName = $('#userName').val();
+ let orderNum = $('#orderNum').val();
+
+
+ //提交信息
+ var ajax = new $ax(Feng.ctxPath + "/promotionInfo/list1", function(data){
+ console.log(data)
+ $("#money").text(data.money)
+ $("#size").text(data.size)
+ },function(data){
+ });
+ ajax.set("insertTime",insertTime);
+ ajax.set("name",name);
+ ajax.set("driverName",driverName);
+ ajax.set("userName",userName);
+ ajax.set("orderNum",orderNum);
+ ajax.start();
+ TAbnormalOrder.search()
+ }
+
+
+ function resetSearch() {
+
+ //提交信息
+ var ajax = new $ax(Feng.ctxPath + "/promotionInfo/list1", function(data){
+ console.log(data)
+ $("#money").text(data.money)
+ $("#size").text(data.size)
+ },function(data){
+ });
+ ajax.start();
+ TAbnormalOrder.resetSearch()
+ }
+</script>
+@}
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tDriverPromotionActivity/tDriverPromotionActivity1.js b/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tDriverPromotionActivity/tDriverPromotionActivity1.js
index d8dd13b..6879c44 100644
--- a/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tDriverPromotionActivity/tDriverPromotionActivity1.js
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tDriverPromotionActivity/tDriverPromotionActivity1.js
@@ -30,7 +30,7 @@
formatter: function (value, row) {
var btn = [];
btn += '<a href="javascript:void(0);" onclick="TDriverPromotionActivity.viewUser(' + row.driverId + ')" style="color: #0e9aef">查看下级用户</a> ';
- btn += '<a href="javascript:void(0);" onclick="TDriverPromotionActivity.info(' + row.id + ')" style="color: #0e9aef">查看收益明细</a> ';
+ btn += '<a href="javascript:void(0);" onclick="TDriverPromotionActivity.viewMoney(' + row.driverId + ')" style="color: #0e9aef">查看收益明细</a> ';
return btn;
}
@@ -80,6 +80,20 @@
fix: false, //不固定
maxmin: true,
content: Feng.ctxPath + '/tDriverPromotionActivity/tDriverPromotionActivity_viewUser/' + e
+ });
+ this.layerIndex = index;
+};
+/**
+ * 打开查看详情
+ */
+TDriverPromotionActivity.viewMoney = function (e) {
+ var index = layer.open({
+ type: 2,
+ title: '推广收益明细',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tDriverPromotionActivity/tDriverPromotionActivity_viewMoney/' + e
});
this.layerIndex = index;
};
@@ -193,4 +207,5 @@
var table = new BSTable(TDriverPromotionActivity.id, "/tDriverPromotionActivity/list1", defaultColunms);
table.setPaginationType("client");
TDriverPromotionActivity.table = table.init();
+ TDriverPromotionActivity.search()
});
diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tDriverPromotionActivity/tPromotionOrder.js b/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tDriverPromotionActivity/tPromotionOrder.js
new file mode 100644
index 0000000..d777a1b
--- /dev/null
+++ b/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tDriverPromotionActivity/tPromotionOrder.js
@@ -0,0 +1,271 @@
+/**
+ * 快车订单管理初始化
+ */
+var TAbnormalOrder = {
+ id: "TOrderPrivateCarTable", //表格id
+ seItem: null, //选中的条目
+ table: null,
+ layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+TAbnormalOrder.initColumn = function () {
+ return [
+ {field: 'selectItem', radio: true},
+ {title: '主键id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+ {title: '活动名称', field: 'name', visible: true, align: 'center', valign: 'middle',width:'8%',
+ },
+ {title: '司机名称', field: 'driverName', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '下级用户', field: 'userName', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '订单编号', field: 'orderNum', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '订单金额', field: 'money', visible: false, align: 'center', valign: 'middle'},
+ {title: '司机推广收益', field: 'promotionMoney', visible: true, align: 'center', valign: 'middle',
+ },
+ {title: '收益时间', field: 'successTime', visible: true, align: 'center', valign: 'middle',
+ },
+ {
+ title: '操作', field: 'opt', visible: true, align: 'left', valign: 'middle', width: "10%",
+ formatter: function (value, row) {
+ var btn = [];
+ btn += '<a href="javascript:void(0);" onclick="TAbnormalOrder.info(' + row.orderId +","+row.type+ ')" style="color: #0e9aef">详情</a> ';
+ return btn;
+ }
+
+ }
+ ];
+};
+
+/**
+ * 检查是否选中
+ */
+TAbnormalOrder.check = function () {
+ var selected = $('#' + this.id).bootstrapTable('getSelections');
+ if(selected.length == 0){
+ Feng.info("请先选中表格中的某一记录!");
+ return false;
+ }else{
+ TAbnormalOrder.seItem = selected[0];
+ return true;
+ }
+};
+
+/**
+ * 添加快车订单
+ */
+TAbnormalOrder.addOrder =function(){
+ var index = layer.open({
+ type: 2,
+ title: '添加快车订单',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tOrderPrivateCar/tOrderPrivateCar_addOrder'
+ });
+ this.layerIndex = index;
+
+};
+TAbnormalOrder.info =function(orderId,type){
+ console.log(orderId,type)
+ if(type==1){
+ var index = layer.open({
+ type: 2,
+ title: '快车订单详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tOrderPrivateCar/tOrderPrivateCar_orderDetail/' +orderId
+ });
+ this.layerIndex = index;
+ }
+ if(type==3){
+ var index = layer.open({
+ type: 2,
+ title: '跨城出行订单详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tOrderCrossCity/tOrderCrossCity_detail/' + orderId
+ });
+ this.layerIndex = index;
+ }
+ if(type==2){
+ var index = layer.open({
+ type: 2,
+ title: '出租车订单详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tOrderTaxi/tOrderTaxi_update/' + orderId
+ });
+ this.layerIndex = index;
+ }
+
+
+};
+
+/**
+ * 打开查看快车订单详情
+ */
+TAbnormalOrder.orderDetail = function () {
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: '异常订单详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/abnormal/tOrderPrivateCar_orderDetail?tOrderPrivateCarId=' + TAbnormalOrder.seItem.id+'&type='+$("#type").val()
+ });
+ this.layerIndex = index;
+ }
+};
+TAbnormalOrder.orderDetail1 = function () {
+ if (this.check()) {
+ let abnormalStatus = TAbnormalOrder.seItem.abnormalStatus
+ if(abnormalStatus==2){
+ Feng.info("此异常订单已处理")
+ return;
+ }
+ console.log(abnormalStatus)
+ var index = layer.open({
+ type: 2,
+ title: '异常订单详情',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/abnormal/tOrderPrivateCar_orderDetail1?tOrderPrivateCarId=' + TAbnormalOrder.seItem.id+'&type='+$("#type").val()
+ });
+ this.layerIndex = index;
+ }
+};
+
+
+/**
+ * 订单轨迹
+ */
+TAbnormalOrder.trajectory = function(){
+ if (this.check()) {
+ var index = layer.open({
+ type: 2,
+ title: '快车订单轨迹',
+ area: ['100%', '100%'], //宽高
+ fix: false, //不固定
+ maxmin: true,
+ content: Feng.ctxPath + '/tOrderPrivateCar/tOrderPrivateCar_trajectory/' + TAbnormalOrder.seItem.id
+ });
+ this.layerIndex = index;
+ }
+}
+
+
+/**
+ * 删除快车订单
+ */
+TAbnormalOrder.deleteOrder = function () {
+ if (this.check()) {
+ var orderNum = TAbnormalOrder.seItem.orderNum;
+ if (orderNum == "" || orderNum == null || orderNum == undefined) {
+ orderNum = "该订单";
+ } else {
+ orderNum = "【" + orderNum + "】";
+ }
+ if (TAbnormalOrder.seItem.state != 10) {
+ swal("删除失败", "【已取消】状态下才能执行此操作", "warning");
+ return;
+ }
+ swal({
+ title: "您是否确认删除" + orderNum + "?",
+ text: "请谨慎操作,删除后数据无法恢复!",
+ type: "warning",
+ showCancelButton: true,
+ confirmButtonColor: "#DD6B55",
+ confirmButtonText: "删除",
+ closeOnConfirm: false
+ }, function () {
+ var ajax = new $ax(Feng.ctxPath + "/tOrderPrivateCar/delete", function (data) {
+ swal("删除成功", "您已经删除了" + orderNum + "。", "success");
+ TAbnormalOrder.table.refresh();
+ }, function (data) {
+ swal("删除失败", data.responseJSON.message + "!", "warning");
+ });
+ ajax.set("tOrderPrivateCarId", TAbnormalOrder.seItem.id);
+ ajax.start();
+ });
+ }
+};
+
+
+
+
+
+/**
+ * 查询快车订单列表
+ */
+TAbnormalOrder.search = function () {
+ var queryData = {};
+ queryData['insertTime'] = $("#insertTime").val();
+ queryData['name'] = $("#name").val();
+ queryData['driverName'] = $("#driverName").val();
+ queryData['userName'] = $("#userName").val();
+ queryData['orderNum'] = $("#orderNum").val();
+ queryData['driverId'] = $("#driverId").val();
+ TAbnormalOrder.table.refresh({query: queryData});
+};
+
+TAbnormalOrder.exportExcel=function (){
+ let p = "";
+ let insertTime = $('#insertTime').val();
+ let name = $('#name').val();
+ let driverName = $('#driverName').val();
+ let userName = $('#userName').val();
+ let orderNum = $('#orderNum').val();
+ let driverId = $('#driverId').val();
+ if(null != insertTime && '' != insertTime){
+ p += "insertTime=" + insertTime + "&";
+ }
+ if(null != name && '' != name){
+ p += "name=" + name + "&";
+ }
+ if(null != driverName && '' != driverName){
+ p += "driverName=" + driverName + "&";
+ }
+ if(null != userName && '' != userName){
+ p += "userName=" + userName + "&" ;
+ }
+ if(null != orderNum && '' != orderNum){
+ p += "orderNum=" + orderNum + "&" ;
+ }
+ if(null != driverId && '' != driverId){
+ p += "driverId=" + driverId + "&" ;
+ }
+ if('' != p){
+ p = "?" + p.substring(0, p.length - 1);
+ }
+ console.log('p['+p+']')
+ window.location.href = Feng.ctxPath + '/promotionInfo/export' + p;
+}
+
+
+
+TAbnormalOrder.resetSearch = function () {
+ $("#insertTime").val("");
+ $("#name").val("");
+ $("#driverName").val("");
+ $("#userName").val("");
+ $("#orderNum").val("");
+ TAbnormalOrder.search();
+};
+
+
+
+$(function () {
+ var defaultColunms = TAbnormalOrder.initColumn();
+ var table = new BSTable(TAbnormalOrder.id, "/promotionInfo/list?driverId="+$('#driverId').val(), defaultColunms);
+ table.setPaginationType("server");
+ TAbnormalOrder.table = table.init();
+});
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 9d43a39..f52a9fe 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -1416,7 +1416,11 @@
case 2:
return orderTaxiService.payTaxiOrder1(payType, orderId, objectId, objectType, type, path, ip);
case 3:
- return orderCrossCityService.payCrossCityOrder1(payType, orderId, objectId, objectType, type);
+ ResultUtil resultUtil = orderCrossCityService.payCrossCityOrder1(payType, orderId, objectId, objectType, type);
+
+ orderCrossCityService.promotion(orderId);
+
+ return resultUtil;
case 4:
return orderLogisticsService.payLogisticsOrder1(payType, orderId, objectId, objectType, type);
case 5:
@@ -2158,11 +2162,13 @@
if(orderNo.contains("PR")){
orderNo = orderNo.substring(2);
orderPrivateCarService.payOrderPrivateCarCallback(Integer.valueOf(orderNo), payId, 1);
+ orderPrivateCarService.promotion(Integer.valueOf(orderNo));
}
//出租车
if(orderNo.contains("TA")){
orderNo = orderNo.substring(2);
orderTaxiService.payOrderTaxiCallback(Integer.valueOf(orderNo), payId, 1, 0);
+ orderTaxiService.promotion(Integer.valueOf(orderNo));
}
}catch (Exception e){
e.printStackTrace();
@@ -2180,12 +2186,6 @@
*/
private void promotion(Integer orderType, Integer orderId) {
switch (orderType) {
- case 1:
- orderPrivateCarService.promotion(orderId);
- break;
- case 2:
- orderTaxiService.promotion(orderId);
- break;
case 3:
orderCrossCityService.promotion(orderId);
break;
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invoice.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invoice.java
index e1a689b..7dca049 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invoice.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invoice.java
@@ -84,6 +84,9 @@
@TableField("insertTime")
private Date insertTime;
+ @TableField("companyId")
+ private Integer companyId;
+
public Integer getId() {
return id;
}
@@ -196,6 +199,13 @@
this.insertTime = insertTime;
}
+ public Integer getCompanyId() {
+ return companyId;
+ }
+ public void setCompanyId(Integer companyId) {
+ this.companyId = companyId;
+ }
+
@Override
public String toString() {
return "Invoice{" +
@@ -213,6 +223,7 @@
", userId=" + userId +
", state=" + state +
", insertTime=" + insertTime +
+ ", companyId=" + companyId +
'}';
}
}
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java
index e0b0e66..4855d4b 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java
@@ -15,14 +15,13 @@
import com.stylefeng.guns.modular.system.service.IInvoiceService;
import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
@Service
@@ -54,74 +53,116 @@
@Override
public void invoicing(Invoice invoice, String order, Integer uid) throws Exception {
JSONArray jsonArray = JSON.parseArray(order);
- BigDecimal sum = new BigDecimal(0);
- for(int i = 0; i < jsonArray.size(); i++){
+ // 1. 按companyId分组存放订单(key: companyId, value: 该公司的所有订单)
+ Map<Integer, List<JSONObject>> companyOrdersMap = new HashMap<>();
+ for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Integer orderType = jsonObject.getIntValue("type");
Integer orderId = jsonObject.getIntValue("id");
- switch (orderType){
- case 1://专车
- OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
- sum=sum.add(new BigDecimal(orderPrivateCar.getPayMoney()));
+ Integer companyId = null;
+
+ // 2. 获取每个订单的companyId
+ switch (orderType) {
+ case 1: // 专车
+ OrderPrivateCar privateCar = orderPrivateCarService.selectById(orderId);
+ companyId = privateCar.getCompanyId();
break;
- case 2://出租车
- OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
- sum=sum.add(new BigDecimal(orderTaxi.getPayMoney()));
+ case 2: // 出租车
+ OrderTaxi taxi = orderTaxiService.selectById(orderId);
+ companyId = taxi.getCompanyId();
break;
- case 3://跨城出行
- OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
- sum=sum.add(new BigDecimal(orderCrossCity.getPayMoney()));
+ case 3: // 跨城出行
+ OrderCrossCity crossCity = orderCrossCityService.selectById(orderId);
+ companyId = crossCity.getCompanyId();
break;
- case 4://同城小件物流
- OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
- sum=sum.add(new BigDecimal(orderLogistics.getPayMoney()));
- break;
- case 5://跨城小件物流
- OrderLogistics orderLogistics1 = orderLogisticsService.selectById(orderId);
- sum=sum.add(new BigDecimal(orderLogistics1.getPayMoney()));
+ case 4: // 同城小件物流
+ case 5: // 跨城小件物流
+ OrderLogistics logistics = orderLogisticsService.selectById(orderId);
+ companyId = logistics.getCompanyId();
break;
}
+
+ // 3. 将订单按companyId分组
+ if (companyId == null) {
+ throw new Exception("订单ID=" + orderId + "未找到关联公司");
+ }
+ companyOrdersMap.computeIfAbsent(companyId, k -> new ArrayList<>()).add(jsonObject);
}
+ // 4. 为每个公司单独创建发票
+ for (Map.Entry<Integer, List<JSONObject>> entry : companyOrdersMap.entrySet()) {
+ Integer companyId = entry.getKey();
+ List<JSONObject> companyOrders = entry.getValue();
- invoice.setOrderNum(jsonArray.size());
- invoice.setMoney(sum.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
- invoice.setUserId(uid);
- invoice.setInsertTime(new Date());
- invoice.setState(1);
- this.insert(invoice);
- // TODO: 2020/6/9 调用开发票第三方SDK
+ // 计算该公司订单的总金额
+ BigDecimal sum = new BigDecimal(0);
+ for (JSONObject orderJson : companyOrders) {
+ Integer orderType = orderJson.getIntValue("type");
+ Integer orderId = orderJson.getIntValue("id");
+ switch (orderType) {
+ case 1:
+ OrderPrivateCar privateCar = orderPrivateCarService.selectById(orderId);
+ sum = sum.add(new BigDecimal(privateCar.getPayMoney()));
+ break;
+ case 2:
+ OrderTaxi taxi = orderTaxiService.selectById(orderId);
+ sum = sum.add(new BigDecimal(taxi.getPayMoney()));
+ break;
+ case 3:
+ OrderCrossCity crossCity = orderCrossCityService.selectById(orderId);
+ sum = sum.add(new BigDecimal(crossCity.getPayMoney()));
+ break;
+ case 4:
+ case 5:
+ OrderLogistics logistics = orderLogisticsService.selectById(orderId);
+ sum = sum.add(new BigDecimal(logistics.getPayMoney()));
+ break;
+ }
+ }
- for(int i = 0; i < jsonArray.size(); i++){
- JSONObject jsonObject = jsonArray.getJSONObject(i);
- Integer orderType = jsonObject.getIntValue("type");
- Integer orderId = jsonObject.getIntValue("id");
- switch (orderType){
- case 1://专车
- OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
- orderPrivateCar.setInvoiceId(invoice.getId());
- orderPrivateCarService.updateById(orderPrivateCar);
- break;
- case 2://出租车
- OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
- orderTaxi.setInvoiceId(invoice.getId());
- orderTaxiService.updateById(orderTaxi);
- break;
- case 3://跨城出行
- OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
- orderCrossCity.setInvoiceId(invoice.getId());
- orderCrossCityService.updateById(orderCrossCity);
- break;
- case 4://同城小件物流
- OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
- orderLogistics.setInvoiceId(invoice.getId());
- orderLogisticsService.updateById(orderLogistics);
- break;
- case 5://跨城小件物流
- OrderLogistics orderLogistics1 = orderLogisticsService.selectById(orderId);
- orderLogistics1.setInvoiceId(invoice.getId());
- orderLogisticsService.updateById(orderLogistics1);
- break;
+ // 创建该公司的发票(复制原invoice的基础信息,覆盖companyId和金额)
+ Invoice companyInvoice = new Invoice();
+ // 复制原发票的非金额相关字段(如发票类型、抬头等)
+ BeanUtils.copyProperties(invoice, companyInvoice, "id", "money", "orderNum", "insertTime", "state", "companyId");
+ companyInvoice.setCompanyId(companyId); // 关联公司ID
+ companyInvoice.setOrderNum(companyOrders.size()); // 该公司的订单数量
+ companyInvoice.setMoney(sum.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); // 该公司的总金额
+ companyInvoice.setUserId(uid);
+ companyInvoice.setInsertTime(new Date());
+ companyInvoice.setState(1);
+ this.insert(companyInvoice); // 保存发票
+
+ // 调用第三方开票SDK(按公司发票单独开票)
+ // TODO: 调用开发票第三方SDK,传入companyInvoice参数
+
+ // 5. 将该公司的订单关联到对应的发票ID
+ for (JSONObject orderJson : companyOrders) {
+ Integer orderType = orderJson.getIntValue("type");
+ Integer orderId = orderJson.getIntValue("id");
+
+ switch (orderType) {
+ case 1:
+ OrderPrivateCar privateCar = orderPrivateCarService.selectById(orderId);
+ privateCar.setInvoiceId(companyInvoice.getId());
+ orderPrivateCarService.updateById(privateCar);
+ break;
+ case 2:
+ OrderTaxi taxi = orderTaxiService.selectById(orderId);
+ taxi.setInvoiceId(companyInvoice.getId());
+ orderTaxiService.updateById(taxi);
+ break;
+ case 3:
+ OrderCrossCity crossCity = orderCrossCityService.selectById(orderId);
+ crossCity.setInvoiceId(companyInvoice.getId());
+ orderCrossCityService.updateById(crossCity);
+ break;
+ case 4:
+ case 5:
+ OrderLogistics logistics = orderLogisticsService.selectById(orderId);
+ logistics.setInvoiceId(companyInvoice.getId());
+ orderLogisticsService.updateById(logistics);
+ break;
+ }
}
}
--
Gitblit v1.7.1