zhangyuewww hace 2 años
padre
commit
2ac4692358
Se han modificado 65 ficheros con 6854 adiciones y 1 borrados
  1. 59 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICardClassifyInfoService.java
  2. 59 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICardHolderInfoService.java
  3. 73 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICardManagementInfoService.java
  4. 59 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICertificateManagementInfoService.java
  5. 59 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICircleCardInfoService.java
  6. 61 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICircleManagementInfoService.java
  7. 69 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICommonUserInfoService.java
  8. 71 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/IPersonalHomepageInfoService.java
  9. 59 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ISearchRecordsInfoService.java
  10. 120 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CardClassifyInfoServiceImpl.java
  11. 120 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CardHolderInfoServiceImpl.java
  12. 162 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CardManagementInfoServiceImpl.java
  13. 120 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CertificateManagementInfoServiceImpl.java
  14. 120 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CircleCardInfoServiceImpl.java
  15. 126 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CircleManagementInfoServiceImpl.java
  16. 150 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CommonUserInfoServiceImpl.java
  17. 156 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/PersonalHomepageInfoServiceImpl.java
  18. 120 0
      unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/SearchRecordsInfoServiceImpl.java
  19. 73 0
      unimall-admin/src/api/card/cardClassifyInfo.js
  20. 73 0
      unimall-admin/src/api/card/cardHolderInfo.js
  21. 73 0
      unimall-admin/src/api/card/cardManagementInfo.js
  22. 73 0
      unimall-admin/src/api/card/certificateManagementInfo.js
  23. 73 0
      unimall-admin/src/api/card/circleCardInfo.js
  24. 73 0
      unimall-admin/src/api/card/circleManagementInfo.js
  25. 73 0
      unimall-admin/src/api/card/commonUserInfo.js
  26. 73 0
      unimall-admin/src/api/card/info.js
  27. 73 0
      unimall-admin/src/api/card/personalHomepageInfo.js
  28. 356 0
      unimall-admin/src/views/cardClassifyInfo/index.vue
  29. 359 0
      unimall-admin/src/views/cardHolderInfo/index.vue
  30. 459 0
      unimall-admin/src/views/cardManagementInfo/index.vue
  31. 354 0
      unimall-admin/src/views/certificateManagementInfo/index.vue
  32. 358 0
      unimall-admin/src/views/circleCardInfo/index.vue
  33. 360 0
      unimall-admin/src/views/circleManagementInfo/index.vue
  34. 435 0
      unimall-admin/src/views/commonUserInfo/index.vue
  35. 417 0
      unimall-admin/src/views/personalHomepageInfo/index.vue
  36. 352 0
      unimall-admin/src/views/searchRecordsInfo/index.vue
  37. 74 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/CardClassifyInfo.java
  38. 80 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/CardHolderInfo.java
  39. 116 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/CardManagementInfo.java
  40. 74 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/CertificateManagementInfo.java
  41. 69 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/CircleCardInfo.java
  42. 80 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/CircleManagementInfo.java
  43. 104 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/CommonUserInfo.java
  44. 110 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/PersonalHomepageInfo.java
  45. 74 0
      unimall-data/src/main/java/com/iotechn/unimall/data/domain/SearchRecordsInfo.java
  46. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/CardClassifyInfoMapper.java
  47. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/CardHolderInfoMapper.java
  48. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/CardManagementInfoMapper.java
  49. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/CertificateManagementInfoMapper.java
  50. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/CircleCardInfoMapper.java
  51. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/CircleManagementInfoMapper.java
  52. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/CommonUserInfoMapper.java
  53. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/PersonalHomepageInfoMapper.java
  54. 13 0
      unimall-data/src/main/java/com/iotechn/unimall/data/mapper/SearchRecordsInfoMapper.java
  55. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/CardClassifyInfoMapper.xml
  56. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/CardHolderInfoMapper.xml
  57. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/CardManagementInfoMapper.xml
  58. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/CertificateManagementInfoMapper.xml
  59. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/CircleCardInfoMapper.xml
  60. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/CircleManagementInfoMapper.xml
  61. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/CommonUserInfoMapper.xml
  62. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/PersonalHomepageInfoMapper.xml
  63. 9 0
      unimall-data/src/main/resources/com/iotechn/unimall/data/mapper/SearchRecordsInfoMapper.xml
  64. 1 1
      unimall-launcher/src/main/java/com/iotechn/unimall/launcher/controller/CommonController.java
  65. 4 0
      xiaochengxu/.hbuilderx/launch.json

+ 59 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICardClassifyInfoService.java

