gongdecai před 2 roky
rodič
revize
5205f89780
41 změnil soubory, kde provedl 4471 přidání a 4 odebrání
  1. 67 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiPriceHisService.java
  2. 73 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTransactionService.java
  3. 65 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTypeInfoService.java
  4. 69 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTypeSecondService.java
  5. 89 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTypeThreeService.java
  6. 144 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiPriceHisServiceImpl.java
  7. 162 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTransactionServiceImpl.java
  8. 138 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTypeInfoServiceImpl.java
  9. 150 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTypeSecondServiceImpl.java
  10. 212 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTypeThreeServiceImpl.java
  11. 0 0
      unimall-admin/dist/index.html
  12. 0 0
      unimall-admin/dist/static/js/chunk-3f3d.6fb8e198.js
  13. 1 1
      unimall-admin/index.html
  14. 73 0
      unimall-admin/src/api/gubi/info.js
  15. 73 0
      unimall-admin/src/api/gubi/priceHis.js
  16. 73 0
      unimall-admin/src/api/gubi/second.js
  17. 73 0
      unimall-admin/src/api/gubi/three.js
  18. 73 0
      unimall-admin/src/api/gubi/transaction.js
  19. 393 0
      unimall-admin/src/views/gubi/info/index.vue
  20. 416 0
      unimall-admin/src/views/gubi/priceHis/index.vue
  21. 414 0
      unimall-admin/src/views/gubi/second/index.vue
  22. 572 0
      unimall-admin/src/views/gubi/three/index.vue
  23. 452 0
      unimall-admin/src/views/gubi/transaction/index.vue
  24. 1 1
      unimall-admin/src/views/login/index.vue
  25. 98 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiPriceHis.java
  26. 116 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiTransaction.java
  27. 92 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiTypeInfo.java
  28. 104 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiTypeSecond.java
  29. 164 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiTypeThree.java
  30. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/gubi/GubiPriceHisMapper.java
  31. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/gubi/GubiTransactionMapper.java
  32. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/gubi/GubiTypeInfoMapper.java
  33. 14 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/gubi/GubiTypeSecondMapper.java
  34. 14 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/gubi/GubiTypeThreeMapper.java
  35. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/gubi/GubiPriceHisMapper.xml
  36. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/gubi/GubiTransactionMapper.xml
  37. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/gubi/GubiTypeInfoMapper.xml
  38. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/gubi/GubiTypeSecondMapper.xml
  39. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/gubi/GubiTypeThreeMapper.xml
  40. 1 1
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/tools/gen/GenTableMapper.xml
  41. 1 1
      unimall-launcher/src/main/resources/application.properties

+ 67 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiPriceHisService.java

