gongdecai 2 anni fa
parent
commit
4d67d04e61
27 ha cambiato i file con 3284 aggiunte e 548 eliminazioni
  1. 91 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/IPincheCarSharingService.java
  2. 93 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/IPincheMakeAppointmentService.java
  3. 69 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/IPincheRoutePriceService.java
  4. 218 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/impl/PincheCarSharingServiceImpl.java
  5. 224 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/impl/PincheMakeAppointmentServiceImpl.java
  6. 152 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/impl/PincheRoutePriceServiceImpl.java
  7. 2 2
      unimall-admin/config/dep.env.js
  8. 2 2
      unimall-admin/config/dev.env.js
  9. 0 73
      unimall-admin/src/api/kouzhao/kouzhaoInfo.js
  10. 73 0
      unimall-admin/src/api/pinche/appointment.js
  11. 73 0
      unimall-admin/src/api/pinche/price.js
  12. 73 0
      unimall-admin/src/api/pinche/sharing.js
  13. 573 0
      unimall-admin/src/views/appointment/index.vue
  14. 0 299
      unimall-admin/src/views/kouzhao/kouzhaoInfo/index.vue
  15. 398 0
      unimall-admin/src/views/price/index.vue
  16. 558 0
      unimall-admin/src/views/sharing/index.vue
  17. 169 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/PincheCarSharing.java
  18. 175 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/PincheMakeAppointment.java
  19. 103 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/PincheRoutePrice.java
  20. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/PincheCarSharingMapper.java
  21. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/PincheMakeAppointmentMapper.java
  22. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/PincheRoutePriceMapper.java
  23. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/PincheCarSharingMapper.xml
  24. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/PincheMakeAppointmentMapper.xml
  25. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/PincheRoutePriceMapper.xml
  26. 54 54
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/tools/gen/GenTableColumnMapper.xml
  27. 118 118
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/tools/gen/GenTableMapper.xml

+ 91 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/IPincheCarSharingService.java

@@ -0,0 +1,91 @@
+package com.iotechn.unimall.admin.api.pinche;
+
+
+import com.iotechn.unimall.data.domain.PincheCarSharing;
+import com.iotechn.unimall.core.annotation.HttpMethod;
+import com.iotechn.unimall.core.annotation.HttpOpenApi;
+import com.iotechn.unimall.core.annotation.HttpParam;
+import com.iotechn.unimall.core.annotation.HttpParamType;
+import com.iotechn.unimall.core.annotation.param.NotNull;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+
+/**
+ * 发布信息Service接口
+ * 
+ * @author jlb
+ * @date 2022-11-30
+ */
+@HttpOpenApi(group = "admin.unimall.pincheCarSharing", description = "发布信息")
+public interface IPincheCarSharingService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:pincheCarSharing:add", permissionParentName = "宠物管理", permissionName = "发布信息管理")
+	public Boolean add(@NotNull @HttpParam(name = "pincheCarSharing", type = HttpParamType.COMMON, description = "发布信息") PincheCarSharing pincheCarSharing,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:pincheCarSharing:list",permissionParentName = "宠物管理", permissionName = "发布信息管理")
+	public Page<PincheCarSharing> list(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "carpoolingType", type = HttpParamType.COMMON, description = "拼车类型") String carpoolingType,
+							@HttpParam(name = "route", type = HttpParamType.COMMON, description = "路线") String route,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "手机号") String phone,
+							@HttpParam(name = "startPlace", type = HttpParamType.COMMON, description = "出发地点") String startPlace,
+							@HttpParam(name = "endPlace", type = HttpParamType.COMMON, description = "到达地点") String endPlace,
+							@HttpParam(name = "departureLatitude", type = HttpParamType.COMMON, description = "出发经纬度") String departureLatitude,
+							@HttpParam(name = "latitudeArrival", type = HttpParamType.COMMON, description = "到达经纬度") String latitudeArrival,
+							@HttpParam(name = "departureTime", type = HttpParamType.COMMON, description = "出发时间") Date departureTime,
+							@HttpParam(name = "numberPeople", type = HttpParamType.COMMON, description = "人数") String numberPeople,
+							@HttpParam(name = "explain", type = HttpParamType.COMMON, description = "说明") String explain,
+							@HttpParam(name = "unitPrice", type = HttpParamType.COMMON, description = "单价") Double unitPrice,
+							@HttpParam(name = "price", type = HttpParamType.COMMON, description = "总价") Double price,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "remark1", type = HttpParamType.COMMON, description = "备注1") String remark1,
+							@HttpParam(name = "remark2", type = HttpParamType.COMMON, description = "备注2") String remark2,
+							@HttpParam(name = "remark3", type = HttpParamType.COMMON, description = "备注3") String remark3,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "0:否(默认) 1:是") Long deleteFlag,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "userId", type = HttpParamType.COMMON, description = "") Long userId,
+							@HttpParam(name = "adminId", type = HttpParamType.COMMON, description = "") Long adminId,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:pincheCarSharing:delete",permissionParentName = "宠物管理", permissionName = "发布信息管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:pincheCarSharing:update",permissionParentName = "宠物管理", permissionName = "发布信息管理")
+	public Boolean update(@NotNull @HttpParam(name = "pincheCarSharing", type = HttpParamType.COMMON, description = "发布信息") PincheCarSharing pincheCarSharing,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:pincheCarSharing:get",permissionParentName = "宠物管理", permissionName = "发布信息管理")
+	public PincheCarSharing get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:pincheCarSharing:export",permissionParentName = "宠物管理", permissionName = "发布信息管理")
+	public String export(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "carpoolingType", type = HttpParamType.COMMON, description = "拼车类型") String carpoolingType,
+							@HttpParam(name = "route", type = HttpParamType.COMMON, description = "路线") String route,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "手机号") String phone,
+							@HttpParam(name = "startPlace", type = HttpParamType.COMMON, description = "出发地点") String startPlace,
+							@HttpParam(name = "endPlace", type = HttpParamType.COMMON, description = "到达地点") String endPlace,
+							@HttpParam(name = "departureLatitude", type = HttpParamType.COMMON, description = "出发经纬度") String departureLatitude,
+							@HttpParam(name = "latitudeArrival", type = HttpParamType.COMMON, description = "到达经纬度") String latitudeArrival,
+							@HttpParam(name = "departureTime", type = HttpParamType.COMMON, description = "出发时间") Date departureTime,
+							@HttpParam(name = "numberPeople", type = HttpParamType.COMMON, description = "人数") String numberPeople,
+							@HttpParam(name = "explain", type = HttpParamType.COMMON, description = "说明") String explain,
+							@HttpParam(name = "unitPrice", type = HttpParamType.COMMON, description = "单价") Double unitPrice,
+							@HttpParam(name = "price", type = HttpParamType.COMMON, description = "总价") Double price,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "remark1", type = HttpParamType.COMMON, description = "备注1") String remark1,
+							@HttpParam(name = "remark2", type = HttpParamType.COMMON, description = "备注2") String remark2,
+							@HttpParam(name = "remark3", type = HttpParamType.COMMON, description = "备注3") String remark3,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "0:否(默认) 1:是") Long deleteFlag,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "userId", type = HttpParamType.COMMON, description = "") Long userId,
+							@HttpParam(name = "adminId", type = HttpParamType.COMMON, description = "") Long adminId,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 93 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/IPincheMakeAppointmentService.java

@@ -0,0 +1,93 @@
+package com.iotechn.unimall.admin.api.pinche;
+
+
+import com.iotechn.unimall.data.domain.PincheMakeAppointment;
+import com.iotechn.unimall.core.annotation.HttpMethod;
+import com.iotechn.unimall.core.annotation.HttpOpenApi;
+import com.iotechn.unimall.core.annotation.HttpParam;
+import com.iotechn.unimall.core.annotation.HttpParamType;
+import com.iotechn.unimall.core.annotation.param.NotNull;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+
+/**
+ * 预约信息Service接口
+ * 
+ * @author jlb
+ * @date 2022-11-30
+ */
+@HttpOpenApi(group = "admin.unimall.pincheMakeAppointment", description = "预约信息")
+public interface IPincheMakeAppointmentService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:pincheMakeAppointment:add", permissionParentName = "宠物管理", permissionName = "预约信息管理")
+	public Boolean add(@NotNull @HttpParam(name = "pincheMakeAppointment", type = HttpParamType.COMMON, description = "预约信息") PincheMakeAppointment pincheMakeAppointment,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:pincheMakeAppointment:list",permissionParentName = "宠物管理", permissionName = "预约信息管理")
+	public Page<PincheMakeAppointment> list(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "appointedBy", type = HttpParamType.COMMON, description = "预约人") String appointedBy,
+							@HttpParam(name = "carpoolingType", type = HttpParamType.COMMON, description = "拼车类型") String carpoolingType,
+							@HttpParam(name = "route", type = HttpParamType.COMMON, description = "路线") String route,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "手机号") String phone,
+							@HttpParam(name = "startPlace", type = HttpParamType.COMMON, description = "出发地点") String startPlace,
+							@HttpParam(name = "endPlace", type = HttpParamType.COMMON, description = "到达地点") String endPlace,
+							@HttpParam(name = "departureLatitude", type = HttpParamType.COMMON, description = "出发经纬度") String departureLatitude,
+							@HttpParam(name = "latitudeArrival", type = HttpParamType.COMMON, description = "到达经纬度") String latitudeArrival,
+							@HttpParam(name = "departureTime", type = HttpParamType.COMMON, description = "出发时间") Date departureTime,
+							@HttpParam(name = "numberPeople", type = HttpParamType.COMMON, description = "人数") String numberPeople,
+							@HttpParam(name = "explain", type = HttpParamType.COMMON, description = "说明") String explain,
+							@HttpParam(name = "unitPrice", type = HttpParamType.COMMON, description = "单价") Double unitPrice,
+							@HttpParam(name = "price", type = HttpParamType.COMMON, description = "总价") Double price,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "remark1", type = HttpParamType.COMMON, description = "备注1") String remark1,
+							@HttpParam(name = "remark2", type = HttpParamType.COMMON, description = "备注2") String remark2,
+							@HttpParam(name = "remark3", type = HttpParamType.COMMON, description = "备注3") String remark3,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "0:否(默认) 1:是") Long deleteFlag,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "userId", type = HttpParamType.COMMON, description = "") Long userId,
+							@HttpParam(name = "adminId", type = HttpParamType.COMMON, description = "") Long adminId,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:pincheMakeAppointment:delete",permissionParentName = "宠物管理", permissionName = "预约信息管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:pincheMakeAppointment:update",permissionParentName = "宠物管理", permissionName = "预约信息管理")
+	public Boolean update(@NotNull @HttpParam(name = "pincheMakeAppointment", type = HttpParamType.COMMON, description = "预约信息") PincheMakeAppointment pincheMakeAppointment,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:pincheMakeAppointment:get",permissionParentName = "宠物管理", permissionName = "预约信息管理")
+	public PincheMakeAppointment get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:pincheMakeAppointment:export",permissionParentName = "宠物管理", permissionName = "预约信息管理")
+	public String export(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "appointedBy", type = HttpParamType.COMMON, description = "预约人") String appointedBy,
+							@HttpParam(name = "carpoolingType", type = HttpParamType.COMMON, description = "拼车类型") String carpoolingType,
+							@HttpParam(name = "route", type = HttpParamType.COMMON, description = "路线") String route,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "手机号") String phone,
+							@HttpParam(name = "startPlace", type = HttpParamType.COMMON, description = "出发地点") String startPlace,
+							@HttpParam(name = "endPlace", type = HttpParamType.COMMON, description = "到达地点") String endPlace,
+							@HttpParam(name = "departureLatitude", type = HttpParamType.COMMON, description = "出发经纬度") String departureLatitude,
+							@HttpParam(name = "latitudeArrival", type = HttpParamType.COMMON, description = "到达经纬度") String latitudeArrival,
+							@HttpParam(name = "departureTime", type = HttpParamType.COMMON, description = "出发时间") Date departureTime,
+							@HttpParam(name = "numberPeople", type = HttpParamType.COMMON, description = "人数") String numberPeople,
+							@HttpParam(name = "explain", type = HttpParamType.COMMON, description = "说明") String explain,
+							@HttpParam(name = "unitPrice", type = HttpParamType.COMMON, description = "单价") Double unitPrice,
+							@HttpParam(name = "price", type = HttpParamType.COMMON, description = "总价") Double price,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "remark1", type = HttpParamType.COMMON, description = "备注1") String remark1,
+							@HttpParam(name = "remark2", type = HttpParamType.COMMON, description = "备注2") String remark2,
+							@HttpParam(name = "remark3", type = HttpParamType.COMMON, description = "备注3") String remark3,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "0:否(默认) 1:是") Long deleteFlag,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "userId", type = HttpParamType.COMMON, description = "") Long userId,
+							@HttpParam(name = "adminId", type = HttpParamType.COMMON, description = "") Long adminId,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 69 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/IPincheRoutePriceService.java

@@ -0,0 +1,69 @@
+package com.iotechn.unimall.admin.api.pinche;
+
+
+import com.iotechn.unimall.data.domain.PincheRoutePrice;
+import com.iotechn.unimall.core.annotation.HttpMethod;
+import com.iotechn.unimall.core.annotation.HttpOpenApi;
+import com.iotechn.unimall.core.annotation.HttpParam;
+import com.iotechn.unimall.core.annotation.HttpParamType;
+import com.iotechn.unimall.core.annotation.param.NotNull;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+
+/**
+ * 路线价格Service接口
+ * 
+ * @author jlb
+ * @date 2022-11-30
+ */
+@HttpOpenApi(group = "admin.unimall.pincheRoutePrice", description = "路线价格")
+public interface IPincheRoutePriceService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:pincheRoutePrice:add", permissionParentName = "宠物管理", permissionName = "路线价格管理")
+	public Boolean add(@NotNull @HttpParam(name = "pincheRoutePrice", type = HttpParamType.COMMON, description = "路线价格") PincheRoutePrice pincheRoutePrice,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:pincheRoutePrice:list",permissionParentName = "宠物管理", permissionName = "路线价格管理")
+	public Page<PincheRoutePrice> list(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "route", type = HttpParamType.COMMON, description = "路线") String route,
+							@HttpParam(name = "unitPrice", type = HttpParamType.COMMON, description = "单价") Double unitPrice,
+							@HttpParam(name = "remark1", type = HttpParamType.COMMON, description = "备注1") String remark1,
+							@HttpParam(name = "remark2", type = HttpParamType.COMMON, description = "备注2") String remark2,
+							@HttpParam(name = "remark3", type = HttpParamType.COMMON, description = "备注3") String remark3,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "0:否(默认) 1:是") Long deleteFlag,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "userId", type = HttpParamType.COMMON, description = "") Long userId,
+							@HttpParam(name = "adminId", type = HttpParamType.COMMON, description = "") Long adminId,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:pincheRoutePrice:delete",permissionParentName = "宠物管理", permissionName = "路线价格管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:pincheRoutePrice:update",permissionParentName = "宠物管理", permissionName = "路线价格管理")
+	public Boolean update(@NotNull @HttpParam(name = "pincheRoutePrice", type = HttpParamType.COMMON, description = "路线价格") PincheRoutePrice pincheRoutePrice,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:pincheRoutePrice:get",permissionParentName = "宠物管理", permissionName = "路线价格管理")
+	public PincheRoutePrice get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:pincheRoutePrice:export",permissionParentName = "宠物管理", permissionName = "路线价格管理")
+	public String export(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "route", type = HttpParamType.COMMON, description = "路线") String route,
+							@HttpParam(name = "unitPrice", type = HttpParamType.COMMON, description = "单价") Double unitPrice,
+							@HttpParam(name = "remark1", type = HttpParamType.COMMON, description = "备注1") String remark1,
+							@HttpParam(name = "remark2", type = HttpParamType.COMMON, description = "备注2") String remark2,
+							@HttpParam(name = "remark3", type = HttpParamType.COMMON, description = "备注3") String remark3,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "0:否(默认) 1:是") Long deleteFlag,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "userId", type = HttpParamType.COMMON, description = "") Long userId,
+							@HttpParam(name = "adminId", type = HttpParamType.COMMON, description = "") Long adminId,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 218 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/impl/PincheCarSharingServiceImpl.java

@@ -0,0 +1,218 @@
+package com.iotechn.unimall.admin.api.pinche.impl;
+
+import java.util.List;
+
+import com.iotechn.unimall.admin.api.pinche.IPincheCarSharingService;
+import org.apache.ibatis.session.RowBounds;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.util.ExcelUtil;
+import com.iotechn.unimall.data.mapper.PincheCarSharingMapper;
+import com.iotechn.unimall.data.domain.PincheCarSharing;
+import com.iotechn.unimall.data.model.Page;
+
+import java.util.Date;
+
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 发布信息Service业务层处理
+ *
+ * @author jlb
+ * @date 2022-11-30
+ */
+@Service
+public class PincheCarSharingServiceImpl implements IPincheCarSharingService {
+    @Autowired
+    private PincheCarSharingMapper pincheCarSharingMapper;
+
+    @Override
+    public Boolean add(PincheCarSharing pincheCarSharing, Long adminId) throws ServiceException {
+        Date now = new Date();
+        pincheCarSharing.setGmtCreate(now);
+        pincheCarSharing.setGmtUpdate(now);
+        pincheCarSharing.setAdminId(adminId);
+        return pincheCarSharingMapper.insert(pincheCarSharing) > 0;
+    }
+
+    @Override
+    public Page<PincheCarSharing> list(Long companyId, String carpoolingType, String route, String phone, String startPlace, String endPlace, String departureLatitude, String latitudeArrival, Date departureTime, String numberPeople, String explain, Double unitPrice, Double price, String status, String remark1, String remark2, String remark3, Long deleteFlag, Date gmtCreate, Date gmtUpdate, Long userId, Long adminId, Integer page, Integer limit) throws ServiceException {
+        Wrapper<PincheCarSharing> wrapper = new EntityWrapper<PincheCarSharing>();
+        if (!StringUtils.isEmpty(companyId)) {
+            wrapper.eq("company_id", companyId);
+        }
+        if (!StringUtils.isEmpty(carpoolingType)) {
+            wrapper.eq("carpooling_type", carpoolingType);
+        }
+        if (!StringUtils.isEmpty(route)) {
+            wrapper.eq("route", route);
+        }
+        if (!StringUtils.isEmpty(phone)) {
+            wrapper.eq("phone", phone);
+        }
+        if (!StringUtils.isEmpty(startPlace)) {
+            wrapper.eq("start_place", startPlace);
+        }
+        if (!StringUtils.isEmpty(endPlace)) {
+            wrapper.eq("end_place", endPlace);
+        }
+        if (!StringUtils.isEmpty(departureLatitude)) {
+            wrapper.eq("departure_latitude", departureLatitude);
+        }
+        if (!StringUtils.isEmpty(latitudeArrival)) {
+            wrapper.eq("latitude_arrival", latitudeArrival);
+        }
+        if (!StringUtils.isEmpty(departureTime)) {
+            wrapper.eq("departure_time", departureTime);
+        }
+        if (!StringUtils.isEmpty(numberPeople)) {
+            wrapper.eq("number_people", numberPeople);
+        }
+        if (!StringUtils.isEmpty(explain)) {
+            wrapper.eq("explain", explain);
+        }
+        if (!StringUtils.isEmpty(unitPrice)) {
+            wrapper.eq("unit_price", unitPrice);
+        }
+        if (!StringUtils.isEmpty(price)) {
+            wrapper.eq("price", price);
+        }
+        if (!StringUtils.isEmpty(status)) {
+            wrapper.eq("status", status);
+        }
+        if (!StringUtils.isEmpty(remark1)) {
+            wrapper.eq("remark1", remark1);
+        }
+        if (!StringUtils.isEmpty(remark2)) {
+            wrapper.eq("remark2", remark2);
+        }
+        if (!StringUtils.isEmpty(remark3)) {
+            wrapper.eq("remark3", remark3);
+        }
+        if (!StringUtils.isEmpty(deleteFlag)) {
+            wrapper.eq("delete_flag", deleteFlag);
+        }
+        if (!StringUtils.isEmpty(gmtCreate)) {
+            wrapper.eq("gmt_create", gmtCreate);
+        }
+        if (!StringUtils.isEmpty(gmtUpdate)) {
+            wrapper.eq("gmt_update", gmtUpdate);
+        }
+        if (!StringUtils.isEmpty(userId)) {
+            wrapper.eq("user_id", userId);
+        }
+        if (!StringUtils.isEmpty(adminId)) {
+            wrapper.eq("admin_id", adminId);
+        }
+        wrapper.eq("delete_flag", 0);
+        List<PincheCarSharing> list = pincheCarSharingMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+        Integer count = pincheCarSharingMapper.selectCount(wrapper);
+        return new Page<PincheCarSharing>(list, page, limit, count);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(String id) {
+        String[] ids = String.valueOf(id).split(",");
+        for (String tt : ids) {
+            PincheCarSharing tmp = pincheCarSharingMapper.selectById(Long.parseLong(tt));
+            if (tmp != null) {
+                tmp.setDeleteFlag(1l);
+                pincheCarSharingMapper.updateById(tmp);
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public Boolean update(PincheCarSharing pincheCarSharing, Long adminId) throws ServiceException {
+        Date now = new Date();
+        pincheCarSharing.setGmtUpdate(now);
+        pincheCarSharing.setAdminId(adminId);
+        return pincheCarSharingMapper.updateById(pincheCarSharing) > 0;
+    }
+
+    @Override
+    public PincheCarSharing get(Long id) throws ServiceException {
+        return pincheCarSharingMapper.selectById(id);
+    }
+
+    @Override
+    public String export(Long companyId, String carpoolingType, String route, String phone, String startPlace, String endPlace, String departureLatitude, String latitudeArrival, Date departureTime, String numberPeople, String explain, Double unitPrice, Double price, String status, String remark1, String remark2, String remark3, Long deleteFlag, Date gmtCreate, Date gmtUpdate, Long userId, Long adminId, Integer page, Integer limit) throws ServiceException {
+        Wrapper<PincheCarSharing> wrapper = new EntityWrapper<PincheCarSharing>();
+        if (!StringUtils.isEmpty(companyId)) {
+            wrapper.eq("company_id", companyId);
+        }
+        if (!StringUtils.isEmpty(carpoolingType)) {
+            wrapper.eq("carpooling_type", carpoolingType);
+        }
+        if (!StringUtils.isEmpty(route)) {
+            wrapper.eq("route", route);
+        }
+        if (!StringUtils.isEmpty(phone)) {
+            wrapper.eq("phone", phone);
+        }
+        if (!StringUtils.isEmpty(startPlace)) {
+            wrapper.eq("start_place", startPlace);
+        }
+        if (!StringUtils.isEmpty(endPlace)) {
+            wrapper.eq("end_place", endPlace);
+        }
+        if (!StringUtils.isEmpty(departureLatitude)) {
+            wrapper.eq("departure_latitude", departureLatitude);
+        }
+        if (!StringUtils.isEmpty(latitudeArrival)) {
+            wrapper.eq("latitude_arrival", latitudeArrival);
+        }
+        if (!StringUtils.isEmpty(departureTime)) {
+            wrapper.eq("departure_time", departureTime);
+        }
+        if (!StringUtils.isEmpty(numberPeople)) {
+            wrapper.eq("number_people", numberPeople);
+        }
+        if (!StringUtils.isEmpty(explain)) {
+            wrapper.eq("explain", explain);
+        }
+        if (!StringUtils.isEmpty(unitPrice)) {
+            wrapper.eq("unit_price", unitPrice);
+        }
+        if (!StringUtils.isEmpty(price)) {
+            wrapper.eq("price", price);
+        }
+        if (!StringUtils.isEmpty(status)) {
+            wrapper.eq("status", status);
+        }
+        if (!StringUtils.isEmpty(remark1)) {
+            wrapper.eq("remark1", remark1);
+        }
+        if (!StringUtils.isEmpty(remark2)) {
+            wrapper.eq("remark2", remark2);
+        }
+        if (!StringUtils.isEmpty(remark3)) {
+            wrapper.eq("remark3", remark3);
+        }
+        if (!StringUtils.isEmpty(deleteFlag)) {
+            wrapper.eq("delete_flag", deleteFlag);
+        }
+        if (!StringUtils.isEmpty(gmtCreate)) {
+            wrapper.eq("gmt_create", gmtCreate);
+        }
+        if (!StringUtils.isEmpty(gmtUpdate)) {
+            wrapper.eq("gmt_update", gmtUpdate);
+        }
+        if (!StringUtils.isEmpty(userId)) {
+            wrapper.eq("user_id", userId);
+        }
+        if (!StringUtils.isEmpty(adminId)) {
+            wrapper.eq("admin_id", adminId);
+        }
+        List<PincheCarSharing> list = pincheCarSharingMapper.selectList(wrapper);
+        ExcelUtil<PincheCarSharing> util = new ExcelUtil<PincheCarSharing>(PincheCarSharing.class);
+        return util.exportExcel(list, "操作日志");
+    }
+}

+ 224 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/impl/PincheMakeAppointmentServiceImpl.java

@@ -0,0 +1,224 @@
+package com.iotechn.unimall.admin.api.pinche.impl;
+
+import java.util.List;
+
+import com.iotechn.unimall.admin.api.pinche.IPincheMakeAppointmentService;
+import com.iotechn.unimall.data.domain.PincheMakeAppointment;
+import com.iotechn.unimall.data.mapper.PincheMakeAppointmentMapper;
+import org.apache.ibatis.session.RowBounds;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.util.ExcelUtil;
+import com.iotechn.unimall.data.model.Page;
+
+import java.util.Date;
+
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 预约信息Service业务层处理
+ *
+ * @author jlb
+ * @date 2022-11-30
+ */
+@Service
+public class PincheMakeAppointmentServiceImpl implements IPincheMakeAppointmentService {
+    @Autowired
+    private PincheMakeAppointmentMapper pincheMakeAppointmentMapper;
+
+    @Override
+    public Boolean add(PincheMakeAppointment pincheMakeAppointment, Long adminId) throws ServiceException {
+        Date now = new Date();
+        pincheMakeAppointment.setGmtCreate(now);
+        pincheMakeAppointment.setGmtUpdate(now);
+        pincheMakeAppointment.setAdminId(adminId);
+        return pincheMakeAppointmentMapper.insert(pincheMakeAppointment) > 0;
+    }
+
+    @Override
+    public Page<PincheMakeAppointment> list(Long companyId, String appointedBy, String carpoolingType, String route, String phone, String startPlace, String endPlace, String departureLatitude, String latitudeArrival, Date departureTime, String numberPeople, String explain, Double unitPrice, Double price, String status, String remark1, String remark2, String remark3, Long deleteFlag, Date gmtCreate, Date gmtUpdate, Long userId, Long adminId, Integer page, Integer limit) throws ServiceException {
+        Wrapper<PincheMakeAppointment> wrapper = new EntityWrapper<PincheMakeAppointment>();
+        if (!StringUtils.isEmpty(companyId)) {
+            wrapper.eq("company_id", companyId);
+        }
+        if (!StringUtils.isEmpty(appointedBy)) {
+            wrapper.eq("appointed_by", appointedBy);
+        }
+        if (!StringUtils.isEmpty(carpoolingType)) {
+            wrapper.eq("carpooling_type", carpoolingType);
+        }
+        if (!StringUtils.isEmpty(route)) {
+            wrapper.eq("route", route);
+        }
+        if (!StringUtils.isEmpty(phone)) {
+            wrapper.eq("phone", phone);
+        }
+        if (!StringUtils.isEmpty(startPlace)) {
+            wrapper.eq("start_place", startPlace);
+        }
+        if (!StringUtils.isEmpty(endPlace)) {
+            wrapper.eq("end_place", endPlace);
+        }
+        if (!StringUtils.isEmpty(departureLatitude)) {
+            wrapper.eq("departure_latitude", departureLatitude);
+        }
+        if (!StringUtils.isEmpty(latitudeArrival)) {
+            wrapper.eq("latitude_arrival", latitudeArrival);
+        }
+        if (!StringUtils.isEmpty(departureTime)) {
+            wrapper.eq("departure_time", departureTime);
+        }
+        if (!StringUtils.isEmpty(numberPeople)) {
+            wrapper.eq("number_people", numberPeople);
+        }
+        if (!StringUtils.isEmpty(explain)) {
+            wrapper.eq("explain", explain);
+        }
+        if (!StringUtils.isEmpty(unitPrice)) {
+            wrapper.eq("unit_price", unitPrice);
+        }
+        if (!StringUtils.isEmpty(price)) {
+            wrapper.eq("price", price);
+        }
+        if (!StringUtils.isEmpty(status)) {
+            wrapper.eq("status", status);
+        }
+        if (!StringUtils.isEmpty(remark1)) {
+            wrapper.eq("remark1", remark1);
+        }
+        if (!StringUtils.isEmpty(remark2)) {
+            wrapper.eq("remark2", remark2);
+        }
+        if (!StringUtils.isEmpty(remark3)) {
+            wrapper.eq("remark3", remark3);
+        }
+        if (!StringUtils.isEmpty(deleteFlag)) {
+            wrapper.eq("delete_flag", deleteFlag);
+        }
+        if (!StringUtils.isEmpty(gmtCreate)) {
+            wrapper.eq("gmt_create", gmtCreate);
+        }
+        if (!StringUtils.isEmpty(gmtUpdate)) {
+            wrapper.eq("gmt_update", gmtUpdate);
+        }
+        if (!StringUtils.isEmpty(userId)) {
+            wrapper.eq("user_id", userId);
+        }
+        if (!StringUtils.isEmpty(adminId)) {
+            wrapper.eq("admin_id", adminId);
+        }
+        wrapper.eq("delete_flag", 0);
+        List<PincheMakeAppointment> list = pincheMakeAppointmentMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+        Integer count = pincheMakeAppointmentMapper.selectCount(wrapper);
+        return new Page<PincheMakeAppointment>(list, page, limit, count);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(String id) {
+        String[] ids = String.valueOf(id).split(",");
+        for (String tt : ids) {
+            PincheMakeAppointment tmp = pincheMakeAppointmentMapper.selectById(Long.parseLong(tt));
+            if (tmp != null) {
+                tmp.setDeleteFlag(1l);
+                pincheMakeAppointmentMapper.updateById(tmp);
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public Boolean update(PincheMakeAppointment pincheMakeAppointment, Long adminId) throws ServiceException {
+        Date now = new Date();
+        pincheMakeAppointment.setGmtUpdate(now);
+        pincheMakeAppointment.setAdminId(adminId);
+        return pincheMakeAppointmentMapper.updateById(pincheMakeAppointment) > 0;
+    }
+
+    @Override
+    public PincheMakeAppointment get(Long id) throws ServiceException {
+        return pincheMakeAppointmentMapper.selectById(id);
+    }
+
+    @Override
+    public String export(Long companyId, String appointedBy, String carpoolingType, String route, String phone, String startPlace, String endPlace, String departureLatitude, String latitudeArrival, Date departureTime, String numberPeople, String explain, Double unitPrice, Double price, String status, String remark1, String remark2, String remark3, Long deleteFlag, Date gmtCreate, Date gmtUpdate, Long userId, Long adminId, Integer page, Integer limit) throws ServiceException {
+        Wrapper<PincheMakeAppointment> wrapper = new EntityWrapper<PincheMakeAppointment>();
+        if (!StringUtils.isEmpty(companyId)) {
+            wrapper.eq("company_id", companyId);
+        }
+        if (!StringUtils.isEmpty(appointedBy)) {
+            wrapper.eq("appointed_by", appointedBy);
+        }
+        if (!StringUtils.isEmpty(carpoolingType)) {
+            wrapper.eq("carpooling_type", carpoolingType);
+        }
+        if (!StringUtils.isEmpty(route)) {
+            wrapper.eq("route", route);
+        }
+        if (!StringUtils.isEmpty(phone)) {
+            wrapper.eq("phone", phone);
+        }
+        if (!StringUtils.isEmpty(startPlace)) {
+            wrapper.eq("start_place", startPlace);
+        }
+        if (!StringUtils.isEmpty(endPlace)) {
+            wrapper.eq("end_place", endPlace);
+        }
+        if (!StringUtils.isEmpty(departureLatitude)) {
+            wrapper.eq("departure_latitude", departureLatitude);
+        }
+        if (!StringUtils.isEmpty(latitudeArrival)) {
+            wrapper.eq("latitude_arrival", latitudeArrival);
+        }
+        if (!StringUtils.isEmpty(departureTime)) {
+            wrapper.eq("departure_time", departureTime);
+        }
+        if (!StringUtils.isEmpty(numberPeople)) {
+            wrapper.eq("number_people", numberPeople);
+        }
+        if (!StringUtils.isEmpty(explain)) {
+            wrapper.eq("explain", explain);
+        }
+        if (!StringUtils.isEmpty(unitPrice)) {
+            wrapper.eq("unit_price", unitPrice);
+        }
+        if (!StringUtils.isEmpty(price)) {
+            wrapper.eq("price", price);
+        }
+        if (!StringUtils.isEmpty(status)) {
+            wrapper.eq("status", status);
+        }
+        if (!StringUtils.isEmpty(remark1)) {
+            wrapper.eq("remark1", remark1);
+        }
+        if (!StringUtils.isEmpty(remark2)) {
+            wrapper.eq("remark2", remark2);
+        }
+        if (!StringUtils.isEmpty(remark3)) {
+            wrapper.eq("remark3", remark3);
+        }
+        if (!StringUtils.isEmpty(deleteFlag)) {
+            wrapper.eq("delete_flag", deleteFlag);
+        }
+        if (!StringUtils.isEmpty(gmtCreate)) {
+            wrapper.eq("gmt_create", gmtCreate);
+        }
+        if (!StringUtils.isEmpty(gmtUpdate)) {
+            wrapper.eq("gmt_update", gmtUpdate);
+        }
+        if (!StringUtils.isEmpty(userId)) {
+            wrapper.eq("user_id", userId);
+        }
+        if (!StringUtils.isEmpty(adminId)) {
+            wrapper.eq("admin_id", adminId);
+        }
+        List<PincheMakeAppointment> list = pincheMakeAppointmentMapper.selectList(wrapper);
+        ExcelUtil<PincheMakeAppointment> util = new ExcelUtil<PincheMakeAppointment>(PincheMakeAppointment.class);
+        return util.exportExcel(list, "操作日志");
+    }
+}

+ 152 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/pinche/impl/PincheRoutePriceServiceImpl.java

@@ -0,0 +1,152 @@
+package com.iotechn.unimall.admin.api.pinche.impl;
+
+import java.util.List;
+
+import com.iotechn.unimall.admin.api.pinche.IPincheRoutePriceService;
+import com.iotechn.unimall.data.domain.PincheRoutePrice;
+import com.iotechn.unimall.data.mapper.PincheRoutePriceMapper;
+import org.apache.ibatis.session.RowBounds;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.iotechn.unimall.core.exception.ServiceException;
+import com.iotechn.unimall.data.util.ExcelUtil;
+import com.iotechn.unimall.data.model.Page;
+
+import java.util.Date;
+
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 路线价格Service业务层处理
+ *
+ * @author jlb
+ * @date 2022-11-30
+ */
+@Service
+public class PincheRoutePriceServiceImpl implements IPincheRoutePriceService {
+    @Autowired
+    private PincheRoutePriceMapper pincheRoutePriceMapper;
+
+    @Override
+    public Boolean add(PincheRoutePrice pincheRoutePrice, Long adminId) throws ServiceException {
+        Date now = new Date();
+        pincheRoutePrice.setGmtCreate(now);
+        pincheRoutePrice.setGmtUpdate(now);
+        pincheRoutePrice.setAdminId(adminId);
+        return pincheRoutePriceMapper.insert(pincheRoutePrice) > 0;
+    }
+
+    @Override
+    public Page<PincheRoutePrice> list(Long companyId, String route, Double unitPrice, String remark1, String remark2, String remark3, Long deleteFlag, Date gmtCreate, Date gmtUpdate, Long userId, Long adminId, Integer page, Integer limit) throws ServiceException {
+        Wrapper<PincheRoutePrice> wrapper = new EntityWrapper<PincheRoutePrice>();
+        if (!StringUtils.isEmpty(companyId)) {
+            wrapper.eq("company_id", companyId);
+        }
+        if (!StringUtils.isEmpty(route)) {
+            wrapper.eq("route", route);
+        }
+        if (!StringUtils.isEmpty(unitPrice)) {
+            wrapper.eq("unit_price", unitPrice);
+        }
+        if (!StringUtils.isEmpty(remark1)) {
+            wrapper.eq("remark1", remark1);
+        }
+        if (!StringUtils.isEmpty(remark2)) {
+            wrapper.eq("remark2", remark2);
+        }
+        if (!StringUtils.isEmpty(remark3)) {
+            wrapper.eq("remark3", remark3);
+        }
+        if (!StringUtils.isEmpty(deleteFlag)) {
+            wrapper.eq("delete_flag", deleteFlag);
+        }
+        if (!StringUtils.isEmpty(gmtCreate)) {
+            wrapper.eq("gmt_create", gmtCreate);
+        }
+        if (!StringUtils.isEmpty(gmtUpdate)) {
+            wrapper.eq("gmt_update", gmtUpdate);
+        }
+        if (!StringUtils.isEmpty(userId)) {
+            wrapper.eq("user_id", userId);
+        }
+        if (!StringUtils.isEmpty(adminId)) {
+            wrapper.eq("admin_id", adminId);
+        }
+        wrapper.eq("delete_flag", 0);
+        List<PincheRoutePrice> list = pincheRoutePriceMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+        Integer count = pincheRoutePriceMapper.selectCount(wrapper);
+        return new Page<PincheRoutePrice>(list, page, limit, count);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(String id) {
+        String[] ids = String.valueOf(id).split(",");
+        for (String tt : ids) {
+            PincheRoutePrice tmp = pincheRoutePriceMapper.selectById(Long.parseLong(tt));
+            if (tmp != null) {
+                tmp.setDeleteFlag(1l);
+                pincheRoutePriceMapper.updateById(tmp);
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public Boolean update(PincheRoutePrice pincheRoutePrice, Long adminId) throws ServiceException {
+        Date now = new Date();
+        pincheRoutePrice.setGmtUpdate(now);
+        pincheRoutePrice.setAdminId(adminId);
+        return pincheRoutePriceMapper.updateById(pincheRoutePrice) > 0;
+    }
+
+    @Override
+    public PincheRoutePrice get(Long id) throws ServiceException {
+        return pincheRoutePriceMapper.selectById(id);
+    }
+
+    @Override
+    public String export(Long companyId, String route, Double unitPrice, String remark1, String remark2, String remark3, Long deleteFlag, Date gmtCreate, Date gmtUpdate, Long userId, Long adminId, Integer page, Integer limit) throws ServiceException {
+        Wrapper<PincheRoutePrice> wrapper = new EntityWrapper<PincheRoutePrice>();
+        if (!StringUtils.isEmpty(companyId)) {
+            wrapper.eq("company_id", companyId);
+        }
+        if (!StringUtils.isEmpty(route)) {
+            wrapper.eq("route", route);
+        }
+        if (!StringUtils.isEmpty(unitPrice)) {
+            wrapper.eq("unit_price", unitPrice);
+        }
+        if (!StringUtils.isEmpty(remark1)) {
+            wrapper.eq("remark1", remark1);
+        }
+        if (!StringUtils.isEmpty(remark2)) {
+            wrapper.eq("remark2", remark2);
+        }
+        if (!StringUtils.isEmpty(remark3)) {
+            wrapper.eq("remark3", remark3);
+        }
+        if (!StringUtils.isEmpty(deleteFlag)) {
+            wrapper.eq("delete_flag", deleteFlag);
+        }
+        if (!StringUtils.isEmpty(gmtCreate)) {
+            wrapper.eq("gmt_create", gmtCreate);
+        }
+        if (!StringUtils.isEmpty(gmtUpdate)) {
+            wrapper.eq("gmt_update", gmtUpdate);
+        }
+        if (!StringUtils.isEmpty(userId)) {
+            wrapper.eq("user_id", userId);
+        }
+        if (!StringUtils.isEmpty(adminId)) {
+            wrapper.eq("admin_id", adminId);
+        }
+        List<PincheRoutePrice> list = pincheRoutePriceMapper.selectList(wrapper);
+        ExcelUtil<PincheRoutePrice> util = new ExcelUtil<PincheRoutePrice>(PincheRoutePrice.class);
+        return util.exportExcel(list, "操作日志");
+    }
+}

+ 2 - 2
unimall-admin/config/dep.env.js

@@ -1,6 +1,6 @@
 module.exports = {
 	NODE_ENV: '"production"',
   ENV_CONFIG: '"dep"',
-  HOST: '"http://localhost:8081"',
-  BASE_API: '"http://localhost:8081/m.api"'
+  HOST: '"http://localhost:8099"',
+  BASE_API: '"http://localhost:8099/m.api"'
 }

+ 2 - 2
unimall-admin/config/dev.env.js

@@ -1,6 +1,6 @@
 module.exports = {
     NODE_ENV: '"development"',
     ENV_CONFIG: '"dev"',
-    HOST: '"http://192.168.110.82:8181"',
-    BASE_API: '"http://192.168.110.82:8181/m.api"'
+    HOST: '"http://192.168.110.82:8099"',
+    BASE_API: '"http://192.168.110.82:8099/m.api"'
 }

+ 0 - 73
unimall-admin/src/api/kouzhao/kouzhaoInfo.js

@@ -1,73 +0,0 @@
-import request from '@/utils/request'
-
-// 查询口罩信息列表
-export function listKouzhaoInfo(query) {
-  return request({
-    method: 'get',
-    params: {
-      _gp: 'admin.kouzhao.kouzhaoInfo',
-      _mt: 'list',
-      ...query
-    }
-  })
-}
-
-// 查询口罩信息详细
-export function getKouzhaoInfo(id) {
-  return request({
-    method: 'get',
-    params: {
-      _gp: 'admin.kouzhao.kouzhaoInfo',
-      _mt: 'get',
-      id: id
-    }
-  })
-}
-
-// 新增口罩信息
-export function addKouzhaoInfo(data) {
-  return request({
-    method: 'post',
-    params: {
-      _gp: 'admin.kouzhao.kouzhaoInfo',
-      _mt: 'add',
-      kouzhaoInfo: data
-    }
-  })
-}
-
-// 修改口罩信息
-export function updateKouzhaoInfo(data) {
-  return request({
-    method: 'post',
-    params: {
-      _gp: 'admin.kouzhao.kouzhaoInfo',
-      _mt: 'update',
-      kouzhaoInfo: data
-    }
-  })
-}
-
-// 删除口罩信息
-export function delKouzhaoInfo(id) {
-  return request({
-    method: 'post',
-    params: {
-      _gp: 'admin.kouzhao.kouzhaoInfo',
-      _mt: 'delete',
-      id: id
-    }
-  })
-}
-
-// 导出口罩信息
-export function exportKouzhaoInfo(query) {
-  return request({
-    method: 'get',
-    params: {
-      _gp: 'admin.kouzhao.kouzhaoInfo',
-      _mt: 'export',
-      ...query
-    }
-  })
-}

+ 73 - 0
unimall-admin/src/api/pinche/appointment.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询预约信息列表
+export function listAppointment(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.pincheMakeAppointment',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询预约信息详细
+export function getAppointment(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.pincheMakeAppointment',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增预约信息
+export function addAppointment(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.pincheMakeAppointment',
+      _mt: 'add',
+      pincheMakeAppointment: data
+    }
+  })
+}
+
+// 修改预约信息
+export function updateAppointment(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.pincheMakeAppointment',
+      _mt: 'update',
+      pincheMakeAppointment: data
+    }
+  })
+}
+
+// 删除预约信息
+export function delAppointment(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.pincheMakeAppointment',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出预约信息
+export function exportAppointment(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.pincheMakeAppointment',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/pinche/price.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询路线价格列表
+export function listPrice(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.pincheRoutePrice',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询路线价格详细
+export function getPrice(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.pincheRoutePrice',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增路线价格
+export function addPrice(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.pincheRoutePrice',
+      _mt: 'add',
+      pincheRoutePrice: data
+    }
+  })
+}
+
+// 修改路线价格
+export function updatePrice(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.pincheRoutePrice',
+      _mt: 'update',
+      pincheRoutePrice: data
+    }
+  })
+}
+
+// 删除路线价格
+export function delPrice(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.pincheRoutePrice',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出路线价格
+export function exportPrice(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.pincheRoutePrice',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/pinche/sharing.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询发布信息列表
+export function listSharing(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.pincheCarSharing',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询发布信息详细
+export function getSharing(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.pincheCarSharing',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增发布信息
+export function addSharing(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.pincheCarSharing',
+      _mt: 'add',
+      pincheCarSharing: data
+    }
+  })
+}
+
+// 修改发布信息
+export function updateSharing(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.pincheCarSharing',
+      _mt: 'update',
+      pincheCarSharing: data
+    }
+  })
+}
+
+// 删除发布信息
+export function delSharing(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.pincheCarSharing',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出发布信息
+export function exportSharing(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.pincheCarSharing',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 573 - 0
unimall-admin/src/views/appointment/index.vue

@@ -0,0 +1,573 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="" prop="companyId">
+        <el-input
+          v-model="queryParams.companyId"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="预约人" prop="appointedBy">
+        <el-input
+          v-model="queryParams.appointedBy"
+          placeholder="请输入预约人"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+        <el-form-item label="拼车类型" prop="carpoolingType">
+        <el-select v-model="queryParams.carpoolingType" placeholder="请选择拼车类型" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="路线" prop="route">
+        <el-input
+          v-model="queryParams.route"
+          placeholder="请输入路线"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="手机号" prop="phone">
+        <el-input
+          v-model="queryParams.phone"
+          placeholder="请输入手机号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="出发地点" prop="startPlace">
+        <el-input
+          v-model="queryParams.startPlace"
+          placeholder="请输入出发地点"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="到达地点" prop="endPlace">
+        <el-input
+          v-model="queryParams.endPlace"
+          placeholder="请输入到达地点"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="出发经纬度" prop="departureLatitude">
+        <el-input
+          v-model="queryParams.departureLatitude"
+          placeholder="请输入出发经纬度"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="到达经纬度" prop="latitudeArrival">
+        <el-input
+          v-model="queryParams.latitudeArrival"
+          placeholder="请输入到达经纬度"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="出发时间" prop="departureTime">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.departureTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择出发时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="人数" prop="numberPeople">
+        <el-input
+          v-model="queryParams.numberPeople"
+          placeholder="请输入人数"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="单价" prop="unitPrice">
+        <el-input
+          v-model="queryParams.unitPrice"
+          placeholder="请输入单价"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="总价" prop="price">
+        <el-input
+          v-model="queryParams.price"
+          placeholder="请输入总价"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+        <el-form-item label="状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="0:否" prop="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入0:否"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="" prop="gmtCreate">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.gmtCreate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="" prop="gmtUpdate">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.gmtUpdate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="" prop="userId">
+        <el-input
+          v-model="queryParams.userId"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="" prop="adminId">
+        <el-input
+          v-model="queryParams.adminId"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall:appointment:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['unimall:appointment:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['unimall:appointment:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['unimall:appointment:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="appointmentList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="" align="center" prop="companyId" />
+      <el-table-column label="预约人" align="center" prop="appointedBy" />
+      <el-table-column label="拼车类型" align="center" prop="carpoolingType" />
+      <el-table-column label="路线" align="center" prop="route" />
+      <el-table-column label="手机号" align="center" prop="phone" />
+      <el-table-column label="出发地点" align="center" prop="startPlace" />
+      <el-table-column label="到达地点" align="center" prop="endPlace" />
+      <el-table-column label="出发经纬度" align="center" prop="departureLatitude" />
+      <el-table-column label="到达经纬度" align="center" prop="latitudeArrival" />
+      <el-table-column label="出发时间" align="center" prop="departureTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.departureTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="人数" align="center" prop="numberPeople" />
+      <el-table-column label="说明" align="center" prop="explain" />
+      <el-table-column label="单价" align="center" prop="unitPrice" />
+      <el-table-column label="总价" align="center" prop="price" />
+      <el-table-column label="状态" align="center" prop="status" />
+      <el-table-column label="备注1" align="center" prop="remark1" />
+      <el-table-column label="备注2" align="center" prop="remark2" />
+      <el-table-column label="备注3" align="center" prop="remark3" />
+      <el-table-column label="0:否" align="center" prop="deleteFlag" />
+      <el-table-column label="" align="center" prop="gmtCreate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.gmtCreate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="" align="center" prop="gmtUpdate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.gmtUpdate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="" align="center" prop="userId" />
+      <el-table-column label="" align="center" prop="adminId" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:appointment:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall:appointment:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改预约信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="" prop="companyId">
+          <el-input v-model="form.companyId" placeholder="请输入" />
+        </el-form-item>
+        <el-form-item label="预约人" prop="appointedBy">
+          <el-input v-model="form.appointedBy" placeholder="请输入预约人" />
+        </el-form-item>
+        <el-form-item label="拼车类型">
+          <el-select v-model="form.carpoolingType" placeholder="请选择拼车类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="路线" prop="route">
+          <el-input v-model="form.route" placeholder="请输入路线" />
+        </el-form-item>
+        <el-form-item label="手机号" prop="phone">
+          <el-input v-model="form.phone" placeholder="请输入手机号" />
+        </el-form-item>
+        <el-form-item label="出发地点" prop="startPlace">
+          <el-input v-model="form.startPlace" placeholder="请输入出发地点" />
+        </el-form-item>
+        <el-form-item label="到达地点" prop="endPlace">
+          <el-input v-model="form.endPlace" placeholder="请输入到达地点" />
+        </el-form-item>
+        <el-form-item label="出发经纬度" prop="departureLatitude">
+          <el-input v-model="form.departureLatitude" placeholder="请输入出发经纬度" />
+        </el-form-item>
+        <el-form-item label="到达经纬度" prop="latitudeArrival">
+          <el-input v-model="form.latitudeArrival" placeholder="请输入到达经纬度" />
+        </el-form-item>
+        <el-form-item label="出发时间" prop="departureTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.departureTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择出发时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="人数" prop="numberPeople">
+          <el-input v-model="form.numberPeople" placeholder="请输入人数" />
+        </el-form-item>
+        <el-form-item label="说明" prop="explain">
+          <el-input v-model="form.explain" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="单价" prop="unitPrice">
+          <el-input v-model="form.unitPrice" placeholder="请输入单价" />
+        </el-form-item>
+        <el-form-item label="总价" prop="price">
+          <el-input v-model="form.price" placeholder="请输入总价" />
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-radio-group v-model="form.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="备注1" prop="remark1">
+          <el-input v-model="form.remark1" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="备注2" prop="remark2">
+          <el-input v-model="form.remark2" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="备注3" prop="remark3">
+          <el-input v-model="form.remark3" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="0:否" prop="deleteFlag">
+          <el-input v-model="form.deleteFlag" placeholder="请输入0:否" />
+        </el-form-item>
+        <el-form-item label="" prop="gmtCreate">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.gmtCreate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="" prop="gmtUpdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.gmtUpdate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="" prop="userId">
+          <el-input v-model="form.userId" placeholder="请输入" />
+        </el-form-item>
+        <el-form-item label="" prop="adminId">
+          <el-input v-model="form.adminId" placeholder="请输入" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listAppointment, getAppointment, delAppointment, addAppointment, updateAppointment, exportAppointment } from "@/api/unimall/appointment";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 预约信息表格数据
+      appointmentList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        companyId: undefined,
+        appointedBy: undefined,
+        carpoolingType: undefined,
+        route: undefined,
+        phone: undefined,
+        startPlace: undefined,
+        endPlace: undefined,
+        departureLatitude: undefined,
+        latitudeArrival: undefined,
+        departureTime: undefined,
+        numberPeople: undefined,
+        explain: undefined,
+        unitPrice: undefined,
+        price: undefined,
+        status: undefined,
+        remark1: undefined,
+        remark2: undefined,
+        remark3: undefined,
+        deleteFlag: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        userId: undefined,
+        adminId: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        deleteFlag: [
+          { required: true, message: "0:否(默认) 1:是不能为空", trigger: "blur" }
+        ],      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询预约信息列表 */
+    getList() {
+      this.loading = true;
+      listAppointment(this.queryParams).then(response => {
+        this.appointmentList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        companyId: undefined,
+        appointedBy: undefined,
+        carpoolingType: undefined,
+        route: undefined,
+        phone: undefined,
+        startPlace: undefined,
+        endPlace: undefined,
+        departureLatitude: undefined,
+        latitudeArrival: undefined,
+        departureTime: undefined,
+        numberPeople: undefined,
+        explain: undefined,
+        unitPrice: undefined,
+        price: undefined,
+        status: "0",
+        remark1: undefined,
+        remark2: undefined,
+        remark3: undefined,
+        deleteFlag: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        userId: undefined,
+        adminId: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加预约信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids.join(',')
+      getAppointment(id).then(response => {
+        this.form = response.data.data
+        this.open = true;
+        this.title = "修改预约信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != undefined) {
+            updateAppointment(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addAppointment(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids.join(',')
+      this.$confirm('是否确认删除预约信息编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delAppointment(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有预约信息数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportAppointment(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 0 - 299
unimall-admin/src/views/kouzhao/kouzhaoInfo/index.vue

@@ -1,299 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form ref="queryForm" :model="queryParams" :inline="true" label-width="68px">
-
-      <el-form-item label="编号" prop="numberOrder">
-        <el-input
-          v-model="queryParams.numberOrder"
-          placeholder="请输入编号"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <!-- <el-button
-          v-permission="['kouzhao:kouzhaoInfo:export']"
-          type="warning"
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-        >导出</el-button> -->
-      </el-col>
-    </el-row>
-
-    <el-table v-loading="loading" :data="kouzhaoInfoList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="" align="center" prop="id" />
-      <el-table-column label="" align="center" prop="userId" />
-      <el-table-column label="编号" align="center" prop="numberOrder" />
-      <el-table-column label="昵称" align="center" prop="name" />
-      <el-table-column label="电话" align="center" prop="phone" />
-      <el-table-column label="设计图地址" align="center" prop="shejiUrl" />
-      <el-table-column label="例图地址" align="center" prop="lituUrl" />
-      <el-table-column label="" align="center" prop="gmtUpdate" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.gmtUpdate) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="" align="center" prop="gmtCreate" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.gmtCreate) }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            v-permission="['kouzhao:kouzhaoInfo:edit']"
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-          >修改</el-button>
-          <el-button
-            v-permission="['kouzhao:kouzhaoInfo:remove']"
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改口罩信息对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px">
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="" prop="userId">
-          <el-input v-model="form.userId" placeholder="请输入" />
-        </el-form-item>
-        <el-form-item label="编号" prop="numberOrder">
-          <el-input v-model="form.numberOrder" placeholder="请输入编号" />
-        </el-form-item>
-        <el-form-item label="昵称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入昵称" />
-        </el-form-item>
-        <el-form-item label="电话" prop="phone">
-          <el-input v-model="form.phone" placeholder="请输入电话" />
-        </el-form-item>
-        <el-form-item label="设计图地址" prop="shejiUrl">
-          <el-input v-model="form.shejiUrl" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="例图地址" prop="lituUrl">
-          <el-input v-model="form.lituUrl" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="" prop="gmtUpdate">
-          <el-date-picker
-            v-model="form.gmtUpdate"
-            clearable
-            size="small"
-            style="width: 200px"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择"/>
-        </el-form-item>
-        <el-form-item label="" prop="gmtCreate">
-          <el-date-picker
-            v-model="form.gmtCreate"
-            clearable
-            size="small"
-            style="width: 200px"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="选择"/>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listKouzhaoInfo, getKouzhaoInfo, delKouzhaoInfo, addKouzhaoInfo, updateKouzhaoInfo, exportKouzhaoInfo } from '@/api/kouzhao/kouzhaoInfo'
-
-export default {
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 总条数
-      total: 0,
-      // 口罩信息表格数据
-      kouzhaoInfoList: [],
-      // 弹出层标题
-      title: '',
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        userId: undefined,
-        numberOrder: undefined,
-        name: undefined,
-        phone: undefined,
-        shejiUrl: undefined,
-        lituUrl: undefined,
-        gmtUpdate: undefined,
-        gmtCreate: undefined
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-        userId: [
-          { required: true, message: '不能为空', trigger: 'blur' }
-        ], gmtUpdate: [
-          { required: true, message: '不能为空', trigger: 'blur' }
-        ], gmtCreate: [
-          { required: true, message: '不能为空', trigger: 'blur' }
-        ] }
-    }
-  },
-  created() {
-    this.getList()
-  },
-  methods: {
-    /** 查询口罩信息列表 */
-    getList() {
-      this.loading = true
-      listKouzhaoInfo(this.queryParams).then(response => {
-        this.kouzhaoInfoList = response.data.data.items
-        this.total = response.data.data.count
-        this.loading = false
-      })
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false
-      this.reset()
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: undefined,
-        userId: undefined,
-        numberOrder: undefined,
-        name: undefined,
-        phone: undefined,
-        shejiUrl: undefined,
-        lituUrl: undefined,
-        gmtUpdate: undefined,
-        gmtCreate: undefined
-      }
-      this.resetForm('form')
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1
-      this.getList()
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm('queryForm')
-      this.handleQuery()
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset()
-      this.open = true
-      this.title = '添加口罩信息'
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset()
-      const id = row.id || this.ids.join(',')
-      getKouzhaoInfo(id).then(response => {
-        this.form = response.data.data
-        this.open = true
-        this.title = '修改口罩信息'
-      })
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs['form'].validate(valid => {
-        if (valid) {
-          if (this.form.id != undefined) {
-            updateKouzhaoInfo(this.form).then(response => {
-              if (response.data) {
-                this.msgSuccess('修改成功')
-                this.open = false
-                this.getList()
-              } else {
-                this.msgError(response.msg)
-              }
-            })
-          } else {
-            addKouzhaoInfo(this.form).then(response => {
-              if (response.data) {
-                this.msgSuccess('新增成功')
-                this.open = false
-                this.getList()
-              } else {
-                this.msgError(response.msg)
-              }
-            })
-          }
-        }
-      })
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids.join(',')
-      this.$confirm('是否确认删除口罩信息编号为"' + ids + '"的数据项?', '警告', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(function() {
-        return delKouzhaoInfo(ids)
-      }).then(() => {
-        this.getList()
-        this.msgSuccess('删除成功')
-      }).catch(function() {})
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      const queryParams = this.queryParams
-      this.$confirm('是否确认导出所有口罩信息数据项?', '警告', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(function() {
-        return exportKouzhaoInfo(queryParams)
-      }).then(response => {
-        this.download(response.data.data)
-      }).catch(function() {})
-    }
-  }
-}
-</script>

+ 398 - 0
unimall-admin/src/views/price/index.vue

@@ -0,0 +1,398 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="" prop="companyId">
+        <el-input
+          v-model="queryParams.companyId"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="路线" prop="route">
+        <el-input
+          v-model="queryParams.route"
+          placeholder="请输入路线"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="单价" prop="unitPrice">
+        <el-input
+          v-model="queryParams.unitPrice"
+          placeholder="请输入单价"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="0:否" prop="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入0:否"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="" prop="gmtCreate">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.gmtCreate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="" prop="gmtUpdate">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.gmtUpdate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="" prop="userId">
+        <el-input
+          v-model="queryParams.userId"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="" prop="adminId">
+        <el-input
+          v-model="queryParams.adminId"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall:price:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['unimall:price:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['unimall:price:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['unimall:price:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="priceList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="" align="center" prop="companyId" />
+      <el-table-column label="路线" align="center" prop="route" />
+      <el-table-column label="单价" align="center" prop="unitPrice" />
+      <el-table-column label="备注1" align="center" prop="remark1" />
+      <el-table-column label="备注2" align="center" prop="remark2" />
+      <el-table-column label="备注3" align="center" prop="remark3" />
+      <el-table-column label="0:否" align="center" prop="deleteFlag" />
+      <el-table-column label="" align="center" prop="gmtCreate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.gmtCreate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="" align="center" prop="gmtUpdate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.gmtUpdate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="" align="center" prop="userId" />
+      <el-table-column label="" align="center" prop="adminId" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:price:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall:price:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改路线价格对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="" prop="companyId">
+          <el-input v-model="form.companyId" placeholder="请输入" />
+        </el-form-item>
+        <el-form-item label="路线" prop="route">
+          <el-input v-model="form.route" placeholder="请输入路线" />
+        </el-form-item>
+        <el-form-item label="单价" prop="unitPrice">
+          <el-input v-model="form.unitPrice" placeholder="请输入单价" />
+        </el-form-item>
+        <el-form-item label="备注1" prop="remark1">
+          <el-input v-model="form.remark1" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="备注2" prop="remark2">
+          <el-input v-model="form.remark2" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="备注3" prop="remark3">
+          <el-input v-model="form.remark3" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="0:否" prop="deleteFlag">
+          <el-input v-model="form.deleteFlag" placeholder="请输入0:否" />
+        </el-form-item>
+        <el-form-item label="" prop="gmtCreate">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.gmtCreate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="" prop="gmtUpdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.gmtUpdate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="" prop="userId">
+          <el-input v-model="form.userId" placeholder="请输入" />
+        </el-form-item>
+        <el-form-item label="" prop="adminId">
+          <el-input v-model="form.adminId" placeholder="请输入" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPrice, getPrice, delPrice, addPrice, updatePrice, exportPrice } from "@/api/unimall/price";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 路线价格表格数据
+      priceList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        companyId: undefined,
+        route: undefined,
+        unitPrice: undefined,
+        remark1: undefined,
+        remark2: undefined,
+        remark3: undefined,
+        deleteFlag: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        userId: undefined,
+        adminId: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        deleteFlag: [
+          { required: true, message: "0:否(默认) 1:是不能为空", trigger: "blur" }
+        ],      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询路线价格列表 */
+    getList() {
+      this.loading = true;
+      listPrice(this.queryParams).then(response => {
+        this.priceList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        companyId: undefined,
+        route: undefined,
+        unitPrice: undefined,
+        remark1: undefined,
+        remark2: undefined,
+        remark3: undefined,
+        deleteFlag: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        userId: undefined,
+        adminId: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加路线价格";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids.join(',')
+      getPrice(id).then(response => {
+        this.form = response.data.data
+        this.open = true;
+        this.title = "修改路线价格";
+      });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != undefined) {
+            updatePrice(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addPrice(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids.join(',')
+      this.$confirm('是否确认删除路线价格编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPrice(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有路线价格数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPrice(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 558 - 0
unimall-admin/src/views/sharing/index.vue

@@ -0,0 +1,558 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="" prop="companyId">
+        <el-input
+          v-model="queryParams.companyId"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+        <el-form-item label="拼车类型" prop="carpoolingType">
+        <el-select v-model="queryParams.carpoolingType" placeholder="请选择拼车类型" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="路线" prop="route">
+        <el-input
+          v-model="queryParams.route"
+          placeholder="请输入路线"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="手机号" prop="phone">
+        <el-input
+          v-model="queryParams.phone"
+          placeholder="请输入手机号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="出发地点" prop="startPlace">
+        <el-input
+          v-model="queryParams.startPlace"
+          placeholder="请输入出发地点"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="到达地点" prop="endPlace">
+        <el-input
+          v-model="queryParams.endPlace"
+          placeholder="请输入到达地点"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="出发经纬度" prop="departureLatitude">
+        <el-input
+          v-model="queryParams.departureLatitude"
+          placeholder="请输入出发经纬度"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="到达经纬度" prop="latitudeArrival">
+        <el-input
+          v-model="queryParams.latitudeArrival"
+          placeholder="请输入到达经纬度"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="出发时间" prop="departureTime">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.departureTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择出发时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="人数" prop="numberPeople">
+        <el-input
+          v-model="queryParams.numberPeople"
+          placeholder="请输入人数"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="单价" prop="unitPrice">
+        <el-input
+          v-model="queryParams.unitPrice"
+          placeholder="请输入单价"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="总价" prop="price">
+        <el-input
+          v-model="queryParams.price"
+          placeholder="请输入总价"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+        <el-form-item label="状态" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="0:否" prop="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入0:否"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="" prop="gmtCreate">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.gmtCreate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="" prop="gmtUpdate">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.gmtUpdate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="" prop="userId">
+        <el-input
+          v-model="queryParams.userId"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="" prop="adminId">
+        <el-input
+          v-model="queryParams.adminId"
+          placeholder="请输入"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall:sharing:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['unimall:sharing:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['unimall:sharing:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['unimall:sharing:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="sharingList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="" align="center" prop="companyId" />
+      <el-table-column label="拼车类型" align="center" prop="carpoolingType" />
+      <el-table-column label="路线" align="center" prop="route" />
+      <el-table-column label="手机号" align="center" prop="phone" />
+      <el-table-column label="出发地点" align="center" prop="startPlace" />
+      <el-table-column label="到达地点" align="center" prop="endPlace" />
+      <el-table-column label="出发经纬度" align="center" prop="departureLatitude" />
+      <el-table-column label="到达经纬度" align="center" prop="latitudeArrival" />
+      <el-table-column label="出发时间" align="center" prop="departureTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.departureTime) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="人数" align="center" prop="numberPeople" />
+      <el-table-column label="说明" align="center" prop="explain" />
+      <el-table-column label="单价" align="center" prop="unitPrice" />
+      <el-table-column label="总价" align="center" prop="price" />
+      <el-table-column label="状态" align="center" prop="status" />
+      <el-table-column label="备注1" align="center" prop="remark1" />
+      <el-table-column label="备注2" align="center" prop="remark2" />
+      <el-table-column label="备注3" align="center" prop="remark3" />
+      <el-table-column label="0:否" align="center" prop="deleteFlag" />
+      <el-table-column label="" align="center" prop="gmtCreate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.gmtCreate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="" align="center" prop="gmtUpdate" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.gmtUpdate) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="" align="center" prop="userId" />
+      <el-table-column label="" align="center" prop="adminId" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:sharing:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall:sharing:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改发布信息对话框 -->
+    <el-dialog :title="title" :visible.sync="open" width="500px">
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="" prop="companyId">
+          <el-input v-model="form.companyId" placeholder="请输入" />
+        </el-form-item>
+        <el-form-item label="拼车类型">
+          <el-select v-model="form.carpoolingType" placeholder="请选择拼车类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="路线" prop="route">
+          <el-input v-model="form.route" placeholder="请输入路线" />
+        </el-form-item>
+        <el-form-item label="手机号" prop="phone">
+          <el-input v-model="form.phone" placeholder="请输入手机号" />
+        </el-form-item>
+        <el-form-item label="出发地点" prop="startPlace">
+          <el-input v-model="form.startPlace" placeholder="请输入出发地点" />
+        </el-form-item>
+        <el-form-item label="到达地点" prop="endPlace">
+          <el-input v-model="form.endPlace" placeholder="请输入到达地点" />
+        </el-form-item>
+        <el-form-item label="出发经纬度" prop="departureLatitude">
+          <el-input v-model="form.departureLatitude" placeholder="请输入出发经纬度" />
+        </el-form-item>
+        <el-form-item label="到达经纬度" prop="latitudeArrival">
+          <el-input v-model="form.latitudeArrival" placeholder="请输入到达经纬度" />
+        </el-form-item>
+        <el-form-item label="出发时间" prop="departureTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.departureTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择出发时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="人数" prop="numberPeople">
+          <el-input v-model="form.numberPeople" placeholder="请输入人数" />
+        </el-form-item>
+        <el-form-item label="说明" prop="explain">
+          <el-input v-model="form.explain" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="单价" prop="unitPrice">
+          <el-input v-model="form.unitPrice" placeholder="请输入单价" />
+        </el-form-item>
+        <el-form-item label="总价" prop="price">
+          <el-input v-model="form.price" placeholder="请输入总价" />
+        </el-form-item>
+        <el-form-item label="状态">
+          <el-radio-group v-model="form.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item label="备注1" prop="remark1">
+          <el-input v-model="form.remark1" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="备注2" prop="remark2">
+          <el-input v-model="form.remark2" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="备注3" prop="remark3">
+          <el-input v-model="form.remark3" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="0:否" prop="deleteFlag">
+          <el-input v-model="form.deleteFlag" placeholder="请输入0:否" />
+        </el-form-item>
+        <el-form-item label="" prop="gmtCreate">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.gmtCreate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="" prop="gmtUpdate">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.gmtUpdate"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="" prop="userId">
+          <el-input v-model="form.userId" placeholder="请输入" />
+        </el-form-item>
+        <el-form-item label="" prop="adminId">
+          <el-input v-model="form.adminId" placeholder="请输入" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listSharing, getSharing, delSharing, addSharing, updateSharing, exportSharing } from "@/api/unimall/sharing";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 发布信息表格数据
+      sharingList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        companyId: undefined,
+        carpoolingType: undefined,
+        route: undefined,
+        phone: undefined,
+        startPlace: undefined,
+        endPlace: undefined,
+        departureLatitude: undefined,
+        latitudeArrival: undefined,
+        departureTime: undefined,
+        numberPeople: undefined,
+        explain: undefined,
+        unitPrice: undefined,
+        price: undefined,
+        status: undefined,
+        remark1: undefined,
+        remark2: undefined,
+        remark3: undefined,
+        deleteFlag: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        userId: undefined,
+        adminId: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        deleteFlag: [
+          { required: true, message: "0:否(默认) 1:是不能为空", trigger: "blur" }
+        ],      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询发布信息列表 */
+    getList() {
+      this.loading = true;
+      listSharing(this.queryParams).then(response => {
+        this.sharingList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        companyId: undefined,
+        carpoolingType: undefined,
+        route: undefined,
+        phone: undefined,
+        startPlace: undefined,
+        endPlace: undefined,
+        departureLatitude: undefined,
+        latitudeArrival: undefined,
+        departureTime: undefined,
+        numberPeople: undefined,
+        explain: undefined,
+        unitPrice: undefined,
+        price: undefined,
+        status: "0",
+        remark1: undefined,
+        remark2: undefined,
+        remark3: undefined,
+        deleteFlag: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        userId: undefined,
+        adminId: undefined
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加发布信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids.join(',')
+      getSharing(id).then(response => {
+        this.form = response.data.data
+        this.open = true;
+        this.title = "修改发布信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != undefined) {
+            updateSharing(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addSharing(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids.join(',')
+      this.$confirm('是否确认删除发布信息编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delSharing(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有发布信息数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportSharing(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 169 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/PincheCarSharing.java

@@ -0,0 +1,169 @@
+package com.iotechn.unimall.data.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.iotechn.unimall.core.framework.aspectj.lang.annotaion.Excel;
+import com.iotechn.unimall.core.framework.aspectj.lang.annotaion.Excel.ColumnType;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.enums.FieldFill;
+import com.iotechn.unimall.core.util.StringUtils;
+import java.util.Date;
+
+/**
+ * 发布信息对象 pinche_car_sharing
+ * 
+ * @author jlb
+ * @date 2022-11-30
+ */
+@Data
+@TableName("pinche_car_sharing")
+public class PincheCarSharing extends SuperDO{
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("company_id")
+    private Long companyId;
+
+    /** 拼车类型 */
+    @Excel(name = "拼车类型")
+    @TableField("carpooling_type")
+    private String carpoolingType;
+
+    /** 路线 */
+    @Excel(name = "路线")
+    @TableField("route")
+    private String route;
+
+    /** 手机号 */
+    @Excel(name = "手机号")
+    @TableField("phone")
+    private String phone;
+
+    /** 出发地点 */
+    @Excel(name = "出发地点")
+    @TableField("start_place")
+    private String startPlace;
+
+    /** 到达地点 */
+    @Excel(name = "到达地点")
+    @TableField("end_place")
+    private String endPlace;
+
+    /** 出发经纬度 */
+    @Excel(name = "出发经纬度")
+    @TableField("departure_latitude")
+    private String departureLatitude;
+
+    /** 到达经纬度 */
+    @Excel(name = "到达经纬度")
+    @TableField("latitude_arrival")
+    private String latitudeArrival;
+
+    /** 出发时间 */
+    @Excel(name = "出发时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("departure_time")
+    private Date departureTime;
+
+    /** 人数 */
+    @Excel(name = "人数")
+    @TableField("number_people")
+    private String numberPeople;
+
+    /** 说明 */
+    @Excel(name = "说明")
+    @TableField("explain")
+    private String explain;
+
+    /** 单价 */
+    @Excel(name = "单价")
+    @TableField("unit_price")
+    private Double unitPrice;
+
+    /** 总价 */
+    @Excel(name = "总价")
+    @TableField("price")
+    private Double price;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    @TableField("status")
+    private String status;
+
+    /** 备注1 */
+    @Excel(name = "备注1")
+    @TableField("remark1")
+    private String remark1;
+
+    /** 备注2 */
+    @Excel(name = "备注2")
+    @TableField("remark2")
+    private String remark2;
+
+    /** 备注3 */
+    @Excel(name = "备注3")
+    @TableField("remark3")
+    private String remark3;
+
+    /** 0:否(默认) 1:是 */
+    @Excel(name = "0:否", readConverterExp = "默=认")
+    @TableField("delete_flag")
+    private Long deleteFlag;
+
+    /**  */
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**  */
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("gmt_update")
+    private Date gmtUpdate;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("user_id")
+    private Long userId;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("admin_id")
+    private Long adminId;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("companyId", getCompanyId())
+            .append("carpoolingType", getCarpoolingType())
+            .append("route", getRoute())
+            .append("phone", getPhone())
+            .append("startPlace", getStartPlace())
+            .append("endPlace", getEndPlace())
+            .append("departureLatitude", getDepartureLatitude())
+            .append("latitudeArrival", getLatitudeArrival())
+            .append("departureTime", getDepartureTime())
+            .append("numberPeople", getNumberPeople())
+            .append("explain", getExplain())
+            .append("unitPrice", getUnitPrice())
+            .append("price", getPrice())
+            .append("status", getStatus())
+            .append("remark1", getRemark1())
+            .append("remark2", getRemark2())
+            .append("remark3", getRemark3())
+            .append("deleteFlag", getDeleteFlag())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("userId", getUserId())
+            .append("adminId", getAdminId())
+            .toString();
+    }
+}

+ 175 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/PincheMakeAppointment.java

@@ -0,0 +1,175 @@
+package com.iotechn.unimall.data.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.iotechn.unimall.core.framework.aspectj.lang.annotaion.Excel;
+import com.iotechn.unimall.core.framework.aspectj.lang.annotaion.Excel.ColumnType;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.enums.FieldFill;
+import com.iotechn.unimall.core.util.StringUtils;
+import java.util.Date;
+
+/**
+ * 预约信息对象 pinche_make_appointment
+ * 
+ * @author jlb
+ * @date 2022-11-30
+ */
+@Data
+@TableName("pinche_make_appointment")
+public class PincheMakeAppointment extends SuperDO{
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("company_id")
+    private Long companyId;
+
+    /** 预约人 */
+    @Excel(name = "预约人")
+    @TableField("appointed_by")
+    private String appointedBy;
+
+    /** 拼车类型 */
+    @Excel(name = "拼车类型")
+    @TableField("carpooling_type")
+    private String carpoolingType;
+
+    /** 路线 */
+    @Excel(name = "路线")
+    @TableField("route")
+    private String route;
+
+    /** 手机号 */
+    @Excel(name = "手机号")
+    @TableField("phone")
+    private String phone;
+
+    /** 出发地点 */
+    @Excel(name = "出发地点")
+    @TableField("start_place")
+    private String startPlace;
+
+    /** 到达地点 */
+    @Excel(name = "到达地点")
+    @TableField("end_place")
+    private String endPlace;
+
+    /** 出发经纬度 */
+    @Excel(name = "出发经纬度")
+    @TableField("departure_latitude")
+    private String departureLatitude;
+
+    /** 到达经纬度 */
+    @Excel(name = "到达经纬度")
+    @TableField("latitude_arrival")
+    private String latitudeArrival;
+
+    /** 出发时间 */
+    @Excel(name = "出发时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("departure_time")
+    private Date departureTime;
+
+    /** 人数 */
+    @Excel(name = "人数")
+    @TableField("number_people")
+    private String numberPeople;
+
+    /** 说明 */
+    @Excel(name = "说明")
+    @TableField("explain")
+    private String explain;
+
+    /** 单价 */
+    @Excel(name = "单价")
+    @TableField("unit_price")
+    private Double unitPrice;
+
+    /** 总价 */
+    @Excel(name = "总价")
+    @TableField("price")
+    private Double price;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    @TableField("status")
+    private String status;
+
+    /** 备注1 */
+    @Excel(name = "备注1")
+    @TableField("remark1")
+    private String remark1;
+
+    /** 备注2 */
+    @Excel(name = "备注2")
+    @TableField("remark2")
+    private String remark2;
+
+    /** 备注3 */
+    @Excel(name = "备注3")
+    @TableField("remark3")
+    private String remark3;
+
+    /** 0:否(默认) 1:是 */
+    @Excel(name = "0:否", readConverterExp = "默=认")
+    @TableField("delete_flag")
+    private Long deleteFlag;
+
+    /**  */
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**  */
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("gmt_update")
+    private Date gmtUpdate;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("user_id")
+    private Long userId;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("admin_id")
+    private Long adminId;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("companyId", getCompanyId())
+            .append("appointedBy", getAppointedBy())
+            .append("carpoolingType", getCarpoolingType())
+            .append("route", getRoute())
+            .append("phone", getPhone())
+            .append("startPlace", getStartPlace())
+            .append("endPlace", getEndPlace())
+            .append("departureLatitude", getDepartureLatitude())
+            .append("latitudeArrival", getLatitudeArrival())
+            .append("departureTime", getDepartureTime())
+            .append("numberPeople", getNumberPeople())
+            .append("explain", getExplain())
+            .append("unitPrice", getUnitPrice())
+            .append("price", getPrice())
+            .append("status", getStatus())
+            .append("remark1", getRemark1())
+            .append("remark2", getRemark2())
+            .append("remark3", getRemark3())
+            .append("deleteFlag", getDeleteFlag())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("userId", getUserId())
+            .append("adminId", getAdminId())
+            .toString();
+    }
+}

+ 103 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/PincheRoutePrice.java

@@ -0,0 +1,103 @@
+package com.iotechn.unimall.data.domain;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.iotechn.unimall.core.framework.aspectj.lang.annotaion.Excel;
+import com.iotechn.unimall.core.framework.aspectj.lang.annotaion.Excel.ColumnType;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.enums.FieldFill;
+import com.iotechn.unimall.core.util.StringUtils;
+import java.util.Date;
+
+/**
+ * 路线价格对象 pinche_route_price
+ * 
+ * @author jlb
+ * @date 2022-11-30
+ */
+@Data
+@TableName("pinche_route_price")
+public class PincheRoutePrice extends SuperDO{
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("company_id")
+    private Long companyId;
+
+    /** 路线 */
+    @Excel(name = "路线")
+    @TableField("route")
+    private String route;
+
+    /** 单价 */
+    @Excel(name = "单价")
+    @TableField("unit_price")
+    private Double unitPrice;
+
+    /** 备注1 */
+    @Excel(name = "备注1")
+    @TableField("remark1")
+    private String remark1;
+
+    /** 备注2 */
+    @Excel(name = "备注2")
+    @TableField("remark2")
+    private String remark2;
+
+    /** 备注3 */
+    @Excel(name = "备注3")
+    @TableField("remark3")
+    private String remark3;
+
+    /** 0:否(默认) 1:是 */
+    @Excel(name = "0:否", readConverterExp = "默=认")
+    @TableField("delete_flag")
+    private Long deleteFlag;
+
+    /**  */
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("gmt_create")
+    private Date gmtCreate;
+
+    /**  */
+    @Excel(name = "", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("gmt_update")
+    private Date gmtUpdate;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("user_id")
+    private Long userId;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("admin_id")
+    private Long adminId;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("companyId", getCompanyId())
+            .append("route", getRoute())
+            .append("unitPrice", getUnitPrice())
+            .append("remark1", getRemark1())
+            .append("remark2", getRemark2())
+            .append("remark3", getRemark3())
+            .append("deleteFlag", getDeleteFlag())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("userId", getUserId())
+            .append("adminId", getAdminId())
+            .toString();
+    }
+}

+ 13 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/mapper/PincheCarSharingMapper.java

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper;
+
+import com.iotechn.unimall.data.domain.PincheCarSharing;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 发布信息Mapper接口
+ * 
+ * @author jlb
+ * @date 2022-11-30
+ */
+public interface PincheCarSharingMapper extends BaseMapper<PincheCarSharing>{
+
+}

+ 13 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/mapper/PincheMakeAppointmentMapper.java

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper;
+
+import com.iotechn.unimall.data.domain.PincheMakeAppointment;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 预约信息Mapper接口
+ * 
+ * @author jlb
+ * @date 2022-11-30
+ */
+public interface PincheMakeAppointmentMapper extends BaseMapper<PincheMakeAppointment>{
+
+}

+ 13 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/mapper/PincheRoutePriceMapper.java

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper;
+
+import com.iotechn.unimall.data.domain.PincheRoutePrice;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 路线价格Mapper接口
+ * 
+ * @author jlb
+ * @date 2022-11-30
+ */
+public interface PincheRoutePriceMapper extends BaseMapper<PincheRoutePrice>{
+
+}

+ 9 - 0
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/PincheCarSharingMapper.xml

@@ -0,0 +1,9 @@
+<?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.iotechn.unimall.data.mapper.PincheCarSharingMapper">
+    
+
+
+</mapper>

+ 9 - 0
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/PincheMakeAppointmentMapper.xml

@@ -0,0 +1,9 @@
+<?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.iotechn.unimall.data.mapper.PincheMakeAppointmentMapper">
+    
+
+
+</mapper>

+ 9 - 0
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/PincheRoutePriceMapper.xml

@@ -0,0 +1,9 @@
+<?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.iotechn.unimall.data.mapper.PincheRoutePriceMapper">
+    
+
+
+</mapper>

+ 54 - 54
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/tools/gen/GenTableColumnMapper.xml

@@ -3,59 +3,59 @@
 <mapper
 	namespace="com.iotechn.unimall.data.mapper.tools.gen.GenTableColumnMapper">
 
-<!--	<resultMap type="GenTableColumn" id="GenTableColumnResult">-->
-<!--		<id property="columnId" column="column_id" />-->
-<!--		<result property="tableId" column="table_id" />-->
-<!--		<result property="columnName" column="column_name" />-->
-<!--		<result property="columnComment" column="column_comment" />-->
-<!--		<result property="columnType" column="column_type" />-->
-<!--		<result property="javaType" column="java_type" />-->
-<!--		<result property="javaField" column="java_field" />-->
-<!--		<result property="isPk" column="is_pk" />-->
-<!--		<result property="isIncrement" column="is_increment" />-->
-<!--		<result property="isRequired" column="is_required" />-->
-<!--		<result property="isInsert" column="is_insert" />-->
-<!--		<result property="isEdit" column="is_edit" />-->
-<!--		<result property="isList" column="is_list" />-->
-<!--		<result property="isQuery" column="is_query" />-->
-<!--		<result property="queryType" column="query_type" />-->
-<!--		<result property="htmlType" column="html_type" />-->
-<!--		<result property="dictType" column="dict_type" />-->
-<!--		<result property="sort" column="sort" />-->
-<!--		<result property="createBy" column="create_by" />-->
-<!--		<result property="createTime" column="create_time" />-->
-<!--		<result property="updateBy" column="update_by" />-->
-<!--		<result property="updateTime" column="update_time" />-->
-<!--	</resultMap>-->
-<!--	<sql id="selectDictTypeVo">-->
-<!--		SELECT-->
-<!--		table_id AS tableId,-->
-<!--		`table_name` AS tableName,-->
-<!--		table_comment AS tableComment,-->
-<!--		class_name AS className,-->
-<!--		tpl_category AS tplCategory,-->
-<!--		package_name AS packageName,-->
-<!--		module_name AS moduleName,-->
-<!--		business_name AS businessName,-->
-<!--		function_name AS functionName,-->
-<!--		function_author AS functionAuthor,-->
-<!--		create_by AS createBy,-->
-<!--		create_time AS createTime,-->
-<!--		update_by AS updateBy,-->
-<!--		update_time AS updateTime,-->
-<!--		`options`-->
-<!--		FROM-->
-<!--		sys_gen_table-->
-<!--	</sql>-->
-<!--	<select id="selectDbTableColumnsByName" parameterType="String" resultType="com.iotechn.unimall.data.domain.tools.gen.GenTableColumn">-->
-<!--		select column_name as columnName, (case when (is_nullable = 'no' <![CDATA[ && ]]>-->
-<!--		column_key != 'PRI') then '1' else null end) as isRequired, (case-->
-<!--		when column_key = 'PRI' then '1' else '0' end) as isPk,-->
-<!--		ordinal_position as sort, column_comment as columnComment, (case when extra =-->
-<!--		'auto_increment' then '1' else '0' end) as isIncrement, column_type as columnType-->
-<!--		from information_schema.columns where table_schema = (select-->
-<!--		database()) and table_name = (#{tableName})-->
-<!--		order by ordinal_position-->
-<!--	</select>-->
+	<resultMap type="GenTableColumn" id="GenTableColumnResult">
+		<id property="columnId" column="column_id" />
+		<result property="tableId" column="table_id" />
+		<result property="columnName" column="column_name" />
+		<result property="columnComment" column="column_comment" />
+		<result property="columnType" column="column_type" />
+		<result property="javaType" column="java_type" />
+		<result property="javaField" column="java_field" />
+		<result property="isPk" column="is_pk" />
+		<result property="isIncrement" column="is_increment" />
+		<result property="isRequired" column="is_required" />
+		<result property="isInsert" column="is_insert" />
+		<result property="isEdit" column="is_edit" />
+		<result property="isList" column="is_list" />
+		<result property="isQuery" column="is_query" />
+		<result property="queryType" column="query_type" />
+		<result property="htmlType" column="html_type" />
+		<result property="dictType" column="dict_type" />
+		<result property="sort" column="sort" />
+		<result property="createBy" column="create_by" />
+		<result property="createTime" column="create_time" />
+		<result property="updateBy" column="update_by" />
+		<result property="updateTime" column="update_time" />
+	</resultMap>
+	<sql id="selectDictTypeVo">
+		SELECT
+		table_id AS tableId,
+		`table_name` AS tableName,
+		table_comment AS tableComment,
+		class_name AS className,
+		tpl_category AS tplCategory,
+		package_name AS packageName,
+		module_name AS moduleName,
+		business_name AS businessName,
+		function_name AS functionName,
+		function_author AS functionAuthor,
+		create_by AS createBy,
+		create_time AS createTime,
+		update_by AS updateBy,
+		update_time AS updateTime,
+		`options`
+		FROM
+		sys_gen_table
+	</sql>
+	<select id="selectDbTableColumnsByName" parameterType="String" resultType="com.iotechn.unimall.data.domain.tools.gen.GenTableColumn">
+		select column_name as columnName, (case when (is_nullable = 'no' <![CDATA[ && ]]>
+		column_key != 'PRI') then '1' else null end) as isRequired, (case
+		when column_key = 'PRI' then '1' else '0' end) as isPk,
+		ordinal_position as sort, column_comment as columnComment, (case when extra =
+		'auto_increment' then '1' else '0' end) as isIncrement, column_type as columnType
+		from information_schema.columns where table_schema = (select
+		database()) and table_name = (#{tableName})
+		order by ordinal_position
+	</select>
 
 </mapper>

+ 118 - 118
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/tools/gen/GenTableMapper.xml

@@ -2,124 +2,124 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.iotechn.unimall.data.mapper.tools.gen.GenTableMapper">
 
-<!--	<resultMap type="GenTable" id="GenTableResult">-->
-<!--	    <id     property="tableId"        column="table_id"        />-->
-<!--		<result property="tableName"      column="table_name"      />-->
-<!--		<result property="tableComment"   column="table_comment"   />-->
-<!--		<result property="className"      column="class_name"      />-->
-<!--		<result property="tplCategory"    column="tpl_category"    />-->
-<!--		<result property="packageName"    column="package_name"    />-->
-<!--		<result property="moduleName"     column="module_name"     />-->
-<!--		<result property="businessName"   column="business_name"   />-->
-<!--		<result property="functionName"   column="function_name"   />-->
-<!--		<result property="functionAuthor" column="function_author" />-->
-<!--		<result property="options"        column="options"         />-->
-<!--		<result property="createBy"       column="create_by"       />-->
-<!--		<result property="createTime"     column="create_time"     />-->
-<!--		<result property="updateBy"       column="update_by"       />-->
-<!--		<result property="updateTime"     column="update_time"     />-->
-<!--		<result property="remark"         column="remark"          />-->
-<!--		<collection  property="columns"  javaType="java.util.List"  resultMap="GenTableColumnResult" />-->
-<!--	</resultMap>-->
+	<resultMap type="GenTable" id="GenTableResult">
+	    <id     property="tableId"        column="table_id"        />
+		<result property="tableName"      column="table_name"      />
+		<result property="tableComment"   column="table_comment"   />
+		<result property="className"      column="class_name"      />
+		<result property="tplCategory"    column="tpl_category"    />
+		<result property="packageName"    column="package_name"    />
+		<result property="moduleName"     column="module_name"     />
+		<result property="businessName"   column="business_name"   />
+		<result property="functionName"   column="function_name"   />
+		<result property="functionAuthor" column="function_author" />
+		<result property="options"        column="options"         />
+		<result property="createBy"       column="create_by"       />
+		<result property="createTime"     column="create_time"     />
+		<result property="updateBy"       column="update_by"       />
+		<result property="updateTime"     column="update_time"     />
+		<result property="remark"         column="remark"          />
+		<collection  property="columns"  javaType="java.util.List"  resultMap="GenTableColumnResult" />
+	</resultMap>
 
-<!--	<resultMap type="GenTableColumn" id="GenTableColumnResult">-->
-<!--        <id     property="columnId"       column="column_id"      />-->
-<!--        <result property="tableId"        column="table_id"       />-->
-<!--        <result property="columnName"     column="column_name"    />-->
-<!--        <result property="columnComment"  column="column_comment" />-->
-<!--        <result property="columnType"     column="column_type"    />-->
-<!--        <result property="javaType"       column="java_type"      />-->
-<!--        <result property="javaField"      column="java_field"     />-->
-<!--        <result property="isPk"           column="is_pk"          />-->
-<!--        <result property="isIncrement"    column="is_increment"   />-->
-<!--        <result property="isRequired"     column="is_required"    />-->
-<!--        <result property="isInsert"       column="is_insert"      />-->
-<!--        <result property="isEdit"         column="is_edit"        />-->
-<!--        <result property="isList"         column="is_list"        />-->
-<!--        <result property="isQuery"        column="is_query"       />-->
-<!--        <result property="queryType"      column="query_type"     />-->
-<!--        <result property="htmlType"       column="html_type"      />-->
-<!--        <result property="dictType"       column="dict_type"      />-->
-<!--        <result property="sort"           column="sort"           />-->
-<!--        <result property="createBy"       column="create_by"      />-->
-<!--        <result property="createTime"     column="create_time"    />-->
-<!--        <result property="updateBy"       column="update_by"      />-->
-<!--        <result property="updateTime"     column="update_time"    />-->
-<!--    </resultMap>-->
-<!--	<sql id="selectDictTypeVo">-->
-<!--		SELECT-->
-<!--			table_id AS tableId,-->
-<!--			`table_name` AS tableName,-->
-<!--			table_comment AS tableComment,-->
-<!--			class_name AS className,-->
-<!--			tpl_category AS tplCategory,-->
-<!--			package_name AS packageName,-->
-<!--			module_name AS moduleName,-->
-<!--			business_name AS businessName,-->
-<!--			function_name AS functionName,-->
-<!--			function_author AS functionAuthor,-->
-<!--			create_by AS createBy,-->
-<!--			create_time AS createTime,-->
-<!--			update_by AS updateBy,-->
-<!--			update_time AS updateTime,-->
-<!--			`options`-->
-<!--		FROM-->
-<!--			sys_gen_table-->
-<!--	</sql>-->
-<!--	<select id="selectDbTableListByNames"  resultType="com.iotechn.unimall.data.domain.tools.gen.GenTable">-->
-<!--		SELECT-->
-<!--        table_name as tableName,-->
-<!--        table_comment as tableComment,-->
-<!--        create_time as createTime,-->
-<!--        update_time as updateTime-->
-<!--		FROM-->
-<!--			information_schema.TABLES-->
-<!--		WHERE-->
-<!--			table_schema = ( SELECT DATABASE ( ) )-->
-<!--			AND table_name NOT LIKE 'qrtz_%'-->
-<!--			AND table_name NOT LIKE 'gen_%'-->
-<!--			AND table_name NOT IN ( SELECT table_name FROM sys_gen_table )-->
-<!--			AND table_name in-->
-<!--			<foreach  item="item" collection="array" index="index"  open="(" separator="," close=")">-->
-<!--			#{item}-->
-<!--			</foreach>-->
-<!--	</select>-->
-<!--	<select id="selectDbTableList" parameterType="GenTable" resultType="com.iotechn.unimall.data.domain.tools.gen.GenTable">-->
-<!--		SELECT-->
-<!--			table_name as tableName,-->
-<!--			table_comment as tableComment,-->
-<!--			create_time as createTime,-->
-<!--			update_time as updateTime-->
-<!--		FROM-->
-<!--			information_schema.TABLES-->
-<!--		WHERE-->
-<!--			table_schema = ( SELECT DATABASE ( ) )-->
-<!--			AND table_name NOT LIKE 'qrtz_%'-->
-<!--			AND table_name NOT LIKE 'gen_%'-->
-<!--			AND table_name NOT IN ( SELECT table_name FROM sys_gen_table )-->
-<!--		<if test="tableName != null and tableName != ''">-->
-<!--			AND lower(table_name) like lower(concat('%', #{tableName}, '%'))-->
-<!--		</if>-->
-<!--		<if test="tableComment != null and tableComment != ''">-->
-<!--			AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))-->
-<!--		</if>-->
-<!--	</select>-->
-<!--	<select id="selectDbTableCount" parameterType="GenTable" resultType="java.lang.Integer">-->
-<!--		SELECT-->
-<!--			COUNT(*)-->
-<!--		FROM-->
-<!--			information_schema.TABLES-->
-<!--		WHERE-->
-<!--			table_schema = ( SELECT DATABASE ( ) )-->
-<!--			AND table_name NOT LIKE 'qrtz_%'-->
-<!--			AND table_name NOT LIKE 'gen_%'-->
-<!--			AND table_name NOT IN ( SELECT table_name FROM sys_gen_table )-->
-<!--		<if test="tableName != null and tableName != ''">-->
-<!--			AND lower(table_name) like lower(concat('%', #{tableName}, '%'))-->
-<!--		</if>-->
-<!--		<if test="tableComment != null and tableComment != ''">-->
-<!--			AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))-->
-<!--		</if>-->
-<!--	</select>-->
+	<resultMap type="GenTableColumn" id="GenTableColumnResult">
+        <id     property="columnId"       column="column_id"      />
+        <result property="tableId"        column="table_id"       />
+        <result property="columnName"     column="column_name"    />
+        <result property="columnComment"  column="column_comment" />
+        <result property="columnType"     column="column_type"    />
+        <result property="javaType"       column="java_type"      />
+        <result property="javaField"      column="java_field"     />
+        <result property="isPk"           column="is_pk"          />
+        <result property="isIncrement"    column="is_increment"   />
+        <result property="isRequired"     column="is_required"    />
+        <result property="isInsert"       column="is_insert"      />
+        <result property="isEdit"         column="is_edit"        />
+        <result property="isList"         column="is_list"        />
+        <result property="isQuery"        column="is_query"       />
+        <result property="queryType"      column="query_type"     />
+        <result property="htmlType"       column="html_type"      />
+        <result property="dictType"       column="dict_type"      />
+        <result property="sort"           column="sort"           />
+        <result property="createBy"       column="create_by"      />
+        <result property="createTime"     column="create_time"    />
+        <result property="updateBy"       column="update_by"      />
+        <result property="updateTime"     column="update_time"    />
+    </resultMap>
+	<sql id="selectDictTypeVo">
+		SELECT
+			table_id AS tableId,
+			`table_name` AS tableName,
+			table_comment AS tableComment,
+			class_name AS className,
+			tpl_category AS tplCategory,
+			package_name AS packageName,
+			module_name AS moduleName,
+			business_name AS businessName,
+			function_name AS functionName,
+			function_author AS functionAuthor,
+			create_by AS createBy,
+			create_time AS createTime,
+			update_by AS updateBy,
+			update_time AS updateTime,
+			`options`
+		FROM
+			sys_gen_table
+	</sql>
+	<select id="selectDbTableListByNames"  resultType="com.iotechn.unimall.data.domain.tools.gen.GenTable">
+		SELECT
+        table_name as tableName,
+        table_comment as tableComment,
+        create_time as createTime,
+        update_time as updateTime
+		FROM
+			information_schema.TABLES
+		WHERE
+			table_schema = ( SELECT DATABASE ( ) )
+			AND table_name NOT LIKE 'qrtz_%'
+			AND table_name NOT LIKE 'gen_%'
+			AND table_name NOT IN ( SELECT table_name FROM sys_gen_table )
+			AND table_name in
+			<foreach  item="item" collection="array" index="index"  open="(" separator="," close=")">
+			#{item}
+			</foreach>
+	</select>
+	<select id="selectDbTableList" parameterType="GenTable" resultType="com.iotechn.unimall.data.domain.tools.gen.GenTable">
+		SELECT
+			table_name as tableName,
+			table_comment as tableComment,
+			create_time as createTime,
+			update_time as updateTime
+		FROM
+			information_schema.TABLES
+		WHERE
+			table_schema = ( SELECT DATABASE ( ) )
+			AND table_name NOT LIKE 'qrtz_%'
+			AND table_name NOT LIKE 'gen_%'
+			AND table_name NOT IN ( SELECT table_name FROM sys_gen_table )
+		<if test="tableName != null and tableName != ''">
+			AND lower(table_name) like lower(concat('%', #{tableName}, '%'))
+		</if>
+		<if test="tableComment != null and tableComment != ''">
+			AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))
+		</if>
+	</select>
+	<select id="selectDbTableCount" parameterType="GenTable" resultType="java.lang.Integer">
+		SELECT
+			COUNT(*)
+		FROM
+			information_schema.TABLES
+		WHERE
+			table_schema = ( SELECT DATABASE ( ) )
+			AND table_name NOT LIKE 'qrtz_%'
+			AND table_name NOT LIKE 'gen_%'
+			AND table_name NOT IN ( SELECT table_name FROM sys_gen_table )
+		<if test="tableName != null and tableName != ''">
+			AND lower(table_name) like lower(concat('%', #{tableName}, '%'))
+		</if>
+		<if test="tableComment != null and tableComment != ''">
+			AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))
+		</if>
+	</select>
 
 </mapper>