@@ -0,0 +1,59 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+
+import com.iotechn.unimall.data.domain.unimall.CardClassifyInfo;
+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 2023-04-10
+ */
+@HttpOpenApi(group = "admin.unimall.cardClassifyInfo", description = "名片分类")
+public interface ICardClassifyInfoService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:cardClassifyInfo:add", permissionParentName = "宠物管理", permissionName = "名片分类管理")
+	public Boolean add(@NotNull @HttpParam(name = "cardClassifyInfo", type = HttpParamType.COMMON, description = "名片分类") CardClassifyInfo cardClassifyInfo,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:cardClassifyInfo:list",permissionParentName = "宠物管理", permissionName = "名片分类管理")
+	public Page<CardClassifyInfo> list(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "circleName", type = HttpParamType.COMMON, description = "分类名称") String circleName,
+							@HttpParam(name = "topMarking", type = HttpParamType.COMMON, description = "置顶标识") Long topMarking,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:cardClassifyInfo:delete",permissionParentName = "宠物管理", permissionName = "名片分类管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:cardClassifyInfo:update",permissionParentName = "宠物管理", permissionName = "名片分类管理")
+	public Boolean update(@NotNull @HttpParam(name = "cardClassifyInfo", type = HttpParamType.COMMON, description = "名片分类") CardClassifyInfo cardClassifyInfo,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:cardClassifyInfo:get",permissionParentName = "宠物管理", permissionName = "名片分类管理")
+	public CardClassifyInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:cardClassifyInfo:export",permissionParentName = "宠物管理", permissionName = "名片分类管理")
+	public String export(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "circleName", type = HttpParamType.COMMON, description = "分类名称") String circleName,
+							@HttpParam(name = "topMarking", type = HttpParamType.COMMON, description = "置顶标识") Long topMarking,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 59 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICardHolderInfoService.java

@@ -0,0 +1,59 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+
+import com.iotechn.unimall.data.domain.unimall.CardHolderInfo;
+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 2023-04-10
+ */
+@HttpOpenApi(group = "admin.unimall.cardHolderInfo", description = "名片夹")
+public interface ICardHolderInfoService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:cardHolderInfo:add", permissionParentName = "宠物管理", permissionName = "名片夹管理")
+	public Boolean add(@NotNull @HttpParam(name = "cardHolderInfo", type = HttpParamType.COMMON, description = "名片夹") CardHolderInfo cardHolderInfo,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:cardHolderInfo:list",permissionParentName = "宠物管理", permissionName = "名片夹管理")
+	public Page<CardHolderInfo> list(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "cardId", type = HttpParamType.COMMON, description = "名片id") String cardId,
+										@HttpParam(name = "classify", type = HttpParamType.COMMON, description = "客户分类") String classify,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:cardHolderInfo:delete",permissionParentName = "宠物管理", permissionName = "名片夹管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:cardHolderInfo:update",permissionParentName = "宠物管理", permissionName = "名片夹管理")
+	public Boolean update(@NotNull @HttpParam(name = "cardHolderInfo", type = HttpParamType.COMMON, description = "名片夹") CardHolderInfo cardHolderInfo,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:cardHolderInfo:get",permissionParentName = "宠物管理", permissionName = "名片夹管理")
+	public CardHolderInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:cardHolderInfo:export",permissionParentName = "宠物管理", permissionName = "名片夹管理")
+	public String export(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "cardId", type = HttpParamType.COMMON, description = "名片id") String cardId,
+										@HttpParam(name = "classify", type = HttpParamType.COMMON, description = "客户分类") String classify,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@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/card/ICardManagementInfoService.java

@@ -0,0 +1,73 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+
+import com.iotechn.unimall.data.domain.unimall.CardManagementInfo;
+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 2023-04-10
+ */
+@HttpOpenApi(group = "admin.unimall.cardManagementInfo", description = "名片管理")
+public interface ICardManagementInfoService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:cardManagementInfo:add", permissionParentName = "宠物管理", permissionName = "名片管理管理")
+	public Boolean add(@NotNull @HttpParam(name = "cardManagementInfo", type = HttpParamType.COMMON, description = "名片管理") CardManagementInfo cardManagementInfo,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:cardManagementInfo:list",permissionParentName = "宠物管理", permissionName = "名片管理管理")
+	public Page<CardManagementInfo> list(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "cardBusiness", type = HttpParamType.COMMON, description = "名片标识") String cardBusiness,
+							@HttpParam(name = "name", type = HttpParamType.COMMON, description = "姓名") String name,
+							@HttpParam(name = "post", type = HttpParamType.COMMON, description = "职务") String post,
+							@HttpParam(name = "companyName", type = HttpParamType.COMMON, description = "公司名") String companyName,
+							@HttpParam(name = "location", type = HttpParamType.COMMON, description = "定位") String location,
+							@HttpParam(name = "detailedAddress", type = HttpParamType.COMMON, description = "详细地址") String detailedAddress,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "联系电话") String phone,
+							@HttpParam(name = "headSculpture", type = HttpParamType.COMMON, description = "头像") String headSculpture,
+							@HttpParam(name = "qrCode", type = HttpParamType.COMMON, description = "二维码") String qrCode,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:cardManagementInfo:delete",permissionParentName = "宠物管理", permissionName = "名片管理管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:cardManagementInfo:update",permissionParentName = "宠物管理", permissionName = "名片管理管理")
+	public Boolean update(@NotNull @HttpParam(name = "cardManagementInfo", type = HttpParamType.COMMON, description = "名片管理") CardManagementInfo cardManagementInfo,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:cardManagementInfo:get",permissionParentName = "宠物管理", permissionName = "名片管理管理")
+	public CardManagementInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:cardManagementInfo:export",permissionParentName = "宠物管理", permissionName = "名片管理管理")
+	public String export(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "cardBusiness", type = HttpParamType.COMMON, description = "名片标识") String cardBusiness,
+							@HttpParam(name = "name", type = HttpParamType.COMMON, description = "姓名") String name,
+							@HttpParam(name = "post", type = HttpParamType.COMMON, description = "职务") String post,
+							@HttpParam(name = "companyName", type = HttpParamType.COMMON, description = "公司名") String companyName,
+							@HttpParam(name = "location", type = HttpParamType.COMMON, description = "定位") String location,
+							@HttpParam(name = "detailedAddress", type = HttpParamType.COMMON, description = "详细地址") String detailedAddress,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "联系电话") String phone,
+							@HttpParam(name = "headSculpture", type = HttpParamType.COMMON, description = "头像") String headSculpture,
+							@HttpParam(name = "qrCode", type = HttpParamType.COMMON, description = "二维码") String qrCode,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 59 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICertificateManagementInfoService.java

@@ -0,0 +1,59 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+
+import com.iotechn.unimall.data.domain.unimall.CertificateManagementInfo;
+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 2023-04-10
+ */
+@HttpOpenApi(group = "admin.unimall.certificateManagementInfo", description = "证件管理")
+public interface ICertificateManagementInfoService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:certificateManagementInfo:add", permissionParentName = "宠物管理", permissionName = "证件管理管理")
+	public Boolean add(@NotNull @HttpParam(name = "certificateManagementInfo", type = HttpParamType.COMMON, description = "证件管理") CertificateManagementInfo certificateManagementInfo,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:certificateManagementInfo:list",permissionParentName = "宠物管理", permissionName = "证件管理管理")
+	public Page<CertificateManagementInfo> list(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "certificateName", type = HttpParamType.COMMON, description = "证件名称") String certificateName,
+							@HttpParam(name = "certificateImage", type = HttpParamType.COMMON, description = "证件图") String certificateImage,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:certificateManagementInfo:delete",permissionParentName = "宠物管理", permissionName = "证件管理管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:certificateManagementInfo:update",permissionParentName = "宠物管理", permissionName = "证件管理管理")
+	public Boolean update(@NotNull @HttpParam(name = "certificateManagementInfo", type = HttpParamType.COMMON, description = "证件管理") CertificateManagementInfo certificateManagementInfo,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:certificateManagementInfo:get",permissionParentName = "宠物管理", permissionName = "证件管理管理")
+	public CertificateManagementInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:certificateManagementInfo:export",permissionParentName = "宠物管理", permissionName = "证件管理管理")
+	public String export(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "certificateName", type = HttpParamType.COMMON, description = "证件名称") String certificateName,
+							@HttpParam(name = "certificateImage", type = HttpParamType.COMMON, description = "证件图") String certificateImage,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 59 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICircleCardInfoService.java

@@ -0,0 +1,59 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+
+import com.iotechn.unimall.data.domain.unimall.CircleCardInfo;
+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 2023-04-10
+ */
+@HttpOpenApi(group = "admin.unimall.circleCardInfo", description = "圈子个人关系")
+public interface ICircleCardInfoService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:circleCardInfo:add", permissionParentName = "宠物管理", permissionName = "圈子个人关系管理")
+	public Boolean add(@NotNull @HttpParam(name = "circleCardInfo", type = HttpParamType.COMMON, description = "圈子个人关系") CircleCardInfo circleCardInfo,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:circleCardInfo:list",permissionParentName = "宠物管理", permissionName = "圈子个人关系管理")
+	public Page<CircleCardInfo> list(
+					@HttpParam(name = "comId", type = HttpParamType.COMMON, description = "圈子id") String comId,
+							@HttpParam(name = "identityId", type = HttpParamType.COMMON, description = "名片id") String identityId,
+							@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") String commonId,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:circleCardInfo:delete",permissionParentName = "宠物管理", permissionName = "圈子个人关系管理")
+	public Boolean delete(@NotNull @HttpParam(name = "comId", type = HttpParamType.COMMON, description = "圈子id")String comId)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:circleCardInfo:update",permissionParentName = "宠物管理", permissionName = "圈子个人关系管理")
+	public Boolean update(@NotNull @HttpParam(name = "circleCardInfo", type = HttpParamType.COMMON, description = "圈子个人关系") CircleCardInfo circleCardInfo,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:circleCardInfo:get",permissionParentName = "宠物管理", permissionName = "圈子个人关系管理")
+	public CircleCardInfo get(@NotNull @HttpParam(name = "comId", type = HttpParamType.COMMON, description = "圈子id")String comId)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:circleCardInfo:export",permissionParentName = "宠物管理", permissionName = "圈子个人关系管理")
+	public String export(
+					@HttpParam(name = "comId", type = HttpParamType.COMMON, description = "圈子id") String comId,
+							@HttpParam(name = "identityId", type = HttpParamType.COMMON, description = "名片id") String identityId,
+							@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") String commonId,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 61 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ICircleManagementInfoService.java

@@ -0,0 +1,61 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+
+import com.iotechn.unimall.data.domain.unimall.CircleManagementInfo;
+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 2023-04-10
+ */
+@HttpOpenApi(group = "admin.unimall.circleManagementInfo", description = "圈子管理")
+public interface ICircleManagementInfoService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:circleManagementInfo:add", permissionParentName = "宠物管理", permissionName = "圈子管理管理")
+	public Boolean add(@NotNull @HttpParam(name = "circleManagementInfo", type = HttpParamType.COMMON, description = "圈子管理") CircleManagementInfo circleManagementInfo,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:circleManagementInfo:list",permissionParentName = "宠物管理", permissionName = "圈子管理管理")
+	public Page<CircleManagementInfo> list(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "circleName", type = HttpParamType.COMMON, description = "圈子名称") String circleName,
+							@HttpParam(name = "circleLabel", type = HttpParamType.COMMON, description = "圈子标签") String circleLabel,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "0未审核 1已通过") Long status,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:circleManagementInfo:delete",permissionParentName = "宠物管理", permissionName = "圈子管理管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:circleManagementInfo:update",permissionParentName = "宠物管理", permissionName = "圈子管理管理")
+	public Boolean update(@NotNull @HttpParam(name = "circleManagementInfo", type = HttpParamType.COMMON, description = "圈子管理") CircleManagementInfo circleManagementInfo,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:circleManagementInfo:get",permissionParentName = "宠物管理", permissionName = "圈子管理管理")
+	public CircleManagementInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:circleManagementInfo:export",permissionParentName = "宠物管理", permissionName = "圈子管理管理")
+	public String export(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "circleName", type = HttpParamType.COMMON, description = "圈子名称") String circleName,
+							@HttpParam(name = "circleLabel", type = HttpParamType.COMMON, description = "圈子标签") String circleLabel,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "0未审核 1已通过") Long status,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@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/card/ICommonUserInfoService.java

@@ -0,0 +1,69 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+
+import com.iotechn.unimall.data.domain.unimall.CommonUserInfo;
+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 2023-04-10
+ */
+@HttpOpenApi(group = "admin.unimall.commonUserInfo", description = "用户管理")
+public interface ICommonUserInfoService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:commonUserInfo:add", permissionParentName = "宠物管理", permissionName = "用户管理管理")
+	public Boolean add(@NotNull @HttpParam(name = "commonUserInfo", type = HttpParamType.COMMON, description = "用户管理") CommonUserInfo commonUserInfo,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:commonUserInfo:list",permissionParentName = "宠物管理", permissionName = "用户管理管理")
+	public Page<CommonUserInfo> list(
+								@HttpParam(name = "nickname", type = HttpParamType.COMMON, description = "昵称") String nickname,
+							@HttpParam(name = "password", type = HttpParamType.COMMON, description = "密码") String password,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "手机号") String phone,
+							@HttpParam(name = "realname", type = HttpParamType.COMMON, description = "真实姓名") String realname,
+							@HttpParam(name = "shareCard", type = HttpParamType.COMMON, description = "允许他人分享名片(1允许)") Long shareCard,
+							@HttpParam(name = "lookPage", type = HttpParamType.COMMON, description = "允许圈子成员查看主页(1允许)") Long lookPage,
+							@HttpParam(name = "autoAccept", type = HttpParamType.COMMON, description = "自动接受邀请(1是)") Long autoAccept,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "0.冻结 1.激活") Long status,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:commonUserInfo:delete",permissionParentName = "宠物管理", permissionName = "用户管理管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:commonUserInfo:update",permissionParentName = "宠物管理", permissionName = "用户管理管理")
+	public Boolean update(@NotNull @HttpParam(name = "commonUserInfo", type = HttpParamType.COMMON, description = "用户管理") CommonUserInfo commonUserInfo,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:commonUserInfo:get",permissionParentName = "宠物管理", permissionName = "用户管理管理")
+	public CommonUserInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:commonUserInfo:export",permissionParentName = "宠物管理", permissionName = "用户管理管理")
+	public String export(
+								@HttpParam(name = "nickname", type = HttpParamType.COMMON, description = "昵称") String nickname,
+							@HttpParam(name = "password", type = HttpParamType.COMMON, description = "密码") String password,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "手机号") String phone,
+							@HttpParam(name = "realname", type = HttpParamType.COMMON, description = "真实姓名") String realname,
+							@HttpParam(name = "shareCard", type = HttpParamType.COMMON, description = "允许他人分享名片(1允许)") Long shareCard,
+							@HttpParam(name = "lookPage", type = HttpParamType.COMMON, description = "允许圈子成员查看主页(1允许)") Long lookPage,
+							@HttpParam(name = "autoAccept", type = HttpParamType.COMMON, description = "自动接受邀请(1是)") Long autoAccept,
+							@HttpParam(name = "status", type = HttpParamType.COMMON, description = "0.冻结 1.激活") Long status,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 71 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/IPersonalHomepageInfoService.java

@@ -0,0 +1,71 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+
+import com.iotechn.unimall.data.domain.unimall.PersonalHomepageInfo;
+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 2023-04-10
+ */
+@HttpOpenApi(group = "admin.unimall.personalHomepageInfo", description = "个人主页")
+public interface IPersonalHomepageInfoService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:personalHomepageInfo:add", permissionParentName = "宠物管理", permissionName = "个人主页管理")
+	public Boolean add(@NotNull @HttpParam(name = "personalHomepageInfo", type = HttpParamType.COMMON, description = "个人主页") PersonalHomepageInfo personalHomepageInfo,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:personalHomepageInfo:list",permissionParentName = "宠物管理", permissionName = "个人主页管理")
+	public Page<PersonalHomepageInfo> list(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "companyName", type = HttpParamType.COMMON, description = "公司名") String companyName,
+							@HttpParam(name = "companyIntroduction", type = HttpParamType.COMMON, description = "公司简介") String companyIntroduction,
+							@HttpParam(name = "scopeOfBusiness", type = HttpParamType.COMMON, description = "业务范围") String scopeOfBusiness,
+							@HttpParam(name = "companyAddress", type = HttpParamType.COMMON, description = "公司地址") String companyAddress,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "联系电话") String phone,
+							@HttpParam(name = "portraiture", type = HttpParamType.COMMON, description = "传真") String portraiture,
+							@HttpParam(name = "postbox", type = HttpParamType.COMMON, description = "邮箱") String postbox,
+							@HttpParam(name = "addressUrl", type = HttpParamType.COMMON, description = "企业风采") String addressUrl,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:personalHomepageInfo:delete",permissionParentName = "宠物管理", permissionName = "个人主页管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:personalHomepageInfo:update",permissionParentName = "宠物管理", permissionName = "个人主页管理")
+	public Boolean update(@NotNull @HttpParam(name = "personalHomepageInfo", type = HttpParamType.COMMON, description = "个人主页") PersonalHomepageInfo personalHomepageInfo,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:personalHomepageInfo:get",permissionParentName = "宠物管理", permissionName = "个人主页管理")
+	public PersonalHomepageInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:personalHomepageInfo:export",permissionParentName = "宠物管理", permissionName = "个人主页管理")
+	public String export(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "companyName", type = HttpParamType.COMMON, description = "公司名") String companyName,
+							@HttpParam(name = "companyIntroduction", type = HttpParamType.COMMON, description = "公司简介") String companyIntroduction,
+							@HttpParam(name = "scopeOfBusiness", type = HttpParamType.COMMON, description = "业务范围") String scopeOfBusiness,
+							@HttpParam(name = "companyAddress", type = HttpParamType.COMMON, description = "公司地址") String companyAddress,
+							@HttpParam(name = "phone", type = HttpParamType.COMMON, description = "联系电话") String phone,
+							@HttpParam(name = "portraiture", type = HttpParamType.COMMON, description = "传真") String portraiture,
+							@HttpParam(name = "postbox", type = HttpParamType.COMMON, description = "邮箱") String postbox,
+							@HttpParam(name = "addressUrl", type = HttpParamType.COMMON, description = "企业风采") String addressUrl,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 59 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/ISearchRecordsInfoService.java

@@ -0,0 +1,59 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+
+import com.iotechn.unimall.data.domain.unimall.SearchRecordsInfo;
+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 searchRecordsInfo
+ * @date 2023-04-10
+ */
+@HttpOpenApi(group = "admin.unimall.searchRecordsInfo", description = "搜索记录")
+public interface ISearchRecordsInfoService{
+	@HttpMethod(description = "新增", permission = "admin:unimall:searchRecordsInfo:add", permissionParentName = "宠物管理", permissionName = "搜索记录管理")
+	public Boolean add(@NotNull @HttpParam(name = "searchRecordsInfo", type = HttpParamType.COMMON, description = "搜索记录") SearchRecordsInfo searchRecordsInfo,
+						   @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "列表", permission = "admin:unimall:searchRecordsInfo:list",permissionParentName = "宠物管理", permissionName = "搜索记录管理")
+	public Page<SearchRecordsInfo> list(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "searchContent", type = HttpParamType.COMMON, description = "搜索内容") String searchContent,
+							@HttpParam(name = "functionType", type = HttpParamType.COMMON, description = "功能类型") String functionType,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+					@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+		@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)
+		throws ServiceException;
+
+	@HttpMethod(description = "删除", permission = "admin:unimall:searchRecordsInfo:delete",permissionParentName = "宠物管理", permissionName = "搜索记录管理")
+	public Boolean delete(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")String id)throws ServiceException;
+
+	@HttpMethod(description = "修改", permission = "admin:unimall:searchRecordsInfo:update",permissionParentName = "宠物管理", permissionName = "搜索记录管理")
+	public Boolean update(@NotNull @HttpParam(name = "searchRecordsInfo", type = HttpParamType.COMMON, description = "搜索记录") SearchRecordsInfo searchRecordsInfo,
+						  @HttpParam(name = "adminId", type = HttpParamType.ADMIN_ID, description = "adminId") Long adminId)throws ServiceException;
+
+	@HttpMethod(description = "查询", permission = "admin:unimall:searchRecordsInfo:get",permissionParentName = "宠物管理", permissionName = "搜索记录管理")
+	public SearchRecordsInfo get(@NotNull @HttpParam(name = "id", type = HttpParamType.COMMON, description = "")Long id)throws ServiceException;
+	
+	@HttpMethod(description = "导出excl表", permission = "admin:unimall:searchRecordsInfo:export",permissionParentName = "宠物管理", permissionName = "搜索记录管理")
+	public String export(
+								@HttpParam(name = "commonId", type = HttpParamType.COMMON, description = "个人id") Long commonId,
+							@HttpParam(name = "searchContent", type = HttpParamType.COMMON, description = "搜索内容") String searchContent,
+							@HttpParam(name = "functionType", type = HttpParamType.COMMON, description = "功能类型") String functionType,
+							@HttpParam(name = "gmtCreate", type = HttpParamType.COMMON, description = "") Date gmtCreate,
+							@HttpParam(name = "gmtUpdate", type = HttpParamType.COMMON, description = "") Date gmtUpdate,
+							@HttpParam(name = "deleteFlag", type = HttpParamType.COMMON, description = "删除标识") Long deleteFlag,
+				@HttpParam(name = "page", type = HttpParamType.COMMON, description = "页码", valueDef = "1") Integer page,
+	@HttpParam(name = "limit", type = HttpParamType.COMMON, description = "页码长度", valueDef = "20") Integer limit)throws ServiceException;
+	
+}

+ 120 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CardClassifyInfoServiceImpl.java

@@ -0,0 +1,120 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+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.unimall.CardClassifyInfoMapper;
+import com.iotechn.unimall.data.domain.unimall.CardClassifyInfo;
+import com.iotechn.unimall.admin.api.unimall.ICardClassifyInfoService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 名片分类Service业务层处理
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Service
+public class CardClassifyInfoServiceImpl implements ICardClassifyInfoService{
+	@Autowired
+	private CardClassifyInfoMapper cardClassifyInfoMapper;
+	
+	@Override
+	public Boolean add(CardClassifyInfo cardClassifyInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		cardClassifyInfo.setGmtCreate(now);
+		cardClassifyInfo.setGmtUpdate(now);
+		cardClassifyInfo.setCommonId(adminId);
+		return cardClassifyInfoMapper.insert(cardClassifyInfo)>0;
+	}
+
+	@Override
+	public Page<CardClassifyInfo> list(Long commonId,String circleName,Long topMarking,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CardClassifyInfo> wrapper = new EntityWrapper<CardClassifyInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(circleName)) {
+					wrapper.eq("circle_name", circleName);
+				}
+												if (!StringUtils.isEmpty(topMarking)) {
+					wrapper.eq("top_marking", topMarking);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							wrapper.eq("delete_flag", 0);
+		List<CardClassifyInfo> list = cardClassifyInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = cardClassifyInfoMapper.selectCount(wrapper);
+		return new Page<CardClassifyInfo>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			CardClassifyInfo tmp =  cardClassifyInfoMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				cardClassifyInfoMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(CardClassifyInfo cardClassifyInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		cardClassifyInfo.setGmtUpdate(now);
+		cardClassifyInfo.setCommonId(adminId);
+		return cardClassifyInfoMapper.updateById(cardClassifyInfo)>0;
+	}
+
+	@Override
+	public CardClassifyInfo get(Long id) throws ServiceException {
+		return cardClassifyInfoMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long commonId,String circleName,Long topMarking,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CardClassifyInfo> wrapper = new EntityWrapper<CardClassifyInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(circleName)) {
+					wrapper.eq("circle_name", circleName);
+				}
+												if (!StringUtils.isEmpty(topMarking)) {
+					wrapper.eq("top_marking", topMarking);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							List<CardClassifyInfo> list = cardClassifyInfoMapper.selectList(wrapper);
+		ExcelUtil<CardClassifyInfo> util = new ExcelUtil<CardClassifyInfo>(CardClassifyInfo.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 120 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CardHolderInfoServiceImpl.java

@@ -0,0 +1,120 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+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.unimall.CardHolderInfoMapper;
+import com.iotechn.unimall.data.domain.unimall.CardHolderInfo;
+import com.iotechn.unimall.admin.api.unimall.ICardHolderInfoService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 名片夹Service业务层处理
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Service
+public class CardHolderInfoServiceImpl implements ICardHolderInfoService{
+	@Autowired
+	private CardHolderInfoMapper cardHolderInfoMapper;
+	
+	@Override
+	public Boolean add(CardHolderInfo cardHolderInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		cardHolderInfo.setGmtCreate(now);
+		cardHolderInfo.setGmtUpdate(now);
+		cardHolderInfo.setCommonId(adminId);
+		return cardHolderInfoMapper.insert(cardHolderInfo)>0;
+	}
+
+	@Override
+	public Page<CardHolderInfo> list(Long commonId,String cardId,String classify,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CardHolderInfo> wrapper = new EntityWrapper<CardHolderInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(cardId)) {
+					wrapper.eq("card_id", cardId);
+				}
+																	if (!StringUtils.isEmpty(classify)) {
+					wrapper.eq("classify", classify);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							wrapper.eq("delete_flag", 0);
+		List<CardHolderInfo> list = cardHolderInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = cardHolderInfoMapper.selectCount(wrapper);
+		return new Page<CardHolderInfo>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			CardHolderInfo tmp =  cardHolderInfoMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				cardHolderInfoMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(CardHolderInfo cardHolderInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		cardHolderInfo.setGmtUpdate(now);
+		cardHolderInfo.setCommonId(adminId);
+		return cardHolderInfoMapper.updateById(cardHolderInfo)>0;
+	}
+
+	@Override
+	public CardHolderInfo get(Long id) throws ServiceException {
+		return cardHolderInfoMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long commonId,String cardId,String classify,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CardHolderInfo> wrapper = new EntityWrapper<CardHolderInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(cardId)) {
+					wrapper.eq("card_id", cardId);
+				}
+																	if (!StringUtils.isEmpty(classify)) {
+					wrapper.eq("classify", classify);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							List<CardHolderInfo> list = cardHolderInfoMapper.selectList(wrapper);
+		ExcelUtil<CardHolderInfo> util = new ExcelUtil<CardHolderInfo>(CardHolderInfo.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 162 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CardManagementInfoServiceImpl.java

@@ -0,0 +1,162 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+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.unimall.CardManagementInfoMapper;
+import com.iotechn.unimall.data.domain.unimall.CardManagementInfo;
+import com.iotechn.unimall.admin.api.unimall.ICardManagementInfoService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 名片管理Service业务层处理
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Service
+public class CardManagementInfoServiceImpl implements ICardManagementInfoService{
+	@Autowired
+	private CardManagementInfoMapper cardManagementInfoMapper;
+	
+	@Override
+	public Boolean add(CardManagementInfo cardManagementInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		cardManagementInfo.setGmtCreate(now);
+		cardManagementInfo.setGmtUpdate(now);
+		cardManagementInfo.setCommonId(adminId);
+		return cardManagementInfoMapper.insert(cardManagementInfo)>0;
+	}
+
+	@Override
+	public Page<CardManagementInfo> list(Long commonId,String cardBusiness,String name,String post,String companyName,String location,String detailedAddress,String phone,String headSculpture,String qrCode,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CardManagementInfo> wrapper = new EntityWrapper<CardManagementInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(cardBusiness)) {
+					wrapper.eq("card_business", cardBusiness);
+				}
+												if (!StringUtils.isEmpty(name)) {
+					wrapper.eq("name", name);
+				}
+												if (!StringUtils.isEmpty(post)) {
+					wrapper.eq("post", post);
+				}
+												if (!StringUtils.isEmpty(companyName)) {
+					wrapper.eq("company_name", companyName);
+				}
+												if (!StringUtils.isEmpty(location)) {
+					wrapper.eq("location", location);
+				}
+												if (!StringUtils.isEmpty(detailedAddress)) {
+					wrapper.eq("detailed_address", detailedAddress);
+				}
+												if (!StringUtils.isEmpty(phone)) {
+					wrapper.eq("phone", phone);
+				}
+												if (!StringUtils.isEmpty(headSculpture)) {
+					wrapper.eq("head_sculpture", headSculpture);
+				}
+												if (!StringUtils.isEmpty(qrCode)) {
+					wrapper.eq("qr_code", qrCode);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							wrapper.eq("delete_flag", 0);
+		List<CardManagementInfo> list = cardManagementInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = cardManagementInfoMapper.selectCount(wrapper);
+		return new Page<CardManagementInfo>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			CardManagementInfo tmp =  cardManagementInfoMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				cardManagementInfoMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(CardManagementInfo cardManagementInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		cardManagementInfo.setGmtUpdate(now);
+		cardManagementInfo.setCommonId(adminId);
+		return cardManagementInfoMapper.updateById(cardManagementInfo)>0;
+	}
+
+	@Override
+	public CardManagementInfo get(Long id) throws ServiceException {
+		return cardManagementInfoMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long commonId,String cardBusiness,String name,String post,String companyName,String location,String detailedAddress,String phone,String headSculpture,String qrCode,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CardManagementInfo> wrapper = new EntityWrapper<CardManagementInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(cardBusiness)) {
+					wrapper.eq("card_business", cardBusiness);
+				}
+												if (!StringUtils.isEmpty(name)) {
+					wrapper.eq("name", name);
+				}
+												if (!StringUtils.isEmpty(post)) {
+					wrapper.eq("post", post);
+				}
+												if (!StringUtils.isEmpty(companyName)) {
+					wrapper.eq("company_name", companyName);
+				}
+												if (!StringUtils.isEmpty(location)) {
+					wrapper.eq("location", location);
+				}
+												if (!StringUtils.isEmpty(detailedAddress)) {
+					wrapper.eq("detailed_address", detailedAddress);
+				}
+												if (!StringUtils.isEmpty(phone)) {
+					wrapper.eq("phone", phone);
+				}
+												if (!StringUtils.isEmpty(headSculpture)) {
+					wrapper.eq("head_sculpture", headSculpture);
+				}
+												if (!StringUtils.isEmpty(qrCode)) {
+					wrapper.eq("qr_code", qrCode);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							List<CardManagementInfo> list = cardManagementInfoMapper.selectList(wrapper);
+		ExcelUtil<CardManagementInfo> util = new ExcelUtil<CardManagementInfo>(CardManagementInfo.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 120 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CertificateManagementInfoServiceImpl.java

@@ -0,0 +1,120 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+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.unimall.CertificateManagementInfoMapper;
+import com.iotechn.unimall.data.domain.unimall.CertificateManagementInfo;
+import com.iotechn.unimall.admin.api.unimall.ICertificateManagementInfoService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 证件管理Service业务层处理
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Service
+public class CertificateManagementInfoServiceImpl implements ICertificateManagementInfoService{
+	@Autowired
+	private CertificateManagementInfoMapper certificateManagementInfoMapper;
+	
+	@Override
+	public Boolean add(CertificateManagementInfo certificateManagementInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		certificateManagementInfo.setGmtCreate(now);
+		certificateManagementInfo.setGmtUpdate(now);
+		certificateManagementInfo.setCommonId(adminId);
+		return certificateManagementInfoMapper.insert(certificateManagementInfo)>0;
+	}
+
+	@Override
+	public Page<CertificateManagementInfo> list(Long commonId,String certificateName,String certificateImage,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CertificateManagementInfo> wrapper = new EntityWrapper<CertificateManagementInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(certificateName)) {
+					wrapper.eq("certificate_name", certificateName);
+				}
+												if (!StringUtils.isEmpty(certificateImage)) {
+					wrapper.eq("certificate_image", certificateImage);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							wrapper.eq("delete_flag", 0);
+		List<CertificateManagementInfo> list = certificateManagementInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = certificateManagementInfoMapper.selectCount(wrapper);
+		return new Page<CertificateManagementInfo>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			CertificateManagementInfo tmp =  certificateManagementInfoMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				certificateManagementInfoMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(CertificateManagementInfo certificateManagementInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		certificateManagementInfo.setGmtUpdate(now);
+		certificateManagementInfo.setCommonId(adminId);
+		return certificateManagementInfoMapper.updateById(certificateManagementInfo)>0;
+	}
+
+	@Override
+	public CertificateManagementInfo get(Long id) throws ServiceException {
+		return certificateManagementInfoMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long commonId,String certificateName,String certificateImage,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CertificateManagementInfo> wrapper = new EntityWrapper<CertificateManagementInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(certificateName)) {
+					wrapper.eq("certificate_name", certificateName);
+				}
+												if (!StringUtils.isEmpty(certificateImage)) {
+					wrapper.eq("certificate_image", certificateImage);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							List<CertificateManagementInfo> list = certificateManagementInfoMapper.selectList(wrapper);
+		ExcelUtil<CertificateManagementInfo> util = new ExcelUtil<CertificateManagementInfo>(CertificateManagementInfo.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 120 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CircleCardInfoServiceImpl.java

@@ -0,0 +1,120 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+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.unimall.CircleCardInfoMapper;
+import com.iotechn.unimall.data.domain.unimall.CircleCardInfo;
+import com.iotechn.unimall.admin.api.unimall.ICircleCardInfoService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 圈子个人关系Service业务层处理
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Service
+public class CircleCardInfoServiceImpl implements ICircleCardInfoService{
+	@Autowired
+	private CircleCardInfoMapper circleCardInfoMapper;
+	
+	@Override
+	public Boolean add(CircleCardInfo circleCardInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		circleCardInfo.setGmtCreate(now);
+		circleCardInfo.setGmtUpdate(now);
+		circleCardInfo.setCommonId(adminId);
+		return circleCardInfoMapper.insert(circleCardInfo)>0;
+	}
+
+	@Override
+	public Page<CircleCardInfo> list(String comId,String identityId,String commonId,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CircleCardInfo> wrapper = new EntityWrapper<CircleCardInfo>();
+									if (!StringUtils.isEmpty(comId)) {
+					wrapper.eq("com_id", comId);
+				}
+												if (!StringUtils.isEmpty(identityId)) {
+					wrapper.eq("identity_id", identityId);
+				}
+												if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							wrapper.eq("delete_flag", 0);
+		List<CircleCardInfo> list = circleCardInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = circleCardInfoMapper.selectCount(wrapper);
+		return new Page<CircleCardInfo>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String comId) {
+		String[] ids = String.valueOf(comId).split(",");
+		for (String tt:ids) {
+			CircleCardInfo tmp =  circleCardInfoMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				circleCardInfoMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(CircleCardInfo circleCardInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		circleCardInfo.setGmtUpdate(now);
+		circleCardInfo.setCommonId(adminId);
+		return circleCardInfoMapper.updateById(circleCardInfo)>0;
+	}
+
+	@Override
+	public CircleCardInfo get(String comId) throws ServiceException {
+		return circleCardInfoMapper.selectById(comId);
+	}
+	
+	@Override
+	public String export(String comId,String identityId,String commonId,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CircleCardInfo> wrapper = new EntityWrapper<CircleCardInfo>();
+									if (!StringUtils.isEmpty(comId)) {
+					wrapper.eq("com_id", comId);
+				}
+												if (!StringUtils.isEmpty(identityId)) {
+					wrapper.eq("identity_id", identityId);
+				}
+												if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							List<CircleCardInfo> list = circleCardInfoMapper.selectList(wrapper);
+		ExcelUtil<CircleCardInfo> util = new ExcelUtil<CircleCardInfo>(CircleCardInfo.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 126 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CircleManagementInfoServiceImpl.java

@@ -0,0 +1,126 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+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.unimall.CircleManagementInfoMapper;
+import com.iotechn.unimall.data.domain.unimall.CircleManagementInfo;
+import com.iotechn.unimall.admin.api.unimall.ICircleManagementInfoService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 圈子管理Service业务层处理
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Service
+public class CircleManagementInfoServiceImpl implements ICircleManagementInfoService{
+	@Autowired
+	private CircleManagementInfoMapper circleManagementInfoMapper;
+	
+	@Override
+	public Boolean add(CircleManagementInfo circleManagementInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		circleManagementInfo.setGmtCreate(now);
+		circleManagementInfo.setGmtUpdate(now);
+		circleManagementInfo.setCommonId(adminId);
+		return circleManagementInfoMapper.insert(circleManagementInfo)>0;
+	}
+
+	@Override
+	public Page<CircleManagementInfo> list(Long commonId,String circleName,String circleLabel,Long status,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CircleManagementInfo> wrapper = new EntityWrapper<CircleManagementInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(circleName)) {
+					wrapper.eq("circle_name", circleName);
+				}
+												if (!StringUtils.isEmpty(circleLabel)) {
+					wrapper.eq("circle_label", circleLabel);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							wrapper.eq("delete_flag", 0);
+		List<CircleManagementInfo> list = circleManagementInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = circleManagementInfoMapper.selectCount(wrapper);
+		return new Page<CircleManagementInfo>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			CircleManagementInfo tmp =  circleManagementInfoMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				circleManagementInfoMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(CircleManagementInfo circleManagementInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		circleManagementInfo.setGmtUpdate(now);
+		circleManagementInfo.setCommonId(adminId);
+		return circleManagementInfoMapper.updateById(circleManagementInfo)>0;
+	}
+
+	@Override
+	public CircleManagementInfo get(Long id) throws ServiceException {
+		return circleManagementInfoMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long commonId,String circleName,String circleLabel,Long status,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CircleManagementInfo> wrapper = new EntityWrapper<CircleManagementInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(circleName)) {
+					wrapper.eq("circle_name", circleName);
+				}
+												if (!StringUtils.isEmpty(circleLabel)) {
+					wrapper.eq("circle_label", circleLabel);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							List<CircleManagementInfo> list = circleManagementInfoMapper.selectList(wrapper);
+		ExcelUtil<CircleManagementInfo> util = new ExcelUtil<CircleManagementInfo>(CircleManagementInfo.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 150 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/CommonUserInfoServiceImpl.java

@@ -0,0 +1,150 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+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.unimall.CommonUserInfoMapper;
+import com.iotechn.unimall.data.domain.unimall.CommonUserInfo;
+import com.iotechn.unimall.admin.api.unimall.ICommonUserInfoService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 用户管理Service业务层处理
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Service
+public class CommonUserInfoServiceImpl implements ICommonUserInfoService{
+	@Autowired
+	private CommonUserInfoMapper commonUserInfoMapper;
+	
+	@Override
+	public Boolean add(CommonUserInfo commonUserInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		commonUserInfo.setGmtCreate(now);
+		commonUserInfo.setGmtUpdate(now);
+		commonUserInfo.setId(adminId);
+		return commonUserInfoMapper.insert(commonUserInfo)>0;
+	}
+
+	@Override
+	public Page<CommonUserInfo> list(String nickname,String password,String phone,String realname,Long shareCard,Long lookPage,Long autoAccept,Long status,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CommonUserInfo> wrapper = new EntityWrapper<CommonUserInfo>();
+														if (!StringUtils.isEmpty(nickname)) {
+					wrapper.eq("nickname", nickname);
+				}
+												if (!StringUtils.isEmpty(password)) {
+					wrapper.eq("password", password);
+				}
+												if (!StringUtils.isEmpty(phone)) {
+					wrapper.eq("phone", phone);
+				}
+												if (!StringUtils.isEmpty(realname)) {
+					wrapper.eq("realname", realname);
+				}
+												if (!StringUtils.isEmpty(shareCard)) {
+					wrapper.eq("share_card", shareCard);
+				}
+												if (!StringUtils.isEmpty(lookPage)) {
+					wrapper.eq("look_page", lookPage);
+				}
+												if (!StringUtils.isEmpty(autoAccept)) {
+					wrapper.eq("auto_accept", autoAccept);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							wrapper.eq("delete_flag", 0);
+		List<CommonUserInfo> list = commonUserInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = commonUserInfoMapper.selectCount(wrapper);
+		return new Page<CommonUserInfo>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			CommonUserInfo tmp =  commonUserInfoMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1L);
+				commonUserInfoMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(CommonUserInfo commonUserInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		commonUserInfo.setGmtUpdate(now);
+		commonUserInfo.setId(adminId);
+		return commonUserInfoMapper.updateById(commonUserInfo)>0;
+	}
+
+	@Override
+	public CommonUserInfo get(Long id) throws ServiceException {
+		return commonUserInfoMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(String nickname,String password,String phone,String realname,Long shareCard,Long lookPage,Long autoAccept,Long status,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<CommonUserInfo> wrapper = new EntityWrapper<CommonUserInfo>();
+														if (!StringUtils.isEmpty(nickname)) {
+					wrapper.eq("nickname", nickname);
+				}
+												if (!StringUtils.isEmpty(password)) {
+					wrapper.eq("password", password);
+				}
+												if (!StringUtils.isEmpty(phone)) {
+					wrapper.eq("phone", phone);
+				}
+												if (!StringUtils.isEmpty(realname)) {
+					wrapper.eq("realname", realname);
+				}
+												if (!StringUtils.isEmpty(shareCard)) {
+					wrapper.eq("share_card", shareCard);
+				}
+												if (!StringUtils.isEmpty(lookPage)) {
+					wrapper.eq("look_page", lookPage);
+				}
+												if (!StringUtils.isEmpty(autoAccept)) {
+					wrapper.eq("auto_accept", autoAccept);
+				}
+												if (!StringUtils.isEmpty(status)) {
+					wrapper.eq("status", status);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							List<CommonUserInfo> list = commonUserInfoMapper.selectList(wrapper);
+		ExcelUtil<CommonUserInfo> util = new ExcelUtil<CommonUserInfo>(CommonUserInfo.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 156 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/PersonalHomepageInfoServiceImpl.java

@@ -0,0 +1,156 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+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.unimall.PersonalHomepageInfoMapper;
+import com.iotechn.unimall.data.domain.unimall.PersonalHomepageInfo;
+import com.iotechn.unimall.admin.api.unimall.IPersonalHomepageInfoService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 个人主页Service业务层处理
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Service
+public class PersonalHomepageInfoServiceImpl implements IPersonalHomepageInfoService{
+	@Autowired
+	private PersonalHomepageInfoMapper personalHomepageInfoMapper;
+	
+	@Override
+	public Boolean add(PersonalHomepageInfo personalHomepageInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		personalHomepageInfo.setGmtCreate(now);
+		personalHomepageInfo.setGmtUpdate(now);
+		personalHomepageInfo.setCommonId(adminId);
+		return personalHomepageInfoMapper.insert(personalHomepageInfo)>0;
+	}
+
+	@Override
+	public Page<PersonalHomepageInfo> list(Long commonId,String companyName,String companyIntroduction,String scopeOfBusiness,String companyAddress,String phone,String portraiture,String postbox,String addressUrl,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<PersonalHomepageInfo> wrapper = new EntityWrapper<PersonalHomepageInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(companyName)) {
+					wrapper.eq("company_name", companyName);
+				}
+												if (!StringUtils.isEmpty(companyIntroduction)) {
+					wrapper.eq("company_introduction", companyIntroduction);
+				}
+												if (!StringUtils.isEmpty(scopeOfBusiness)) {
+					wrapper.eq("scope_of_business", scopeOfBusiness);
+				}
+												if (!StringUtils.isEmpty(companyAddress)) {
+					wrapper.eq("company_address", companyAddress);
+				}
+												if (!StringUtils.isEmpty(phone)) {
+					wrapper.eq("phone", phone);
+				}
+												if (!StringUtils.isEmpty(portraiture)) {
+					wrapper.eq("portraiture", portraiture);
+				}
+												if (!StringUtils.isEmpty(postbox)) {
+					wrapper.eq("postbox", postbox);
+				}
+												if (!StringUtils.isEmpty(addressUrl)) {
+					wrapper.eq("address_url", addressUrl);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							wrapper.eq("delete_flag", 0);
+		List<PersonalHomepageInfo> list = personalHomepageInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = personalHomepageInfoMapper.selectCount(wrapper);
+		return new Page<PersonalHomepageInfo>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			PersonalHomepageInfo tmp =  personalHomepageInfoMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				personalHomepageInfoMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(PersonalHomepageInfo personalHomepageInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		personalHomepageInfo.setGmtUpdate(now);
+		personalHomepageInfo.setCommonId(adminId);
+		return personalHomepageInfoMapper.updateById(personalHomepageInfo)>0;
+	}
+
+	@Override
+	public PersonalHomepageInfo get(Long id) throws ServiceException {
+		return personalHomepageInfoMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long commonId,String companyName,String companyIntroduction,String scopeOfBusiness,String companyAddress,String phone,String portraiture,String postbox,String addressUrl,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<PersonalHomepageInfo> wrapper = new EntityWrapper<PersonalHomepageInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(companyName)) {
+					wrapper.eq("company_name", companyName);
+				}
+												if (!StringUtils.isEmpty(companyIntroduction)) {
+					wrapper.eq("company_introduction", companyIntroduction);
+				}
+												if (!StringUtils.isEmpty(scopeOfBusiness)) {
+					wrapper.eq("scope_of_business", scopeOfBusiness);
+				}
+												if (!StringUtils.isEmpty(companyAddress)) {
+					wrapper.eq("company_address", companyAddress);
+				}
+												if (!StringUtils.isEmpty(phone)) {
+					wrapper.eq("phone", phone);
+				}
+												if (!StringUtils.isEmpty(portraiture)) {
+					wrapper.eq("portraiture", portraiture);
+				}
+												if (!StringUtils.isEmpty(postbox)) {
+					wrapper.eq("postbox", postbox);
+				}
+												if (!StringUtils.isEmpty(addressUrl)) {
+					wrapper.eq("address_url", addressUrl);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							List<PersonalHomepageInfo> list = personalHomepageInfoMapper.selectList(wrapper);
+		ExcelUtil<PersonalHomepageInfo> util = new ExcelUtil<PersonalHomepageInfo>(PersonalHomepageInfo.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 120 - 0
unimall-admin-api/src/main/java/com/iotechn/unimall/admin/api/card/impl/SearchRecordsInfoServiceImpl.java

@@ -0,0 +1,120 @@
+package com.iotechn.unimall.admin.api.unimall;
+
+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.unimall.SearchRecordsInfoMapper;
+import com.iotechn.unimall.data.domain.unimall.SearchRecordsInfo;
+import com.iotechn.unimall.admin.api.unimall.ISearchRecordsInfoService;
+import com.iotechn.unimall.data.model.Page;
+import java.util.Date;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 搜索记录Service业务层处理
+ * 
+ * @author searchRecordsInfo
+ * @date 2023-04-10
+ */
+@Service
+public class SearchRecordsInfoServiceImpl implements ISearchRecordsInfoService{
+	@Autowired
+	private SearchRecordsInfoMapper searchRecordsInfoMapper;
+	
+	@Override
+	public Boolean add(SearchRecordsInfo searchRecordsInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		searchRecordsInfo.setGmtCreate(now);
+		searchRecordsInfo.setGmtUpdate(now);
+		searchRecordsInfo.setCommonId(adminId);
+		return searchRecordsInfoMapper.insert(searchRecordsInfo)>0;
+	}
+
+	@Override
+	public Page<SearchRecordsInfo> list(Long commonId,String searchContent,String functionType,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<SearchRecordsInfo> wrapper = new EntityWrapper<SearchRecordsInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(searchContent)) {
+					wrapper.eq("search_content", searchContent);
+				}
+												if (!StringUtils.isEmpty(functionType)) {
+					wrapper.eq("function_type", functionType);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							wrapper.eq("delete_flag", 0);
+		List<SearchRecordsInfo> list = searchRecordsInfoMapper.selectPage(new RowBounds((page - 1) * limit, limit), wrapper);
+		Integer count = searchRecordsInfoMapper.selectCount(wrapper);
+		return new Page<SearchRecordsInfo>(list, page, limit, count);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public Boolean delete(String id) {
+		String[] ids = String.valueOf(id).split(",");
+		for (String tt:ids) {
+			SearchRecordsInfo tmp =  searchRecordsInfoMapper.selectById(Long.parseLong(tt));
+			if(tmp != null){
+				tmp.setDeleteFlag(1l);
+				searchRecordsInfoMapper.updateById(tmp);
+			}
+		}
+		return true;
+	}
+
+	@Override
+	public Boolean update(SearchRecordsInfo searchRecordsInfo,Long adminId) throws ServiceException {
+		Date now = new Date();
+		searchRecordsInfo.setGmtUpdate(now);
+		searchRecordsInfo.setCommonId(adminId);
+		return searchRecordsInfoMapper.updateById(searchRecordsInfo)>0;
+	}
+
+	@Override
+	public SearchRecordsInfo get(Long id) throws ServiceException {
+		return searchRecordsInfoMapper.selectById(id);
+	}
+	
+	@Override
+	public String export(Long commonId,String searchContent,String functionType,Date gmtCreate,Date gmtUpdate,Long deleteFlag, Integer page, Integer limit)throws ServiceException {
+		Wrapper<SearchRecordsInfo> wrapper = new EntityWrapper<SearchRecordsInfo>();
+														if (!StringUtils.isEmpty(commonId)) {
+					wrapper.eq("common_id", commonId);
+				}
+												if (!StringUtils.isEmpty(searchContent)) {
+					wrapper.eq("search_content", searchContent);
+				}
+												if (!StringUtils.isEmpty(functionType)) {
+					wrapper.eq("function_type", functionType);
+				}
+												if (!StringUtils.isEmpty(gmtCreate)) {
+					wrapper.eq("gmt_create", gmtCreate);
+				}
+												if (!StringUtils.isEmpty(gmtUpdate)) {
+					wrapper.eq("gmt_update", gmtUpdate);
+				}
+												if (!StringUtils.isEmpty(deleteFlag)) {
+					wrapper.eq("delete_flag", deleteFlag);
+				}
+							List<SearchRecordsInfo> list = searchRecordsInfoMapper.selectList(wrapper);
+		ExcelUtil<SearchRecordsInfo> util = new ExcelUtil<SearchRecordsInfo>(SearchRecordsInfo.class);
+		return util.exportExcel(list, "操作日志");
+	}
+}

+ 73 - 0
unimall-admin/src/api/card/cardClassifyInfo.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询名片分类列表
+export function listCardClassifyInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.cardClassifyInfo',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询名片分类详细
+export function getCardClassifyInfo(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.cardClassifyInfo',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增名片分类
+export function addCardClassifyInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.cardClassifyInfo',
+      _mt: 'add',
+      cardClassifyInfo: data
+    }
+  })
+}
+
+// 修改名片分类
+export function updateCardClassifyInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.cardClassifyInfo',
+      _mt: 'update',
+      cardClassifyInfo: data
+    }
+  })
+}
+
+// 删除名片分类
+export function delCardClassifyInfo(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.cardClassifyInfo',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出名片分类
+export function exportCardClassifyInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.cardClassifyInfo',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/card/cardHolderInfo.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询名片夹列表
+export function listCardHolderInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.cardHolderInfo',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询名片夹详细
+export function getCardHolderInfo(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.cardHolderInfo',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增名片夹
+export function addCardHolderInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.cardHolderInfo',
+      _mt: 'add',
+      cardHolderInfo: data
+    }
+  })
+}
+
+// 修改名片夹
+export function updateCardHolderInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.cardHolderInfo',
+      _mt: 'update',
+      cardHolderInfo: data
+    }
+  })
+}
+
+// 删除名片夹
+export function delCardHolderInfo(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.cardHolderInfo',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出名片夹
+export function exportCardHolderInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.cardHolderInfo',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/card/cardManagementInfo.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询名片管理列表
+export function listCardManagementInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.cardManagementInfo',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询名片管理详细
+export function getCardManagementInfo(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.cardManagementInfo',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增名片管理
+export function addCardManagementInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.cardManagementInfo',
+      _mt: 'add',
+      cardManagementInfo: data
+    }
+  })
+}
+
+// 修改名片管理
+export function updateCardManagementInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.cardManagementInfo',
+      _mt: 'update',
+      cardManagementInfo: data
+    }
+  })
+}
+
+// 删除名片管理
+export function delCardManagementInfo(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.cardManagementInfo',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出名片管理
+export function exportCardManagementInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.cardManagementInfo',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/card/certificateManagementInfo.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询证件管理列表
+export function listCertificateManagementInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.certificateManagementInfo',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询证件管理详细
+export function getCertificateManagementInfo(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.certificateManagementInfo',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增证件管理
+export function addCertificateManagementInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.certificateManagementInfo',
+      _mt: 'add',
+      certificateManagementInfo: data
+    }
+  })
+}
+
+// 修改证件管理
+export function updateCertificateManagementInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.certificateManagementInfo',
+      _mt: 'update',
+      certificateManagementInfo: data
+    }
+  })
+}
+
+// 删除证件管理
+export function delCertificateManagementInfo(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.certificateManagementInfo',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出证件管理
+export function exportCertificateManagementInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.certificateManagementInfo',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/card/circleCardInfo.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询圈子个人关系列表
+export function listCircleCardInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.circleCardInfo',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询圈子个人关系详细
+export function getCircleCardInfo(comId) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.circleCardInfo',
+      _mt: 'get',
+      comId: comId
+    }
+  })
+}
+
+// 新增圈子个人关系
+export function addCircleCardInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.circleCardInfo',
+      _mt: 'add',
+      circleCardInfo: data
+    }
+  })
+}
+
+// 修改圈子个人关系
+export function updateCircleCardInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.circleCardInfo',
+      _mt: 'update',
+      circleCardInfo: data
+    }
+  })
+}
+
+// 删除圈子个人关系
+export function delCircleCardInfo(comId) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.circleCardInfo',
+      _mt: 'delete',
+      comId: comId
+    }
+  })
+}
+
+// 导出圈子个人关系
+export function exportCircleCardInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.circleCardInfo',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/card/circleManagementInfo.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询圈子管理列表
+export function listCircleManagementInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.circleManagementInfo',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询圈子管理详细
+export function getCircleManagementInfo(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.circleManagementInfo',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增圈子管理
+export function addCircleManagementInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.circleManagementInfo',
+      _mt: 'add',
+      circleManagementInfo: data
+    }
+  })
+}
+
+// 修改圈子管理
+export function updateCircleManagementInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.circleManagementInfo',
+      _mt: 'update',
+      circleManagementInfo: data
+    }
+  })
+}
+
+// 删除圈子管理
+export function delCircleManagementInfo(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.circleManagementInfo',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出圈子管理
+export function exportCircleManagementInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.circleManagementInfo',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 73 - 0
unimall-admin/src/api/card/commonUserInfo.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询用户管理列表
+export function listCommonUserInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.commonUserInfo',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询用户管理详细
+export function getCommonUserInfo(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.commonUserInfo',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增用户管理
+export function addCommonUserInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.commonUserInfo',
+      _mt: 'add',
+      commonUserInfo: data
+    }
+  })
+}
+
+// 修改用户管理
+export function updateCommonUserInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.commonUserInfo',
+      _mt: 'update',
+      commonUserInfo: data
+    }
+  })
+}
+
+// 删除用户管理
+export function delCommonUserInfo(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.commonUserInfo',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出用户管理
+export function exportCommonUserInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.commonUserInfo',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

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

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

+ 73 - 0
unimall-admin/src/api/card/personalHomepageInfo.js

@@ -0,0 +1,73 @@
+import request from '@/utils/request'
+
+// 查询个人主页列表
+export function listPersonalHomepageInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.personalHomepageInfo',
+      _mt: 'list',
+      ...query
+    }
+  })
+}
+
+// 查询个人主页详细
+export function getPersonalHomepageInfo(id) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.personalHomepageInfo',
+      _mt: 'get',
+      id: id
+    }
+  })
+}
+
+// 新增个人主页
+export function addPersonalHomepageInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.personalHomepageInfo',
+      _mt: 'add',
+      personalHomepageInfo: data
+    }
+  })
+}
+
+// 修改个人主页
+export function updatePersonalHomepageInfo(data) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.personalHomepageInfo',
+      _mt: 'update',
+      personalHomepageInfo: data
+    }
+  })
+}
+
+// 删除个人主页
+export function delPersonalHomepageInfo(id) {
+  return request({
+    method: 'post',
+    params: {
+      _gp: 'admin.unimall.personalHomepageInfo',
+      _mt: 'delete',
+      id: id
+    }
+  })
+}
+
+// 导出个人主页
+export function exportPersonalHomepageInfo(query) {
+  return request({
+    method: 'get',
+    params: {
+      _gp: 'admin.unimall.personalHomepageInfo',
+      _mt: 'export',
+      ...query
+    }
+  })
+}

+ 356 - 0
unimall-admin/src/views/cardClassifyInfo/index.vue

@@ -0,0 +1,356 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="个人id" prop="commonId">
+        <el-input
+          v-model="queryParams.commonId"
+          placeholder="请输入个人id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="分类名称" prop="circleName">
+        <el-input
+          v-model="queryParams.circleName"
+          placeholder="请输入分类名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="置顶标识" prop="topMarking">
+        <el-input
+          v-model="queryParams.topMarking"
+          placeholder="请输入置顶标识"
+          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="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入删除标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall:cardClassifyInfo:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['unimall:cardClassifyInfo:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['unimall:cardClassifyInfo:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['unimall:cardClassifyInfo:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="cardClassifyInfoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="个人id" align="center" prop="commonId" />
+      <el-table-column label="分类名称" align="center" prop="circleName" />
+      <el-table-column label="置顶标识" align="center" prop="topMarking" />
+      <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="deleteFlag" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:cardClassifyInfo:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall:cardClassifyInfo: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="个人id" prop="commonId">
+          <el-input v-model="form.commonId" placeholder="请输入个人id" />
+        </el-form-item>
+        <el-form-item label="分类名称" prop="circleName">
+          <el-input v-model="form.circleName" placeholder="请输入分类名称" />
+        </el-form-item>
+        <el-form-item label="置顶标识" prop="topMarking">
+          <el-input v-model="form.topMarking" placeholder="请输入置顶标识" />
+        </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="deleteFlag">
+          <el-input v-model="form.deleteFlag" 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 { listCardClassifyInfo, getCardClassifyInfo, delCardClassifyInfo, addCardClassifyInfo, updateCardClassifyInfo, exportCardClassifyInfo } from "@/api/unimall/cardClassifyInfo";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 名片分类表格数据
+      cardClassifyInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        commonId: undefined,
+        circleName: undefined,
+        topMarking: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        topMarking: [
+          { required: true, message: "置顶标识不能为空", trigger: "blur" }
+        ],        gmtCreate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        gmtUpdate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        deleteFlag: [
+          { required: true, message: "删除标识不能为空", trigger: "blur" }
+        ]      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询名片分类列表 */
+    getList() {
+      this.loading = true;
+      listCardClassifyInfo(this.queryParams).then(response => {
+        this.cardClassifyInfoList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        commonId: undefined,
+        circleName: undefined,
+        topMarking: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: 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(',')
+      getCardClassifyInfo(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) {
+            updateCardClassifyInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addCardClassifyInfo(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 delCardClassifyInfo(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有名片分类数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportCardClassifyInfo(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 359 - 0
unimall-admin/src/views/cardHolderInfo/index.vue

@@ -0,0 +1,359 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="个人id" prop="commonId">
+        <el-input
+          v-model="queryParams.commonId"
+          placeholder="请输入个人id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="名片id" prop="cardId">
+        <el-input
+          v-model="queryParams.cardId"
+          placeholder="请输入名片id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="客户分类" prop="classify">
+        <el-input
+          v-model="queryParams.classify"
+          placeholder="请输入客户分类"
+          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="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入删除标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall:cardHolderInfo:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['unimall:cardHolderInfo:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['unimall:cardHolderInfo:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['unimall:cardHolderInfo:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="cardHolderInfoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="个人id" align="center" prop="commonId" />
+      <el-table-column label="名片id" align="center" prop="cardId" />
+      <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column label="客户分类" align="center" prop="classify" />
+      <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="deleteFlag" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:cardHolderInfo:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall:cardHolderInfo: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="个人id" prop="commonId">
+          <el-input v-model="form.commonId" placeholder="请输入个人id" />
+        </el-form-item>
+        <el-form-item label="名片id" prop="cardId">
+          <el-input v-model="form.cardId" placeholder="请输入名片id" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="客户分类" prop="classify">
+          <el-input v-model="form.classify" placeholder="请输入客户分类" />
+        </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="deleteFlag">
+          <el-input v-model="form.deleteFlag" 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 { listCardHolderInfo, getCardHolderInfo, delCardHolderInfo, addCardHolderInfo, updateCardHolderInfo, exportCardHolderInfo } from "@/api/unimall/cardHolderInfo";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 名片夹表格数据
+      cardHolderInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        commonId: undefined,
+        cardId: undefined,
+        classify: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        gmtCreate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        gmtUpdate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        deleteFlag: [
+          { required: true, message: "删除标识不能为空", trigger: "blur" }
+        ]      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询名片夹列表 */
+    getList() {
+      this.loading = true;
+      listCardHolderInfo(this.queryParams).then(response => {
+        this.cardHolderInfoList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        commonId: undefined,
+        cardId: undefined,
+        remark: undefined,
+        classify: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: 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(',')
+      getCardHolderInfo(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) {
+            updateCardHolderInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addCardHolderInfo(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 delCardHolderInfo(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有名片夹数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportCardHolderInfo(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 459 - 0
unimall-admin/src/views/cardManagementInfo/index.vue

@@ -0,0 +1,459 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="个人id" prop="commonId">
+        <el-input
+          v-model="queryParams.commonId"
+          placeholder="请输入个人id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="名片标识" prop="cardBusiness">
+        <el-input
+          v-model="queryParams.cardBusiness"
+          placeholder="请输入名片标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="姓名" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入姓名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="职务" prop="post">
+        <el-input
+          v-model="queryParams.post"
+          placeholder="请输入职务"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="公司名" prop="companyName">
+        <el-input
+          v-model="queryParams.companyName"
+          placeholder="请输入公司名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="定位" prop="location">
+        <el-input
+          v-model="queryParams.location"
+          placeholder="请输入定位"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="详细地址" prop="detailedAddress">
+        <el-input
+          v-model="queryParams.detailedAddress"
+          placeholder="请输入详细地址"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="联系电话" prop="phone">
+        <el-input
+          v-model="queryParams.phone"
+          placeholder="请输入联系电话"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="头像" prop="headSculpture">
+        <el-input
+          v-model="queryParams.headSculpture"
+          placeholder="请输入头像"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="二维码" prop="qrCode">
+        <el-input
+          v-model="queryParams.qrCode"
+          placeholder="请输入二维码"
+          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="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入删除标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall:cardManagementInfo:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['unimall:cardManagementInfo:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['unimall:cardManagementInfo:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['unimall:cardManagementInfo:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="cardManagementInfoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="个人id" align="center" prop="commonId" />
+      <el-table-column label="名片标识" align="center" prop="cardBusiness" />
+      <el-table-column label="姓名" align="center" prop="name" />
+      <el-table-column label="职务" align="center" prop="post" />
+      <el-table-column label="公司名" align="center" prop="companyName" />
+      <el-table-column label="定位" align="center" prop="location" />
+      <el-table-column label="详细地址" align="center" prop="detailedAddress" />
+      <el-table-column label="联系电话" align="center" prop="phone" />
+      <el-table-column label="头像" align="center" prop="headSculpture" />
+      <el-table-column label="二维码" align="center" prop="qrCode" />
+      <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="deleteFlag" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:cardManagementInfo:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall:cardManagementInfo: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="个人id" prop="commonId">
+          <el-input v-model="form.commonId" placeholder="请输入个人id" />
+        </el-form-item>
+        <el-form-item label="名片标识" prop="cardBusiness">
+          <el-input v-model="form.cardBusiness" placeholder="请输入名片标识" />
+        </el-form-item>
+        <el-form-item label="姓名" prop="name">
+          <el-input v-model="form.name" placeholder="请输入姓名" />
+        </el-form-item>
+        <el-form-item label="职务" prop="post">
+          <el-input v-model="form.post" placeholder="请输入职务" />
+        </el-form-item>
+        <el-form-item label="公司名" prop="companyName">
+          <el-input v-model="form.companyName" placeholder="请输入公司名" />
+        </el-form-item>
+        <el-form-item label="定位" prop="location">
+          <el-input v-model="form.location" placeholder="请输入定位" />
+        </el-form-item>
+        <el-form-item label="详细地址" prop="detailedAddress">
+          <el-input v-model="form.detailedAddress" placeholder="请输入详细地址" />
+        </el-form-item>
+        <el-form-item label="联系电话" prop="phone">
+          <el-input v-model="form.phone" placeholder="请输入联系电话" />
+        </el-form-item>
+        <el-form-item label="头像" prop="headSculpture">
+          <el-input v-model="form.headSculpture" placeholder="请输入头像" />
+        </el-form-item>
+        <el-form-item label="二维码" prop="qrCode">
+          <el-input v-model="form.qrCode" placeholder="请输入二维码" />
+        </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="deleteFlag">
+          <el-input v-model="form.deleteFlag" 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 { listCardManagementInfo, getCardManagementInfo, delCardManagementInfo, addCardManagementInfo, updateCardManagementInfo, exportCardManagementInfo } from "@/api/unimall/cardManagementInfo";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 名片管理表格数据
+      cardManagementInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        commonId: undefined,
+        cardBusiness: undefined,
+        name: undefined,
+        post: undefined,
+        companyName: undefined,
+        location: undefined,
+        detailedAddress: undefined,
+        phone: undefined,
+        headSculpture: undefined,
+        qrCode: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        gmtCreate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        gmtUpdate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        deleteFlag: [
+          { required: true, message: "删除标识不能为空", trigger: "blur" }
+        ]      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询名片管理列表 */
+    getList() {
+      this.loading = true;
+      listCardManagementInfo(this.queryParams).then(response => {
+        this.cardManagementInfoList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        commonId: undefined,
+        cardBusiness: undefined,
+        name: undefined,
+        post: undefined,
+        companyName: undefined,
+        location: undefined,
+        detailedAddress: undefined,
+        phone: undefined,
+        headSculpture: undefined,
+        qrCode: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: 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(',')
+      getCardManagementInfo(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) {
+            updateCardManagementInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addCardManagementInfo(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 delCardManagementInfo(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有名片管理数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportCardManagementInfo(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 354 - 0
unimall-admin/src/views/certificateManagementInfo/index.vue

@@ -0,0 +1,354 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="个人id" prop="commonId">
+        <el-input
+          v-model="queryParams.commonId"
+          placeholder="请输入个人id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="证件名称" prop="certificateName">
+        <el-input
+          v-model="queryParams.certificateName"
+          placeholder="请输入证件名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="证件图" prop="certificateImage">
+        <el-input
+          v-model="queryParams.certificateImage"
+          placeholder="请输入证件图"
+          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="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入删除标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall:certificateManagementInfo:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['unimall:certificateManagementInfo:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['unimall:certificateManagementInfo:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['unimall:certificateManagementInfo:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="certificateManagementInfoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="个人id" align="center" prop="commonId" />
+      <el-table-column label="证件名称" align="center" prop="certificateName" />
+      <el-table-column label="证件图" align="center" prop="certificateImage" />
+      <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="deleteFlag" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:certificateManagementInfo:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall:certificateManagementInfo: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="个人id" prop="commonId">
+          <el-input v-model="form.commonId" placeholder="请输入个人id" />
+        </el-form-item>
+        <el-form-item label="证件名称" prop="certificateName">
+          <el-input v-model="form.certificateName" placeholder="请输入证件名称" />
+        </el-form-item>
+        <el-form-item label="证件图" prop="certificateImage">
+          <el-input v-model="form.certificateImage" placeholder="请输入证件图" />
+        </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="deleteFlag">
+          <el-input v-model="form.deleteFlag" 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 { listCertificateManagementInfo, getCertificateManagementInfo, delCertificateManagementInfo, addCertificateManagementInfo, updateCertificateManagementInfo, exportCertificateManagementInfo } from "@/api/unimall/certificateManagementInfo";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 证件管理表格数据
+      certificateManagementInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        commonId: undefined,
+        certificateName: undefined,
+        certificateImage: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        gmtCreate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        gmtUpdate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        deleteFlag: [
+          { required: true, message: "删除标识不能为空", trigger: "blur" }
+        ]      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询证件管理列表 */
+    getList() {
+      this.loading = true;
+      listCertificateManagementInfo(this.queryParams).then(response => {
+        this.certificateManagementInfoList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        commonId: undefined,
+        certificateName: undefined,
+        certificateImage: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: 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(',')
+      getCertificateManagementInfo(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) {
+            updateCertificateManagementInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addCertificateManagementInfo(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 delCertificateManagementInfo(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有证件管理数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportCertificateManagementInfo(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 358 - 0
unimall-admin/src/views/circleCardInfo/index.vue

@@ -0,0 +1,358 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="圈子id" prop="comId">
+        <el-input
+          v-model="queryParams.comId"
+          placeholder="请输入圈子id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="名片id" prop="identityId">
+        <el-input
+          v-model="queryParams.identityId"
+          placeholder="请输入名片id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="个人id" prop="commonId">
+        <el-input
+          v-model="queryParams.commonId"
+          placeholder="请输入个人id"
+          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="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入删除标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall:circleCardInfo:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['unimall:circleCardInfo:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['unimall:circleCardInfo:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['unimall:circleCardInfo:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="circleCardInfoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="圈子id" align="center" prop="comId" />
+      <el-table-column label="名片id" align="center" prop="identityId" />
+      <el-table-column label="个人id" align="center" prop="commonId" />
+      <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="deleteFlag" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:circleCardInfo:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall:circleCardInfo: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="圈子id" prop="comId">
+          <el-input v-model="form.comId" placeholder="请输入圈子id" />
+        </el-form-item>
+        <el-form-item label="名片id" prop="identityId">
+          <el-input v-model="form.identityId" placeholder="请输入名片id" />
+        </el-form-item>
+        <el-form-item label="个人id" prop="commonId">
+          <el-input v-model="form.commonId" placeholder="请输入个人id" />
+        </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="deleteFlag">
+          <el-input v-model="form.deleteFlag" 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 { listCircleCardInfo, getCircleCardInfo, delCircleCardInfo, addCircleCardInfo, updateCircleCardInfo, exportCircleCardInfo } from "@/api/unimall/circleCardInfo";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 圈子个人关系表格数据
+      circleCardInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        comId: undefined,
+        identityId: undefined,
+        commonId: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        comId: [
+          { required: true, message: "圈子id不能为空", trigger: "blur" }
+        ],        identityId: [
+          { required: true, message: "名片id不能为空", trigger: "blur" }
+        ],        commonId: [
+          { required: true, message: "个人id不能为空", trigger: "blur" }
+        ],        gmtCreate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        gmtUpdate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        deleteFlag: [
+          { required: true, message: "删除标识不能为空", trigger: "blur" }
+        ]      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询圈子个人关系列表 */
+    getList() {
+      this.loading = true;
+      listCircleCardInfo(this.queryParams).then(response => {
+        this.circleCardInfoList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        comId: undefined,
+        identityId: undefined,
+        commonId: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: 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.comId)
+      this.single = selection.length!=1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加圈子个人关系";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const comId = row.comId || this.ids.join(',')
+      getCircleCardInfo(comId).then(response => {
+        this.form = response.data.data
+        this.open = true;
+        this.title = "修改圈子个人关系";
+      });
+    },
+    /** 提交按钮 */
+    submitForm: function() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.comId != undefined) {
+            updateCircleCardInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addCircleCardInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const comIds = row.comId || this.ids.join(',')
+      this.$confirm('是否确认删除圈子个人关系编号为"' + comIds + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delCircleCardInfo(comIds);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有圈子个人关系数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportCircleCardInfo(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 360 - 0
unimall-admin/src/views/circleManagementInfo/index.vue

@@ -0,0 +1,360 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="个人id" prop="commonId">
+        <el-input
+          v-model="queryParams.commonId"
+          placeholder="请输入个人id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="圈子名称" prop="circleName">
+        <el-input
+          v-model="queryParams.circleName"
+          placeholder="请输入圈子名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+        <el-form-item label="0未审核 1已通过" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择0未审核 1已通过" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </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="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入删除标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall:circleManagementInfo:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['unimall:circleManagementInfo:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['unimall:circleManagementInfo:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['unimall:circleManagementInfo:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="circleManagementInfoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="个人id" align="center" prop="commonId" />
+      <el-table-column label="圈子名称" align="center" prop="circleName" />
+      <el-table-column label="圈子标签" align="center" prop="circleLabel" />
+      <el-table-column label="0未审核 1已通过" align="center" prop="status" />
+      <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="deleteFlag" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:circleManagementInfo:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall:circleManagementInfo: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="个人id" prop="commonId">
+          <el-input v-model="form.commonId" placeholder="请输入个人id" />
+        </el-form-item>
+        <el-form-item label="圈子名称" prop="circleName">
+          <el-input v-model="form.circleName" placeholder="请输入圈子名称" />
+        </el-form-item>
+        <el-form-item label="圈子标签" prop="circleLabel">
+          <el-input v-model="form.circleLabel" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="0未审核 1已通过">
+          <el-radio-group v-model="form.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </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="deleteFlag">
+          <el-input v-model="form.deleteFlag" 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 { listCircleManagementInfo, getCircleManagementInfo, delCircleManagementInfo, addCircleManagementInfo, updateCircleManagementInfo, exportCircleManagementInfo } from "@/api/unimall/circleManagementInfo";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 圈子管理表格数据
+      circleManagementInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        commonId: undefined,
+        circleName: undefined,
+        circleLabel: undefined,
+        status: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        status: [
+          { required: true, message: "0未审核 1已通过不能为空", trigger: "blur" }
+        ],        gmtCreate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        gmtUpdate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        deleteFlag: [
+          { required: true, message: "删除标识不能为空", trigger: "blur" }
+        ]      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询圈子管理列表 */
+    getList() {
+      this.loading = true;
+      listCircleManagementInfo(this.queryParams).then(response => {
+        this.circleManagementInfoList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        commonId: undefined,
+        circleName: undefined,
+        circleLabel: undefined,
+        status: "0",
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: 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(',')
+      getCircleManagementInfo(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) {
+            updateCircleManagementInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addCircleManagementInfo(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 delCircleManagementInfo(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有圈子管理数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportCircleManagementInfo(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 435 - 0
unimall-admin/src/views/commonUserInfo/index.vue

@@ -0,0 +1,435 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="昵称" prop="nickname">
+        <el-input
+          v-model="queryParams.nickname"
+          placeholder="请输入昵称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="密码" prop="password">
+        <el-input
+          v-model="queryParams.password"
+          placeholder="请输入密码"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="手机号" prop="phone">
+        <el-input
+          v-model="queryParams.phone"
+          placeholder="请输入手机号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="真实姓名" prop="realname">
+        <el-input
+          v-model="queryParams.realname"
+          placeholder="请输入真实姓名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="允许他人分享名片(1允许)" prop="shareCard">
+        <el-input
+          v-model="queryParams.shareCard"
+          placeholder="请输入允许他人分享名片(1允许)"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="允许圈子成员查看主页(1允许)" prop="lookPage">
+        <el-input
+          v-model="queryParams.lookPage"
+          placeholder="请输入允许圈子成员查看主页(1允许)"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="自动接受邀请(1是)" prop="autoAccept">
+        <el-input
+          v-model="queryParams.autoAccept"
+          placeholder="请输入自动接受邀请(1是)"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+        <el-form-item label="0.冻结 1.激活" prop="status">
+        <el-select v-model="queryParams.status" placeholder="请选择0.冻结 1.激活" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </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="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入删除标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall:commonUserInfo:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['unimall:commonUserInfo:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['unimall:commonUserInfo:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['unimall:commonUserInfo:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="commonUserInfoList" @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="nickname" />
+      <el-table-column label="密码" align="center" prop="password" />
+      <el-table-column label="手机号" align="center" prop="phone" />
+      <el-table-column label="真实姓名" align="center" prop="realname" />
+      <el-table-column label="允许他人分享名片(1允许)" align="center" prop="shareCard" />
+      <el-table-column label="允许圈子成员查看主页(1允许)" align="center" prop="lookPage" />
+      <el-table-column label="自动接受邀请(1是)" align="center" prop="autoAccept" />
+      <el-table-column label="0.冻结 1.激活" align="center" prop="status" />
+      <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="deleteFlag" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:commonUserInfo:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall:commonUserInfo: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="nickname">
+          <el-input v-model="form.nickname" placeholder="请输入昵称" />
+        </el-form-item>
+        <el-form-item label="密码" prop="password">
+          <el-input v-model="form.password" placeholder="请输入密码" />
+        </el-form-item>
+        <el-form-item label="手机号" prop="phone">
+          <el-input v-model="form.phone" placeholder="请输入手机号" />
+        </el-form-item>
+        <el-form-item label="真实姓名" prop="realname">
+          <el-input v-model="form.realname" placeholder="请输入真实姓名" />
+        </el-form-item>
+        <el-form-item label="允许他人分享名片(1允许)" prop="shareCard">
+          <el-input v-model="form.shareCard" placeholder="请输入允许他人分享名片(1允许)" />
+        </el-form-item>
+        <el-form-item label="允许圈子成员查看主页(1允许)" prop="lookPage">
+          <el-input v-model="form.lookPage" placeholder="请输入允许圈子成员查看主页(1允许)" />
+        </el-form-item>
+        <el-form-item label="自动接受邀请(1是)" prop="autoAccept">
+          <el-input v-model="form.autoAccept" placeholder="请输入自动接受邀请(1是)" />
+        </el-form-item>
+        <el-form-item label="0.冻结 1.激活">
+          <el-radio-group v-model="form.status">
+            <el-radio label="1">请选择字典生成</el-radio>
+          </el-radio-group>
+        </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="deleteFlag">
+          <el-input v-model="form.deleteFlag" 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 { listCommonUserInfo, getCommonUserInfo, delCommonUserInfo, addCommonUserInfo, updateCommonUserInfo, exportCommonUserInfo } from "@/api/unimall/commonUserInfo";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 用户管理表格数据
+      commonUserInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        nickname: undefined,
+        password: undefined,
+        phone: undefined,
+        realname: undefined,
+        shareCard: undefined,
+        lookPage: undefined,
+        autoAccept: undefined,
+        status: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        shareCard: [
+          { required: true, message: "允许他人分享名片(1允许)不能为空", trigger: "blur" }
+        ],        lookPage: [
+          { required: true, message: "允许圈子成员查看主页(1允许)不能为空", trigger: "blur" }
+        ],        autoAccept: [
+          { required: true, message: "自动接受邀请(1是)不能为空", trigger: "blur" }
+        ],        status: [
+          { required: true, message: "0.冻结 1.激活不能为空", trigger: "blur" }
+        ],        gmtCreate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        gmtUpdate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        deleteFlag: [
+          { required: true, message: "删除标识不能为空", trigger: "blur" }
+        ]      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询用户管理列表 */
+    getList() {
+      this.loading = true;
+      listCommonUserInfo(this.queryParams).then(response => {
+        this.commonUserInfoList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        nickname: undefined,
+        password: undefined,
+        phone: undefined,
+        realname: undefined,
+        shareCard: undefined,
+        lookPage: undefined,
+        autoAccept: undefined,
+        status: "0",
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: 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(',')
+      getCommonUserInfo(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) {
+            updateCommonUserInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addCommonUserInfo(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 delCommonUserInfo(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有用户管理数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportCommonUserInfo(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 417 - 0
unimall-admin/src/views/personalHomepageInfo/index.vue

@@ -0,0 +1,417 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="个人id" prop="commonId">
+        <el-input
+          v-model="queryParams.commonId"
+          placeholder="请输入个人id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="公司名" prop="companyName">
+        <el-input
+          v-model="queryParams.companyName"
+          placeholder="请输入公司名"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="公司地址" prop="companyAddress">
+        <el-input
+          v-model="queryParams.companyAddress"
+          placeholder="请输入公司地址"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="联系电话" prop="phone">
+        <el-input
+          v-model="queryParams.phone"
+          placeholder="请输入联系电话"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="传真" prop="portraiture">
+        <el-input
+          v-model="queryParams.portraiture"
+          placeholder="请输入传真"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="邮箱" prop="postbox">
+        <el-input
+          v-model="queryParams.postbox"
+          placeholder="请输入邮箱"
+          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="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入删除标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall:personalHomepageInfo:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-permission="['unimall:personalHomepageInfo:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-permission="['unimall:personalHomepageInfo:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-permission="['unimall:personalHomepageInfo:export']"
+        >导出</el-button>
+      </el-col>
+    </el-row>
+
+    <el-table v-loading="loading" :data="personalHomepageInfoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="" align="center" prop="id" />
+      <el-table-column label="个人id" align="center" prop="commonId" />
+      <el-table-column label="公司名" align="center" prop="companyName" />
+      <el-table-column label="公司简介" align="center" prop="companyIntroduction" />
+      <el-table-column label="业务范围" align="center" prop="scopeOfBusiness" />
+      <el-table-column label="公司地址" align="center" prop="companyAddress" />
+      <el-table-column label="联系电话" align="center" prop="phone" />
+      <el-table-column label="传真" align="center" prop="portraiture" />
+      <el-table-column label="邮箱" align="center" prop="postbox" />
+      <el-table-column label="企业风采" align="center" prop="addressUrl" />
+      <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="deleteFlag" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:personalHomepageInfo:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall:personalHomepageInfo: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="个人id" prop="commonId">
+          <el-input v-model="form.commonId" placeholder="请输入个人id" />
+        </el-form-item>
+        <el-form-item label="公司名" prop="companyName">
+          <el-input v-model="form.companyName" placeholder="请输入公司名" />
+        </el-form-item>
+        <el-form-item label="公司简介" prop="companyIntroduction">
+          <el-input v-model="form.companyIntroduction" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="业务范围" prop="scopeOfBusiness">
+          <el-input v-model="form.scopeOfBusiness" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="公司地址" prop="companyAddress">
+          <el-input v-model="form.companyAddress" placeholder="请输入公司地址" />
+        </el-form-item>
+        <el-form-item label="联系电话" prop="phone">
+          <el-input v-model="form.phone" placeholder="请输入联系电话" />
+        </el-form-item>
+        <el-form-item label="传真" prop="portraiture">
+          <el-input v-model="form.portraiture" placeholder="请输入传真" />
+        </el-form-item>
+        <el-form-item label="邮箱" prop="postbox">
+          <el-input v-model="form.postbox" placeholder="请输入邮箱" />
+        </el-form-item>
+        <el-form-item label="企业风采" prop="addressUrl">
+          <el-input v-model="form.addressUrl" type="textarea" placeholder="请输入内容" />
+        </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="deleteFlag">
+          <el-input v-model="form.deleteFlag" 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 { listPersonalHomepageInfo, getPersonalHomepageInfo, delPersonalHomepageInfo, addPersonalHomepageInfo, updatePersonalHomepageInfo, exportPersonalHomepageInfo } from "@/api/unimall/personalHomepageInfo";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 个人主页表格数据
+      personalHomepageInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        commonId: undefined,
+        companyName: undefined,
+        companyIntroduction: undefined,
+        scopeOfBusiness: undefined,
+        companyAddress: undefined,
+        phone: undefined,
+        portraiture: undefined,
+        postbox: undefined,
+        addressUrl: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        gmtCreate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        gmtUpdate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        deleteFlag: [
+          { required: true, message: "删除标识不能为空", trigger: "blur" }
+        ]      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询个人主页列表 */
+    getList() {
+      this.loading = true;
+      listPersonalHomepageInfo(this.queryParams).then(response => {
+        this.personalHomepageInfoList = response.data.data.items
+        this.total = response.data.data.count
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: undefined,
+        commonId: undefined,
+        companyName: undefined,
+        companyIntroduction: undefined,
+        scopeOfBusiness: undefined,
+        companyAddress: undefined,
+        phone: undefined,
+        portraiture: undefined,
+        postbox: undefined,
+        addressUrl: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: 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(',')
+      getPersonalHomepageInfo(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) {
+            updatePersonalHomepageInfo(this.form).then(response => {
+              if (response.data) {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              } else {
+                this.msgError(response.msg);
+              }
+            });
+          } else {
+            addPersonalHomepageInfo(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 delPersonalHomepageInfo(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        }).catch(function() {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams;
+      this.$confirm('是否确认导出所有个人主页数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPersonalHomepageInfo(queryParams);
+        }).then(response => {
+          this.download(response.data.data);
+        }).catch(function() {});
+    }
+  }
+};
+</script>

+ 352 - 0
unimall-admin/src/views/searchRecordsInfo/index.vue

@@ -0,0 +1,352 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
+      <el-form-item label="个人id" prop="commonId">
+        <el-input
+          v-model="queryParams.commonId"
+          placeholder="请输入个人id"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="搜索内容" prop="searchContent">
+        <el-input
+          v-model="queryParams.searchContent"
+          placeholder="请输入搜索内容"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+        <el-form-item label="功能类型" prop="functionType">
+        <el-select v-model="queryParams.functionType" placeholder="请选择功能类型" clearable size="small">
+          <el-option label="请选择字典生成" value="" />
+        </el-select>
+      </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="deleteFlag">
+        <el-input
+          v-model="queryParams.deleteFlag"
+          placeholder="请输入删除标识"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-permission="['unimall: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="['unimall: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="['unimall: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="['unimall: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="个人id" align="center" prop="commonId" />
+      <el-table-column label="搜索内容" align="center" prop="searchContent" />
+      <el-table-column label="功能类型" align="center" prop="functionType" />
+      <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="deleteFlag" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-permission="['unimall:info:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-permission="['unimall: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="个人id" prop="commonId">
+          <el-input v-model="form.commonId" placeholder="请输入个人id" />
+        </el-form-item>
+        <el-form-item label="搜索内容" prop="searchContent">
+          <el-input v-model="form.searchContent" placeholder="请输入搜索内容" />
+        </el-form-item>
+        <el-form-item label="功能类型">
+          <el-select v-model="form.functionType" placeholder="请选择功能类型">
+            <el-option label="请选择字典生成" value="" />
+          </el-select>
+        </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="deleteFlag">
+          <el-input v-model="form.deleteFlag" 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/unimall/info";
+
+export default {
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 总条数
+      total: 0,
+      // 搜索记录表格数据
+      infoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        commonId: undefined,
+        searchContent: undefined,
+        functionType: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: undefined
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        gmtCreate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        gmtUpdate: [
+          { required: true, message: "不能为空", trigger: "blur" }
+        ],        deleteFlag: [
+          { required: true, message: "删除标识不能为空", 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,
+        commonId: undefined,
+        searchContent: undefined,
+        functionType: undefined,
+        gmtCreate: undefined,
+        gmtUpdate: undefined,
+        deleteFlag: 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>

+ 74 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/CardClassifyInfo.java

@@ -0,0 +1,74 @@
+package com.iotechn.unimall.data.domain.unimall;
+
+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;
+
+/**
+ * 名片分类对象 card_classify_info
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Data
+@TableName("card_classify_info")
+public class CardClassifyInfo extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /** 个人id */
+    @Excel(name = "个人id")
+    @TableField("common_id")
+    private Long commonId;
+
+    /** 分类名称 */
+    @Excel(name = "分类名称")
+    @TableField("circle_name")
+    private String circleName;
+
+    /** 置顶标识 */
+    @Excel(name = "置顶标识")
+    @TableField("top_marking")
+    private Long topMarking;
+
+    /**  */
+    @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("delete_flag")
+    private Long deleteFlag;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("commonId", getCommonId())
+            .append("circleName", getCircleName())
+            .append("topMarking", getTopMarking())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("deleteFlag", getDeleteFlag())
+            .toString();
+    }
+}

+ 80 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/CardHolderInfo.java

@@ -0,0 +1,80 @@
+package com.iotechn.unimall.data.domain.unimall;
+
+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;
+
+/**
+ * 名片夹对象 card_holder_info
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Data
+@TableName("card_holder_info")
+public class CardHolderInfo extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /** 个人id */
+    @Excel(name = "个人id")
+    @TableField("common_id")
+    private Long commonId;
+
+    /** 名片id */
+    @Excel(name = "名片id")
+    @TableField("card_id")
+    private String cardId;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    @TableField("remark")
+    private String remark;
+
+    /** 客户分类 */
+    @Excel(name = "客户分类")
+    @TableField("classify")
+    private String classify;
+
+    /**  */
+    @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("delete_flag")
+    private Long deleteFlag;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("commonId", getCommonId())
+            .append("cardId", getCardId())
+            .append("remark", getRemark())
+            .append("classify", getClassify())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("deleteFlag", getDeleteFlag())
+            .toString();
+    }
+}

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

@@ -0,0 +1,116 @@
+package com.iotechn.unimall.data.domain.unimall;
+
+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;
+
+/**
+ * 名片管理对象 card_management_info
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Data
+@TableName("card_management_info")
+public class CardManagementInfo extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /** 个人id */
+    @Excel(name = "个人id")
+    @TableField("common_id")
+    private Long commonId;
+
+    /** 名片标识 */
+    @Excel(name = "名片标识")
+    @TableField("card_business")
+    private String cardBusiness;
+
+    /** 姓名 */
+    @Excel(name = "姓名")
+    @TableField("name")
+    private String name;
+
+    /** 职务 */
+    @Excel(name = "职务")
+    @TableField("post")
+    private String post;
+
+    /** 公司名 */
+    @Excel(name = "公司名")
+    @TableField("company_name")
+    private String companyName;
+
+    /** 定位 */
+    @Excel(name = "定位")
+    @TableField("location")
+    private String location;
+
+    /** 详细地址 */
+    @Excel(name = "详细地址")
+    @TableField("detailed_address")
+    private String detailedAddress;
+
+    /** 联系电话 */
+    @Excel(name = "联系电话")
+    @TableField("phone")
+    private String phone;
+
+    /** 头像 */
+    @Excel(name = "头像")
+    @TableField("head_sculpture")
+    private String headSculpture;
+
+    /** 二维码 */
+    @Excel(name = "二维码")
+    @TableField("qr_code")
+    private String qrCode;
+
+    /**  */
+    @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("delete_flag")
+    private Long deleteFlag;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("commonId", getCommonId())
+            .append("cardBusiness", getCardBusiness())
+            .append("name", getName())
+            .append("post", getPost())
+            .append("companyName", getCompanyName())
+            .append("location", getLocation())
+            .append("detailedAddress", getDetailedAddress())
+            .append("phone", getPhone())
+            .append("headSculpture", getHeadSculpture())
+            .append("qrCode", getQrCode())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("deleteFlag", getDeleteFlag())
+            .toString();
+    }
+}

+ 74 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/CertificateManagementInfo.java

@@ -0,0 +1,74 @@
+package com.iotechn.unimall.data.domain.unimall;
+
+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;
+
+/**
+ * 证件管理对象 certificate_management_info
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Data
+@TableName("certificate_management_info")
+public class CertificateManagementInfo extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /** 个人id */
+    @Excel(name = "个人id")
+    @TableField("common_id")
+    private Long commonId;
+
+    /** 证件名称 */
+    @Excel(name = "证件名称")
+    @TableField("certificate_name")
+    private String certificateName;
+
+    /** 证件图 */
+    @Excel(name = "证件图")
+    @TableField("certificate_image")
+    private String certificateImage;
+
+    /**  */
+    @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("delete_flag")
+    private Long deleteFlag;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("commonId", getCommonId())
+            .append("certificateName", getCertificateName())
+            .append("certificateImage", getCertificateImage())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("deleteFlag", getDeleteFlag())
+            .toString();
+    }
+}

+ 69 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/CircleCardInfo.java

@@ -0,0 +1,69 @@
+package com.iotechn.unimall.data.domain.unimall;
+
+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;
+
+/**
+ * 圈子个人关系对象 circle_card_info
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Data
+@TableName("circle_card_info")
+public class CircleCardInfo extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /** 圈子id */
+    @Excel(name = "圈子id")
+    @TableField("com_id")
+    private String comId;
+
+    /** 名片id */
+    @Excel(name = "名片id")
+    @TableField("identity_id")
+    private String identityId;
+
+    /** 个人id */
+    @Excel(name = "个人id")
+    @TableField("common_id")
+    private Long commonId;
+
+    /**  */
+    @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("delete_flag")
+    private Long deleteFlag;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("comId", getComId())
+            .append("identityId", getIdentityId())
+            .append("commonId", getCommonId())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("deleteFlag", getDeleteFlag())
+            .toString();
+    }
+}

+ 80 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/CircleManagementInfo.java

@@ -0,0 +1,80 @@
+package com.iotechn.unimall.data.domain.unimall;
+
+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;
+
+/**
+ * 圈子管理对象 circle_management_info
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Data
+@TableName("circle_management_info")
+public class CircleManagementInfo extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /** 个人id */
+    @Excel(name = "个人id")
+    @TableField("common_id")
+    private Long commonId;
+
+    /** 圈子名称 */
+    @Excel(name = "圈子名称")
+    @TableField("circle_name")
+    private String circleName;
+
+    /** 圈子标签 */
+    @Excel(name = "圈子标签")
+    @TableField("circle_label")
+    private String circleLabel;
+
+    /** 0未审核 1已通过 */
+    @Excel(name = "0未审核 1已通过")
+    @TableField("status")
+    private Long status;
+
+    /**  */
+    @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("delete_flag")
+    private Long deleteFlag;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("commonId", getCommonId())
+            .append("circleName", getCircleName())
+            .append("circleLabel", getCircleLabel())
+            .append("status", getStatus())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("deleteFlag", getDeleteFlag())
+            .toString();
+    }
+}

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

@@ -0,0 +1,104 @@
+package com.iotechn.unimall.data.domain.unimall;
+
+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;
+
+/**
+ * 用户管理对象 common_user_info
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Data
+@TableName("common_user_info")
+public class CommonUserInfo extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /** 昵称 */
+    @Excel(name = "昵称")
+    @TableField("nickname")
+    private String nickname;
+
+    /** 密码 */
+    @Excel(name = "密码")
+    @TableField("password")
+    private String password;
+
+    /** 手机号 */
+    @Excel(name = "手机号")
+    @TableField("phone")
+    private String phone;
+
+    /** 真实姓名 */
+    @Excel(name = "真实姓名")
+    @TableField("realname")
+    private String realname;
+
+    /** 允许他人分享名片(1允许) */
+    @Excel(name = "允许他人分享名片(1允许)")
+    @TableField("share_card")
+    private Long shareCard;
+
+    /** 允许圈子成员查看主页(1允许) */
+    @Excel(name = "允许圈子成员查看主页(1允许)")
+    @TableField("look_page")
+    private Long lookPage;
+
+    /** 自动接受邀请(1是) */
+    @Excel(name = "自动接受邀请(1是)")
+    @TableField("auto_accept")
+    private Long autoAccept;
+
+    /** 0.冻结 1.激活 */
+    @Excel(name = "0.冻结 1.激活")
+    @TableField("status")
+    private Long status;
+
+    /**  */
+    @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("delete_flag")
+    private Long deleteFlag;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("nickname", getNickname())
+            .append("password", getPassword())
+            .append("phone", getPhone())
+            .append("realname", getRealname())
+            .append("shareCard", getShareCard())
+            .append("lookPage", getLookPage())
+            .append("autoAccept", getAutoAccept())
+            .append("status", getStatus())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("deleteFlag", getDeleteFlag())
+            .toString();
+    }
+}

+ 110 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/PersonalHomepageInfo.java

@@ -0,0 +1,110 @@
+package com.iotechn.unimall.data.domain.unimall;
+
+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;
+
+/**
+ * 个人主页对象 personal_homepage_info
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+@Data
+@TableName("personal_homepage_info")
+public class PersonalHomepageInfo extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /** 个人id */
+    @Excel(name = "个人id")
+    @TableField("common_id")
+    private Long commonId;
+
+    /** 公司名 */
+    @Excel(name = "公司名")
+    @TableField("company_name")
+    private String companyName;
+
+    /** 公司简介 */
+    @Excel(name = "公司简介")
+    @TableField("company_introduction")
+    private String companyIntroduction;
+
+    /** 业务范围 */
+    @Excel(name = "业务范围")
+    @TableField("scope_of_business")
+    private String scopeOfBusiness;
+
+    /** 公司地址 */
+    @Excel(name = "公司地址")
+    @TableField("company_address")
+    private String companyAddress;
+
+    /** 联系电话 */
+    @Excel(name = "联系电话")
+    @TableField("phone")
+    private String phone;
+
+    /** 传真 */
+    @Excel(name = "传真")
+    @TableField("portraiture")
+    private String portraiture;
+
+    /** 邮箱 */
+    @Excel(name = "邮箱")
+    @TableField("postbox")
+    private String postbox;
+
+    /** 企业风采 */
+    @Excel(name = "企业风采")
+    @TableField("address_url")
+    private String addressUrl;
+
+    /**  */
+    @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("delete_flag")
+    private Long deleteFlag;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("commonId", getCommonId())
+            .append("companyName", getCompanyName())
+            .append("companyIntroduction", getCompanyIntroduction())
+            .append("scopeOfBusiness", getScopeOfBusiness())
+            .append("companyAddress", getCompanyAddress())
+            .append("phone", getPhone())
+            .append("portraiture", getPortraiture())
+            .append("postbox", getPostbox())
+            .append("addressUrl", getAddressUrl())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("deleteFlag", getDeleteFlag())
+            .toString();
+    }
+}

+ 74 - 0
unimall-data/src/main/java/com/iotechn/unimall/data/domain/SearchRecordsInfo.java

@@ -0,0 +1,74 @@
+package com.iotechn.unimall.data.domain.unimall;
+
+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;
+
+/**
+ * 搜索记录对象 search_records_info
+ * 
+ * @author searchRecordsInfo
+ * @date 2023-04-10
+ */
+@Data
+@TableName("search_records_info")
+public class SearchRecordsInfo extends SuperDO {
+    private static final long serialVersionUID = 1L;
+
+    /**  */
+    @TableId("id")
+    private Long id;
+
+    /** 个人id */
+    @Excel(name = "个人id")
+    @TableField("common_id")
+    private Long commonId;
+
+    /** 搜索内容 */
+    @Excel(name = "搜索内容")
+    @TableField("search_content")
+    private String searchContent;
+
+    /** 功能类型 */
+    @Excel(name = "功能类型")
+    @TableField("function_type")
+    private String functionType;
+
+    /**  */
+    @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("delete_flag")
+    private Long deleteFlag;
+
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("commonId", getCommonId())
+            .append("searchContent", getSearchContent())
+            .append("functionType", getFunctionType())
+            .append("gmtCreate", getGmtCreate())
+            .append("gmtUpdate", getGmtUpdate())
+            .append("deleteFlag", getDeleteFlag())
+            .toString();
+    }
+}

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

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.unimall;
+
+import com.iotechn.unimall.data.domain.unimall.CardClassifyInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 名片分类Mapper接口
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+public interface CardClassifyInfoMapper extends BaseMapper<CardClassifyInfo>{
+
+}

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

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.unimall;
+
+import com.iotechn.unimall.data.domain.unimall.CardHolderInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 名片夹Mapper接口
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+public interface CardHolderInfoMapper extends BaseMapper<CardHolderInfo>{
+
+}

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

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.unimall;
+
+import com.iotechn.unimall.data.domain.unimall.CardManagementInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 名片管理Mapper接口
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+public interface CardManagementInfoMapper extends BaseMapper<CardManagementInfo>{
+
+}

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

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.unimall;
+
+import com.iotechn.unimall.data.domain.unimall.CertificateManagementInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 证件管理Mapper接口
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+public interface CertificateManagementInfoMapper extends BaseMapper<CertificateManagementInfo>{
+
+}

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

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.unimall;
+
+import com.iotechn.unimall.data.domain.unimall.CircleCardInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 圈子个人关系Mapper接口
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+public interface CircleCardInfoMapper extends BaseMapper<CircleCardInfo>{
+
+}

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

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.unimall;
+
+import com.iotechn.unimall.data.domain.unimall.CircleManagementInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 圈子管理Mapper接口
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+public interface CircleManagementInfoMapper extends BaseMapper<CircleManagementInfo>{
+
+}

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

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.unimall;
+
+import com.iotechn.unimall.data.domain.unimall.CommonUserInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 用户管理Mapper接口
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+public interface CommonUserInfoMapper extends BaseMapper<CommonUserInfo>{
+
+}

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

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.unimall;
+
+import com.iotechn.unimall.data.domain.unimall.PersonalHomepageInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 个人主页Mapper接口
+ * 
+ * @author jlb
+ * @date 2023-04-10
+ */
+public interface PersonalHomepageInfoMapper extends BaseMapper<PersonalHomepageInfo>{
+
+}

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

@@ -0,0 +1,13 @@
+package com.iotechn.unimall.data.mapper.unimall;
+
+import com.iotechn.unimall.data.domain.unimall.SearchRecordsInfo;
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+/**
+ * 搜索记录Mapper接口
+ * 
+ * @author searchRecordsInfo
+ * @date 2023-04-10
+ */
+public interface SearchRecordsInfoMapper extends BaseMapper<SearchRecordsInfo>{
+
+}

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

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

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

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

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

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

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

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

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

+ 1 - 1
unimall-launcher/src/main/java/com/iotechn/unimall/launcher/controller/CommonController.java

@@ -90,7 +90,7 @@ public class CommonController {
         response.reset();
         response.setHeader("Content-Disposition", "attachment; filename=\""+tables+".zip\"");
         response.setHeader("Access-Control-Allow-Credentials", "true");
-        response.setHeader("Access-Control-Allow-Origin", "http://localhost:9527");
+        response.setHeader("Access-Control-Allow-Origin", "http://localhost:9528");
         response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
         response.addHeader("Content-Length", "" + data.length);
         response.setContentType("application/octet-stream; charset=UTF-8");

+ 4 - 0
xiaochengxu/.hbuilderx/launch.json

@@ -6,6 +6,10 @@
      	{
      		"launchtype" : "local"
      	},
+     	"h5" : 
+     	{
+     		"launchtype" : "local"
+     	},
      	"mp-weixin" : 
      	{
      		"launchtype" : "local"