@@ -0,0 +1,67 @@
+package com.iotechn.unimall.admin.api.gubi;
+
+
+import com.iotechn.unimall.data.domain.gubi.GubiPriceHis;
+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-15
+ */
+@HttpOpenApi(group = "admin.gubi.gubiPriceHis", description = "价格历史")
+public interface IGubiPriceHisService{
+	@HttpMethod(description = "新增", permission = "admin:gubi:gubiPriceHis:add", permissionParentName = "宠物管理", permissionName = "价格历史管理")
+	public Boolean add(@NotNull @HttpParam(name = "gubiPriceHis", type = HttpParamType.COMMON, description = "价格历史") GubiPriceHis gubiPriceHis,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:gubi:gubiPriceHis:list",permissionParentName = "宠物管理", permissionName = "价格历史管理")
+	public Page<GubiPriceHis> list(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "orderId", type = HttpParamType.COMMON, description = "分值id") String orderId,
+							@HttpParam(name = "collection", type = HttpParamType.COMMON, description = "时间") Date collection,
+							@HttpParam(name = "price", type = HttpParamType.COMMON, description = "价钱") Double price,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@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:gubi:gubiPriceHis:delete",permissionParentName = "宠物管理", permissionName = "价格历史管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:gubi:gubiPriceHis:update",permissionParentName = "宠物管理", permissionName = "价格历史管理")
+	public Boolean update(@NotNull @HttpParam(name = "gubiPriceHis", type = HttpParamType.COMMON, description = "价格历史") GubiPriceHis gubiPriceHis,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:gubi:gubiPriceHis:get",permissionParentName = "宠物管理", permissionName = "价格历史管理")
+	public GubiPriceHis get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:gubi:gubiPriceHis:export",permissionParentName = "宠物管理", permissionName = "价格历史管理")
+	public String export(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "orderId", type = HttpParamType.COMMON, description = "分值id") String orderId,
+							@HttpParam(name = "collection", type = HttpParamType.COMMON, description = "时间") Date collection,
+							@HttpParam(name = "price", type = HttpParamType.COMMON, description = "价钱") Double price,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@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;
+	
+}

+ 73 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTransactionService.java

@@ -0,0 +1,73 @@
+package com.iotechn.unimall.admin.api.gubi;
+
+
+import com.iotechn.unimall.data.domain.gubi.GubiTransaction;
+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-15
+ */
+@HttpOpenApi(group = "admin.gubi.gubiTransaction", description = "交易记录")
+public interface IGubiTransactionService{
+	@HttpMethod(description = "新增", permission = "admin:gubi:gubiTransaction:add", permissionParentName = "宠物管理", permissionName = "交易记录管理")
+	public Boolean add(@NotNull @HttpParam(name = "gubiTransaction", type = HttpParamType.COMMON, description = "交易记录") GubiTransaction gubiTransaction,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:gubi:gubiTransaction:list",permissionParentName = "宠物管理", permissionName = "交易记录管理")
+	public Page<GubiTransaction> list(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "orderId", type = HttpParamType.COMMON, description = "分值id") String orderId,
+							@HttpParam(name = "number", type = HttpParamType.COMMON, description = "编号") String number,
+							@HttpParam(name = "grade", type = HttpParamType.COMMON, description = "分值等级") String grade,
+							@HttpParam(name = "collection", type = HttpParamType.COMMON, description = "时间") Date collection,
+							@HttpParam(name = "price", type = HttpParamType.COMMON, description = "价钱") Double price,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "urlPath", type = HttpParamType.COMMON, description = "附件") String urlPath,
+							@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:gubi:gubiTransaction:delete",permissionParentName = "宠物管理", permissionName = "交易记录管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:gubi:gubiTransaction:update",permissionParentName = "宠物管理", permissionName = "交易记录管理")
+	public Boolean update(@NotNull @HttpParam(name = "gubiTransaction", type = HttpParamType.COMMON, description = "交易记录") GubiTransaction gubiTransaction,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:gubi:gubiTransaction:get",permissionParentName = "宠物管理", permissionName = "交易记录管理")
+	public GubiTransaction get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:gubi:gubiTransaction:export",permissionParentName = "宠物管理", permissionName = "交易记录管理")
+	public String export(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "orderId", type = HttpParamType.COMMON, description = "分值id") String orderId,
+							@HttpParam(name = "number", type = HttpParamType.COMMON, description = "编号") String number,
+							@HttpParam(name = "grade", type = HttpParamType.COMMON, description = "分值等级") String grade,
+							@HttpParam(name = "collection", type = HttpParamType.COMMON, description = "时间") Date collection,
+							@HttpParam(name = "price", type = HttpParamType.COMMON, description = "价钱") Double price,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "urlPath", type = HttpParamType.COMMON, description = "附件") String urlPath,
+							@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;
+	
+}

+ 65 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTypeInfoService.java

@@ -0,0 +1,65 @@
+package com.iotechn.unimall.admin.api.gubi;
+
+
+import com.iotechn.unimall.data.domain.gubi.GubiTypeInfo;
+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-15
+ */
+@HttpOpenApi(group = "admin.gubi.gubiTypeInfo", description = "一级分类")
+public interface IGubiTypeInfoService{
+	@HttpMethod(description = "新增", permission = "admin:gubi:gubiTypeInfo:add", permissionParentName = "宠物管理", permissionName = "一级分类管理")
+	public Boolean add(@NotNull @HttpParam(name = "gubiTypeInfo", type = HttpParamType.COMMON, description = "一级分类") GubiTypeInfo gubiTypeInfo,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:gubi:gubiTypeInfo:list",permissionParentName = "宠物管理", permissionName = "一级分类管理")
+	public Page<GubiTypeInfo> list(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "typeName", type = HttpParamType.COMMON, description = "分类") String typeName,
+							@HttpParam(name = "postion", type = HttpParamType.COMMON, description = "排序") Long postion,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@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:gubi:gubiTypeInfo:delete",permissionParentName = "宠物管理", permissionName = "一级分类管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:gubi:gubiTypeInfo:update",permissionParentName = "宠物管理", permissionName = "一级分类管理")
+	public Boolean update(@NotNull @HttpParam(name = "gubiTypeInfo", type = HttpParamType.COMMON, description = "一级分类") GubiTypeInfo gubiTypeInfo,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:gubi:gubiTypeInfo:get",permissionParentName = "宠物管理", permissionName = "一级分类管理")
+	public GubiTypeInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:gubi:gubiTypeInfo:export",permissionParentName = "宠物管理", permissionName = "一级分类管理")
+	public String export(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "typeName", type = HttpParamType.COMMON, description = "分类") String typeName,
+							@HttpParam(name = "postion", type = HttpParamType.COMMON, description = "排序") Long postion,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@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/gubi/IGubiTypeSecondService.java

@@ -0,0 +1,69 @@
+package com.iotechn.unimall.admin.api.gubi;
+
+
+import com.iotechn.unimall.data.domain.gubi.GubiTypeSecond;
+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-15
+ */
+@HttpOpenApi(group = "admin.gubi.gubiTypeSecond", description = "二级分类")
+public interface IGubiTypeSecondService{
+	@HttpMethod(description = "新增", permission = "admin:gubi:gubiTypeSecond:add", permissionParentName = "宠物管理", permissionName = "二级分类管理")
+	public Boolean add(@NotNull @HttpParam(name = "gubiTypeSecond", type = HttpParamType.COMMON, description = "二级分类") GubiTypeSecond gubiTypeSecond,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:gubi:gubiTypeSecond:list",permissionParentName = "宠物管理", permissionName = "二级分类管理")
+	public Page<GubiTypeSecond> list(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "typeId", type = HttpParamType.COMMON, description = "分类id") String typeId,
+							@HttpParam(name = "secondName", type = HttpParamType.COMMON, description = "二级分类型") String secondName,
+							@HttpParam(name = "postion", type = HttpParamType.COMMON, description = "排序") Long postion,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "urlPath", type = HttpParamType.COMMON, description = "附件") String urlPath,
+							@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:gubi:gubiTypeSecond:delete",permissionParentName = "宠物管理", permissionName = "二级分类管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:gubi:gubiTypeSecond:update",permissionParentName = "宠物管理", permissionName = "二级分类管理")
+	public Boolean update(@NotNull @HttpParam(name = "gubiTypeSecond", type = HttpParamType.COMMON, description = "二级分类") GubiTypeSecond gubiTypeSecond,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:gubi:gubiTypeSecond:get",permissionParentName = "宠物管理", permissionName = "二级分类管理")
+	public GubiTypeSecond get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:gubi:gubiTypeSecond:export",permissionParentName = "宠物管理", permissionName = "二级分类管理")
+	public String export(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "typeId", type = HttpParamType.COMMON, description = "分类id") String typeId,
+							@HttpParam(name = "secondName", type = HttpParamType.COMMON, description = "二级分类型") String secondName,
+							@HttpParam(name = "postion", type = HttpParamType.COMMON, description = "排序") Long postion,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "urlPath", type = HttpParamType.COMMON, description = "附件") String urlPath,
+							@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;
+	
+}

+ 89 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/IGubiTypeThreeService.java

@@ -0,0 +1,89 @@
+package com.iotechn.unimall.admin.api.gubi;
+
+
+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.domain.gubi.GubiTypeThree;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+
+/**
+ * 分值信息Service接口
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+@HttpOpenApi(group = "admin.gubi.gubiTypeThree", description = "分值信息")
+public interface IGubiTypeThreeService{
+	@HttpMethod(description = "新增", permission = "admin:gubi:gubiTypeThree:add", permissionParentName = "宠物管理", permissionName = "分值信息管理")
+	public Boolean add(@NotNull @HttpParam(name = "gubiTypeThree", type = HttpParamType.COMMON, description = "分值信息") GubiTypeThree gubiTypeThree,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:gubi:gubiTypeThree:list",permissionParentName = "宠物管理", permissionName = "分值信息管理")
+	public Page<GubiTypeThree> list(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "typeId", type = HttpParamType.COMMON, description = "分类id") String typeId,
+							@HttpParam(name = "secondId", type = HttpParamType.COMMON, description = "二级分类id") String secondId,
+							@HttpParam(name = "product", type = HttpParamType.COMMON, description = "品名") String product,
+							@HttpParam(name = "number", type = HttpParamType.COMMON, description = "官网编号") String number,
+							@HttpParam(name = "year", type = HttpParamType.COMMON, description = "年份") String year,
+							@HttpParam(name = "face", type = HttpParamType.COMMON, description = "面值") String face,
+							@HttpParam(name = "edition", type = HttpParamType.COMMON, description = "版别") String edition,
+							@HttpParam(name = "region", type = HttpParamType.COMMON, description = "地区") String region,
+							@HttpParam(name = "grade", type = HttpParamType.COMMON, description = "分值等级") String grade,
+							@HttpParam(name = "highScores", type = HttpParamType.COMMON, description = "高分数量") String highScores,
+							@HttpParam(name = "collection", type = HttpParamType.COMMON, description = "收集时间") Date collection,
+							@HttpParam(name = "introduction", type = HttpParamType.COMMON, description = "详细介绍") String introduction,
+							@HttpParam(name = "postion", type = HttpParamType.COMMON, description = "排序") Long postion,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "urlPath", type = HttpParamType.COMMON, description = "附件") String urlPath,
+							@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:gubi:gubiTypeThree:delete",permissionParentName = "宠物管理", permissionName = "分值信息管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:gubi:gubiTypeThree:update",permissionParentName = "宠物管理", permissionName = "分值信息管理")
+	public Boolean update(@NotNull @HttpParam(name = "gubiTypeThree", type = HttpParamType.COMMON, description = "分值信息") GubiTypeThree gubiTypeThree,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:gubi:gubiTypeThree:get",permissionParentName = "宠物管理", permissionName = "分值信息管理")
+	public GubiTypeThree get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:gubi:gubiTypeThree:export",permissionParentName = "宠物管理", permissionName = "分值信息管理")
+	public String export(
+								@HttpParam(name = "companyId", type = HttpParamType.COMMON, description = "") Long companyId,
+							@HttpParam(name = "typeId", type = HttpParamType.COMMON, description = "分类id") String typeId,
+							@HttpParam(name = "secondId", type = HttpParamType.COMMON, description = "二级分类id") String secondId,
+							@HttpParam(name = "product", type = HttpParamType.COMMON, description = "品名") String product,
+							@HttpParam(name = "number", type = HttpParamType.COMMON, description = "官网编号") String number,
+							@HttpParam(name = "year", type = HttpParamType.COMMON, description = "年份") String year,
+							@HttpParam(name = "face", type = HttpParamType.COMMON, description = "面值") String face,
+							@HttpParam(name = "edition", type = HttpParamType.COMMON, description = "版别") String edition,
+							@HttpParam(name = "region", type = HttpParamType.COMMON, description = "地区") String region,
+							@HttpParam(name = "grade", type = HttpParamType.COMMON, description = "分值等级") String grade,
+							@HttpParam(name = "highScores", type = HttpParamType.COMMON, description = "高分数量") String highScores,
+							@HttpParam(name = "collection", type = HttpParamType.COMMON, description = "收集时间") Date collection,
+							@HttpParam(name = "introduction", type = HttpParamType.COMMON, description = "详细介绍") String introduction,
+							@HttpParam(name = "postion", type = HttpParamType.COMMON, description = "排序") Long postion,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "状态") String status,
+							@HttpParam(name = "urlPath", type = HttpParamType.COMMON, description = "附件") String urlPath,
+							@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;
+	
+}

+ 144 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiPriceHisServiceImpl.java

@@ -0,0 +1,144 @@
+package com.iotechn.unimall.admin.api.gubi.impl;
+
+import java.util.List;
+
+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.gubi.GubiPriceHisMapper;
+import com.iotechn.unimall.data.domain.gubi.GubiPriceHis;
+import com.iotechn.unimall.admin.api.gubi.IGubiPriceHisService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 价格历史Service业务层处理
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+@Service
+public class GubiPriceHisServiceImpl implements IGubiPriceHisService{
+	@Autowired
+	private GubiPriceHisMapper gubiPriceHisMapper;
+	
+	@Override
+	public Boolean add(GubiPriceHis gubiPriceHis,Long adminId) throws ServiceException {
+		Date now = new Date();
+		gubiPriceHis.setGmtCreate(now);
+		gubiPriceHis.setGmtUpdate(now);
+		gubiPriceHis.setAdminId(adminId);
+		return gubiPriceHisMapper.insert(gubiPriceHis)>0;
+	}
+
+	@Override
+	public Page<GubiPriceHis> list(Long companyId,String orderId,Date collection,Double price,String status,Long deleteFlag,Date gmtCreate,Date gmtUpdate,Long userId,Long adminId, Integer page, Integer limit)throws ServiceException {
+		Wrapper<GubiPriceHis> wrapper = new EntityWrapper<GubiPriceHis>();
+														if (!StringUtils.isEmpty(companyId)) {
+					wrapper.eq("company_id", companyId);
+				}
+												if (!StringUtils.isEmpty(orderId)) {
+					wrapper.eq("order_id", orderId);
+				}
+												if (!StringUtils.isEmpty(collection)) {
+					wrapper.eq("collection", collection);
+				}
+												if (!StringUtils.isEmpty(price)) {
+					wrapper.eq("price", price);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												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<GubiPriceHis> list = gubiPriceHisMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = gubiPriceHisMapper.selectCount(wrapper);
+		return new Page<GubiPriceHis>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			GubiPriceHis tmp =  gubiPriceHisMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				gubiPriceHisMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(GubiPriceHis gubiPriceHis,Long adminId) throws ServiceException {
+		Date now = new Date();
+		gubiPriceHis.setGmtUpdate(now);
+		gubiPriceHis.setAdminId(adminId);
+		return gubiPriceHisMapper.updateById(gubiPriceHis)>0;
+	}
+
+	@Override
+	public GubiPriceHis get(Long id) throws ServiceException {
+		return gubiPriceHisMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long companyId,String orderId,Date collection,Double price,String status,Long deleteFlag,Date gmtCreate,Date gmtUpdate,Long userId,Long adminId, Integer page, Integer limit)throws ServiceException {
+		Wrapper<GubiPriceHis> wrapper = new EntityWrapper<GubiPriceHis>();
+														if (!StringUtils.isEmpty(companyId)) {
+					wrapper.eq("company_id", companyId);
+				}
+												if (!StringUtils.isEmpty(orderId)) {
+					wrapper.eq("order_id", orderId);
+				}
+												if (!StringUtils.isEmpty(collection)) {
+					wrapper.eq("collection", collection);
+				}
+												if (!StringUtils.isEmpty(price)) {
+					wrapper.eq("price", price);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												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<GubiPriceHis> list = gubiPriceHisMapper.selectList(wrapper);
+		ExcelUtil<GubiPriceHis> util = new ExcelUtil<GubiPriceHis>(GubiPriceHis.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 162 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTransactionServiceImpl.java

@@ -0,0 +1,162 @@
+package com.iotechn.unimall.admin.api.gubi.impl;
+
+import java.util.List;
+
+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.gubi.GubiTransactionMapper;
+import com.iotechn.unimall.data.domain.gubi.GubiTransaction;
+import com.iotechn.unimall.admin.api.gubi.IGubiTransactionService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 交易记录Service业务层处理
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+@Service
+public class GubiTransactionServiceImpl implements IGubiTransactionService{
+	@Autowired
+	private GubiTransactionMapper gubiTransactionMapper;
+	
+	@Override
+	public Boolean add(GubiTransaction gubiTransaction,Long adminId) throws ServiceException {
+		Date now = new Date();
+		gubiTransaction.setGmtCreate(now);
+		gubiTransaction.setGmtUpdate(now);
+		gubiTransaction.setAdminId(adminId);
+		return gubiTransactionMapper.insert(gubiTransaction)>0;
+	}
+
+	@Override
+	public Page<GubiTransaction> list(Long companyId,String orderId,String number,String grade,Date collection,Double price,String status,String urlPath,Long deleteFlag,Date gmtCreate,Date gmtUpdate,Long userId,Long adminId, Integer page, Integer limit)throws ServiceException {
+		Wrapper<GubiTransaction> wrapper = new EntityWrapper<GubiTransaction>();
+														if (!StringUtils.isEmpty(companyId)) {
+					wrapper.eq("company_id", companyId);
+				}
+												if (!StringUtils.isEmpty(orderId)) {
+					wrapper.eq("order_id", orderId);
+				}
+												if (!StringUtils.isEmpty(number)) {
+					wrapper.eq("number", number);
+				}
+												if (!StringUtils.isEmpty(grade)) {
+					wrapper.eq("grade", grade);
+				}
+												if (!StringUtils.isEmpty(collection)) {
+					wrapper.eq("collection", collection);
+				}
+												if (!StringUtils.isEmpty(price)) {
+					wrapper.eq("price", price);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												if (!StringUtils.isEmpty(urlPath)) {
+					wrapper.eq("url_path", urlPath);
+				}
+												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<GubiTransaction> list = gubiTransactionMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = gubiTransactionMapper.selectCount(wrapper);
+		return new Page<GubiTransaction>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			GubiTransaction tmp =  gubiTransactionMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				gubiTransactionMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(GubiTransaction gubiTransaction,Long adminId) throws ServiceException {
+		Date now = new Date();
+		gubiTransaction.setGmtUpdate(now);
+		gubiTransaction.setAdminId(adminId);
+		return gubiTransactionMapper.updateById(gubiTransaction)>0;
+	}
+
+	@Override
+	public GubiTransaction get(Long id) throws ServiceException {
+		return gubiTransactionMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long companyId,String orderId,String number,String grade,Date collection,Double price,String status,String urlPath,Long deleteFlag,Date gmtCreate,Date gmtUpdate,Long userId,Long adminId, Integer page, Integer limit)throws ServiceException {
+		Wrapper<GubiTransaction> wrapper = new EntityWrapper<GubiTransaction>();
+														if (!StringUtils.isEmpty(companyId)) {
+					wrapper.eq("company_id", companyId);
+				}
+												if (!StringUtils.isEmpty(orderId)) {
+					wrapper.eq("order_id", orderId);
+				}
+												if (!StringUtils.isEmpty(number)) {
+					wrapper.eq("number", number);
+				}
+												if (!StringUtils.isEmpty(grade)) {
+					wrapper.eq("grade", grade);
+				}
+												if (!StringUtils.isEmpty(collection)) {
+					wrapper.eq("collection", collection);
+				}
+												if (!StringUtils.isEmpty(price)) {
+					wrapper.eq("price", price);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												if (!StringUtils.isEmpty(urlPath)) {
+					wrapper.eq("url_path", urlPath);
+				}
+												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<GubiTransaction> list = gubiTransactionMapper.selectList(wrapper);
+		ExcelUtil<GubiTransaction> util = new ExcelUtil<GubiTransaction>(GubiTransaction.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 138 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTypeInfoServiceImpl.java

@@ -0,0 +1,138 @@
+package com.iotechn.unimall.admin.api.gubi.impl;
+
+import java.util.List;
+
+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.gubi.GubiTypeInfoMapper;
+import com.iotechn.unimall.data.domain.gubi.GubiTypeInfo;
+import com.iotechn.unimall.admin.api.gubi.IGubiTypeInfoService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 一级分类Service业务层处理
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+@Service
+public class GubiTypeInfoServiceImpl implements IGubiTypeInfoService{
+	@Autowired
+	private GubiTypeInfoMapper gubiTypeInfoMapper;
+	
+	@Override
+	public Boolean add(GubiTypeInfo gubiTypeInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		gubiTypeInfo.setGmtCreate(now);
+		gubiTypeInfo.setGmtUpdate(now);
+		gubiTypeInfo.setAdminId(adminId);
+		return gubiTypeInfoMapper.insert(gubiTypeInfo)>0;
+	}
+
+	@Override
+	public Page<GubiTypeInfo> list(Long companyId,String typeName,Long postion,String status,Long deleteFlag,Date gmtCreate,Date gmtUpdate,Long userId,Long adminId, Integer page, Integer limit)throws ServiceException {
+		Wrapper<GubiTypeInfo> wrapper = new EntityWrapper<GubiTypeInfo>();
+														if (!StringUtils.isEmpty(companyId)) {
+					wrapper.eq("company_id", companyId);
+				}
+												if (!StringUtils.isEmpty(typeName)) {
+					wrapper.eq("type_name", typeName);
+				}
+												if (!StringUtils.isEmpty(postion)) {
+					wrapper.eq("postion", postion);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												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<GubiTypeInfo> list = gubiTypeInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = gubiTypeInfoMapper.selectCount(wrapper);
+		return new Page<GubiTypeInfo>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			GubiTypeInfo tmp =  gubiTypeInfoMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				gubiTypeInfoMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(GubiTypeInfo gubiTypeInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		gubiTypeInfo.setGmtUpdate(now);
+		gubiTypeInfo.setAdminId(adminId);
+		return gubiTypeInfoMapper.updateById(gubiTypeInfo)>0;
+	}
+
+	@Override
+	public GubiTypeInfo get(Long id) throws ServiceException {
+		return gubiTypeInfoMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long companyId,String typeName,Long postion,String status,Long deleteFlag,Date gmtCreate,Date gmtUpdate,Long userId,Long adminId, Integer page, Integer limit)throws ServiceException {
+		Wrapper<GubiTypeInfo> wrapper = new EntityWrapper<GubiTypeInfo>();
+														if (!StringUtils.isEmpty(companyId)) {
+					wrapper.eq("company_id", companyId);
+				}
+												if (!StringUtils.isEmpty(typeName)) {
+					wrapper.eq("type_name", typeName);
+				}
+												if (!StringUtils.isEmpty(postion)) {
+					wrapper.eq("postion", postion);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												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<GubiTypeInfo> list = gubiTypeInfoMapper.selectList(wrapper);
+		ExcelUtil<GubiTypeInfo> util = new ExcelUtil<GubiTypeInfo>(GubiTypeInfo.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 150 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTypeSecondServiceImpl.java

@@ -0,0 +1,150 @@
+package com.iotechn.unimall.admin.api.gubi.impl;
+
+import java.util.List;
+
+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.gubi.GubiTypeSecondMapper;
+import com.iotechn.unimall.data.domain.gubi.GubiTypeSecond;
+import com.iotechn.unimall.admin.api.gubi.IGubiTypeSecondService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 二级分类Service业务层处理
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+@Service
+public class GubiTypeSecondServiceImpl implements IGubiTypeSecondService{
+	@Autowired
+	private GubiTypeSecondMapper gubiTypeSecondMapper;
+	
+	@Override
+	public Boolean add(GubiTypeSecond gubiTypeSecond,Long adminId) throws ServiceException {
+		Date now = new Date();
+		gubiTypeSecond.setGmtCreate(now);
+		gubiTypeSecond.setGmtUpdate(now);
+		gubiTypeSecond.setAdminId(adminId);
+		return gubiTypeSecondMapper.insert(gubiTypeSecond)>0;
+	}
+
+	@Override
+	public Page<GubiTypeSecond> list(Long companyId,String typeId,String secondName,Long postion,String status,String urlPath,Long deleteFlag,Date gmtCreate,Date gmtUpdate,Long userId,Long adminId, Integer page, Integer limit)throws ServiceException {
+		Wrapper<GubiTypeSecond> wrapper = new EntityWrapper<GubiTypeSecond>();
+														if (!StringUtils.isEmpty(companyId)) {
+					wrapper.eq("company_id", companyId);
+				}
+												if (!StringUtils.isEmpty(typeId)) {
+					wrapper.eq("type_id", typeId);
+				}
+												if (!StringUtils.isEmpty(secondName)) {
+					wrapper.eq("second_name", secondName);
+				}
+												if (!StringUtils.isEmpty(postion)) {
+					wrapper.eq("postion", postion);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												if (!StringUtils.isEmpty(urlPath)) {
+					wrapper.eq("url_path", urlPath);
+				}
+												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<GubiTypeSecond> list = gubiTypeSecondMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = gubiTypeSecondMapper.selectCount(wrapper);
+		return new Page<GubiTypeSecond>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			GubiTypeSecond tmp =  gubiTypeSecondMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				gubiTypeSecondMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(GubiTypeSecond gubiTypeSecond,Long adminId) throws ServiceException {
+		Date now = new Date();
+		gubiTypeSecond.setGmtUpdate(now);
+		gubiTypeSecond.setAdminId(adminId);
+		return gubiTypeSecondMapper.updateById(gubiTypeSecond)>0;
+	}
+
+	@Override
+	public GubiTypeSecond get(Long id) throws ServiceException {
+		return gubiTypeSecondMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long companyId,String typeId,String secondName,Long postion,String status,String urlPath,Long deleteFlag,Date gmtCreate,Date gmtUpdate,Long userId,Long adminId, Integer page, Integer limit)throws ServiceException {
+		Wrapper<GubiTypeSecond> wrapper = new EntityWrapper<GubiTypeSecond>();
+														if (!StringUtils.isEmpty(companyId)) {
+					wrapper.eq("company_id", companyId);
+				}
+												if (!StringUtils.isEmpty(typeId)) {
+					wrapper.eq("type_id", typeId);
+				}
+												if (!StringUtils.isEmpty(secondName)) {
+					wrapper.eq("second_name", secondName);
+				}
+												if (!StringUtils.isEmpty(postion)) {
+					wrapper.eq("postion", postion);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												if (!StringUtils.isEmpty(urlPath)) {
+					wrapper.eq("url_path", urlPath);
+				}
+												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<GubiTypeSecond> list = gubiTypeSecondMapper.selectList(wrapper);
+		ExcelUtil<GubiTypeSecond> util = new ExcelUtil<GubiTypeSecond>(GubiTypeSecond.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 212 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/gubi/impl/GubiTypeThreeServiceImpl.java

@@ -0,0 +1,212 @@
+package com.iotechn.unimall.admin.api.gubi.impl;
+
+import java.util.List;
+
+import com.iotechn.unimall.admin.api.gubi.IGubiTypeThreeService;
+import com.iotechn.unimall.data.domain.gubi.GubiTypeThree;
+import com.iotechn.unimall.data.mapper.gubi.GubiTypeThreeMapper;
+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-15
+ */
+@Service
+public class GubiTypeThreeServiceImpl implements IGubiTypeThreeService {
+    @Autowired
+    private GubiTypeThreeMapper gubiTypeThreeMapper;
+
+    @Override
+    public Boolean add(GubiTypeThree gubiTypeThree, Long adminId) throws ServiceException {
+        Date now = new Date();
+        gubiTypeThree.setGmtCreate(now);
+        gubiTypeThree.setGmtUpdate(now);
+        gubiTypeThree.setAdminId(adminId);
+        return gubiTypeThreeMapper.insert(gubiTypeThree) > 0;
+    }
+
+    @Override
+    public Page<GubiTypeThree> list(Long companyId, String typeId, String secondId, String product, String number, String year, String face, String edition, String region, String grade, String highScores, Date collection, String introduction, Long postion, String status, String urlPath, Long deleteFlag, Date gmtCreate, Date gmtUpdate, Long userId, Long adminId, Integer page, Integer limit) throws ServiceException {
+        Wrapper<GubiTypeThree> wrapper = new EntityWrapper<GubiTypeThree>();
+        if (!StringUtils.isEmpty(companyId)) {
+            wrapper.eq("company_id", companyId);
+        }
+        if (!StringUtils.isEmpty(typeId)) {
+            wrapper.eq("type_id", typeId);
+        }
+        if (!StringUtils.isEmpty(secondId)) {
+            wrapper.eq("second_id", secondId);
+        }
+        if (!StringUtils.isEmpty(product)) {
+            wrapper.eq("product", product);
+        }
+        if (!StringUtils.isEmpty(number)) {
+            wrapper.eq("number", number);
+        }
+        if (!StringUtils.isEmpty(year)) {
+            wrapper.eq("year", year);
+        }
+        if (!StringUtils.isEmpty(face)) {
+            wrapper.eq("face", face);
+        }
+        if (!StringUtils.isEmpty(edition)) {
+            wrapper.eq("edition", edition);
+        }
+        if (!StringUtils.isEmpty(region)) {
+            wrapper.eq("region", region);
+        }
+        if (!StringUtils.isEmpty(grade)) {
+            wrapper.eq("grade", grade);
+        }
+        if (!StringUtils.isEmpty(highScores)) {
+            wrapper.eq("high_scores", highScores);
+        }
+        if (!StringUtils.isEmpty(collection)) {
+            wrapper.eq("collection", collection);
+        }
+        if (!StringUtils.isEmpty(introduction)) {
+            wrapper.eq("introduction", introduction);
+        }
+        if (!StringUtils.isEmpty(postion)) {
+            wrapper.eq("postion", postion);
+        }
+        if (!StringUtils.isEmpty(status)) {
+            wrapper.eq("status", status);
+        }
+        if (!StringUtils.isEmpty(urlPath)) {
+            wrapper.eq("url_path", urlPath);
+        }
+        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<GubiTypeThree> list = gubiTypeThreeMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+        Integer count = gubiTypeThreeMapper.selectCount(wrapper);
+        return new Page<GubiTypeThree>(list, page, limit, count);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(String id) {
+        String[] ids = String.valueOf(id).split(",");
+        for (String tt : ids) {
+            GubiTypeThree tmp = gubiTypeThreeMapper.selectById(Long.parseLong(tt));
+            if (tmp != null) {
+                tmp.setDeleteFlag(1l);
+                gubiTypeThreeMapper.updateById(tmp);
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public Boolean update(GubiTypeThree gubiTypeThree, Long adminId) throws ServiceException {
+        Date now = new Date();
+        gubiTypeThree.setGmtUpdate(now);
+        gubiTypeThree.setAdminId(adminId);
+        return gubiTypeThreeMapper.updateById(gubiTypeThree) > 0;
+    }
+
+    @Override
+    public GubiTypeThree get(Long id) throws ServiceException {
+        return gubiTypeThreeMapper.selectById(id);
+    }
+
+    @Override
+    public String export(Long companyId, String typeId, String secondId, String product, String number, String year, String face, String edition, String region, String grade, String highScores, Date collection, String introduction, Long postion, String status, String urlPath, Long deleteFlag, Date gmtCreate, Date gmtUpdate, Long userId, Long adminId, Integer page, Integer limit) throws ServiceException {
+        Wrapper<GubiTypeThree> wrapper = new EntityWrapper<GubiTypeThree>();
+        if (!StringUtils.isEmpty(companyId)) {
+            wrapper.eq("company_id", companyId);
+        }
+        if (!StringUtils.isEmpty(typeId)) {
+            wrapper.eq("type_id", typeId);
+        }
+        if (!StringUtils.isEmpty(secondId)) {
+            wrapper.eq("second_id", secondId);
+        }
+        if (!StringUtils.isEmpty(product)) {
+            wrapper.eq("product", product);
+        }
+        if (!StringUtils.isEmpty(number)) {
+            wrapper.eq("number", number);
+        }
+        if (!StringUtils.isEmpty(year)) {
+            wrapper.eq("year", year);
+        }
+        if (!StringUtils.isEmpty(face)) {
+            wrapper.eq("face", face);
+        }
+        if (!StringUtils.isEmpty(edition)) {
+            wrapper.eq("edition", edition);
+        }
+        if (!StringUtils.isEmpty(region)) {
+            wrapper.eq("region", region);
+        }
+        if (!StringUtils.isEmpty(grade)) {
+            wrapper.eq("grade", grade);
+        }
+        if (!StringUtils.isEmpty(highScores)) {
+            wrapper.eq("high_scores", highScores);
+        }
+        if (!StringUtils.isEmpty(collection)) {
+            wrapper.eq("collection", collection);
+        }
+        if (!StringUtils.isEmpty(introduction)) {
+            wrapper.eq("introduction", introduction);
+        }
+        if (!StringUtils.isEmpty(postion)) {
+            wrapper.eq("postion", postion);
+        }
+        if (!StringUtils.isEmpty(status)) {
+            wrapper.eq("status", status);
+        }
+        if (!StringUtils.isEmpty(urlPath)) {
+            wrapper.eq("url_path", urlPath);
+        }
+        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<GubiTypeThree> list = gubiTypeThreeMapper.selectList(wrapper);
+        ExcelUtil<GubiTypeThree> util = new ExcelUtil<GubiTypeThree>(GubiTypeThree.class);
+        return util.exportExcel(list, "操作日志");
+    }
+}

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
unimall-admin/dist/index.html


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 0 - 0
unimall-admin/dist/static/js/chunk-3f3d.6fb8e198.js


+ 1 - 1
unimall-admin/index.html

@@ -5,7 +5,7 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     <meta name="renderer" content="webkit">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
-    <title>电商后台管理</title>
+    <title>后台管理</title>
   </head>
   <body>
     <script src=<%= BASE_URL %>/tinymce4.7.5/tinymce.min.js></script>

+ 73 - 0
unimall-admin/src/api/gubi/info.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询一级分类列表
+export function listInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTypeInfo',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询一级分类详细
+export function getInfo(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTypeInfo',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增一级分类
+export function addInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTypeInfo',
+      _mt: 'add',
+      gubiTypeInfo: data
+    }
+  })
+}
+
+// 修改一级分类
+export function updateInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTypeInfo',
+      _mt: 'update',
+      gubiTypeInfo: data
+    }
+  })
+}
+
+// 删除一级分类
+export function delInfo(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTypeInfo',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出一级分类
+export function exportInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTypeInfo',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/gubi/priceHis.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询价格历史列表
+export function listPriceHis(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiPriceHis',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询价格历史详细
+export function getPriceHis(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiPriceHis',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增价格历史
+export function addPriceHis(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiPriceHis',
+      _mt: 'add',
+      gubiPriceHis: data
+    }
+  })
+}
+
+// 修改价格历史
+export function updatePriceHis(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiPriceHis',
+      _mt: 'update',
+      gubiPriceHis: data
+    }
+  })
+}
+
+// 删除价格历史
+export function delPriceHis(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiPriceHis',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出价格历史
+export function exportPriceHis(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiPriceHis',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/gubi/second.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询二级分类列表
+export function listSecond(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTypeSecond',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询二级分类详细
+export function getSecond(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTypeSecond',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增二级分类
+export function addSecond(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTypeSecond',
+      _mt: 'add',
+      gubiTypeSecond: data
+    }
+  })
+}
+
+// 修改二级分类
+export function updateSecond(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTypeSecond',
+      _mt: 'update',
+      gubiTypeSecond: data
+    }
+  })
+}
+
+// 删除二级分类
+export function delSecond(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTypeSecond',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出二级分类
+export function exportSecond(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTypeSecond',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/gubi/three.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询分值信息列表
+export function listThree(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTypeThree',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询分值信息详细
+export function getThree(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTypeThree',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增分值信息
+export function addThree(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTypeThree',
+      _mt: 'add',
+      gubiTypeThree: data
+    }
+  })
+}
+
+// 修改分值信息
+export function updateThree(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTypeThree',
+      _mt: 'update',
+      gubiTypeThree: data
+    }
+  })
+}
+
+// 删除分值信息
+export function delThree(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTypeThree',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出分值信息
+export function exportThree(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTypeThree',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/gubi/transaction.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询交易记录列表
+export function listTransaction(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTransaction',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询交易记录详细
+export function getTransaction(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTransaction',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增交易记录
+export function addTransaction(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTransaction',
+      _mt: 'add',
+      gubiTransaction: data
+    }
+  })
+}
+
+// 修改交易记录
+export function updateTransaction(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTransaction',
+      _mt: 'update',
+      gubiTransaction: data
+    }
+  })
+}
+
+// 删除交易记录
+export function delTransaction(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.gubi.gubiTransaction',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出交易记录
+export function exportTransaction(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.gubi.gubiTransaction',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 393 - 0
unimall-admin/src/views/gubi/info/index.vue

@@ -0,0 +1,393 @@
+<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="typeName">
+        <el-input
+          v-model="queryParams.typeName"
+          placeholder="请输入分类"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="排序" prop="postion">
+        <el-input
+          v-model="queryParams.postion"
+          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="['gubi:info: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="['gubi:info: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="['gubi:info:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['gubi:info:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="infoList" @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="typeName" />
+      <el-table-column label="排序" align="center" prop="postion" />
+      <el-table-column label="状态" align="center" prop="status" />
+      <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="['gubi:info:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['gubi:info: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="typeName">
+          <el-input v-model="form.typeName" placeholder="请输入分类" />
+        </el-form-item>
+        <el-form-item label="排序" prop="postion">
+          <el-input v-model="form.postion" 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="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 { listInfo, getInfo, delInfo, addInfo, updateInfo, exportInfo } from "@/api/gubi/info";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 一级分类表格数据
+      infoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        companyId: undefined,
+        typeName: undefined,
+        postion: undefined,
+        status: 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;
+      listInfo(this.queryParams).then(response => {
+        this.infoList = 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,
+        typeName: undefined,
+        postion: undefined,
+        status: "0",
+        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(',')
+      getInfo(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) {
+            updateInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addInfo(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 delInfo(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有一级分类数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportInfo(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 416 - 0
unimall-admin/src/views/gubi/priceHis/index.vue

@@ -0,0 +1,416 @@
+<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="分值id" prop="orderId">
+        <el-input
+          v-model="queryParams.orderId"
+          placeholder="请输入分值id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="时间" prop="collection">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.collection"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择时间">
+        </el-date-picker>
+      </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="['gubi:priceHis: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="['gubi:priceHis: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="['gubi:priceHis:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['gubi:priceHis:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="priceHisList" @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="分值id" align="center" prop="orderId" />
+      <el-table-column label="时间" align="center" prop="collection" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.collection) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="价钱" align="center" prop="price" />
+      <el-table-column label="状态" align="center" prop="status" />
+      <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="['gubi:priceHis:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['gubi:priceHis: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="分值id" prop="orderId">
+          <el-input v-model="form.orderId" placeholder="请输入分值id" />
+        </el-form-item>
+        <el-form-item label="时间" prop="collection">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.collection"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择时间">
+          </el-date-picker>
+        </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="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 { listPriceHis, getPriceHis, delPriceHis, addPriceHis, updatePriceHis, exportPriceHis } from "@/api/gubi/priceHis";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 价格历史表格数据
+      priceHisList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        companyId: undefined,
+        orderId: undefined,
+        collection: undefined,
+        price: undefined,
+        status: 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;
+      listPriceHis(this.queryParams).then(response => {
+        this.priceHisList = 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,
+        orderId: undefined,
+        collection: undefined,
+        price: undefined,
+        status: "0",
+        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(',')
+      getPriceHis(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) {
+            updatePriceHis(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addPriceHis(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 delPriceHis(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有价格历史数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPriceHis(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 414 - 0
unimall-admin/src/views/gubi/second/index.vue

@@ -0,0 +1,414 @@
+<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="分类id" prop="typeId">
+        <el-input
+          v-model="queryParams.typeId"
+          placeholder="请输入分类id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="二级分类型" prop="secondName">
+        <el-input
+          v-model="queryParams.secondName"
+          placeholder="请输入二级分类型"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="排序" prop="postion">
+        <el-input
+          v-model="queryParams.postion"
+          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="['gubi:second: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="['gubi:second: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="['gubi:second:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['gubi:second:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="secondList" @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="分类id" align="center" prop="typeId" />
+      <el-table-column label="二级分类型" align="center" prop="secondName" />
+      <el-table-column label="排序" align="center" prop="postion" />
+      <el-table-column label="状态" align="center" prop="status" />
+      <el-table-column label="附件" align="center" prop="urlPath" />
+      <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="['gubi:second:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['gubi:second: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="分类id" prop="typeId">
+          <el-input v-model="form.typeId" placeholder="请输入分类id" />
+        </el-form-item>
+        <el-form-item label="二级分类型" prop="secondName">
+          <el-input v-model="form.secondName" placeholder="请输入二级分类型" />
+        </el-form-item>
+        <el-form-item label="排序" prop="postion">
+          <el-input v-model="form.postion" 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="附件" prop="urlPath">
+          <el-input v-model="form.urlPath" 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 { listSecond, getSecond, delSecond, addSecond, updateSecond, exportSecond } from "@/api/gubi/second";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 二级分类表格数据
+      secondList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        companyId: undefined,
+        typeId: undefined,
+        secondName: undefined,
+        postion: undefined,
+        status: undefined,
+        urlPath: 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;
+      listSecond(this.queryParams).then(response => {
+        this.secondList = 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,
+        typeId: undefined,
+        secondName: undefined,
+        postion: undefined,
+        status: "0",
+        urlPath: 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(',')
+      getSecond(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) {
+            updateSecond(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addSecond(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 delSecond(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有二级分类数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportSecond(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 572 - 0
unimall-admin/src/views/gubi/three/index.vue

@@ -0,0 +1,572 @@
+<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="分类id" prop="typeId">
+        <el-input
+          v-model="queryParams.typeId"
+          placeholder="请输入分类id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="二级分类id" prop="secondId">
+        <el-input
+          v-model="queryParams.secondId"
+          placeholder="请输入二级分类id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="品名" prop="product">
+        <el-input
+          v-model="queryParams.product"
+          placeholder="请输入品名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="官网编号" prop="number">
+        <el-input
+          v-model="queryParams.number"
+          placeholder="请输入官网编号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="年份" prop="year">
+        <el-input
+          v-model="queryParams.year"
+          placeholder="请输入年份"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="面值" prop="face">
+        <el-input
+          v-model="queryParams.face"
+          placeholder="请输入面值"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="版别" prop="edition">
+        <el-input
+          v-model="queryParams.edition"
+          placeholder="请输入版别"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="地区" prop="region">
+        <el-input
+          v-model="queryParams.region"
+          placeholder="请输入地区"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="分值等级" prop="grade">
+        <el-input
+          v-model="queryParams.grade"
+          placeholder="请输入分值等级"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="高分数量" prop="highScores">
+        <el-input
+          v-model="queryParams.highScores"
+          placeholder="请输入高分数量"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="收集时间" prop="collection">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.collection"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择收集时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="详细介绍" prop="introduction">
+        <el-input
+          v-model="queryParams.introduction"
+          placeholder="请输入详细介绍"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="排序" prop="postion">
+        <el-input
+          v-model="queryParams.postion"
+          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="['gubi:three: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="['gubi:three: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="['gubi:three:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['gubi:three:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="threeList" @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="分类id" align="center" prop="typeId" />
+      <el-table-column label="二级分类id" align="center" prop="secondId" />
+      <el-table-column label="品名" align="center" prop="product" />
+      <el-table-column label="官网编号" align="center" prop="number" />
+      <el-table-column label="年份" align="center" prop="year" />
+      <el-table-column label="面值" align="center" prop="face" />
+      <el-table-column label="版别" align="center" prop="edition" />
+      <el-table-column label="地区" align="center" prop="region" />
+      <el-table-column label="分值等级" align="center" prop="grade" />
+      <el-table-column label="高分数量" align="center" prop="highScores" />
+      <el-table-column label="收集时间" align="center" prop="collection" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.collection) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="详细介绍" align="center" prop="introduction" />
+      <el-table-column label="排序" align="center" prop="postion" />
+      <el-table-column label="状态" align="center" prop="status" />
+      <el-table-column label="附件" align="center" prop="urlPath" />
+      <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="['gubi:three:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['gubi:three: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="分类id" prop="typeId">
+          <el-input v-model="form.typeId" placeholder="请输入分类id" />
+        </el-form-item>
+        <el-form-item label="二级分类id" prop="secondId">
+          <el-input v-model="form.secondId" placeholder="请输入二级分类id" />
+        </el-form-item>
+        <el-form-item label="品名" prop="product">
+          <el-input v-model="form.product" placeholder="请输入品名" />
+        </el-form-item>
+        <el-form-item label="官网编号" prop="number">
+          <el-input v-model="form.number" placeholder="请输入官网编号" />
+        </el-form-item>
+        <el-form-item label="年份" prop="year">
+          <el-input v-model="form.year" placeholder="请输入年份" />
+        </el-form-item>
+        <el-form-item label="面值" prop="face">
+          <el-input v-model="form.face" placeholder="请输入面值" />
+        </el-form-item>
+        <el-form-item label="版别" prop="edition">
+          <el-input v-model="form.edition" placeholder="请输入版别" />
+        </el-form-item>
+        <el-form-item label="地区" prop="region">
+          <el-input v-model="form.region" placeholder="请输入地区" />
+        </el-form-item>
+        <el-form-item label="分值等级" prop="grade">
+          <el-input v-model="form.grade" placeholder="请输入分值等级" />
+        </el-form-item>
+        <el-form-item label="高分数量" prop="highScores">
+          <el-input v-model="form.highScores" placeholder="请输入高分数量" />
+        </el-form-item>
+        <el-form-item label="收集时间" prop="collection">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.collection"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择收集时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="详细介绍" prop="introduction">
+          <el-input v-model="form.introduction" placeholder="请输入详细介绍" />
+        </el-form-item>
+        <el-form-item label="排序" prop="postion">
+          <el-input v-model="form.postion" 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="附件" prop="urlPath">
+          <el-input v-model="form.urlPath" 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 { listThree, getThree, delThree, addThree, updateThree, exportThree } from "@/api/gubi/three";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 分值信息表格数据
+      threeList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        companyId: undefined,
+        typeId: undefined,
+        secondId: undefined,
+        product: undefined,
+        number: undefined,
+        year: undefined,
+        face: undefined,
+        edition: undefined,
+        region: undefined,
+        grade: undefined,
+        highScores: undefined,
+        collection: undefined,
+        introduction: undefined,
+        postion: undefined,
+        status: undefined,
+        urlPath: 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;
+      listThree(this.queryParams).then(response => {
+        this.threeList = 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,
+        typeId: undefined,
+        secondId: undefined,
+        product: undefined,
+        number: undefined,
+        year: undefined,
+        face: undefined,
+        edition: undefined,
+        region: undefined,
+        grade: undefined,
+        highScores: undefined,
+        collection: undefined,
+        introduction: undefined,
+        postion: undefined,
+        status: "0",
+        urlPath: 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(',')
+      getThree(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) {
+            updateThree(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addThree(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 delThree(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有分值信息数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportThree(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 452 - 0
unimall-admin/src/views/gubi/transaction/index.vue

@@ -0,0 +1,452 @@
+<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="分值id" prop="orderId">
+        <el-input
+          v-model="queryParams.orderId"
+          placeholder="请输入分值id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="编号" prop="number">
+        <el-input
+          v-model="queryParams.number"
+          placeholder="请输入编号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="分值等级" prop="grade">
+        <el-input
+          v-model="queryParams.grade"
+          placeholder="请输入分值等级"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="时间" prop="collection">
+        <el-date-picker clearable size="small" style="width: 200px"
+          v-model="queryParams.collection"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="选择时间">
+        </el-date-picker>
+      </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="['gubi:transaction: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="['gubi:transaction: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="['gubi:transaction:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['gubi:transaction:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="transactionList" @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="分值id" align="center" prop="orderId" />
+      <el-table-column label="编号" align="center" prop="number" />
+      <el-table-column label="分值等级" align="center" prop="grade" />
+      <el-table-column label="时间" align="center" prop="collection" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.collection) }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="价钱" align="center" prop="price" />
+      <el-table-column label="状态" align="center" prop="status" />
+      <el-table-column label="附件" align="center" prop="urlPath" />
+      <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="['gubi:transaction:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['gubi:transaction: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="分值id" prop="orderId">
+          <el-input v-model="form.orderId" placeholder="请输入分值id" />
+        </el-form-item>
+        <el-form-item label="编号" prop="number">
+          <el-input v-model="form.number" placeholder="请输入编号" />
+        </el-form-item>
+        <el-form-item label="分值等级" prop="grade">
+          <el-input v-model="form.grade" placeholder="请输入分值等级" />
+        </el-form-item>
+        <el-form-item label="时间" prop="collection">
+          <el-date-picker clearable size="small" style="width: 200px"
+            v-model="form.collection"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="选择时间">
+          </el-date-picker>
+        </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="附件" prop="urlPath">
+          <el-input v-model="form.urlPath" 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 { listTransaction, getTransaction, delTransaction, addTransaction, updateTransaction, exportTransaction } from "@/api/gubi/transaction";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 交易记录表格数据
+      transactionList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        companyId: undefined,
+        orderId: undefined,
+        number: undefined,
+        grade: undefined,
+        collection: undefined,
+        price: undefined,
+        status: undefined,
+        urlPath: 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;
+      listTransaction(this.queryParams).then(response => {
+        this.transactionList = 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,
+        orderId: undefined,
+        number: undefined,
+        grade: undefined,
+        collection: undefined,
+        price: undefined,
+        status: "0",
+        urlPath: 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(',')
+      getTransaction(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) {
+            updateTransaction(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addTransaction(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 delTransaction(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有交易记录数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportTransaction(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 1 - 1
unimall-admin/src/views/login/index.vue

@@ -11,7 +11,7 @@
           class="img"
           src="@/assets/avatar.png"
           alt="">
-        <p class="title">电商后台登录</p>
+        <p class="title">后台登录</p>
       </div>
       <div class="login-border">
         <div class="login-main">

+ 98 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiPriceHis.java

@@ -0,0 +1,98 @@
+package com.iotechn.unimall.data.domain.gubi;
+
+import com.iotechn.unimall.data.domain.SuperDO;
+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;
+
+/**
+ * 价格历史对象 gubi_price_his
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+@Data
+@TableName("gubi_price_his")
+public class GubiPriceHis extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("company_id")
+    private Long companyId;
+
+    /** 分值id */
+    @Excel(name = "分值id")
+    @TableField("order_id")
+    private String orderId;
+
+    /** 时间 */
+    @Excel(name = "时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("collection")
+    private Date collection;
+
+    /** 价钱 */
+    @Excel(name = "价钱")
+    @TableField("price")
+    private Double price;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    @TableField("status")
+    private String status;
+
+    /** 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("orderId", getOrderId())
+            .append("collection", getCollection())
+            .append("price", getPrice())
+            .append("status", getStatus())
+            .append("deleteFlag", getDeleteFlag())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("userId", getUserId())
+            .append("adminId", getAdminId())
+            .toString();
+    }
+}

+ 116 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiTransaction.java

@@ -0,0 +1,116 @@
+package com.iotechn.unimall.data.domain.gubi;
+
+import com.iotechn.unimall.data.domain.SuperDO;
+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;
+
+/**
+ * 交易记录对象 gubi_transaction
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+@Data
+@TableName("gubi_transaction")
+public class GubiTransaction extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("company_id")
+    private Long companyId;
+
+    /** 分值id */
+    @Excel(name = "分值id")
+    @TableField("order_id")
+    private String orderId;
+
+    /** 编号 */
+    @Excel(name = "编号")
+    @TableField("number")
+    private String number;
+
+    /** 分值等级 */
+    @Excel(name = "分值等级")
+    @TableField("grade")
+    private String grade;
+
+    /** 时间 */
+    @Excel(name = "时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("collection")
+    private Date collection;
+
+    /** 价钱 */
+    @Excel(name = "价钱")
+    @TableField("price")
+    private Double price;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    @TableField("status")
+    private String status;
+
+    /** 附件 */
+    @Excel(name = "附件")
+    @TableField("url_path")
+    private String urlPath;
+
+    /** 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("orderId", getOrderId())
+            .append("number", getNumber())
+            .append("grade", getGrade())
+            .append("collection", getCollection())
+            .append("price", getPrice())
+            .append("status", getStatus())
+            .append("urlPath", getUrlPath())
+            .append("deleteFlag", getDeleteFlag())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("userId", getUserId())
+            .append("adminId", getAdminId())
+            .toString();
+    }
+}

+ 92 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiTypeInfo.java

@@ -0,0 +1,92 @@
+package com.iotechn.unimall.data.domain.gubi;
+
+import com.iotechn.unimall.data.domain.SuperDO;
+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;
+
+/**
+ * 一级分类对象 gubi_type_info
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+@Data
+@TableName("gubi_type_info")
+public class GubiTypeInfo extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("company_id")
+    private Long companyId;
+
+    /** 分类 */
+    @Excel(name = "分类")
+    @TableField("type_name")
+    private String typeName;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    @TableField("postion")
+    private Long postion;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    @TableField("status")
+    private String status;
+
+    /** 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("typeName", getTypeName())
+            .append("postion", getPostion())
+            .append("status", getStatus())
+            .append("deleteFlag", getDeleteFlag())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("userId", getUserId())
+            .append("adminId", getAdminId())
+            .toString();
+    }
+}

+ 104 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiTypeSecond.java

@@ -0,0 +1,104 @@
+package com.iotechn.unimall.data.domain.gubi;
+
+import com.iotechn.unimall.data.domain.SuperDO;
+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;
+
+/**
+ * 二级分类对象 gubi_type_second
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+@Data
+@TableName("gubi_type_second")
+public class GubiTypeSecond extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("company_id")
+    private Long companyId;
+
+    /** 分类id */
+    @Excel(name = "分类id")
+    @TableField("type_id")
+    private String typeId;
+
+    /** 二级分类型 */
+    @Excel(name = "二级分类型")
+    @TableField("second_name")
+    private String secondName;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    @TableField("postion")
+    private Long postion;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    @TableField("status")
+    private String status;
+
+    /** 附件 */
+    @Excel(name = "附件")
+    @TableField("url_path")
+    private String urlPath;
+
+    /** 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("typeId", getTypeId())
+            .append("secondName", getSecondName())
+            .append("postion", getPostion())
+            .append("status", getStatus())
+            .append("urlPath", getUrlPath())
+            .append("deleteFlag", getDeleteFlag())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("userId", getUserId())
+            .append("adminId", getAdminId())
+            .toString();
+    }
+}

+ 164 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/gubi/GubiTypeThree.java

@@ -0,0 +1,164 @@
+package com.iotechn.unimall.data.domain.gubi;
+
+import com.iotechn.unimall.data.domain.SuperDO;
+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;
+
+/**
+ * 分值信息对象 gubi_type_three
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+@Data
+@TableName("gubi_type_three")
+public class GubiTypeThree extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /**  */
+    @Excel(name = "")
+    @TableField("company_id")
+    private Long companyId;
+
+    /** 分类id */
+    @Excel(name = "分类id")
+    @TableField("type_id")
+    private String typeId;
+
+    /** 二级分类id */
+    @Excel(name = "二级分类id")
+    @TableField("second_id")
+    private String secondId;
+
+    /** 品名 */
+    @Excel(name = "品名")
+    @TableField("product")
+    private String product;
+
+    /** 官网编号 */
+    @Excel(name = "官网编号")
+    @TableField("number")
+    private String number;
+
+    /** 年份 */
+    @Excel(name = "年份")
+    @TableField("year")
+    private String year;
+
+    /** 面值 */
+    @Excel(name = "面值")
+    @TableField("face")
+    private String face;
+
+    /** 版别 */
+    @Excel(name = "版别")
+    @TableField("edition")
+    private String edition;
+
+    /** 地区 */
+    @Excel(name = "地区")
+    @TableField("region")
+    private String region;
+
+    /** 分值等级 */
+    @Excel(name = "分值等级")
+    @TableField("grade")
+    private String grade;
+
+    /** 高分数量 */
+    @Excel(name = "高分数量")
+    @TableField("high_scores")
+    private String highScores;
+
+    /** 收集时间 */
+    @Excel(name = "收集时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @TableField("collection")
+    private Date collection;
+
+    /** 详细介绍 */
+    @Excel(name = "详细介绍")
+    @TableField("introduction")
+    private String introduction;
+
+    /** 排序 */
+    @Excel(name = "排序")
+    @TableField("postion")
+    private Long postion;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    @TableField("status")
+    private String status;
+
+    /** 附件 */
+    @Excel(name = "附件")
+    @TableField("url_path")
+    private String urlPath;
+
+    /** 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("typeId", getTypeId())
+            .append("secondId", getSecondId())
+            .append("product", getProduct())
+            .append("number", getNumber())
+            .append("year", getYear())
+            .append("face", getFace())
+            .append("edition", getEdition())
+            .append("region", getRegion())
+            .append("grade", getGrade())
+            .append("highScores", getHighScores())
+            .append("collection", getCollection())
+            .append("introduction", getIntroduction())
+            .append("postion", getPostion())
+            .append("status", getStatus())
+            .append("urlPath", getUrlPath())
+            .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/gubi/GubiPriceHisMapper.java

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.gubi;
+
+import com.iotechn.unimall.data.domain.gubi.GubiPriceHis;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 价格历史Mapper接口
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+public interface GubiPriceHisMapper extends BaseMapper<GubiPriceHis>{
+
+}

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

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.gubi;
+
+import com.iotechn.unimall.data.domain.gubi.GubiTransaction;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 交易记录Mapper接口
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+public interface GubiTransactionMapper extends BaseMapper<GubiTransaction>{
+
+}

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

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.gubi;
+
+import com.iotechn.unimall.data.domain.gubi.GubiTypeInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 一级分类Mapper接口
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+public interface GubiTypeInfoMapper extends BaseMapper<GubiTypeInfo>{
+
+}

+ 14 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/mapper/gubi/GubiTypeSecondMapper.java

@@ -0,0 +1,14 @@
+package com.iotechn.unimall.data.mapper.gubi;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.iotechn.unimall.data.domain.gubi.GubiTypeSecond;
+
+/**
+ * 二级分类Mapper接口
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+public interface GubiTypeSecondMapper extends BaseMapper<GubiTypeSecond>{
+
+}

+ 14 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/mapper/gubi/GubiTypeThreeMapper.java

@@ -0,0 +1,14 @@
+package com.iotechn.unimall.data.mapper.gubi;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.iotechn.unimall.data.domain.gubi.GubiTypeThree;
+
+/**
+ * 分值信息Mapper接口
+ * 
+ * @author jlb
+ * @date 2022-11-15
+ */
+public interface GubiTypeThreeMapper extends BaseMapper<GubiTypeThree>{
+
+}

+ 9 - 0
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/gubi/GubiPriceHisMapper.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.gubi.GubiPriceHisMapper">
+    
+
+
+</mapper>

+ 9 - 0
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/gubi/GubiTransactionMapper.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.gubi.GubiTransactionMapper">
+    
+
+
+</mapper>

+ 9 - 0
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/gubi/GubiTypeInfoMapper.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.gubi.GubiTypeInfoMapper">
+    
+
+
+</mapper>

+ 9 - 0
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/gubi/GubiTypeSecondMapper.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.gubi.GubiTypeSecondMapper">
+    
+
+
+</mapper>

+ 9 - 0
unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/gubi/GubiTypeThreeMapper.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.gubi.GubiTypeThreeMapper">
+    
+
+
+</mapper>

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

@@ -121,5 +121,5 @@
 <!--			AND lower(table_comment) like lower(concat('%', #{tableComment}, '%'))-->
 <!--		</if>-->
 <!--	</select>-->
-	
+<!--	-->
 </mapper>

+ 1 - 1
unimall-launcher/src/main/resources/application.properties

@@ -10,7 +10,7 @@ logging.level.root=info
 ###MySql (MySqlConfiguration)
 ########################################################
 spring.druid.driverClassName=com.mysql.jdbc.Driver
-spring.druid.url=jdbc:mysql://123.56.171.94/gubi_prod?createDatabaseIfNotExist=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&useSSL=false
+spring.druid.url=jdbc:mysql://123.56.171.94/gb_prod?createDatabaseIfNotExist=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true&useSSL=false
 spring.druid.username=root
 spring.druid.password=B27czfiN3ZeLLxL6
 spring.druid.maxActive=30

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů