[
  {
    "path": ".gitignore",
    "content": "# Maven #\ntarget/\n\n# IDEA #\n.idea/\n*.iml\n\n# Eclipse #\n.settings/\n.classpath\n.project"
  },
  {
    "path": "LICENSE",
    "content": "                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"[]\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright [2018-2025] [macrozheng]\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n"
  },
  {
    "path": "README.md",
    "content": "# mall-swarm\n\n<p>\n  <a href=\"#公众号\"><img src=\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/badge/%E5%85%AC%E4%BC%97%E5%8F%B7-macrozheng-blue.svg\" alt=\"公众号\"></a>\n  <a href=\"#公众号\"><img src=\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/badge/%E4%BA%A4%E6%B5%81-%E5%BE%AE%E4%BF%A1%E7%BE%A4-2BA245.svg\" alt=\"交流\"></a>\n  <a href=\"https://github.com/macrozheng/mall-learning\"><img src=\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/badge/%E5%AD%A6%E4%B9%A0%E6%95%99%E7%A8%8B-mall--learning-green.svg\" alt=\"学习教程\"></a>\n  <a href=\"https://github.com/macrozheng/mall\"><img src=\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/badge/%E5%90%8E%E5%8F%B0%E9%A1%B9%E7%9B%AE-mall-blue.svg\" alt=\"后台项目\"></a>\n  <a href=\"https://github.com/macrozheng/mall-admin-web\"><img src=\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/badge/%E5%89%8D%E7%AB%AF%E9%A1%B9%E7%9B%AE-mall--admin--web-green.svg\" alt=\"前端项目\"></a>\n  <a href=\"https://github.com/macrozheng/mall-app-web\"><img src=\"https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/badge/%E5%89%8D%E5%8F%B0%E5%95%86%E5%9F%8E%E9%A1%B9%E7%9B%AE-mall--app--web-green.svg\" alt=\"前台商城项目\"></a>\n  <a href=\"https://gitee.com/macrozheng/mall-swarm\"><img src=\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/badge/%E7%A0%81%E4%BA%91-%E9%A1%B9%E7%9B%AE%E5%9C%B0%E5%9D%80-orange.svg\" alt=\"码云\"></a>\n</p>\n\n## 友情提示\n\n> 1. **快速体验项目**：[在线访问地址](https://cloud.macrozheng.com/admin/index.html) 。\n> 2. **全套学习教程**：[《mall-swarm微服务学习教程》](https://cloud.macrozheng.com) 。\n> 3. **视频教程（2024最新版）**：[《mall-swarm视频教程》](https://cloud.macrozheng.com/video/) 。\n> 4. **Spring Cloud全套教程**：[《SpringCloud学习教程》](https://github.com/macrozheng/springcloud-learning) 。\n> 5. **分支说明**：`master`分支基于Spring Cloud 2023+Spring Boot 3.2，`dev-v2`分支基于Spring Cloud 2021+Spring Boot 2.7。\n\n## 项目简介\n\n`mall-swarm`是一套微服务商城系统，采用了 Spring Cloud 2023 & Alibaba、Spring Boot 3.2、Sa-Token、MyBatis、Elasticsearch、Docker、Kubernetes等核心技术，同时提供了基于Vue的管理后台方便快速搭建系统。`mall-swarm`在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。文档齐全，附带全套Spring Cloud教程。\n\n## 项目演示\n\n### 后台管理系统\n\n前端项目`mall-admin-web`地址：https://github.com/macrozheng/mall-admin-web\n\n项目演示地址： [https://www.macrozheng.com/admin/index.html](https://www.macrozheng.com/admin/index.html)\n\n![后台管理系统功能演示](./document/resource/mall_admin_show.png)\n\n### 前台商城系统\n\n前端项目`mall-app-web`地址：https://github.com/macrozheng/mall-app-web\n\n项目演示地址（将浏览器切换为手机模式效果更佳）：[https://www.macrozheng.com/app/](https://www.macrozheng.com/app/)\n\n![前台商城系统功能演示](./document/resource/re_mall_app_show.jpg)\n\n## 项目架构\n\n### 系统架构\n\n![系统架构图](./document/resource/mall_micro_service_arch.jpg)\n\n### 业务架构\n\n![业务架构图](./document/resource/re_mall_business_arch.jpg)\n\n### 组织结构\n\n``` lua\nmall\n├── mall-common -- 工具类及通用代码模块\n├── mall-mbg -- MyBatisGenerator生成的数据库操作代码模块\n├── mall-auth -- 基于Spring Security Oauth2的统一的认证中心\n├── mall-gateway -- 基于Spring Cloud Gateway的微服务API网关服务\n├── mall-monitor -- 基于Spring Boot Admin的微服务监控中心\n├── mall-admin -- 后台管理系统服务\n├── mall-search -- 基于Elasticsearch的商品搜索系统服务\n├── mall-portal -- 移动端商城系统服务\n├── mall-demo -- 微服务远程调用测试服务\n└── config -- 配置中心存储的配置\n```\n\n## 技术选型\n\n### 后端技术\n\n| 技术                   | 说明                 | 官网                                                 |\n| ---------------------- | -------------------- | ---------------------------------------------------- |\n| Spring Cloud           | 微服务框架           | https://spring.io/projects/spring-cloud              |\n| Spring Cloud Alibaba   | 微服务框架           | https://github.com/alibaba/spring-cloud-alibaba      |\n| Spring Boot            | 容器+MVC框架         | https://spring.io/projects/spring-boot               |\n| Sa-Token               | 认证和授权框架       | https://github.com/dromara/Sa-Token                   |\n| MyBatis                | ORM框架              | http://www.mybatis.org/mybatis-3/zh/index.html       |\n| MyBatisGenerator       | 数据层代码生成       | http://www.mybatis.org/generator/index.html          |\n| PageHelper             | MyBatis物理分页插件  | http://git.oschina.net/free/Mybatis_PageHelper       |\n| Knife4j                | 文档生产工具         | https://github.com/xiaoymin/swagger-bootstrap-ui     |\n| Elasticsearch          | 搜索引擎             | https://github.com/elastic/elasticsearch             |\n| RabbitMq               | 消息队列             | https://www.rabbitmq.com/                            |\n| Redis                  | 分布式缓存           | https://redis.io/                                    |\n| MongoDb                | NoSql数据库          | https://www.mongodb.com/                             |\n| Docker                 | 应用容器引擎         | https://www.docker.com/                              |\n| Druid                  | 数据库连接池         | https://github.com/alibaba/druid                     |\n| OSS                    | 对象存储             | https://github.com/aliyun/aliyun-oss-java-sdk        |\n| MinIO                  | 对象存储             | https://github.com/minio/minio                       |\n| LogStash               | 日志收集             | https://github.com/logstash/logstash-logback-encoder |\n| Lombok                 | 简化对象封装工具     | https://github.com/rzwitserloot/lombok               |\n| Seata                  | 全局事务管理框架     | https://github.com/seata/seata                       |\n| Portainer              | 可视化Docker容器管理 | https://github.com/portainer/portainer               |\n| Jenkins                | 自动化部署工具       | https://github.com/jenkinsci/jenkins                 |\n| Kubernetes             | 应用容器管理平台     | https://kubernetes.io/                               |\n\n### 前端技术\n\n| 技术       | 说明                  | 官网                           |\n| ---------- | --------------------- | ------------------------------ |\n| Vue        | 前端框架              | https://vuejs.org/             |\n| Vue-router | 路由框架              | https://router.vuejs.org/      |\n| Vuex       | 全局状态管理框架      | https://vuex.vuejs.org/        |\n| Element    | 前端UI框架            | https://element.eleme.io/      |\n| Axios      | 前端HTTP框架          | https://github.com/axios/axios |\n| v-charts   | 基于Echarts的图表框架 | https://v-charts.js.org/       |\n\n### 移动端技术\n\n| 技术         | 说明             | 官网                                    |\n| ------------ | ---------------- | --------------------------------------- |\n| Vue          | 核心前端框架     | https://vuejs.org                       |\n| Vuex         | 全局状态管理框架 | https://vuex.vuejs.org                  |\n| uni-app      | 移动端前端框架   | https://uniapp.dcloud.io                |\n| mix-mall     | 电商项目模板     | https://ext.dcloud.net.cn/plugin?id=200 |\n| luch-request | HTTP请求框架     | https://github.com/lei-mu/luch-request  |\n\n## 环境搭建\n\n### 开发环境\n\n| 工具          | 版本号 | 下载                                                         |\n| ------------- | ------ | ------------------------------------------------------------ |\n| JDK           | 17     | https://www.oracle.com/cn/java/technologies/downloads/#java17 |\n| Mysql         | 5.7    | https://www.mysql.com/                                       |\n| Redis         | 7.0    | https://redis.io/download                                    |\n| Elasticsearch | 7.17.3 | https://www.elastic.co/cn/downloads/elasticsearch            |\n| Kibana        | 7.17.3 | https://www.elastic.co/cn/downloads/kibana                   |\n| Logstash      | 7.17.3 | https://www.elastic.co/cn/downloads/logstash                 |\n| MongoDb       | 5.0    | https://www.mongodb.com/download-center                      |\n| RabbitMq      | 3.10.5 | http://www.rabbitmq.com/download.html                        |\n| nginx         | 1.22   | http://nginx.org/en/download.html                            |\n\n### 搭建步骤\n\n- Windows环境搭建请参考：[mall-swarm项目后端开发环境搭建](https://cloud.macrozheng.com/start/mall_swarm_deploy_windows.html);\n- `mall-admin-web`项目的安装及部署请参考：[mall-swarm前端开发环境搭建](https://cloud.macrozheng.com/start/mall_swarm_deploy_windows_web.html);\n\n## 运行效果展示\n\n- 查看注册中心注册服务信息，访问地址：http://192.168.3.101:8848/nacos/\n\n![](./document/resource/re_mall_swarm_run_01.png)\n\n- 监控中心应用信息，访问地址：http://192.168.3.101:8101\n\n![](./document/resource/re_mall_swarm_run_02.png)\n\n![](./document/resource/re_mall_swarm_run_03.png)\n\n- API文档信息，访问地址：http://192.168.3.101:8201\n\n![](./document/resource/re_mall_swarm_run_04.png)\n\n- 日志收集系统信息，访问地址：http://192.168.3.101:5601\n\n![](./document/resource/re_mall_swarm_run_05.png)\n\n- 使用Kubernetes部署后项目运行状态，访问地址：http://192.168.3.101:30880\n\n![](document/resource/re_mall_swarm_run_06.png)\n\n![](document/resource/re_mall_swarm_run_07.png)\n\n## 公众号\n\n加微信群交流，关注公众号「**macrozheng**」，回复「**加群**」即可。\n\n![公众号图片](http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/banner/qrcode_for_macrozheng_258.jpg)\n\n## 许可证\n\n[Apache License 2.0](https://github.com/macrozheng/mall-swarm/blob/master/LICENSE)\n\nCopyright (c) 2018-2025 macrozheng"
  },
  {
    "path": "config/admin/mall-admin-dev.yaml",
    "content": "aliyun:\n  oss:\n    endpoint: oss-cn-shenzhen.aliyuncs.com # oss对外服务的访问域名\n    accessKeyId: test # 访问身份验证中用到用户标识\n    accessKeySecret: test # 用户用于加密签名字符串和oss用来验证签名字符串的密钥\n    bucketName: macro-oss # oss的存储空间\n    policy:\n      expire: 300 # 签名有效期(S)\n    maxSize: 10 # 上传文件大小(M)\n    callback: http://39.98.190.128:8080/aliyun/oss/callback # 文件上传成功后的回调地址\n    dir:\n      prefix: mall/images/ # 上传文件夹路径前缀\nspring:\n  datasource:\n    url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false\n    username: root\n    password: root\n  data:\n    redis:\n      host: localhost # Redis服务器地址\n      database: 0 # Redis数据库索引（默认为0）\n      port: 6379 # Redis服务器连接端口\n      password: # Redis服务器连接密码（默认为空）\n      timeout: 3000ms # 连接超时时间（毫秒）\nminio:\n  endpoint: http://localhost:9000 #MinIO服务所在地址\n  bucketName: mall #存储桶名称\n  accessKey: minioadmin #访问的key\n  secretKey: minioadmin #访问的秘钥\nlogging:\n  level:\n    root: info\n    com.macro.mall: debug\nlogstash:\n  host: localhost"
  },
  {
    "path": "config/admin/mall-admin-prod.yaml",
    "content": "aliyun:\n  oss:\n    endpoint: oss-cn-shenzhen.aliyuncs.com # oss对外服务的访问域名\n    accessKeyId: test # 访问身份验证中用到用户标识\n    accessKeySecret: test # 用户用于加密签名字符串和oss用来验证签名字符串的密钥\n    bucketName: macro-oss # oss的存储空间\n    policy:\n      expire: 300 # 签名有效期(S)\n    maxSize: 10 # 上传文件大小(M)\n    callback: http://39.98.190.128:8080/aliyun/oss/callback # 文件上传成功后的回调地址\n    dir:\n      prefix: mall/images/ # 上传文件夹路径前缀\nspring:\n  datasource:\n    url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false\n    username: reader\n    password: 123456\n  data:\n    redis:\n      host: redis # Redis服务器地址\n      database: 0 # Redis数据库索引（默认为0）\n      port: 6379 # Redis服务器连接端口\n      password: #不设置密码\nminio:\n  endpoint: http://192.168.3.101:9090 #MinIO服务所在地址\n  bucketName: mall #存储桶名称\n  accessKey: minioadmin #访问的key\n  secretKey: minioadmin #访问的秘钥\nlogging:\n  file:\n    path: /var/logs\n  level:\n    root: info\n    com.macro.mall: info\nlogstash:\n  host: logstash"
  },
  {
    "path": "config/demo/mall-demo-dev.yaml",
    "content": "spring:\n  datasource:\n    url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false\n    username: root\n    password: root\nlogging:\n  level:\n    root: info\n    com.macro.mall: debug\nlogstash:\n  host: localhost"
  },
  {
    "path": "config/demo/mall-demo-prod.yaml",
    "content": "spring:\n  datasource:\n    url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false\n    username: reader\n    password: 123456\nlogging:\n  file:\n    path: /var/logs\n  level:\n    root: info\n    com.macro.mall: info\nlogstash:\n  host: logstash"
  },
  {
    "path": "config/gateway/mall-gateway-dev.yaml",
    "content": "spring:\n  data:\n    redis:\n      host: localhost # Redis服务器地址\n      database: 0 # Redis数据库索引（默认为0）\n      port: 6379 # Redis服务器连接端口\n      password: # Redis服务器连接密码（默认为空）\n      timeout: 3000ms # 连接超时时间（毫秒）\nlogging:\n  level:\n    root: info\n    com.macro.mall: debug\nlogstash:\n  host: localhost"
  },
  {
    "path": "config/gateway/mall-gateway-prod.yaml",
    "content": "spring:\n  data:\n    redis:\n      host: redis # Redis服务器地址\n      database: 0 # Redis数据库索引（默认为0）\n      port: 6379 # Redis服务器连接端口\n      password: #不设置密码\nlogging:\n  file:\n    path: /var/logs\n  level:\n    root: info\n    com.macro.mall: info\nlogstash:\n  host: logstash"
  },
  {
    "path": "config/portal/mall-portal-dev.yaml",
    "content": "spring:\n  datasource:\n    url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false\n    username: root\n    password: root\n  data:\n    mongodb:\n      host: localhost\n      port: 27017\n      database: mall-port\n    redis:\n      host: localhost # Redis服务器地址\n      database: 0 # Redis数据库索引（默认为0）\n      port: 6379 # Redis服务器连接端口\n      password: # Redis服务器连接密码（默认为空）\n  rabbitmq:\n    host: localhost\n    port: 5672\n    virtual-host: /mall\n    username: mall\n    password: mall\n# 日志配置\nlogging:\n  level:\n    root: info\n    com.macro.mall: debug\nlogstash:\n  host: localhost\nalipay:\n  gatewayUrl: https://openapi-sandbox.dl.alipaydev.com/gateway.do\n  appId: your appId\n  alipayPublicKey: your alipayPublicKey\n  appPrivateKey: your appPrivateKey\n  returnUrl: http://localhost:8060/#/pages/money/paySuccess\n  notifyUrl:\n"
  },
  {
    "path": "config/portal/mall-portal-prod.yaml",
    "content": "spring:\n  datasource:\n    url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false\n    username: root\n    password: root\n  data:\n    mongodb:\n      host: mongo\n      port: 27017\n      database: mall-port\n    redis:\n      host: redis # Redis服务器地址\n      database: 0 # Redis数据库索引（默认为0）\n      port: 6379 # Redis服务器连接端口\n      password: #不设置密码\n  rabbitmq:\n    host: rabbit\n    port: 5672\n    virtual-host: /mall\n    username: mall\n    password: mall\n    publisher-confirms: true #如果对异步消息需要回调必须设置为true\nlogging:\n  file:\n    path: /var/logs\n  level:\n    root: info\n    com.macro.mall: info\nlogstash:\n  host: logstash\nalipay:\n  gatewayUrl: https://openapi-sandbox.dl.alipaydev.com/gateway.do\n  appId: your appId\n  alipayPublicKey: your alipayPublicKey\n  appPrivateKey: your appPrivateKey\n  returnUrl: http://192.168.3.101:8060/#/pages/money/paySuccess\n  notifyUrl:\n\n"
  },
  {
    "path": "config/search/mall-search-dev.yaml",
    "content": "spring:\n  datasource:\n    url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\n    username: root\n    password: root\n  elasticsearch:\n    uris: localhost:9200\nlogging:\n  level:\n    root: info\n    com.macro.mall: debug\nlogstash:\n  host: localhost"
  },
  {
    "path": "config/search/mall-search-prod.yaml",
    "content": "spring:\n  datasource:\n    url: jdbc:mysql://db:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false\n    username: reader\n    password: 123456\n  elasticsearch:\n    uris: es:9200\nmanagement:\n  health:\n    elasticsearch:\n      response-timeout: 1000ms #加大健康检查超时时间\nlogging:\n  file:\n    path: /var/logs\n  level:\n    root: info\n    com.macro.mall: info\nlogstash:\n  host: logstash"
  },
  {
    "path": "document/docker/docker-compose-app.yml",
    "content": "version: '3'\nservices:\n  mall-admin:\n    image: mall/mall-admin:1.0-SNAPSHOT\n    container_name: mall-admin\n    ports:\n      - 8080:8080\n    volumes:\n      - /mydata/app/mall-admin/logs:/var/logs\n      - /etc/localtime:/etc/localtime\n    environment:\n      - 'TZ=\"Asia/Shanghai\"'\n    external_links:\n      - mysql:db #可以用db这个域名访问mysql服务\n      - nacos-registry:nacos-registry #可以用nacos-registry这个域名访问nacos服务\n  mall-search:\n    image: mall/mall-search:1.0-SNAPSHOT\n    container_name: mall-search\n    ports:\n      - 8081:8081\n    volumes:\n      - /mydata/app/mall-search/logs:/var/logs\n      - /etc/localtime:/etc/localtime\n    environment:\n      - 'TZ=\"Asia/Shanghai\"'\n    external_links:\n      - elasticsearch:es #可以用es这个域名访问elasticsearch服务\n      - mysql:db #可以用db这个域名访问mysql服务\n      - nacos-registry:nacos-registry #可以用nacos-registry这个域名访问nacos服务\n  mall-portal:\n    image: mall/mall-portal:1.0-SNAPSHOT\n    container_name: mall-portal\n    ports:\n      - 8085:8085\n    volumes:\n      - /mydata/app/mall-portal/logs:/var/logs\n      - /etc/localtime:/etc/localtime\n    environment:\n      - 'TZ=\"Asia/Shanghai\"'\n    external_links:\n      - redis:redis #可以用redis这个域名访问redis服务\n      - mongo:mongo #可以用mongo这个域名访问mongo服务\n      - mysql:db #可以用db这个域名访问mysql服务\n      - rabbitmq:rabbit #可以用rabbit这个域名访问rabbitmq服务\n      - nacos-registry:nacos-registry #可以用nacos-registry这个域名访问nacos服务\n  mall-auth:\n    image: mall/mall-auth:1.0-SNAPSHOT\n    container_name: mall-auth\n    ports:\n      - 8401:8401\n    volumes:\n      - /mydata/app/mall-auth/logs:/var/logs\n      - /etc/localtime:/etc/localtime\n    environment:\n      - 'TZ=\"Asia/Shanghai\"'\n    external_links:\n      - nacos-registry:nacos-registry #可以用nacos-registry这个域名访问nacos服务\n  mall-gateway:\n    image: mall/mall-gateway:1.0-SNAPSHOT\n    container_name: mall-gateway\n    ports:\n      - 8201:8201\n    volumes:\n      - /mydata/app/mall-gateway/logs:/var/logs\n      - /etc/localtime:/etc/localtime\n    environment:\n      - 'TZ=\"Asia/Shanghai\"'\n    external_links:\n      - redis:redis #可以用redis这个域名访问redis服务\n      - nacos-registry:nacos-registry #可以用nacos-registry这个域名访问nacos服务\n  mall-monitor:\n    image: mall/mall-monitor:1.0-SNAPSHOT\n    container_name: mall-monitor\n    ports:\n      - 8101:8101\n    volumes:\n      - /mydata/app/mall-monitor/logs:/var/logs\n      - /etc/localtime:/etc/localtime\n    environment:\n      - 'TZ=\"Asia/Shanghai\"'\n    external_links:\n      - nacos-registry:nacos-registry #可以用nacos-registry这个域名访问nacos服务"
  },
  {
    "path": "document/docker/docker-compose-env.yml",
    "content": "version: '3'\nservices:\n  mysql:\n    image: mysql:5.7\n    container_name: mysql\n    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci\n    restart: always\n    environment:\n      MYSQL_ROOT_PASSWORD: root #设置root帐号密码\n    ports:\n      - 3306:3306\n    volumes:\n      - /mydata/mysql/data/db:/var/lib/mysql #数据文件挂载\n      - /mydata/mysql/data/conf:/etc/mysql/conf.d #配置文件挂载\n      - /mydata/mysql/log:/var/log/mysql #日志文件挂载\n  redis:\n    image: redis:7\n    container_name: redis\n    command: redis-server --appendonly yes\n    volumes:\n      - /mydata/redis/data:/data #数据文件挂载\n    ports:\n      - 6379:6379\n  nginx:\n    image: nginx:1.22\n    container_name: nginx\n    volumes:\n      - /mydata/nginx/conf:/etc/nginx #配置文件挂载\n      - /mydata/nginx/html:/usr/share/nginx/html #静态资源根目录挂载\n      - /mydata/nginx/log:/var/log/nginx #日志文件挂载\n    ports:\n      - 80:80\n  rabbitmq:\n    image: rabbitmq:3.9.11-management\n    container_name: rabbitmq\n    volumes:\n      - /mydata/rabbitmq/data:/var/lib/rabbitmq #数据文件挂载\n      - /mydata/rabbitmq/log:/var/log/rabbitmq #日志文件挂载\n    ports:\n      - 5672:5672\n      - 15672:15672\n  elasticsearch:\n    image: elasticsearch:7.17.3\n    container_name: elasticsearch\n    user: root\n    environment:\n      - \"cluster.name=elasticsearch\" #设置集群名称为elasticsearch\n      - \"discovery.type=single-node\" #以单一节点模式启动\n      - \"ES_JAVA_OPTS=-Xms512m -Xmx1024m\" #设置使用jvm内存大小\n    volumes:\n      - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载\n      - /mydata/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载\n    ports:\n      - 9200:9200\n      - 9300:9300\n  logstash:\n    image: logstash:7.17.3\n    container_name: logstash\n    environment:\n      - TZ=Asia/Shanghai\n    volumes:\n      - /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件\n    depends_on:\n      - elasticsearch #kibana在elasticsearch启动之后再启动\n    links:\n      - elasticsearch:es #可以用es这个域名访问elasticsearch服务\n    ports:\n      - 4560:4560\n      - 4561:4561\n      - 4562:4562\n      - 4563:4563\n  kibana:\n    image: kibana:7.17.3\n    container_name: kibana\n    links:\n      - elasticsearch:es #可以用es这个域名访问elasticsearch服务\n    depends_on:\n      - elasticsearch #kibana在elasticsearch启动之后再启动\n    environment:\n      - \"elasticsearch.hosts=http://es:9200\" #设置访问elasticsearch的地址\n    ports:\n      - 5601:5601\n  mongo:\n    image: mongo:4\n    container_name: mongo\n    volumes:\n      - /mydata/mongo/db:/data/db #数据文件挂载\n    ports:\n      - 27017:27017\n  nacos-registry:\n    image: nacos/nacos-server:v2.1.0\n    container_name: nacos-registry\n    environment:\n      - \"MODE=standalone\"\n    ports:\n      - 8848:8848\n"
  },
  {
    "path": "document/docker/nginx.conf",
    "content": "\nuser  nginx;\nworker_processes  1;\n\nerror_log  /var/log/nginx/error.log warn;\npid        /var/run/nginx.pid;\n\n\nevents {\n    worker_connections  1024;\n}\n\n\nhttp {\n    include       /etc/nginx/mime.types;\n    default_type  application/octet-stream;\n\n    log_format  main  '$remote_addr - $remote_user [$time_local] \"$request\" '\n                      '$status $body_bytes_sent \"$http_referer\" '\n                      '\"$http_user_agent\" \"$http_x_forwarded_for\"';\n\n    access_log  /var/log/nginx/access.log  main;\n\n    sendfile        on;\n    #tcp_nopush     on;\n\n    keepalive_timeout  65;\n\n    #gzip  on;\n\n    server {\n\t    listen       80;\n\t    server_name  localhost;\n\n\t    location / {\n\t        root   /usr/share/nginx/html;\n\t        index  index.html index.htm;\n\t    }\n\n\t    error_page   500 502 503 504  /50x.html;\n\t    location = /50x.html {\n\t        root   /usr/share/nginx/html;\n\t    }\n\t}\n}\n"
  },
  {
    "path": "document/elk/logback-spring.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE configuration>\n<configuration>\n    <include resource=\"org/springframework/boot/logging/logback/base.xml\"/>\n    <appender name=\"LOGSTASH\" class=\"net.logstash.logback.appender.LogstashTcpSocketAppender\">\n        <destination>localhost:4560</destination>\n        <encoder charset=\"UTF-8\" class=\"net.logstash.logback.encoder.LogstashEncoder\" />\n    </appender>\n    <root level=\"INFO\">\n        <appender-ref ref=\"LOGSTASH\" />\n        <appender-ref ref=\"CONSOLE\" />\n    </root>\n\n</configuration>\n"
  },
  {
    "path": "document/elk/logstash.conf",
    "content": "input {\n  tcp {\n    mode => \"server\"\n    host => \"0.0.0.0\"\n    port => 4560\n    codec => json_lines\n    type => \"debug\"\n  }\n  tcp {\n    mode => \"server\"\n    host => \"0.0.0.0\"\n    port => 4561\n    codec => json_lines\n    type => \"error\"\n  }\n  tcp {\n    mode => \"server\"\n    host => \"0.0.0.0\"\n    port => 4562\n    codec => json_lines\n    type => \"business\"\n  }\n  tcp {\n    mode => \"server\"\n    host => \"0.0.0.0\"\n    port => 4563\n    codec => json_lines\n    type => \"record\"\n  }\n}\nfilter{\n  if [type] == \"record\" {\n    mutate {\n      remove_field => \"port\"\n      remove_field => \"host\"\n      remove_field => \"@version\"\n    }\n    json {\n      source => \"message\"\n      remove_field => [\"message\"]\n    }\n  }\n}\noutput {\n  elasticsearch {\n    hosts => \"localhost:9200\"\n    index => \"mall-%{type}-%{+YYYY.MM.dd}\"\n  }\n}"
  },
  {
    "path": "document/k8s/mall-admin-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: mall-admin-deployment\n  namespace: default\n  labels:\n    app: mall-admin\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: mall-admin\n  template:\n    metadata:\n      labels:\n        app: mall-admin\n    spec:\n      containers:\n        - name: mall-admin\n          image: mall/mall-admin:1.0-SNAPSHOT\n          ports:\n            - containerPort: 8080\n          env:\n            # 指定环境\n            - name: spring.profiles.active\n              value: prod\n            # 指定时区\n            - name: TZ\n              value: Asia/Shanghai\n            # 指定Nacos地址\n            - name: spring.cloud.nacos.discovery.server-addr\n              value: http://192.168.3.101:8848\n            - name: spring.cloud.nacos.config.server-addr\n              value: http://192.168.3.101:8848\n          volumeMounts:\n            - mountPath: /var/logs\n              name: log-volume\n      volumes:\n        - name: log-volume\n          hostPath:\n            path: /mydata/app/mall-admin/logs\n            type: DirectoryOrCreate"
  },
  {
    "path": "document/k8s/mall-admin-service.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: mall-admin-service\n  namespace: default\nspec:\n  type: ClusterIP\n  selector:\n    app: mall-admin\n  ports:\n    - name: http\n      protocol: TCP\n      port: 8080\n      targetPort: 8080"
  },
  {
    "path": "document/k8s/mall-auth-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: mall-auth-deployment\n  namespace: default\n  labels:\n    app: mall-auth\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: mall-auth\n  template:\n    metadata:\n      labels:\n        app: mall-auth\n    spec:\n      containers:\n        - name: mall-auth\n          image: mall/mall-auth:1.0-SNAPSHOT\n          ports:\n            - containerPort: 8401\n          env:\n            # 指定环境\n            - name: spring.profiles.active\n              value: prod\n            # 指定时区\n            - name: TZ\n              value: Asia/Shanghai\n            # 指定Nacos地址\n            - name: spring.cloud.nacos.discovery.server-addr\n              value: http://192.168.3.101:8848\n            - name: spring.cloud.nacos.config.server-addr\n              value: http://192.168.3.101:8848\n          volumeMounts:\n            - mountPath: /var/logs\n              name: log-volume\n      volumes:\n        - name: log-volume\n          hostPath:\n            path: /mydata/app/mall-auth/logs\n            type: DirectoryOrCreate"
  },
  {
    "path": "document/k8s/mall-auth-service.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: mall-auth-service\n  namespace: default\nspec:\n  type: ClusterIP\n  selector:\n    app: mall-auth\n  ports:\n    - name: http\n      protocol: TCP\n      port: 8401\n      targetPort: 8401"
  },
  {
    "path": "document/k8s/mall-gateway-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: mall-gateway-deployment\n  namespace: default\n  labels:\n    app: mall-gateway\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: mall-gateway\n  template:\n    metadata:\n      labels:\n        app: mall-gateway\n    spec:\n      containers:\n        - name: mall-gateway\n          image: mall/mall-gateway:1.0-SNAPSHOT\n          ports:\n            - containerPort: 8201\n          env:\n            # 指定环境\n            - name: spring.profiles.active\n              value: prod\n            # 指定时区\n            - name: TZ\n              value: Asia/Shanghai\n            # 指定Nacos地址\n            - name: spring.cloud.nacos.discovery.server-addr\n              value: http://192.168.3.101:8848\n            - name: spring.cloud.nacos.config.server-addr\n              value: http://192.168.3.101:8848\n          volumeMounts:\n            - mountPath: /var/logs\n              name: log-volume\n      volumes:\n        - name: log-volume\n          hostPath:\n            path: /mydata/app/mall-gateway/logs\n            type: DirectoryOrCreate"
  },
  {
    "path": "document/k8s/mall-gateway-service.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: mall-gateway-service\n  namespace: default\nspec:\n  type: NodePort\n  selector:\n    app: mall-gateway\n  ports:\n    - name: http\n      protocol: TCP\n      port: 8201\n      targetPort: 8201\n      nodePort: 30201"
  },
  {
    "path": "document/k8s/mall-monitor-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: mall-monitor-deployment\n  namespace: default\n  labels:\n    app: mall-monitor\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: mall-monitor\n  template:\n    metadata:\n      labels:\n        app: mall-monitor\n    spec:\n      containers:\n        - name: mall-monitor\n          image: mall/mall-monitor:1.0-SNAPSHOT\n          ports:\n            - containerPort: 8101\n          env:\n            # 指定环境\n            - name: spring.profiles.active\n              value: prod\n            # 指定时区\n            - name: TZ\n              value: Asia/Shanghai\n            # 指定Nacos地址\n            - name: spring.cloud.nacos.discovery.server-addr\n              value: http://192.168.3.101:8848\n            - name: spring.cloud.nacos.config.server-addr\n              value: http://192.168.3.101:8848\n          volumeMounts:\n            - mountPath: /var/logs\n              name: log-volume\n      volumes:\n        - name: log-volume\n          hostPath:\n            path: /mydata/app/mall-monitor/logs\n            type: DirectoryOrCreate"
  },
  {
    "path": "document/k8s/mall-monitor-service.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: mall-monitor-service\n  namespace: default\nspec:\n  type: NodePort\n  selector:\n    app: mall-monitor\n  ports:\n    - name: http\n      protocol: TCP\n      port: 8101\n      targetPort: 8101\n      nodePort: 30101"
  },
  {
    "path": "document/k8s/mall-portal-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: mall-portal-deployment\n  namespace: default\n  labels:\n    app: mall-portal\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: mall-portal\n  template:\n    metadata:\n      labels:\n        app: mall-portal\n    spec:\n      containers:\n        - name: mall-portal\n          image: mall/mall-portal:1.0-SNAPSHOT\n          ports:\n            - containerPort: 8085\n          env:\n            # 指定环境\n            - name: spring.profiles.active\n              value: prod\n            # 指定时区\n            - name: TZ\n              value: Asia/Shanghai\n            # 指定Nacos地址\n            - name: spring.cloud.nacos.discovery.server-addr\n              value: http://192.168.3.101:8848\n            - name: spring.cloud.nacos.config.server-addr\n              value: http://192.168.3.101:8848\n          volumeMounts:\n            - mountPath: /var/logs\n              name: log-volume\n      volumes:\n        - name: log-volume\n          hostPath:\n            path: /mydata/app/mall-portal/logs\n            type: DirectoryOrCreate"
  },
  {
    "path": "document/k8s/mall-portal-service.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: mall-portal-service\n  namespace: default\nspec:\n  type: ClusterIP\n  selector:\n    app: mall-portal\n  ports:\n    - name: http\n      protocol: TCP\n      port: 8085\n      targetPort: 8085"
  },
  {
    "path": "document/k8s/mall-search-deployment.yaml",
    "content": "apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: mall-search-deployment\n  namespace: default\n  labels:\n    app: mall-search\nspec:\n  replicas: 1\n  selector:\n    matchLabels:\n      app: mall-search\n  template:\n    metadata:\n      labels:\n        app: mall-search\n    spec:\n      containers:\n        - name: mall-search\n          image: mall/mall-search:1.0-SNAPSHOT\n          ports:\n            - containerPort: 8081\n          env:\n            # 指定环境\n            - name: spring.profiles.active\n              value: prod\n            # 指定时区\n            - name: TZ\n              value: Asia/Shanghai\n            # 指定Nacos地址\n            - name: spring.cloud.nacos.discovery.server-addr\n              value: http://192.168.3.101:8848\n            - name: spring.cloud.nacos.config.server-addr\n              value: http://192.168.3.101:8848\n          volumeMounts:\n            - mountPath: /var/logs\n              name: log-volume\n      volumes:\n        - name: log-volume\n          hostPath:\n            path: /mydata/app/mall-search/logs\n            type: DirectoryOrCreate"
  },
  {
    "path": "document/k8s/mall-search-service.yaml",
    "content": "apiVersion: v1\nkind: Service\nmetadata:\n  name: mall-search-service\n  namespace: default\nspec:\n  type: ClusterIP\n  selector:\n    app: mall-search\n  ports:\n    - name: http\n      protocol: TCP\n      port: 8081\n      targetPort: 8081"
  },
  {
    "path": "document/pdm/mall.pdb",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<?PowerDesigner AppLocale=\"UTF16\" ID=\"{7BB41C87-EFE8-409A-A86E-B1C3FCE34F8C}\" Label=\"\" LastModificationDate=\"1582621132\" Name=\"mall\" Objects=\"1197\" Symbols=\"156\" Target=\"MySQL 5.0\" Type=\"{CDE44E21-9669-11D1-9914-006097355D9B}\" signature=\"PDM_DATA_MODEL_XML\" version=\"16.5.0.3982\"?>\n<!-- do not edit this file -->\n\n<Model xmlns:a=\"attribute\" xmlns:c=\"collection\" xmlns:o=\"object\">\n\n<o:RootObject Id=\"o1\">\n<c:Children>\n<o:Model Id=\"o2\">\n<a:ObjectID>7BB41C87-EFE8-409A-A86E-B1C3FCE34F8C</a:ObjectID>\n<a:Name>mall</a:Name>\n<a:Code>mall</a:Code>\n<a:CreationDate>1521705583</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869150</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:PackageOptionsText>[FolderOptions]\n\n[FolderOptions\\Physical Objects]\nGenerationCheckModel=Yes\nGenerationPath=\nGenerationOptions=\nGenerationTasks=\nGenerationTargets=\nGenerationSelections=\nRevPkey=Yes\nRevFkey=Yes\nRevAkey=Yes\nRevCheck=Yes\nRevIndx=Yes\nRevOpts=Yes\nRevViewAsTabl=No\nRevViewOpts=Yes\nRevSystAsTabl=Yes\nRevTablPerm=No\nRevViewPerm=No\nRevProcPerm=No\nRevDbpkPerm=No\nRevSqncPerm=No\nRevAdtPerm=No\nRevUserPriv=No\nRevUserOpts=No\nRevGrpePriv=No\nRevRolePriv=No\nRevDtbsOpts=Yes\nRevDtbsPerm=No\nRevViewIndx=Yes\nRevJidxOpts=Yes\nRevStats=No\nRevTspcPerm=No\nRevCaseSensitive=No\nGenTrgrStdMsg=Yes\nGenTrgrMsgTab=\nGenTrgrMsgNo=\nGenTrgrMsgTxt=\nTrgrPreserve=No\nTrgrIns=Yes\nTrgrUpd=Yes\nTrgrDel=Yes\nTrgrC2Ins=Yes\nTrgrC2Upd=Yes\nTrgrC3=Yes\nTrgrC4=Yes\nTrgrC5=Yes\nTrgrC6=Yes\nTrgrC7=Yes\nTrgrC8=Yes\nTrgrC9=Yes\nTrgrC10=Yes\nTrgrC11=Yes\nTrgrC1=Yes\nTrgrC12Ins=Yes\nTrgrC12Upd=Yes\nTrgrC13=Yes\nUpdateTableStatistics=Yes\nUpdateColumnStatistics=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation]\nGenScriptName=create.sql\nGenScriptName0=update.sql\nGenScriptName1=crebas.sql\nGenScriptName2=crebas\nGenScriptName3=\nGenScriptName4=\nGenScriptName5=\nGenScriptName6=\nGenScriptName7=\nGenScriptName8=\nGenScriptName9=\nGenPathName=C:\\Users\\zhenghong\\Desktop\\\nGenSingleFile=Yes\nGenODBC=No\nGenCheckModel=Yes\nGenScriptPrev=Yes\nGenArchiveModel=No\nGenUseSync=No\nGenSyncChoice=0\nGenSyncArch=\nGenSyncRmg=0\n\n[FolderOptions\\Physical Objects\\Database Generation\\Format]\nGenScriptTitle=Yes\nGenScriptNamLabl=No\nGenScriptQDtbs=No\nGenScriptQOwnr=Yes\nGenScriptCase=0\nGenScriptEncoding=UTF8\nGenScriptNAcct=No\nIdentifierDelimiter=&quot;\n\n[FolderOptions\\Physical Objects\\Database Generation\\Database]\nCreate=Yes\nOpen=Yes\nClose=Yes\nDrop=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Database\\Create]\nPhysical Options=Yes\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Tablespace]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Tablespace\\Create]\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Storage]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\User]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPrivilege=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\User\\Create]\nPhysical Options=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Group]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPrivilege=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Role]\nCreate=Yes\nDrop=Yes\nPrivilege=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\UserDefinedDataType]\nCreate=Yes\nComment=Yes\nDrop=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\UserDefinedDataType\\Create]\nDefault value=Yes\nCheck=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\AbstractDataType]\nCreate=Yes\nHeader=Yes\nFooter=Yes\nDrop=Yes\nComment=Yes\nInstall JAVA class=Yes\nRemove JAVA class=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Rule]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Default]\nCreate=Yes\nComment=Yes\nDrop=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Sequence]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column]\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Table]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Table\\Create]\nCheck=Yes\nPhysical Options=Yes\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Table\\Create\\Check]\nConstraint declaration=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Column]\nUser datatype=No\nDefault value=Yes\nCheck=Yes\nPhysical Options=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Column\\Check]\nConstraint declaration=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Key]\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Key\\Primary key]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Key\\Primary key\\Create]\nConstraint declaration=No\nPhysical Options=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Key\\Alternate key]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Key\\Alternate key\\Create]\nConstraint declaration=No\nPhysical Options=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Foreign key]\nCreate=No\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Foreign key\\Create]\nConstraint declaration=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Index]\nCreate=No\nDrop=No\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Index\\Create]\nConstraint declaration=Yes\nPhysical Options=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Index\\Filter]\nPrimary key=No\nForeign key=No\nAlternate key=No\nCluster=Yes\nOther=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Trigger]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Trigger\\Filter]\nFor insert=Yes\nFor update=Yes\nFor delete=Yes\nFor other=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\Create]\nForce Column list=No\nPhysical Options=Yes\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\ViewColumn]\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\ViewIndex]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\ViewIndex\\Create]\nPhysical Options=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\ViewIndex\\Filter]\nCluster=Yes\nOther=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\Trigger]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\Trigger\\Filter]\nFor insert=Yes\nFor update=Yes\nFor delete=Yes\nFor other=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\DBMSTrigger]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Synonym]\nCreate=Yes\nDrop=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Synonym\\Filter]\nTable=Yes\nView=Yes\nProc=Yes\nSynonym=Yes\nDatabase Package=Yes\nSequence=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\JoinIndex]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\JoinIndex\\Create]\nPhysical Options=Yes\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Procedure]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Procedure\\Create]\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\DatabasePackage]\nCreate=Yes\nDrop=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\WebService]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Dimension]\nCreate=Yes\nDrop=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Synchronization]\nGenBackupTabl=1\nGenKeepBackTabl=1\nGenTmpTablDrop=No\nGenKeepTablOpts=No\n\n[FolderOptions\\Physical Objects\\Test Data]\nGenDataPathName=C:\\Users\\zhenghong\\Desktop\\\nGenDataSinglefile=Yes\nGenDataScriptName=testdata.sql\nGenDataScriptName0=\nGenDataScriptName1=\nGenDataScriptName2=\nGenDataScriptName3=\nGenDataScriptName4=\nGenDataScriptName5=\nGenDataScriptName6=\nGenDataScriptName7=\nGenDataScriptName8=\nGenDataScriptName9=\nGenDataOdbc=0\nGenDataDelOld=No\nGenDataTitle=No\nGenDataDefNumRows=20\nGenDataCommit=0\nGenDataPacket=0\nGenDataOwner=No\nGenDataProfNumb=\nGenDataProfChar=\nGenDataProfDate=\nGenDataCSVSeparator=,\nGenDataFileFormat=CSV\nGenDataUseWizard=No\n\n[FolderOptions\\Pdm]\nIndxIQName=%COLUMN%_%INDEXTYPE%\nIndxPK=Yes\nIndxFK=Yes\nIndxAK=Yes\nIndxPKName=%TABLE%_PK\nIndxFKName=%REFR%_FK\nIndxAKName=%AKEY%_AK\nIndxPreserve=No\nIndxThreshold=0\nIndxStats=No\nRefrPreserve=No\nJidxPreserve=No\nRbldMultiFact=Yes\nRbldMultiDim=Yes\nRbldMultiJidx=Yes\nCubePreserve=No\nTablStProcPreserve=No\nProcDepPreserve=Yes\nTrgrDepPreserve=Yes\nCubeScriptPath=\nCubeScriptCase=0\nCubeScriptEncoding=ANSI\nCubeScriptNacct=No\nCubeScriptHeader=No\nCubeScriptExt=csv\nCubeScriptExt0=txt\nCubeScriptExt1=\nCubeScriptExt2=\nCubeScriptSep=,\nCubeScriptDeli=&quot;\nEstimationYears=0\nDfltDomnName=D_%.U:VALUE%\nDfltColnName=D_%.U:VALUE%\nDfltReuse=Yes\nDfltDrop=Yes\n\n[FolderOptions\\CheckModel]\n\n[FolderOptions\\CheckModel\\Package]\n\n[FolderOptions\\CheckModel\\Package\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\CheckPackageMissTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\DefaultCheckPackageMissTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\CircularReference]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\ConstraintName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\CnstMaxLen]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\CircularDependency]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\ShortcutUniqCode]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Table]\n\n[FolderOptions\\CheckModel\\Table\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\UniqIndex]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\MaxLen - NAME]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\EmptyColl - COLNCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\EmptyColl - INDXCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\EmptyColl - KEYCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\SerialColumnNumber]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\EmptyCollYesYes]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\TableIndexes]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\Mapping]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\MappingSFMap]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\EmptyColl - PERMCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Table\\CheckTablePartitionKey]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTableStartDate]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTableRefNoLifecycle]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTableSourceMapping]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTablePartialColumnMapping]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTableKeyColumnMapping]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTableNotOnLifecycleTablespace]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\MYSQL50_Table_Table_storage_type]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column]\n\n[FolderOptions\\CheckModel\\Table.Column\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\DomainDivergence]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\ColumnMandatory]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckNumParam]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckPrecSupLng]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckUndefDttp]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\FkeyDttpDivergence]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\FkeyCheckDivergence]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\ColnSqncNoKey]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\ColnSqncDttp]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\SerialColumnFK]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\ColumnCompExpr]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckColumnOneToOneMapping]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckColumnDataTypeMapping]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckColumnNoMapping]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckDttpIncompatibleFormat]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\MYSQL50_Column_Auto_increment_key]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\MYSQL50_Column_Datatype_attributes]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index]\n\n[FolderOptions\\CheckModel\\Table.Index\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\EmptyColl - CIDXCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\UndefIndexType]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\IndexColumnCount]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\IQIndxHNGUniq]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\CheckIncludeColl - Tabl]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\MYSQL50_Index_Fulltext_indexes_validity]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key]\n\n[FolderOptions\\CheckModel\\Table.Key\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\EmptyColl - COLNCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\CheckIncludeColl - Tabl]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\MultiKeySqnc]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger]\n\n[FolderOptions\\CheckModel\\Table.Trigger\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index]\n\n[FolderOptions\\CheckModel\\Join Index\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View]\n\n[FolderOptions\\CheckModel\\View\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\EmptyColl - PERMCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\View.View Index]\n\n[FolderOptions\\CheckModel\\View.View Index\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\EmptyColl - CIDXCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\IndexColumnCount]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\CheckIncludeColl - Tabl]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference]\n\n[FolderOptions\\CheckModel\\Reference\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\Reflexive]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\EmptyColl - RFJNCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\IncompleteJoin]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\JoinOrder]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference]\n\n[FolderOptions\\CheckModel\\View Reference\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\EmptyColl - VRFJNCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain]\n\n[FolderOptions\\CheckModel\\Domain\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\CheckNumParam]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\CheckPrecSupLng]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\CheckUndefDttp]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\CheckDttpIncompatibleFormat]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default]\n\n[FolderOptions\\CheckModel\\Default\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\DfltValeEmpty]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\DfltSameVale]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User]\n\n[FolderOptions\\CheckModel\\User\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\UniquePassword]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Group]\n\n[FolderOptions\\CheckModel\\Group\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\EmptyColl - USERCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\UniquePassword]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Role]\n\n[FolderOptions\\CheckModel\\Role\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\EmptyColl - USERCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure]\n\n[FolderOptions\\CheckModel\\Procedure\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\ProcBodyEmpty]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\EmptyColl - PERMCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\DBMS Trigger]\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\DbmsTriggerEvent]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source]\n\n[FolderOptions\\CheckModel\\Data Source\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\EmptyColl - MODLSRC]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\DtscTargets]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\CheckDataSourceModels]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Horizontal Partitioning]\n\n[FolderOptions\\CheckModel\\Horizontal Partitioning\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Horizontal Partitioning\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Horizontal Partitioning\\EmptyColl - PARTCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Horizontal Partitioning\\TargetTables]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Vertical Partitioning]\n\n[FolderOptions\\CheckModel\\Vertical Partitioning\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Vertical Partitioning\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Vertical Partitioning\\EmptyColl - PARTCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Vertical Partitioning\\TargetTables]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table Collapsing]\n\n[FolderOptions\\CheckModel\\Table Collapsing\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table Collapsing\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table Collapsing\\EmptyColl - TargetTable]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table Collapsing\\TargetTables]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact]\n\n[FolderOptions\\CheckModel\\Fact\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\EmptyColl - MEASCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\Mapping]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\MappingSFMap]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\EmptyColl - ALLOLINKCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\CubeDupAssociation]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension]\n\n[FolderOptions\\CheckModel\\Dimension\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\EmptyColl - DATTRCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\EmptyColl - HIERCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\DimnDupHierarchy]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\DimnDefHierarchy]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\Mapping]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\MappingSFMap]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\SerialColumnNumber]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association]\n\n[FolderOptions\\CheckModel\\Association\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association\\EmptyColl - Hierarchy]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute]\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure]\n\n[FolderOptions\\CheckModel\\Fact.Measure\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy]\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\EmptyColl - DATTRCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym]\n\n[FolderOptions\\CheckModel\\Synonym\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\MaxLen - NAME]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\EmptyColl - BASEOBJ]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type]\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\AdtInstantiable]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\AdtAbstractUsed]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure]\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\AdtProcUniqName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\UniqueDefinition]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\ReturnDataType]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package]\n\n[FolderOptions\\CheckModel\\Database Package\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\MaxLen - NAME]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\EmptyColl - PROCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\EmptyColl - CURCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package\\EmptyColl - VARCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package\\EmptyColl - TYPCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package\\EmptyColl - EXCCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure]\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\UniqueDefinition]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\EmptyColl - PARM]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\ReturnDataType]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence]\n\n[FolderOptions\\CheckModel\\Sequence\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor]\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\UniqueDefinition]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\ReturnDataType]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\EmptyColl - PARM]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable]\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\CheckUndefDttp]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type]\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\UniqueDefinition]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception]\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace]\n\n[FolderOptions\\CheckModel\\Tablespace\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\IsObjectUsed]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage]\n\n[FolderOptions\\CheckModel\\Storage\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\IsObjectUsed]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database]\n\n[FolderOptions\\CheckModel\\Database\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\IsObjectUsed]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service]\n\n[FolderOptions\\CheckModel\\Web Service\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation]\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle]\n\n[FolderOptions\\CheckModel\\Lifecycle\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\CheckLifecyclePhase]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\CheckLifecycleRetention]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\CheckPartitionRange]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase]\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseTbspace]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseIQTbspace]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseDuplicateTbspace]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseTbspaceCurrency]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseRetention]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseIdlePeriod]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseDataSource]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseExternalOnFirst]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Replication]\n\n[FolderOptions\\CheckModel\\Replication\\PartialReplication]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule]\n\n[FolderOptions\\CheckModel\\Business Rule\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\EmptyColl - OBJCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object]\n\n[FolderOptions\\CheckModel\\Extended Object\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link]\n\n[FolderOptions\\CheckModel\\Extended Link\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File]\n\n[FolderOptions\\CheckModel\\File\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\CheckPathExists]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format]\n\n[FolderOptions\\CheckModel\\Data Format\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\CheckDataFormatNullExpression]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes</a:PackageOptionsText>\n<a:ModelOptionsText>[ModelOptions]\n\n[ModelOptions\\Physical Objects]\nCaseSensitive=No\nDisplayName=Yes\nEnableTrans=No\nUseTerm=No\nEnableRequirements=No\nEnableFullShortcut=Yes\nDefaultDttp=\nIgnoreOwner=No\nRebuildTrigger=Yes\nRefrUnique=No\nRefrAutoMigrate=Yes\nRefrMigrateReuse=No\nRefrMigrateDomain=Yes\nRefrMigrateCheck=Yes\nRefrMigrateRule=Yes\nRefrMigrateExtd=No\nRefrMigrDefaultLink=No\nRefrDfltImpl=D\nRefrPrgtColn=No\nRefrMigrateToEnd=No\nRebuildTriggerDep=No\nColnFKName=%.3:PARENT%_%COLUMN%\nColnFKNameUse=No\nDomnCopyDttp=Yes\nDomnCopyChck=No\nDomnCopyRule=No\nDomnCopyMand=No\nDomnCopyExtd=No\nDomnCopyProf=No\nNotation=0\nDomnDefaultMandatory=No\nColnDefaultMandatory=No\nTablDefaultOwner=\nViewDefaultOwner=\nTrgrDefaultOwnerTabl=\nTrgrDefaultOwnerView=\nIdxDefaultOwnerTabl=\nIdxDefaultOwnerView=\nJdxDefaultOwner=\nDBPackDefaultOwner=\nSeqDefaultOwner=\nProcDefaultOwner=\nDBMSTrgrDefaultOwner=\nCurrency=USD\nRefrDeleteConstraint=1\nRefrUpdateConstraint=1\nRefrParentMandatory=No\nRefrParentChangeAllow=Yes\nRefrCheckOnCommit=No\n\n[ModelOptions\\Physical Objects\\NamingOptionsTemplates]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMPCKG]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMPCKG\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMPCKG\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMDOMN]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMDOMN\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMDOMN\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\TABL]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\TABL\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\TABL\\Code]\nTemplate=\nMaxLen=64\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\COLN]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\COLN\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\COLN\\Code]\nTemplate=\nMaxLen=64\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\INDX]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\INDX\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\INDX\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\REFR]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\REFR\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\REFR\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VREF]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VREF\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VREF\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEW]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEW\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEW\\Code]\nTemplate=\nMaxLen=64\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEWC]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEWC\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEWC\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBSERV]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBSERV\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBSERV\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=&#39;a&#39;-&#39;z&#39;,&#39;A&#39;-&#39;Z&#39;,&#39;0&#39;-&#39;9&#39;,&quot;/-_.!~*&#39;()&quot;\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBOP]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBOP\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBOP\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=&#39;a&#39;-&#39;z&#39;,&#39;A&#39;-&#39;Z&#39;,&#39;0&#39;-&#39;9&#39;,&quot;/-_.!~*&#39;()&quot;\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WPARAM]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WPARAM\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WPARAM\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FACT]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FACT\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FACT\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DIMN]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DIMN\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DIMN\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\MEAS]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\MEAS\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\MEAS\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DATTR]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DATTR\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DATTR\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FILO]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FILO\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FILO\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMEOBJ]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMEOBJ\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMEOBJ\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMELNK]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMELNK\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMELNK\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DefaultClass]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DefaultClass\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DefaultClass\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Connection]\n\n[ModelOptions\\Pdm]\n\n[ModelOptions\\Generate]\n\n[ModelOptions\\Generate\\Xsm]\nGenRootElement=Yes\nGenComplexType=No\nGenAttribute=Yes\nCheckModel=Yes\nSaveLinks=Yes\nORMapping=No\nNameToCode=No\n\n[ModelOptions\\Generate\\Pdm]\nRRMapping=No\n\n[ModelOptions\\Generate\\Cdm]\nCheckModel=Yes\nSaveLinks=Yes\nNameToCode=No\nNotation=2\n\n[ModelOptions\\Generate\\Oom]\nCheckModel=Yes\nSaveLinks=Yes\nORMapping=No\nNameToCode=Yes\nClassPrefix=\n\n[ModelOptions\\Generate\\Ldm]\nCheckModel=Yes\nSaveLinks=Yes\nNameToCode=No\n\n[ModelOptions\\Default Opts]\n\n[ModelOptions\\Default Opts\\TABL]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\COLN]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\INDX]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\AKEY]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\PKEY]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\STOR]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\TSPC]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\SQNC]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\DTBS]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\USER]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\JIDX]\nPhysOpts=</a:ModelOptionsText>\n<c:DBMS>\n<o:Shortcut Id=\"o3\">\n<a:ObjectID>14D4F090-917F-4538-8687-B423AA42B832</a:ObjectID>\n<a:Name>MySQL 5.0</a:Name>\n<a:Code>MYSQL50</a:Code>\n<a:CreationDate>1521705583</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521705583</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:TargetStereotype/>\n<a:TargetID>F4F16ECD-F2F1-4006-AF6F-638D5C65F35E</a:TargetID>\n<a:TargetClassID>4BA9F647-DAB1-11D1-9944-006097355D9B</a:TargetClassID>\n</o:Shortcut>\n</c:DBMS>\n<c:PhysicalDiagrams>\n<o:PhysicalDiagram Id=\"o4\">\n<a:ObjectID>137EC109-4534-4C7A-BB72-091B8362EA59</a:ObjectID>\n<a:Name>diagram</a:Name>\n<a:Code>diagram</a:Code>\n<a:CreationDate>1521705583</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869150</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DisplayPreferences>[DisplayPreferences]\n\n[DisplayPreferences\\PDM]\n\n[DisplayPreferences\\General]\nAdjust to text=Yes\nSnap Grid=No\nConstrain Labels=Yes\nDisplay Grid=No\nShow Page Delimiter=Yes\nShow Links intersections=Yes\nActivate automatic link routing=Yes\nGrid size=800\nGraphic unit=2\nWindow color=255 255 255\nBackground image=\nBackground mode=8\nWatermark image=\nWatermark mode=8\nShow watermark on screen=No\nGradient mode=0\nGradient end color=255 255 255\nShow Swimlane=No\nSwimlaneVert=Yes\nTreeVert=No\nCompDark=0\n\n[DisplayPreferences\\Object]\nShow Icon=No\nMode=2\nTrunc Length=40\nWord Length=40\nWord Text=!&quot;#$%&amp;&#39;)*+,-./:;=&gt;?@\\]^_`|}~\nShortcut IntIcon=Yes\nShortcut IntLoct=Yes\nShortcut IntFullPath=No\nShortcut IntLastPackage=Yes\nShortcut ExtIcon=Yes\nShortcut ExtLoct=No\nShortcut ExtFullPath=No\nShortcut ExtLastPackage=Yes\nShortcut ExtIncludeModl=Yes\nEObjShowStrn=Yes\nExtendedObject.Comment=No\nExtendedObject.IconPicture=No\nExtendedObject.TextStyle=No\nExtendedObject_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Object Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;Separator Name=&quot;Separator&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Comment&quot; Attribute=&quot;Comment&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;LEFT&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nELnkShowStrn=Yes\nELnkShowName=Yes\nExtendedLink_SymbolLayout=&lt;Form&gt;[CRLF] &lt;Form Name=&quot;Center&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Source&quot; &gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Destination&quot; &gt;[CRLF] &lt;/Form&gt;[CRLF]&lt;/Form&gt;\nFileObject.Stereotype=No\nFileObject.DisplayName=Yes\nFileObject.LocationOrName=No\nFileObject.IconPicture=No\nFileObject.TextStyle=No\nFileObject.IconMode=Yes\nFileObject_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;Yes&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Location&quot; Attribute=&quot;LocationOrName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/ExclusiveChoice&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nPackage.Stereotype=Yes\nPackage.Comment=No\nPackage.IconPicture=No\nPackage.TextStyle=No\nPackage_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;Separator Name=&quot;Separator&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Comment&quot; Attribute=&quot;Comment&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;LEFT&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nDisplay Model Version=Yes\nTable.Stereotype=Yes\nTable.DisplayName=Yes\nTable.OwnerDisplayName=No\nTable.Columns=Yes\nTable.Columns._Filter=&quot;All Columns&quot; PDMCOLNALL\nTable.Columns._Columns=Stereotype DataType KeyIndicator\nTable.Columns._Limit=-5\nTable.Keys=No\nTable.Keys._Columns=Stereotype Indicator\nTable.Indexes=No\nTable.Indexes._Columns=Stereotype\nTable.Triggers=No\nTable.Triggers._Columns=Stereotype\nTable.Comment=No\nTable.IconPicture=No\nTable.TextStyle=No\nTable_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;Yes&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Owner and Name&quot; Attribute=&quot;OwnerDisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/ExclusiveChoice&gt;[CRLF] &lt;Separator Name=&quot;Separator&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Columns&quot; Collection=&quot;Columns&quot; Columns=&quot;Stereotype No\\r\\nDisplayName Yes\\r\\nDataType No\\r\\nSymbolDataType No &amp;quot;Domain or Data type&amp;quot;\\r\\nDomain No\\r\\nKeyIndicator No\\r\\nIndexIndicator No\\r\\nNullStatus No&quot; Filters=&quot;&amp;quot;All Columns&amp;quot;  PDMCOLNALL &amp;quot;&amp;quot;\\r\\n&amp;quot;PK Columns&amp;quot;  PDMCOLNPK &amp;quot;\\&amp;quot;PRIM \\&amp;quot;TRUE\\&amp;quot; TRUE\\&amp;quot;&amp;quot;\\r\\n&amp;quot;Key Columns&amp;quot;  PDMCOLNKEY &amp;quot;\\&amp;quot;KEYS \\&amp;quot;TRUE\\&amp;quot; TRUE\\&amp;quot;&amp;quot;&quot; HasLimit=&quot;Yes&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Keys&quot; Collection=&quot;Keys&quot; Columns=&quot;Stereotype No\\r\\nDisplayName Yes\\r\\nIndicator No&quot; HasLimit=&quot;No&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Indexes&quot; Collection=&quot;Indexes&quot; Columns=&quot;Stereotype No\\r\\nDisplayName Yes\\r\\nIndicator No&quot; HasLimit=&quot;No&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Triggers&quot; Collection=&quot;Triggers&quot; Columns=&quot;Stereotype No\\r\\nDisplayName Yes&quot; HasLimit=&quot;No&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Comment&quot; Attribute=&quot;Comment&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;LEFT&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nView.Stereotype=Yes\nView.DisplayName=Yes\nView.OwnerDisplayName=No\nView.Columns=Yes\nView.Columns._Columns=DisplayName\nView.Columns._Limit=-5\nView.TemporaryVTables=Yes\nView.Indexes=No\nView.Comment=No\nView.IconPicture=No\nView.TextStyle=No\nView_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;Yes&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Owner and Name&quot; Attribute=&quot;OwnerDisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/ExclusiveChoice&gt;[CRLF] &lt;Separator Name=&quot;Separator&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Columns&quot; Collection=&quot;Columns&quot; Columns=&quot;DisplayName No\\r\\nExpression No\\r\\nDataType No\\r\\nSymbolDataType No &amp;quot;Domain or Data type&amp;quot;\\r\\nIndexIndicator No&quot; HasLimit=&quot;Yes&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Tables&quot; Collection=&quot;TemporaryVTables&quot; Columns=&quot;Name Yes&quot; HasLimit=&quot;No&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Indexes&quot; Collection=&quot;Indexes&quot; Columns=&quot;DisplayName Yes&quot; HasLimit=&quot;No&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Comment&quot; Attribute=&quot;Comment&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;LEFT&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nProcedure.Stereotype=No\nProcedure.DisplayName=Yes\nProcedure.OwnerDisplayName=No\nProcedure.Comment=No\nProcedure.IconPicture=No\nProcedure.TextStyle=No\nProcedure_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;Yes&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Owner and Name&quot; Attribute=&quot;OwnerDisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/ExclusiveChoice&gt;[CRLF] &lt;Separator Name=&quot;Separator&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Comment&quot; Attribute=&quot;Comment&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;LEFT&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nReference.Cardinality=No\nReference.ImplementationType=No\nReference.ChildRole=Yes\nReference.Stereotype=Yes\nReference.DisplayName=No\nReference.ForeignKeyConstraintName=No\nReference.JoinExpression=No\nReference.Integrity=No\nReference.ParentRole=Yes\nReference_SymbolLayout=&lt;Form&gt;[CRLF] &lt;Form Name=&quot;Source&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Cardinality&quot; Attribute=&quot;Cardinality&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Implementation&quot; Attribute=&quot;ImplementationType&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Child Role&quot; Attribute=&quot;ChildRole&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Center&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;No&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]   &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]   &lt;StandardAttribute Name=&quot;Cons&amp;amp;traint Name&quot; Attribute=&quot;ForeignKeyConstraintName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;Cons&amp;amp;traint Name&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]   &lt;StandardAttribute Name=&quot;Join&quot; Attribute=&quot;JoinExpression&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;Join&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;/ExclusiveChoice&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Referential integrity&quot; Attribute=&quot;Integrity&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;Referential integrity&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Destination&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Parent Role&quot; Attribute=&quot;ParentRole&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF]&lt;/Form&gt;\nViewReference.ChildRole=Yes\nViewReference.Stereotype=Yes\nViewReference.DisplayName=No\nViewReference.JoinExpression=No\nViewReference.ParentRole=Yes\nViewReference_SymbolLayout=&lt;Form&gt;[CRLF] &lt;Form Name=&quot;Source&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Child Role&quot; Attribute=&quot;ChildRole&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Center&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;No&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]   &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]   &lt;StandardAttribute Name=&quot;Join Expression&quot; Attribute=&quot;JoinExpression&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;/ExclusiveChoice&gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Destination&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Parent Role&quot; Attribute=&quot;ParentRole&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF]&lt;/Form&gt;\n\n[DisplayPreferences\\Symbol]\n\n[DisplayPreferences\\Symbol\\FRMEOBJ]\nSTRNFont=新宋体,8,N\nSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nLABLFont=新宋体,8,N\nLABLFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=6000\nHeight=2000\nBrush color=255 255 255\nFill Color=Yes\nBrush style=6\nBrush bitmap mode=12\nBrush gradient mode=64\nBrush gradient color=192 192 192\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 255 128 128\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\FRMELNK]\nCENTERFont=新宋体,8,N\nCENTERFont color=0 0 0\nLine style=1\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 128 128 255\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\FILO]\nOBJSTRNFont=新宋体,8,N\nOBJSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nLCNMFont=新宋体,8,N\nLCNMFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=4800\nHeight=3600\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 0 0 255\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\PDMPCKG]\nSTRNFont=新宋体,8,N\nSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nLABLFont=新宋体,8,N\nLABLFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=4800\nHeight=4000\nBrush color=255 255 192\nFill Color=Yes\nBrush style=6\nBrush bitmap mode=12\nBrush gradient mode=65\nBrush gradient color=255 255 255\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 178 178 178\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\TABL]\nSTRNFont=新宋体,10,N\nSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nOWNRDISPNAMEFont=新宋体,8,N\nOWNRDISPNAMEFont color=0 0 0\nColumnsFont=新宋体,8,N\nColumnsFont color=0 0 0\nTablePkColumnsFont=新宋体,8,U\nTablePkColumnsFont color=0 0 0\nTableFkColumnsFont=新宋体,8,N\nTableFkColumnsFont color=0 0 0\nKeysFont=新宋体,8,N\nKeysFont color=0 0 0\nIndexesFont=新宋体,8,N\nIndexesFont color=0 0 0\nTriggersFont=新宋体,8,N\nTriggersFont color=0 0 0\nLABLFont=新宋体,8,N\nLABLFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=4800\nHeight=4000\nBrush color=178 214 252\nFill Color=Yes\nBrush style=6\nBrush bitmap mode=12\nBrush gradient mode=65\nBrush gradient color=255 255 255\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 0 128 192\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\VIEW]\nSTRNFont=新宋体,8,N\nSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nOWNRDISPNAMEFont=新宋体,8,N\nOWNRDISPNAMEFont color=0 0 0\nColumnsFont=新宋体,8,N\nColumnsFont color=0 0 0\nTablePkColumnsFont=新宋体,8,U\nTablePkColumnsFont color=0 0 0\nTableFkColumnsFont=新宋体,8,N\nTableFkColumnsFont color=0 0 0\nTemporaryVTablesFont=新宋体,8,N\nTemporaryVTablesFont color=0 0 0\nIndexesFont=新宋体,8,N\nIndexesFont color=0 0 0\nLABLFont=新宋体,8,N\nLABLFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=4800\nHeight=4000\nBrush color=208 208 255\nFill Color=Yes\nBrush style=6\nBrush bitmap mode=12\nBrush gradient mode=65\nBrush gradient color=255 255 255\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 128 128 192\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\PROC]\nSTRNFont=新宋体,8,N\nSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nOWNRDISPNAMEFont=新宋体,8,N\nOWNRDISPNAMEFont color=0 0 0\nLABLFont=新宋体,8,N\nLABLFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=4000\nHeight=1000\nBrush color=255 255 192\nFill Color=Yes\nBrush style=6\nBrush bitmap mode=12\nBrush gradient mode=65\nBrush gradient color=255 255 255\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 128 108 0\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\REFR]\nSOURCEFont=新宋体,8,N\nSOURCEFont color=0 0 0\nCENTERFont=新宋体,8,N\nCENTERFont color=0 0 0\nDESTINATIONFont=新宋体,8,N\nDESTINATIONFont color=0 0 0\nLine style=1\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 0 128 192\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\VREF]\nSOURCEFont=新宋体,8,N\nSOURCEFont color=0 0 0\nCENTERFont=新宋体,8,N\nCENTERFont color=0 0 0\nDESTINATIONFont=新宋体,8,N\nDESTINATIONFont color=0 0 0\nLine style=1\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 128 128 192\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\USRDEPD]\nOBJXSTRFont=新宋体,8,N\nOBJXSTRFont color=0 0 0\nLine style=1\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=2 0 128 128 255\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\Free Symbol]\nFree TextFont=新宋体,8,N\nFree TextFont color=0 0 0\nLine style=0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 0 0 255\nShadow color=192 192 192\nShadow=0</a:DisplayPreferences>\n<a:PaperSize>(2280, 128972)</a:PaperSize>\n<a:PageMargins>((315,354), (433,354))</a:PageMargins>\n<a:PageOrientation>1</a:PageOrientation>\n<a:PaperSource>15</a:PaperSource>\n<c:Symbols>\n<o:ReferenceSymbol Id=\"o5\">\n<a:CreationDate>1521706257</a:CreationDate>\n<a:ModificationDate>1522399274</a:ModificationDate>\n<a:Rect>((118,137911), (3606,139161))</a:Rect>\n<a:ListOfPoints>((518,138536),(3206,138536))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o7\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o8\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o9\">\n<a:CreationDate>1521710488</a:CreationDate>\n<a:ModificationDate>1522301998</a:ModificationDate>\n<a:Rect>((-32542,131813), (-18882,146342))</a:Rect>\n<a:ListOfPoints>((-32142,145942),(-32142,132438),(-19282,132438))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o10\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o11\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o12\">\n<a:CreationDate>1521770349</a:CreationDate>\n<a:ModificationDate>1522399160</a:ModificationDate>\n<a:Rect>((-19307,147483), (-18057,152962))</a:Rect>\n<a:ListOfPoints>((-18682,152562),(-18682,147883))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o13\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o14\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o15\">\n<a:CreationDate>1521771362</a:CreationDate>\n<a:ModificationDate>1522722888</a:ModificationDate>\n<a:Rect>((-2768,147483), (-1518,154573))</a:Rect>\n<a:ListOfPoints>((-2143,154173),(-2143,147883))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o16\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o17\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o18\">\n<a:CreationDate>1521773101</a:CreationDate>\n<a:ModificationDate>1522399245</a:ModificationDate>\n<a:Rect>((118,145689), (8052,147828))</a:Rect>\n<a:ListOfPoints>((518,146089),(4085,146089),(4085,147203),(7652,147203))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o20\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o21\">\n<a:CreationDate>1521783613</a:CreationDate>\n<a:ModificationDate>1522301998</a:ModificationDate>\n<a:Rect>((-36148,140470), (-18882,141720))</a:Rect>\n<a:ListOfPoints>((-19282,141095),(-35748,141095))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o22\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o23\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o24\">\n<a:CreationDate>1521791466</a:CreationDate>\n<a:ModificationDate>1522721783</a:ModificationDate>\n<a:Rect>((-35006,116007), (-18882,117257))</a:Rect>\n<a:ListOfPoints>((-34606,116632),(-19282,116632))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o25\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o26\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o27\">\n<a:CreationDate>1521792428</a:CreationDate>\n<a:ModificationDate>1522721669</a:ModificationDate>\n<a:Rect>((-37186,123158), (-18882,124408))</a:Rect>\n<a:ListOfPoints>((-36786,123783),(-19282,123783))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o28\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o29\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o30\">\n<a:CreationDate>1521792909</a:CreationDate>\n<a:ModificationDate>1522721672</a:ModificationDate>\n<a:Rect>((-36959,130601), (-18882,131851))</a:Rect>\n<a:ListOfPoints>((-36559,131226),(-19282,131226))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o31\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o32\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o33\">\n<a:CreationDate>1522045168</a:CreationDate>\n<a:ModificationDate>1522399263</a:ModificationDate>\n<a:Rect>((26779,91096), (28029,95555))</a:Rect>\n<a:ListOfPoints>((27404,91496),(27404,95155))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o34\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o35\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o36\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o37\">\n<a:CreationDate>1522046100</a:CreationDate>\n<a:ModificationDate>1522399263</a:ModificationDate>\n<a:Rect>((118,99478), (28233,125231))</a:Rect>\n<a:ListOfPoints>((518,124831),(27608,124831),(27608,99878))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o35\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o38\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o39\">\n<a:CreationDate>1522046451</a:CreationDate>\n<a:ModificationDate>1522399258</a:ModificationDate>\n<a:Rect>((-10672,88961), (-7729,112209))</a:Rect>\n<a:ListOfPoints>((-8129,89361),(-10047,89361),(-10047,111809))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o40\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o41\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o42\">\n<a:CreationDate>1522046456</a:CreationDate>\n<a:ModificationDate>1522399261</a:ModificationDate>\n<a:Rect>((6477,85210), (12264,86460))</a:Rect>\n<a:ListOfPoints>((6877,85835),(11864,85835))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o40\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o34\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o43\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o44\">\n<a:CreationDate>1522112691</a:CreationDate>\n<a:ModificationDate>1522399105</a:ModificationDate>\n<a:Rect>((-41320,55031), (-36214,56281))</a:Rect>\n<a:ListOfPoints>((-36614,55656),(-40920,55656))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o45\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o46\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o47\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o48\">\n<a:CreationDate>1522112694</a:CreationDate>\n<a:ModificationDate>1522399105</a:ModificationDate>\n<a:Rect>((-16713,57856), (-15463,112209))</a:Rect>\n<a:ListOfPoints>((-16088,58256),(-16088,111809))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o45\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o49\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o50\">\n<a:CreationDate>1522114406</a:CreationDate>\n<a:ModificationDate>1522399245</a:ModificationDate>\n<a:Rect>((16796,151962), (26808,154513))</a:Rect>\n<a:ListOfPoints>((18480,152362),(26408,152362),(26408,153888),(17196,153888))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<a:AutomaticRoutingState>4</a:AutomaticRoutingState>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o51\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o52\">\n<a:CreationDate>1522115961</a:CreationDate>\n<a:ModificationDate>1522399266</a:ModificationDate>\n<a:Rect>((16844,105298), (20156,145559))</a:Rect>\n<a:ListOfPoints>((17244,105698),(19531,105698),(19531,145159))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o53\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o54\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o55\">\n<a:CreationDate>1522115983</a:CreationDate>\n<a:ModificationDate>1522399266</a:ModificationDate>\n<a:Rect>((11839,91096), (13089,104099))</a:Rect>\n<a:ListOfPoints>((12464,103699),(12464,91496))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o53\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o34\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o56\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o57\">\n<a:CreationDate>1522118676</a:CreationDate>\n<a:ModificationDate>1522721912</a:ModificationDate>\n<a:Rect>((-21193,102395), (-18057,112209))</a:Rect>\n<a:ListOfPoints>((-20793,102795),(-18682,102795),(-18682,111809))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o58\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o59\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o60\">\n<a:CreationDate>1522119056</a:CreationDate>\n<a:ModificationDate>1522721912</a:ModificationDate>\n<a:Rect>((-37481,102138), (-32899,103388))</a:Rect>\n<a:ListOfPoints>((-37081,102763),(-33299,102763))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o61\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o58\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o62\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o63\">\n<a:CreationDate>1522120295</a:CreationDate>\n<a:ModificationDate>1522399221</a:ModificationDate>\n<a:Rect>((-24810,167598), (-19344,168848))</a:Rect>\n<a:ListOfPoints>((-19744,168223),(-24410,168223))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o64\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o65\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o66\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o67\">\n<a:CreationDate>1522138613</a:CreationDate>\n<a:ModificationDate>1522399095</a:ModificationDate>\n<a:Rect>((-24954,40604), (-19115,41854))</a:Rect>\n<a:ListOfPoints>((-19515,41229),(-24554,41229))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o68\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o69\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o70\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o71\">\n<a:CreationDate>1522138618</a:CreationDate>\n<a:ModificationDate>1522399095</a:ModificationDate>\n<a:Rect>((-34348,42015), (-12721,130651))</a:Rect>\n<a:ListOfPoints>((-13121,42415),(-13121,75553),(-33948,75553),(-33948,130026),(-19282,130026))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o68\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o72\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o73\">\n<a:CreationDate>1522138705</a:CreationDate>\n<a:ModificationDate>1522399092</a:ModificationDate>\n<a:Rect>((-43671,34853), (-38546,36103))</a:Rect>\n<a:ListOfPoints>((-38946,35478),(-43271,35478))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o69\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o74\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o75\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o76\">\n<a:CreationDate>1522141157</a:CreationDate>\n<a:ModificationDate>1522399066</a:ModificationDate>\n<a:Rect>((-25433,19586), (-17431,20836))</a:Rect>\n<a:ListOfPoints>((-17831,20211),(-25033,20211))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o77\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o78\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o79\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o80\">\n<a:CreationDate>1522141232</a:CreationDate>\n<a:ModificationDate>1522399094</a:ModificationDate>\n<a:Rect>((-43321,40604), (-38546,41854))</a:Rect>\n<a:ListOfPoints>((-42921,41229),(-38946,41229))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o81\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o69\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o82\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o83\">\n<a:CreationDate>1522141316</a:CreationDate>\n<a:ModificationDate>1522399068</a:ModificationDate>\n<a:Rect>((-44663,18136), (-38253,19386))</a:Rect>\n<a:ListOfPoints>((-38653,18761),(-44263,18761))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o78\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o84\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o85\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o86\">\n<a:CreationDate>1522142006</a:CreationDate>\n<a:ModificationDate>1522399038</a:ModificationDate>\n<a:Rect>((-42272,4919), (-33459,6169))</a:Rect>\n<a:ListOfPoints>((-41872,5544),(-33859,5544))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o87\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o88\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o89\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o90\">\n<a:CreationDate>1522215975</a:CreationDate>\n<a:ModificationDate>1522398810</a:ModificationDate>\n<a:Rect>((62000,154589), (65163,155839))</a:Rect>\n<a:ListOfPoints>((62400,155214),(64763,155214))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o91\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o92\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o93\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o94\">\n<a:CreationDate>1522216015</a:CreationDate>\n<a:ModificationDate>1522398810</a:ModificationDate>\n<a:Rect>((118,129221), (50900,156036))</a:Rect>\n<a:ListOfPoints>((50500,155636),(41338,155636),(41338,129846),(518,129846))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o91\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o95\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o96\">\n<a:CreationDate>1522216251</a:CreationDate>\n<a:ModificationDate>1522398808</a:ModificationDate>\n<a:Rect>((62486,144990), (65163,146240))</a:Rect>\n<a:ListOfPoints>((62886,145615),(64763,145615))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o97\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o92\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o98\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o99\">\n<a:CreationDate>1522216380</a:CreationDate>\n<a:ModificationDate>1522399245</a:ModificationDate>\n<a:Rect>((20100,145134), (46631,146384))</a:Rect>\n<a:ListOfPoints>((46231,145759),(20500,145759))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o97\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o100\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o101\">\n<a:CreationDate>1522220508</a:CreationDate>\n<a:ModificationDate>1541490687</a:ModificationDate>\n<a:Rect>((77597,148397), (88375,149647))</a:Rect>\n<a:ListOfPoints>((87975,149022),(77997,149022))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o102\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o92\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o103\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o104\">\n<a:CreationDate>1522220546</a:CreationDate>\n<a:ModificationDate>1541490615</a:ModificationDate>\n<a:Rect>((59369,64259), (99115,147363))</a:Rect>\n<a:ListOfPoints>((98715,146963),(98715,64884),(59769,64884))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o102\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o106\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o107\">\n<a:CreationDate>1522224364</a:CreationDate>\n<a:ModificationDate>1522399274</a:ModificationDate>\n<a:Rect>((18744,122602), (80891,138598))</a:Rect>\n<a:ListOfPoints>((80491,123002),(74505,123002),(74505,137973),(19144,137973))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o108\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o7\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o109\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o110\">\n<a:CreationDate>1522225874</a:CreationDate>\n<a:ModificationDate>1522398795</a:ModificationDate>\n<a:Rect>((118,126647), (80417,130069))</a:Rect>\n<a:ListOfPoints>((80017,129669),(72926,129669),(72926,127272),(518,127272))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o111\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o112\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o113\">\n<a:CreationDate>1522226077</a:CreationDate>\n<a:ModificationDate>1522398792</a:ModificationDate>\n<a:Rect>((118,130712), (79609,136199))</a:Rect>\n<a:ListOfPoints>((79209,135799),(38938,135799),(38938,131337),(518,131337))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o114\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o115\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o116\">\n<a:CreationDate>1522226272</a:CreationDate>\n<a:ModificationDate>1522399075</a:ModificationDate>\n<a:Rect>((-38306,48140), (83441,113756))</a:Rect>\n<a:ListOfPoints>((83041,113356),(83041,94555),(-37681,94555),(-37681,48540))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o117\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o69\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o118\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o119\">\n<a:CreationDate>1522303390</a:CreationDate>\n<a:ModificationDate>1542180981</a:ModificationDate>\n<a:Rect>((56152,72245), (57402,98630))</a:Rect>\n<a:ListOfPoints>((56777,98230),(56777,72645))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o120\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o121\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o122\">\n<a:CreationDate>1522303410</a:CreationDate>\n<a:ModificationDate>1542180981</a:ModificationDate>\n<a:Rect>((-9472,101195), (50367,112209))</a:Rect>\n<a:ListOfPoints>((49967,101595),(-8847,101595),(-8847,111809))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o120\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o123\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o124\">\n<a:CreationDate>1522304178</a:CreationDate>\n<a:ModificationDate>1538200596</a:ModificationDate>\n<a:Rect>((35098,10654), (42842,11904))</a:Rect>\n<a:ListOfPoints>((35498,11279),(42442,11279))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o125\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o126\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o127\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o128\">\n<a:CreationDate>1522386868</a:CreationDate>\n<a:ModificationDate>1522398605</a:ModificationDate>\n<a:Rect>((36870,42888), (49607,52723))</a:Rect>\n<a:ListOfPoints>((49207,52323),(49207,43513),(37270,43513))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o129\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o130\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o131\">\n<a:CreationDate>1522387461</a:CreationDate>\n<a:ModificationDate>1522399143</a:ModificationDate>\n<a:Rect>((50982,72245), (52232,75672))</a:Rect>\n<a:ListOfPoints>((51607,75272),(51607,72645))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o132\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o133\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o134\">\n<a:CreationDate>1522387526</a:CreationDate>\n<a:ModificationDate>1522399245</a:ModificationDate>\n<a:Rect>((20100,78871), (40538,151445))</a:Rect>\n<a:ListOfPoints>((40138,79271),(40138,150820),(20500,150820))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o132\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o135\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o136\">\n<a:CreationDate>1522389232</a:CreationDate>\n<a:ModificationDate>1522398872</a:ModificationDate>\n<a:Rect>((33605,58216), (43845,60017))</a:Rect>\n<a:ListOfPoints>((34005,59617),(34005,58841),(43445,58841))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<a:AutomaticRoutingState>2</a:AutomaticRoutingState>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o137\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o138\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o139\">\n<a:CreationDate>1522390434</a:CreationDate>\n<a:ModificationDate>1522398601</a:ModificationDate>\n<a:Rect>((33005,54232), (43845,55482))</a:Rect>\n<a:ListOfPoints>((33405,54857),(43445,54857))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o140\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o141\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o142\">\n<a:CreationDate>1522390644</a:CreationDate>\n<a:ModificationDate>1522398535</a:ModificationDate>\n<a:Rect>((33522,26819), (52232,52723))</a:Rect>\n<a:ListOfPoints>((33922,27219),(51607,27219),(51607,52323))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o143\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o144\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o145\">\n<a:CreationDate>1522391366</a:CreationDate>\n<a:ModificationDate>1522398601</a:ModificationDate>\n<a:Rect>((59369,61859), (62562,63109))</a:Rect>\n<a:ListOfPoints>((62162,62484),(59769,62484))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o146\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o147\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o148\">\n<a:CreationDate>1522391379</a:CreationDate>\n<a:ModificationDate>1522398616</a:ModificationDate>\n<a:Rect>((69534,56429), (70784,60444))</a:Rect>\n<a:ListOfPoints>((70159,60044),(70159,56829))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o146\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o149\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o150\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o151\">\n<a:CreationDate>1522396648</a:CreationDate>\n<a:ModificationDate>1522398621</a:ModificationDate>\n<a:Rect>((52182,34420), (64724,52723))</a:Rect>\n<a:ListOfPoints>((64324,34820),(52807,34820),(52807,52323))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o152\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o153\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o154\">\n<a:CreationDate>1522396864</a:CreationDate>\n<a:ModificationDate>1522398618</a:ModificationDate>\n<a:Rect>((53382,44918), (64185,52723))</a:Rect>\n<a:ListOfPoints>((63785,45318),(54007,45318),(54007,52323))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o155\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o156\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o157\">\n<a:CreationDate>1522659209</a:CreationDate>\n<a:ModificationDate>1522724919</a:ModificationDate>\n<a:Rect>((-101497,31459), (51032,102938))</a:Rect>\n<a:ListOfPoints>((-101097,102538),(-101097,31859),(50407,31859),(50407,52323))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o159\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o160\">\n<a:CreationDate>1522660753</a:CreationDate>\n<a:ModificationDate>1522724919</a:ModificationDate>\n<a:Rect>((-90857,129887), (-79217,131137))</a:Rect>\n<a:ListOfPoints>((-79617,130512),(-90457,130512))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o161\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o162\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o163\">\n<a:CreationDate>1522660820</a:CreationDate>\n<a:ModificationDate>1522719674</a:ModificationDate>\n<a:Rect>((-64973,127931), (-18882,129181))</a:Rect>\n<a:ListOfPoints>((-64573,128556),(-19282,128556))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o161\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o164\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o165\">\n<a:CreationDate>1522721755</a:CreationDate>\n<a:ModificationDate>1522721783</a:ModificationDate>\n<a:Rect>((-55169,48103), (20574,117096))</a:Rect>\n<a:ListOfPoints>((-49770,116696),(-54769,116696),(-54769,48728),(20174,48728))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o25\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o129\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o166\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o167\">\n<a:CreationDate>1522724329</a:CreationDate>\n<a:ModificationDate>1522724329</a:ModificationDate>\n<a:Rect>((-100297,77071), (65163,153166))</a:Rect>\n<a:ListOfPoints>((-99897,102538),(-99897,77471),(35821,77471),(35821,152541),(64763,152541))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o92\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o168\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o169\">\n<a:CreationDate>1522725331</a:CreationDate>\n<a:ModificationDate>1522725331</a:ModificationDate>\n<a:Rect>((-90857,117058), (-77798,118308))</a:Rect>\n<a:ListOfPoints>((-78198,117683),(-90457,117683))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o170\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o171\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o172\">\n<a:CreationDate>1522733188</a:CreationDate>\n<a:ModificationDate>1539745800</a:ModificationDate>\n<a:Rect>((-90857,102513), (-73424,103763))</a:Rect>\n<a:ListOfPoints>((-73824,103138),(-90457,103138))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o173\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o174\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o175\">\n<a:CreationDate>1522745521</a:CreationDate>\n<a:ModificationDate>1539745800</a:ModificationDate>\n<a:Rect>((-84902,89423), (-73424,90673))</a:Rect>\n<a:ListOfPoints>((-73824,90048),(-84502,90048))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o173\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o176\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o177\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o178\">\n<a:CreationDate>1533109967</a:CreationDate>\n<a:ModificationDate>1533110262</a:ModificationDate>\n<a:Rect>((-119919,81722), (-12496,112209))</a:Rect>\n<a:ListOfPoints>((-119519,94842),(-119519,82122),(-13121,82122),(-13121,111809))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o179\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o180\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o181\">\n<a:CreationDate>1533115827</a:CreationDate>\n<a:ModificationDate>1533116074</a:ModificationDate>\n<a:Rect>((-112642,102747), (-38745,153053))</a:Rect>\n<a:ListOfPoints>((-112242,103147),(-109969,103147),(-109969,152428),(-39145,152428))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o179\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o10\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o182\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o183\">\n<a:CreationDate>1533115888</a:CreationDate>\n<a:ModificationDate>1533115888</a:ModificationDate>\n<a:Rect>((-121119,61859), (43845,95242))</a:Rect>\n<a:ListOfPoints>((-120719,94842),(-120719,78671),(37870,78671),(37870,62484),(43445,62484))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o179\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o184\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o185\">\n<a:CreationDate>1538202362</a:CreationDate>\n<a:ModificationDate>1580624566</a:ModificationDate>\n<a:Rect>((25795,-5333), (33632,-148))</a:Rect>\n<a:ListOfPoints>((26195,-2272),(26195,-548),(32832,-548),(32832,-4708),(32232,-4708))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<a:AutomaticRoutingState>4</a:AutomaticRoutingState>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o186\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o186\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o187\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o188\">\n<a:CreationDate>1538202471</a:CreationDate>\n<a:ModificationDate>1580609625</a:ModificationDate>\n<a:Rect>((54116,11057), (59346,12307))</a:Rect>\n<a:ListOfPoints>((58946,11682),(54516,11682))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o189\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o126\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o190\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o191\">\n<a:CreationDate>1538202492</a:CreationDate>\n<a:ModificationDate>1580609625</a:ModificationDate>\n<a:Rect>((65496,8109), (66746,11214))</a:Rect>\n<a:ListOfPoints>((66121,10814),(66121,8509))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o189\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o192\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o193\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o194\">\n<a:CreationDate>1538202586</a:CreationDate>\n<a:ModificationDate>1580624567</a:ModificationDate>\n<a:Rect>((46201,-5622), (66746,1711))</a:Rect>\n<a:ListOfPoints>((46601,-5222),(66121,-5222),(66121,1311))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o195\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o192\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o196\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o197\">\n<a:CreationDate>1538202588</a:CreationDate>\n<a:ModificationDate>1580624567</a:ModificationDate>\n<a:Rect>((31832,-6533), (34857,-5283))</a:Rect>\n<a:ListOfPoints>((34457,-5908),(32232,-5908))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o195\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o186\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o198\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o199\">\n<a:CreationDate>1538202927</a:CreationDate>\n<a:ModificationDate>1580624563</a:ModificationDate>\n<a:Rect>((31729,2823), (42842,4073))</a:Rect>\n<a:ListOfPoints>((32129,3448),(42442,3448))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o200\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o126\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o201\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o202\">\n<a:CreationDate>1538202929</a:CreationDate>\n<a:ModificationDate>1580624566</a:ModificationDate>\n<a:Rect>((24370,-2672), (25620,1487))</a:Rect>\n<a:ListOfPoints>((24995,1087),(24995,-2272))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o200\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o186\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o203\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o204\">\n<a:CreationDate>1539746524</a:CreationDate>\n<a:ModificationDate>1539746524</a:ModificationDate>\n<a:Rect>((-65536,108004), (-18882,114533))</a:Rect>\n<a:ListOfPoints>((-65136,108404),(-65136,113908),(-19282,113908))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o173\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o205\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o206\">\n<a:CreationDate>1541490540</a:CreationDate>\n<a:ModificationDate>1541490615</a:ModificationDate>\n<a:Rect>((-90857,91755), (97915,147363))</a:Rect>\n<a:ListOfPoints>((97515,146963),(97515,92155),(-20193,92155),(-20193,111251),(-90457,111251))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o102\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o207\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o208\">\n<a:CreationDate>1542179374</a:CreationDate>\n<a:ModificationDate>1542180977</a:ModificationDate>\n<a:Rect>((47632,114935), (48882,118924))</a:Rect>\n<a:ListOfPoints>((48257,115335),(48257,118524))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o209\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o210\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o211\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o212\">\n<a:CreationDate>1542179394</a:CreationDate>\n<a:ModificationDate>1542180977</a:ModificationDate>\n<a:Rect>((64837,114935), (66087,117902))</a:Rect>\n<a:ListOfPoints>((65462,115335),(65462,117502))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o209\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o213\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o214\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o215\">\n<a:CreationDate>1542179438</a:CreationDate>\n<a:ModificationDate>1542180977</a:ModificationDate>\n<a:Rect>((118,111784), (42403,113034))</a:Rect>\n<a:ListOfPoints>((42003,112409),(518,112409))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o209\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o216\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o217\">\n<a:CreationDate>1580625109</a:CreationDate>\n<a:ModificationDate>1580625137</a:ModificationDate>\n<a:Rect>((83723,16521), (99015,25885))</a:Rect>\n<a:ListOfPoints>((86540,16921),(86540,25485),(98615,25485),(98615,20467),(84123,20467))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<a:AutomaticRoutingState>4</a:AutomaticRoutingState>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o218\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o218\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o219\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o220\">\n<a:CreationDate>1580625333</a:CreationDate>\n<a:ModificationDate>1580625381</a:ModificationDate>\n<a:Rect>((71758,1788), (77807,3038))</a:Rect>\n<a:ListOfPoints>((77407,2413),(72158,2413))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o221\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o192\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o222\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o223\">\n<a:CreationDate>1580625352</a:CreationDate>\n<a:ModificationDate>1580625378</a:ModificationDate>\n<a:Rect>((81744,4384), (82994,12281))</a:Rect>\n<a:ListOfPoints>((82369,4784),(82369,11881))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o221\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o218\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o224\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o225\">\n<a:CreationDate>1580625421</a:CreationDate>\n<a:ModificationDate>1580625458</a:ModificationDate>\n<a:Rect>((71758,4759), (92510,6009))</a:Rect>\n<a:ListOfPoints>((92110,5384),(72158,5384))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o226\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o192\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o227\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o228\">\n<a:CreationDate>1580625435</a:CreationDate>\n<a:ModificationDate>1581324463</a:ModificationDate>\n<a:Rect>((95430,5190), (96680,9775))</a:Rect>\n<a:ListOfPoints>((96055,5590),(96055,9375))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o226\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o229\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o230\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o231\">\n<a:CreationDate>1580869150</a:CreationDate>\n<a:ModificationDate>1581324463</a:ModificationDate>\n<a:Rect>((101766,14015), (107589,15265))</a:Rect>\n<a:ListOfPoints>((102166,14640),(107189,14640))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o229\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o232\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o233\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:TableSymbol Id=\"o6\">\n<a:CreationDate>1521705853</a:CreationDate>\n<a:ModificationDate>1524811003</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-19282,111809), (518,147883))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o234\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o7\">\n<a:CreationDate>1521706107</a:CreationDate>\n<a:ModificationDate>1522399274</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((3206,132976), (19144,143474))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:SymbolContent>Table.Stereotype 1\nTable.DisplayName 1\nTable.OwnerDisplayName 0\nTable.Columns 1 -5 &quot;All Columns&quot; PDMCOLNALL Stereotype DataType KeyIndicator\nTable.Keys 0 0 &quot;&quot; &quot;&quot; Stereotype Indicator\nTable.Indexes 0 0 &quot;&quot; &quot;&quot; Stereotype\nTable.Triggers 0 0 &quot;&quot; &quot;&quot; Stereotype\nTable.Comment 0</a:SymbolContent>\n<c:Object>\n<o:Table Ref=\"o235\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o10\">\n<a:CreationDate>1521709482</a:CreationDate>\n<a:ModificationDate>1582277412</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-39145,145942), (-25139,158914))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o236\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o13\">\n<a:CreationDate>1521710820</a:CreationDate>\n<a:ModificationDate>1522399160</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-25547,152562), (-13473,158934))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o237\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o16\">\n<a:CreationDate>1521770649</a:CreationDate>\n<a:ModificationDate>1522722888</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-9920,154173), (5632,165495))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o238\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o19\">\n<a:CreationDate>1521773028</a:CreationDate>\n<a:ModificationDate>1522399245</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((7652,145159), (20500,156481))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o239\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o22\">\n<a:CreationDate>1521782818</a:CreationDate>\n<a:ModificationDate>1522116249</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-49754,136272), (-35748,144294))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o240\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o25\">\n<a:CreationDate>1521791032</a:CreationDate>\n<a:ModificationDate>1528184156</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-49770,113922), (-34606,119470))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o241\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o28\">\n<a:CreationDate>1521791865</a:CreationDate>\n<a:ModificationDate>1522721669</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-48860,121016), (-36786,126564))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o242\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o31\">\n<a:CreationDate>1521791901</a:CreationDate>\n<a:ModificationDate>1522721672</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-49407,129426), (-36559,134150))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o243\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o35\">\n<a:CreationDate>1522044163</a:CreationDate>\n<a:ModificationDate>1522399263</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20787,95155), (34021,99878))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o244\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o34\">\n<a:CreationDate>1522044465</a:CreationDate>\n<a:ModificationDate>1522399261</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((11864,80174), (30892,91496))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o245\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o40\">\n<a:CreationDate>1522046351</a:CreationDate>\n<a:ModificationDate>1524811003</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-8675,84638), (6877,89361))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o246\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o78\">\n<a:CreationDate>1522050428</a:CreationDate>\n<a:ModificationDate>1522399063</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-38653,14550), (-25033,25872))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o247\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o46\">\n<a:CreationDate>1522112533</a:CreationDate>\n<a:ModificationDate>1522399103</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-53768,52470), (-40920,58842))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o248\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o45\">\n<a:CreationDate>1522112617</a:CreationDate>\n<a:ModificationDate>1522399105</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-36614,53594), (-15488,58256))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o249\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o53\">\n<a:CreationDate>1522115893</a:CreationDate>\n<a:ModificationDate>1522399266</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((378,103699), (17244,107698))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o250\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o58\">\n<a:CreationDate>1522118136</a:CreationDate>\n<a:ModificationDate>1522721912</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-33299,95709), (-20793,109817))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o251\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o61\">\n<a:CreationDate>1522118840</a:CreationDate>\n<a:ModificationDate>1522721910</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-49529,99005), (-37081,106855))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o252\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o65\">\n<a:CreationDate>1522120039</a:CreationDate>\n<a:ModificationDate>1522399218</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-36872,165037), (-24410,171409))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o253\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o64\">\n<a:CreationDate>1522120250</a:CreationDate>\n<a:ModificationDate>1522399221</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-19744,166032), (-8442,170031))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o254\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o69\">\n<a:CreationDate>1522138190</a:CreationDate>\n<a:ModificationDate>1542086220</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-38946,33918), (-24554,48540))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o255\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o68\">\n<a:CreationDate>1522138561</a:CreationDate>\n<a:ModificationDate>1522399095</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-19515,38416), (-6728,42415))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o256\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o74\">\n<a:CreationDate>1522138655</a:CreationDate>\n<a:ModificationDate>1522399092</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-56119,32459), (-43271,38831))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o257\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o81\">\n<a:CreationDate>1522139643</a:CreationDate>\n<a:ModificationDate>1522399094</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-55369,40423), (-42921,47585))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o258\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o77\">\n<a:CreationDate>1522141104</a:CreationDate>\n<a:ModificationDate>1522399066</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-17831,15073), (-5383,22235))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o259\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o84\">\n<a:CreationDate>1522141269</a:CreationDate>\n<a:ModificationDate>1522399068</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-57111,15575), (-44263,21947))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o260\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o87\">\n<a:CreationDate>1522141745</a:CreationDate>\n<a:ModificationDate>1522399038</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-50946,1067), (-41872,9775))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o261\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o88\">\n<a:CreationDate>1522141950</a:CreationDate>\n<a:ModificationDate>1522399038</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-33859,2358), (-21783,8730))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o262\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o263\">\n<a:CreationDate>1522142154</a:CreationDate>\n<a:ModificationDate>1522399038</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-14870,1448), (-1842,9470))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o264\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o92\">\n<a:CreationDate>1522215010</a:CreationDate>\n<a:ModificationDate>1541748859</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((64763,140885), (77997,157159))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o265\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o91\">\n<a:CreationDate>1522215792</a:CreationDate>\n<a:ModificationDate>1522398810</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((50500,153048), (62400,157047))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o266\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o97\">\n<a:CreationDate>1522216155</a:CreationDate>\n<a:ModificationDate>1522398808</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((46231,143710), (62886,147709))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o267\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o102\">\n<a:CreationDate>1522217089</a:CreationDate>\n<a:ModificationDate>1541490687</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((87975,146963), (103049,157789))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o268\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o105\">\n<a:CreationDate>1522217487</a:CreationDate>\n<a:ModificationDate>1522398601</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((43445,52323), (59769,72645))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o269\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o108\">\n<a:CreationDate>1522223818</a:CreationDate>\n<a:ModificationDate>1522398796</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((80491,120228), (94111,125776))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o270\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o111\">\n<a:CreationDate>1522224403</a:CreationDate>\n<a:ModificationDate>1522398795</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((80017,126895), (93637,132443))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o271\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o114\">\n<a:CreationDate>1522226008</a:CreationDate>\n<a:ModificationDate>1522398792</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((79209,133025), (92829,138573))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o272\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o117\">\n<a:CreationDate>1522226140</a:CreationDate>\n<a:ModificationDate>1522398801</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((81729,113356), (95349,118904))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o273\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o274\">\n<a:CreationDate>1522227700</a:CreationDate>\n<a:ModificationDate>1542179018</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((84563,94201), (96637,105523))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o275\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o210\">\n<a:CreationDate>1522300652</a:CreationDate>\n<a:ModificationDate>1542180972</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((42220,118524), (54294,124896))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o276\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o120\">\n<a:CreationDate>1522303116</a:CreationDate>\n<a:ModificationDate>1542180981</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((49967,98230), (63587,105428))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o277\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o126\">\n<a:CreationDate>1522303730</a:CreationDate>\n<a:ModificationDate>1538200596</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((42442,2610), (54516,12282))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o278\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o125\">\n<a:CreationDate>1522303928</a:CreationDate>\n<a:ModificationDate>1522398635</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((23424,7923), (35498,14295))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o279\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o129\">\n<a:CreationDate>1522379808</a:CreationDate>\n<a:ModificationDate>1522398605</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20174,37439), (37270,49587))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o280\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o132\">\n<a:CreationDate>1522387387</a:CreationDate>\n<a:ModificationDate>1522399143</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((38718,75272), (55734,79271))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o281\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o137\">\n<a:CreationDate>1522387906</a:CreationDate>\n<a:ModificationDate>1522398872</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20470,59617), (36794,74239))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o282\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o140\">\n<a:CreationDate>1522390106</a:CreationDate>\n<a:ModificationDate>1535437026</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20171,50021), (33405,59693))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o283\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o143\">\n<a:CreationDate>1522390511</a:CreationDate>\n<a:ModificationDate>1522398535</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((22234,23620), (33922,30818))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o284\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o149\">\n<a:CreationDate>1522390830</a:CreationDate>\n<a:ModificationDate>1522398616</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((62383,52106), (77935,56829))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o285\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o146\">\n<a:CreationDate>1522391304</a:CreationDate>\n<a:ModificationDate>1522398550</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((62162,60044), (74010,64043))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o286\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o152\">\n<a:CreationDate>1522396385</a:CreationDate>\n<a:ModificationDate>1522398621</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((64324,30809), (76786,38831))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o287\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o155\">\n<a:CreationDate>1522396809</a:CreationDate>\n<a:ModificationDate>1522398618</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((63785,41307), (76247,49329))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o288\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o289\">\n<a:CreationDate>1522397182</a:CreationDate>\n<a:ModificationDate>1522398632</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((60231,18019), (72693,23567))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o290\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o291\">\n<a:CreationDate>1522397511</a:CreationDate>\n<a:ModificationDate>1522398629</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((41533,16306), (57085,23504))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o292\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o293\">\n<a:CreationDate>1522398032</a:CreationDate>\n<a:ModificationDate>1535615091</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((22716,17129), (36336,22677))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o294\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o158\">\n<a:CreationDate>1522658325</a:CreationDate>\n<a:ModificationDate>1522724919</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-109337,102538), (-90457,132828))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o295\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o161\">\n<a:CreationDate>1522660695</a:CreationDate>\n<a:ModificationDate>1522723641</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-79617,123965), (-64573,137059))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o296\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o170\">\n<a:CreationDate>1522724973</a:CreationDate>\n<a:ModificationDate>1522725331</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-78198,113051), (-65736,119423))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o297\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o298\">\n<a:CreationDate>1522726076</a:CreationDate>\n<a:ModificationDate>1522732894</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-125389,125206), (-111769,131578))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o299\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o173\">\n<a:CreationDate>1522732897</a:CreationDate>\n<a:ModificationDate>1539745800</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-73824,83922), (-57114,108404))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o300\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o176\">\n<a:CreationDate>1522745162</a:CreationDate>\n<a:ModificationDate>1522745515</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-97736,85264), (-84502,94832))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o301\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o302\">\n<a:CreationDate>1522745726</a:CreationDate>\n<a:ModificationDate>1522745726</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-125978,117636), (-113904,123184))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o303\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o179\">\n<a:CreationDate>1533108597</a:CreationDate>\n<a:ModificationDate>1533116074</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-126796,94842), (-112242,111452))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o304\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o192\">\n<a:CreationDate>1538200619</a:CreationDate>\n<a:ModificationDate>1538202954</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((60084,1311), (72158,8509))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o305\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o186\">\n<a:CreationDate>1538201545</a:CreationDate>\n<a:ModificationDate>1580624566</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20158,-11944), (32232,-2272))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o306\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o189\">\n<a:CreationDate>1538202419</a:CreationDate>\n<a:ModificationDate>1580609625</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((58946,10814), (73218,15337))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o307\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o195\">\n<a:CreationDate>1538202537</a:CreationDate>\n<a:ModificationDate>1580624567</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((34457,-7542), (46601,-2903))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o308\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o200\">\n<a:CreationDate>1538202617</a:CreationDate>\n<a:ModificationDate>1580624563</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20655,1087), (32129,5810))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o309\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o213\">\n<a:CreationDate>1542177985</a:CreationDate>\n<a:ModificationDate>1542179426</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((57941,117502), (72983,124214))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o310\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o209\">\n<a:CreationDate>1542179013</a:CreationDate>\n<a:ModificationDate>1542180977</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((42003,107173), (68001,115335))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o311\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o218\">\n<a:CreationDate>1580624574</a:CreationDate>\n<a:ModificationDate>1580625137</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((76332,11881), (88406,21427))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o312\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o229\">\n<a:CreationDate>1580624625</a:CreationDate>\n<a:ModificationDate>1581324463</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((89944,9375), (102166,16974))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o313\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o221\">\n<a:CreationDate>1580624663</a:CreationDate>\n<a:ModificationDate>1580625381</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((77407,42), (87097,4784))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o314\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o226\">\n<a:CreationDate>1580624686</a:CreationDate>\n<a:ModificationDate>1580625458</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((92110,601), (102656,5590))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o315\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o232\">\n<a:CreationDate>1580869056</a:CreationDate>\n<a:ModificationDate>1580869177</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((107189,12279), (119263,17002))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o316\"/>\n</c:Object>\n</o:TableSymbol>\n</c:Symbols>\n</o:PhysicalDiagram>\n</c:PhysicalDiagrams>\n<c:DefaultDiagram>\n<o:PhysicalDiagram Ref=\"o4\"/>\n</c:DefaultDiagram>\n<c:Tables>\n<o:Table Id=\"o234\">\n<a:ObjectID>164FB8D9-0905-474E-87B0-2A812FEB067D</a:ObjectID>\n<a:Name>pms_product</a:Name>\n<a:Code>pms_product</a:Code>\n<a:CreationDate>1521705853</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179559</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品信息</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o317\">\n<a:ObjectID>8AF7359B-13B5-4473-A6E3-242871D32BD6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521705876</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o318\">\n<a:ObjectID>B6BFD1D9-71C4-49F0-A761-EB23FDF9EF89</a:ObjectID>\n<a:Name>brand_id</a:Name>\n<a:Code>brand_id</a:Code>\n<a:CreationDate>1521706257</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706277</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o319\">\n<a:ObjectID>EFA57D19-DB53-47A2-9E13-6F237D2B8765</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1521773101</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773123</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o320\">\n<a:ObjectID>9E4E0B0C-6DC6-4602-A1BB-BEF479CC25B4</a:ObjectID>\n<a:Name>feight_template_id</a:Name>\n<a:Code>feight_template_id</a:Code>\n<a:CreationDate>1521783613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783636</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o321\">\n<a:ObjectID>122FA791-93A8-4854-AB3B-87B68387B78D</a:ObjectID>\n<a:Name>product_attribute_category_id</a:Name>\n<a:Code>product_attribute_category_id</a:Code>\n<a:CreationDate>1522046100</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046125</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o322\">\n<a:ObjectID>C67A0956-CA1B-4ADF-878F-13B1538C122A</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1521705899</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771550</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o323\">\n<a:ObjectID>EC9E5B4D-23BF-425E-9781-90BD8BC6D802</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1521705899</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770319</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o324\">\n<a:ObjectID>BAAD6FF5-DD35-4EFA-8B78-E4DB32CCFC06</a:ObjectID>\n<a:Name>product_sn</a:Name>\n<a:Code>product_sn</a:Code>\n<a:CreationDate>1521706312</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771591</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>货号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o325\">\n<a:ObjectID>FC369A8B-64C8-4931-A1E2-80F902E4FE4A</a:ObjectID>\n<a:Name>delete_status</a:Name>\n<a:Code>delete_status</a:Code>\n<a:CreationDate>1521773185</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773247</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>删除状态：0-&gt;未删除；1-&gt;已删除</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o326\">\n<a:ObjectID>12E77491-5C20-442C-9E04-DE7192B496D3</a:ObjectID>\n<a:Name>publish_status</a:Name>\n<a:Code>publish_status</a:Code>\n<a:CreationDate>1521706416</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521708284</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>上架状态：0-&gt;下架；1-&gt;上架</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o327\">\n<a:ObjectID>7E4B57E7-DCCD-4D96-93E0-E3A2E0D9B2F8</a:ObjectID>\n<a:Name>new_status</a:Name>\n<a:Code>new_status</a:Code>\n<a:CreationDate>1521708193</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521708312</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>新品状态:0-&gt;不是新品；1-&gt;新品</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o328\">\n<a:ObjectID>C32DF9EC-A332-4DB2-A56B-74E0F6168FF1</a:ObjectID>\n<a:Name>recommand_status</a:Name>\n<a:Code>recommand_status</a:Code>\n<a:CreationDate>1521708193</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521708410</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>推荐状态；0-&gt;不推荐；1-&gt;推荐</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o329\">\n<a:ObjectID>47876735-91B4-42FC-A052-22640AC057D8</a:ObjectID>\n<a:Name>verify_status</a:Name>\n<a:Code>verify_status</a:Code>\n<a:CreationDate>1521710674</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710725</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>审核状态：0-&gt;未审核；1-&gt;审核通过</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o330\">\n<a:ObjectID>07A57EB8-410D-4E59-AD0C-8A1AD4DD3951</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1521708381</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521708544</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o331\">\n<a:ObjectID>93478201-C851-481D-B110-56414379F2A3</a:ObjectID>\n<a:Name>sale</a:Name>\n<a:Code>sale</a:Code>\n<a:CreationDate>1521710587</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>销量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o332\">\n<a:ObjectID>C5845093-F658-46C1-B381-6585F2337029</a:ObjectID>\n<a:Name>price</a:Name>\n<a:Code>price</a:Code>\n<a:CreationDate>1521706312</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706372</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o333\">\n<a:ObjectID>8A8C872F-23FC-42E2-BC8F-EA4374E0C4ED</a:ObjectID>\n<a:Name>promotion_price</a:Name>\n<a:Code>promotion_price</a:Code>\n<a:CreationDate>1521770729</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522720423</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>促销价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o334\">\n<a:ObjectID>DADE2195-8B3B-42F2-9C5A-847124C0C327</a:ObjectID>\n<a:Name>gift_growth</a:Name>\n<a:Code>gift_growth</a:Code>\n<a:CreationDate>1527561524</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535963779</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>赠送的成长值</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o335\">\n<a:ObjectID>9ECDB8CD-593F-431C-B580-756BC29F0E69</a:ObjectID>\n<a:Name>gift_point</a:Name>\n<a:Code>gift_point</a:Code>\n<a:CreationDate>1521771016</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535963789</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>赠送的积分</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o336\">\n<a:ObjectID>1C3E16DC-0AB6-489F-83D6-CB92058E8AD6</a:ObjectID>\n<a:Name>use_point_limit</a:Name>\n<a:Code>use_point_limit</a:Code>\n<a:CreationDate>1521771103</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771156</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限制使用的积分数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o337\">\n<a:ObjectID>8DBA22FF-9FEF-4E36-8B0D-D0712EB1AFDD</a:ObjectID>\n<a:Name>sub_title</a:Name>\n<a:Code>sub_title</a:Code>\n<a:CreationDate>1521773700</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773733</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>副标题</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o338\">\n<a:ObjectID>074C30CA-F802-4EA3-8B92-AE332D8FE237</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1521774517</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791536</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品描述</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o339\">\n<a:ObjectID>50335AAB-9D8F-4794-A706-A51E04285498</a:ObjectID>\n<a:Name>original_price</a:Name>\n<a:Code>original_price</a:Code>\n<a:CreationDate>1521775224</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521775254</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>市场价</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o340\">\n<a:ObjectID>F1511198-BFDC-4CA7-A79F-6BEA7863E4CA</a:ObjectID>\n<a:Name>stock</a:Name>\n<a:Code>stock</a:Code>\n<a:CreationDate>1521775417</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521775449</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>库存</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o341\">\n<a:ObjectID>9B83BF24-B43F-41AE-93AA-6E9723B41F3D</a:ObjectID>\n<a:Name>low_stock</a:Name>\n<a:Code>low_stock</a:Code>\n<a:CreationDate>1521775417</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521775458</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>库存预警值</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o342\">\n<a:ObjectID>29B50C2C-38C6-4080-83F7-309CC040B9D3</a:ObjectID>\n<a:Name>unit</a:Name>\n<a:Code>unit</a:Code>\n<a:CreationDate>1521775486</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521775515</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>单位</a:Comment>\n<a:DataType>varchar(16)</a:DataType>\n<a:Length>16</a:Length>\n</o:Column>\n<o:Column Id=\"o343\">\n<a:ObjectID>F07F26B4-DC76-4F4D-8FF7-6E299DAE613A</a:ObjectID>\n<a:Name>weight</a:Name>\n<a:Code>weight</a:Code>\n<a:CreationDate>1521775567</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521775649</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品重量，默认为克</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o344\">\n<a:ObjectID>730DF7D7-E307-4039-BFD4-04B4E145776D</a:ObjectID>\n<a:Name>preview_status</a:Name>\n<a:Code>preview_status</a:Code>\n<a:CreationDate>1521782409</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521782456</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否为预告商品：0-&gt;不是；1-&gt;是</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o345\">\n<a:ObjectID>BB566C0D-3C0A-42EB-AAFE-89E56EDB5AF3</a:ObjectID>\n<a:Name>service_ids</a:Name>\n<a:Code>service_ids</a:Code>\n<a:CreationDate>1521783875</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521784127</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>以逗号分割的产品服务：1-&gt;无忧退货；2-&gt;快速退款；3-&gt;免费包邮</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o346\">\n<a:ObjectID>25E62F7C-D9D8-4B61-8337-7A94F4A1F969</a:ObjectID>\n<a:Name>keywords</a:Name>\n<a:Code>keywords</a:Code>\n<a:CreationDate>1521784236</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521784353</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o347\">\n<a:ObjectID>730BAD96-E459-412D-B812-E9BDBDF6DC1B</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1521784236</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521784353</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o348\">\n<a:ObjectID>22BBCF62-4B72-4C69-BFE1-81F1378D4703</a:ObjectID>\n<a:Name>album_pics</a:Name>\n<a:Code>album_pics</a:Code>\n<a:CreationDate>1522046916</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046981</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>画册图片，连产品图片限制为5张，以逗号分割</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o349\">\n<a:ObjectID>27D69BFE-AEE5-4095-9688-3F11B0A3F5B3</a:ObjectID>\n<a:Name>detail_title</a:Name>\n<a:Code>detail_title</a:Code>\n<a:CreationDate>1521784236</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521784353</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o350\">\n<a:ObjectID>66C1D3B2-DFB9-472B-9B46-054F4A995EC8</a:ObjectID>\n<a:Name>detail_desc</a:Name>\n<a:Code>detail_desc</a:Code>\n<a:CreationDate>1521784236</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521784353</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o351\">\n<a:ObjectID>4407B70B-168F-489C-86FC-913130573035</a:ObjectID>\n<a:Name>detail_html</a:Name>\n<a:Code>detail_html</a:Code>\n<a:CreationDate>1522047002</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522047039</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品详情网页内容</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o352\">\n<a:ObjectID>A16D766A-2FAC-4806-B5B6-7BCE643BD125</a:ObjectID>\n<a:Name>detail_mobile_html</a:Name>\n<a:Code>detail_mobile_html</a:Code>\n<a:CreationDate>1522047022</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522047069</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>移动端网页详情</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o353\">\n<a:ObjectID>125B7984-46F6-4A6B-986E-637075A7B792</a:ObjectID>\n<a:Name>promotion_start_time</a:Name>\n<a:Code>promotion_start_time</a:Code>\n<a:CreationDate>1522721079</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721101</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>促销开始时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o354\">\n<a:ObjectID>CD7F32DC-B2C4-4F0B-86A6-C3EF8BBC11E4</a:ObjectID>\n<a:Name>promotion_end_time</a:Name>\n<a:Code>promotion_end_time</a:Code>\n<a:CreationDate>1522721096</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>促销结束时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o355\">\n<a:ObjectID>AF663519-4F0B-438D-9F86-A3B4494C91B5</a:ObjectID>\n<a:Name>promotion_per_limit</a:Name>\n<a:Code>promotion_per_limit</a:Code>\n<a:CreationDate>1522721333</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721377</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>活动限购数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o356\">\n<a:ObjectID>2870F419-7F16-4C2C-BEE8-69AD3C322429</a:ObjectID>\n<a:Name>promotion_type</a:Name>\n<a:Code>promotion_type</a:Code>\n<a:CreationDate>1522721953</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179623</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>促销类型：0-&gt;没有促销使用原价;1-&gt;使用促销价；2-&gt;使用会员价；3-&gt;使用阶梯价格；4-&gt;使用满减价格；5-&gt;限时购</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o357\">\n<a:ObjectID>BC8E43C1-F35D-4BA2-A622-D282035B08CF</a:ObjectID>\n<a:Name>product_category_name</a:Name>\n<a:Code>product_category_name</a:Code>\n<a:CreationDate>1524810975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524811010</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品分类名称</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o358\">\n<a:ObjectID>7B4B3817-5E34-476B-B9DF-20FC181A2FC4</a:ObjectID>\n<a:Name>brand_name</a:Name>\n<a:Code>brand_name</a:Code>\n<a:CreationDate>1524811003</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524811036</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>品牌名称</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o359\">\n<a:ObjectID>8FF04A0E-BF3D-4A1B-B05D-FAD79976F256</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521705876</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o317\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:Indexes>\n<o:Index Id=\"o360\">\n<a:ObjectID>C003EAE8-4D2B-4CD2-910D-617ED63DCFDE</a:ObjectID>\n<a:Name>index_name</a:Name>\n<a:Code>index_name</a:Code>\n<a:CreationDate>1521771497</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771550</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:IndexColumns>\n<o:IndexColumn Id=\"o361\">\n<a:ObjectID>F55EF3D5-E93C-4AAE-95BE-5E91AD084511</a:ObjectID>\n<a:CreationDate>1521771542</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771550</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Column>\n<o:Column Ref=\"o322\"/>\n</c:Column>\n</o:IndexColumn>\n</c:IndexColumns>\n</o:Index>\n<o:Index Id=\"o362\">\n<a:ObjectID>EC80C139-CCE0-49CF-AF77-52A1C35DC8AC</a:ObjectID>\n<a:Name>index_product_sn</a:Name>\n<a:Code>index_product_sn</a:Code>\n<a:CreationDate>1521771497</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521772268</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Unique>1</a:Unique>\n<c:IndexColumns>\n<o:IndexColumn Id=\"o363\">\n<a:ObjectID>D0E6B1E9-C1D3-40AD-BCA6-928C253C57CC</a:ObjectID>\n<a:CreationDate>1521771579</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771591</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Column>\n<o:Column Ref=\"o324\"/>\n</c:Column>\n</o:IndexColumn>\n</c:IndexColumns>\n</o:Index>\n</c:Indexes>\n<c:PrimaryKey>\n<o:Key Ref=\"o359\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o235\">\n<a:ObjectID>8DB91C27-0C0C-42C1-9C82-B99A752DFFDE</a:ObjectID>\n<a:Name>pms_brand</a:Name>\n<a:Code>pms_brand</a:Code>\n<a:CreationDate>1521706107</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116692</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>品牌表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o364\">\n<a:ObjectID>BA330DA5-20D1-42FB-A362-94D07D30A4B6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521706123</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706154</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o365\">\n<a:ObjectID>45F3DFE2-8F5D-4CDF-9FE5-4A6904BB07D4</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1521706148</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706194</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o366\">\n<a:ObjectID>CDFF668D-2DBA-4D99-8E76-B05114B8EAD7</a:ObjectID>\n<a:Name>first_letter</a:Name>\n<a:Code>first_letter</a:Code>\n<a:CreationDate>1522116447</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116473</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首字母</a:Comment>\n<a:DataType>varchar(8)</a:DataType>\n<a:Length>8</a:Length>\n</o:Column>\n<o:Column Id=\"o367\">\n<a:ObjectID>9E323340-1826-471A-93EE-92C45769B194</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522116482</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116540</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o368\">\n<a:ObjectID>97FF98F7-8A09-4C40-8D52-FC32F0021DF9</a:ObjectID>\n<a:Name>factory_status</a:Name>\n<a:Code>factory_status</a:Code>\n<a:CreationDate>1522116482</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116560</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否为品牌制造商：0-&gt;不是；1-&gt;是</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o369\">\n<a:ObjectID>5F86AE1D-14C6-421F-9065-6B3248678ECF</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116692</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o370\">\n<a:ObjectID>A8CA06B3-8F05-4D05-A9E0-B979D053C74A</a:ObjectID>\n<a:Name>product_count</a:Name>\n<a:Code>product_count</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116717</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o371\">\n<a:ObjectID>F6BC9D0C-3D20-4CB3-B906-0D660320FC88</a:ObjectID>\n<a:Name>product_comment_count</a:Name>\n<a:Code>product_comment_count</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116728</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品评论数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o372\">\n<a:ObjectID>28BF01C1-2534-46E1-8D03-3D1304399694</a:ObjectID>\n<a:Name>logo</a:Name>\n<a:Code>logo</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116744</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>品牌logo</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o373\">\n<a:ObjectID>955AC940-E5A2-4791-8DB3-46874F51898B</a:ObjectID>\n<a:Name>big_pic</a:Name>\n<a:Code>big_pic</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116821</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专区大图</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o374\">\n<a:ObjectID>822303EE-A57E-432B-AB93-E9C6B4B67358</a:ObjectID>\n<a:Name>brand_story</a:Name>\n<a:Code>brand_story</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116753</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>品牌故事</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o375\">\n<a:ObjectID>12C8D1EF-1F7E-46ED-AD23-4F0BD57F243D</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521706123</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706148</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o364\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o375\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o236\">\n<a:ObjectID>A9A5B46B-D1A3-4619-86D4-AD1A3FF949B1</a:ObjectID>\n<a:Name>pms_sku_stock</a:Name>\n<a:Code>pms_sku_stock</a:Code>\n<a:CreationDate>1521709482</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1582621117</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>sku的库存</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o376\">\n<a:ObjectID>F8A87B5F-1B3E-416A-9AA6-E6330490C79F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521709484</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115846</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o377\">\n<a:ObjectID>0A9D0B97-8FCA-4D49-9649-6D3A6398F71D</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521710488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710505</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o378\">\n<a:ObjectID>300133D5-246C-492C-8106-E0464641A1AD</a:ObjectID>\n<a:Name>sku_code</a:Name>\n<a:Code>sku_code</a:Code>\n<a:CreationDate>1521709695</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522214782</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>sku编码</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o379\">\n<a:ObjectID>2C098191-D831-42F7-981A-BB5FC58097A3</a:ObjectID>\n<a:Name>price</a:Name>\n<a:Code>price</a:Code>\n<a:CreationDate>1521709829</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521709926</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o380\">\n<a:ObjectID>F0D06968-A5E5-4A38-82DA-909C1AF9500C</a:ObjectID>\n<a:Name>stock</a:Name>\n<a:Code>stock</a:Code>\n<a:CreationDate>1521709829</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535619079</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>库存</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o381\">\n<a:ObjectID>627512CB-E621-46A5-B077-12BB80006181</a:ObjectID>\n<a:Name>low_stock</a:Name>\n<a:Code>low_stock</a:Code>\n<a:CreationDate>1521709829</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521709939</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>预警库存</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o382\">\n<a:ObjectID>2385F4C5-9983-48B4-9E03-710937E056A4</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1521710423</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770332</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>展示图片</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o383\">\n<a:ObjectID>C9AA0DC8-AEE6-4401-AE9A-65B6FD89A608</a:ObjectID>\n<a:Name>sale</a:Name>\n<a:Code>sale</a:Code>\n<a:CreationDate>1521710565</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710584</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>销量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o384\">\n<a:ObjectID>F8B829D9-2390-44F9-AE79-B698E94E2F5D</a:ObjectID>\n<a:Name>promotion_price</a:Name>\n<a:Code>promotion_price</a:Code>\n<a:CreationDate>1534927833</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1534927874</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>单品促销价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o385\">\n<a:ObjectID>385D5E74-8D2D-4429-8BF1-1DB7C0ED0E8D</a:ObjectID>\n<a:Name>lock_stock</a:Name>\n<a:Code>lock_stock</a:Code>\n<a:CreationDate>1534927865</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535619073</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>锁定库存</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o386\">\n<a:ObjectID>30F35E66-3167-4F75-B0DC-48B30CEC1C4F</a:ObjectID>\n<a:Name>sp_data</a:Name>\n<a:Code>sp_data</a:Code>\n<a:CreationDate>1582277384</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1582277412</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品销售属性，json格式</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o387\">\n<a:ObjectID>BF22FDBF-9CF7-4FF4-A579-4C0AAC38A457</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521709484</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115846</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o376\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o387\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o237\">\n<a:ObjectID>B9FC590F-46F6-4235-8672-FF13B2E50A77</a:ObjectID>\n<a:Name>pms_product_vertify_record</a:Name>\n<a:Code>pms_product_vertify_record</a:Code>\n<a:CreationDate>1521710820</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770349</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品审核记录</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o388\">\n<a:ObjectID>530FCADE-4166-42A4-8453-5D874EEC4522</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770174</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o389\">\n<a:ObjectID>7493F171-CA73-4150-A6EA-AB0D8FF46D75</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521770349</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o390\">\n<a:ObjectID>9786F28F-F757-486B-93A9-7C5A5E46D950</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521711025</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o391\">\n<a:ObjectID>7E1BFDC6-E587-45E4-AE7C-8C3466279D4C</a:ObjectID>\n<a:Name>vertify_man</a:Name>\n<a:Code>vertify_man</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521711032</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>审核人</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o392\">\n<a:ObjectID>06C38A5C-1977-42C3-A614-B2DF0654BB47</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524816533</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>审核后的状态：0-&gt;未通过；2-&gt;已通过</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o393\">\n<a:ObjectID>8C61E1D1-7809-4E91-8638-43739274A2CB</a:ObjectID>\n<a:Name>detail</a:Name>\n<a:Code>detail</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770161</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>反馈详情</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o394\">\n<a:ObjectID>5AA18CE6-B6B1-4D42-840C-F0ED5A7EE6AC</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521711025</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o388\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o394\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o238\">\n<a:ObjectID>9063AF6E-4B68-4106-803C-747646C77EB0</a:ObjectID>\n<a:Name>pms_product_operate_log</a:Name>\n<a:Code>pms_product_operate_log</a:Code>\n<a:CreationDate>1521770649</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o395\">\n<a:ObjectID>715605E0-FA0B-4C2F-87CA-35849F4999B3</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521770770</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770806</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o396\">\n<a:ObjectID>3DB748F5-8378-4A65-9103-BC4AF0D6CD51</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521771362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771375</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o397\">\n<a:ObjectID>ED9DDCD5-C1E3-4A0A-A2BF-6AE1FE20479B</a:ObjectID>\n<a:Name>price_old</a:Name>\n<a:Code>price_old</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o398\">\n<a:ObjectID>38DD8227-7B0A-4661-A5B4-48AE1CC49CB0</a:ObjectID>\n<a:Name>price_new</a:Name>\n<a:Code>price_new</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o399\">\n<a:ObjectID>25E58A65-F4B3-4A38-BF9F-B4951F1D2A52</a:ObjectID>\n<a:Name>sale_price_old</a:Name>\n<a:Code>sale_price_old</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o400\">\n<a:ObjectID>A2768BA1-44DB-4DA5-8E18-42AE3A6181FD</a:ObjectID>\n<a:Name>sale_price_new</a:Name>\n<a:Code>sale_price_new</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o401\">\n<a:ObjectID>ACC53AA1-DE06-4626-9248-159BA1AEF3C0</a:ObjectID>\n<a:Name>gift_point_old</a:Name>\n<a:Code>gift_point_old</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771014</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>赠送的积分</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o402\">\n<a:ObjectID>AE80A7D3-2CF1-4F55-87C8-48BF66B3E0F5</a:ObjectID>\n<a:Name>gift_point_new</a:Name>\n<a:Code>gift_point_new</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o403\">\n<a:ObjectID>9D16C330-E114-4778-B552-DDF06AF3BC55</a:ObjectID>\n<a:Name>use_point_limit_old</a:Name>\n<a:Code>use_point_limit_old</a:Code>\n<a:CreationDate>1521771164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771200</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o404\">\n<a:ObjectID>F4FFECE7-3152-46A5-83C6-60D352457335</a:ObjectID>\n<a:Name>use_point_limit_new</a:Name>\n<a:Code>use_point_limit_new</a:Code>\n<a:CreationDate>1521771164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771200</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o405\">\n<a:ObjectID>74162271-05EF-4D60-A189-252B04234604</a:ObjectID>\n<a:Name>operate_man</a:Name>\n<a:Code>operate_man</a:Code>\n<a:CreationDate>1521771246</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771275</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作人</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o406\">\n<a:ObjectID>966002F8-6310-4146-A9EA-4F185033236B</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1521771269</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771335</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o407\">\n<a:ObjectID>74CA880E-049D-422E-9C8D-AD3A1E73DCE2</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521770770</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770804</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o395\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o407\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o239\">\n<a:ObjectID>0D760BB3-CA67-4F64-B6A5-2D093F7657D6</a:ObjectID>\n<a:Name>pms_product_category</a:Name>\n<a:Code>pms_product_category</a:Code>\n<a:CreationDate>1521773028</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115630</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品分类</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o408\">\n<a:ObjectID>7235E328-6BF3-4CFD-B1C6-A02A6F6718A9</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521773048</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773067</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o409\">\n<a:ObjectID>0E642091-F38B-4D5F-937D-DA9C4151EFE2</a:ObjectID>\n<a:Name>parent_id</a:Name>\n<a:Code>parent_id</a:Code>\n<a:CreationDate>1522114406</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522114468</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>上机分类的编号：0表示一级分类</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o410\">\n<a:ObjectID>BDD611F1-0142-4419-B183-4F15282363D5</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1521773064</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773092</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o411\">\n<a:ObjectID>1A0124D2-0307-433A-ADEA-62C14A6003F0</a:ObjectID>\n<a:Name>level</a:Name>\n<a:Code>level</a:Code>\n<a:CreationDate>1522114959</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116072</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类级别：0-&gt;1级；1-&gt;2级</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o412\">\n<a:ObjectID>E50CCB02-2506-46DA-A95C-950DE16DF50F</a:ObjectID>\n<a:Name>product_count</a:Name>\n<a:Code>product_count</a:Code>\n<a:CreationDate>1522115030</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115103</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o413\">\n<a:ObjectID>054029CE-B46E-4C2D-BFE1-E460D1B12275</a:ObjectID>\n<a:Name>product_unit</a:Name>\n<a:Code>product_unit</a:Code>\n<a:CreationDate>1522115030</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115103</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o414\">\n<a:ObjectID>8FF814D8-75E9-43DC-8CA8-890BECAEC537</a:ObjectID>\n<a:Name>nav_status</a:Name>\n<a:Code>nav_status</a:Code>\n<a:CreationDate>1522115030</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115270</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否显示在导航栏：0-&gt;不显示；1-&gt;显示</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o415\">\n<a:ObjectID>D38D4B8B-1852-4350-93ED-1803A7BEA6E7</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522115145</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115208</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>显示状态：0-&gt;不显示；1-&gt;显示</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o416\">\n<a:ObjectID>B47FED84-81B7-4E39-B763-8EE996F2424B</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522115178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115228</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o417\">\n<a:ObjectID>DB87CC69-B178-4FCD-B827-2A6C79ED2FE9</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522115323</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115342</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>图标</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o418\">\n<a:ObjectID>93F08150-5658-4346-B8FC-7F52F889824A</a:ObjectID>\n<a:Name>keywords</a:Name>\n<a:Code>keywords</a:Code>\n<a:CreationDate>1522115588</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115630</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o419\">\n<a:ObjectID>4B01893A-E307-49EB-B5D4-98B55B0A48D1</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1522115588</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115634</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>描述</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o420\">\n<a:ObjectID>64090BE2-8BEC-4616-8DDE-E24C94B52E9D</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521773048</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773064</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o408\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o420\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o240\">\n<a:ObjectID>4C5F5ABA-B6AB-4689-9F04-B487E920C073</a:ObjectID>\n<a:Name>pms_feight_template</a:Name>\n<a:Code>pms_feight_template</a:Code>\n<a:CreationDate>1521782818</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783539</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>运费模版</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o421\">\n<a:ObjectID>50FF090A-11EC-4F73-B237-ACA1D6347465</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521783117</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783139</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o422\">\n<a:ObjectID>E3A40203-E74E-4FC9-8A61-0169E8FD93BF</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1521783135</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783238</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o423\">\n<a:ObjectID>8BE728B7-5B75-4D76-A896-09F73A87B08A</a:ObjectID>\n<a:Name>charge_type</a:Name>\n<a:Code>charge_type</a:Code>\n<a:CreationDate>1521783135</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783309</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>计费类型:0-&gt;按重量；1-&gt;按件数</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o424\">\n<a:ObjectID>63F6CF39-B317-4872-869A-4AA80BCB1FDC</a:ObjectID>\n<a:Name>first_weight</a:Name>\n<a:Code>first_weight</a:Code>\n<a:CreationDate>1521783270</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783558</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首重kg</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o425\">\n<a:ObjectID>DC192E82-45CE-4623-AD18-DA14ECB31F39</a:ObjectID>\n<a:Name>first_fee</a:Name>\n<a:Code>first_fee</a:Code>\n<a:CreationDate>1521783270</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783579</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首费（元）</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o426\">\n<a:ObjectID>7D5538AC-2415-4EFA-8A9B-A46204FF35CB</a:ObjectID>\n<a:Name>continue_weight</a:Name>\n<a:Code>continue_weight</a:Code>\n<a:CreationDate>1521783270</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783539</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o427\">\n<a:ObjectID>4EC457E3-A82A-4B3B-86B7-D4E0C200780F</a:ObjectID>\n<a:Name>continme_fee</a:Name>\n<a:Code>continme_fee</a:Code>\n<a:CreationDate>1521783270</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783539</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o428\">\n<a:ObjectID>FE7A715E-1C3C-4E28-BBB2-1B34605B2EAF</a:ObjectID>\n<a:Name>dest</a:Name>\n<a:Code>dest</a:Code>\n<a:CreationDate>1521783270</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783601</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>目的地（省、市）</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o429\">\n<a:ObjectID>3F3D7980-1F46-4F3E-BDFD-AF0F8EEE2FA6</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521783117</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o421\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o429\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o241\">\n<a:ObjectID>22CB8FD3-3DDD-4FF9-AE76-E13CF6CD6875</a:ObjectID>\n<a:Name>pms_member_price</a:Name>\n<a:Code>pms_member_price</a:Code>\n<a:CreationDate>1521791032</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1528184156</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品会员价格表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o430\">\n<a:ObjectID>30FC5C31-983F-4219-9339-C8B5BABB7234</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521791069</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791086</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o431\">\n<a:ObjectID>9BC9FEC6-7030-4F2B-9C10-86F37EB776FD</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521791466</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791479</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o432\">\n<a:ObjectID>49BA6972-E766-4A84-8B8B-9C4DD271CE61</a:ObjectID>\n<a:Name>member_level_id</a:Name>\n<a:Code>member_level_id</a:Code>\n<a:CreationDate>1522721755</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721767</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o433\">\n<a:ObjectID>941A6699-6C9F-4E4B-9FAA-B6E6F69906EC</a:ObjectID>\n<a:Name>member_price</a:Name>\n<a:Code>member_price</a:Code>\n<a:CreationDate>1522721615</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721665</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o434\">\n<a:ObjectID>0B4E79EF-7E2C-41DE-B72B-C9BC578A2F72</a:ObjectID>\n<a:Name>member_level_name</a:Name>\n<a:Code>member_level_name</a:Code>\n<a:CreationDate>1528184129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1528184156</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o435\">\n<a:ObjectID>FE782243-6FFE-4CEE-BA53-9AFE8D357748</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521791069</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791083</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o430\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o435\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o242\">\n<a:ObjectID>DDA47447-C998-4D66-9FD0-1A64A30E043C</a:ObjectID>\n<a:Name>pms_product_ladder</a:Name>\n<a:Code>pms_product_ladder</a:Code>\n<a:CreationDate>1521791865</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721483</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品阶梯价格表(只针对同商品)</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o436\">\n<a:ObjectID>C7FD3278-BB15-4A88-A424-42163F101417</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521792127</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792152</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o437\">\n<a:ObjectID>3FDC1BDA-8A46-4848-9D75-3856408246F6</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521792428</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792442</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o438\">\n<a:ObjectID>8A95CD6B-64CA-48FE-BF0F-46E24B04A977</a:ObjectID>\n<a:Name>count</a:Name>\n<a:Code>count</a:Code>\n<a:CreationDate>1521792148</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792177</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>满足的商品数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o439\">\n<a:ObjectID>F9D8DAEF-F28F-424D-9532-FB464AD4E654</a:ObjectID>\n<a:Name>discount</a:Name>\n<a:Code>discount</a:Code>\n<a:CreationDate>1521792164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792218</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>折扣</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o440\">\n<a:ObjectID>7693845E-7B98-4C2E-9406-863D4F8E612A</a:ObjectID>\n<a:Name>price</a:Name>\n<a:Code>price</a:Code>\n<a:CreationDate>1521792219</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>折后价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o441\">\n<a:ObjectID>4C0C9B14-EE1D-4112-A02D-85975F91C2F9</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521792127</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792148</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o436\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o441\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o243\">\n<a:ObjectID>9C7F6D83-696D-4AC2-B63C-41A457276432</a:ObjectID>\n<a:Name>pms_product_full_reduction</a:Name>\n<a:Code>pms_product_full_reduction</a:Code>\n<a:CreationDate>1521791901</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721499</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品满减表(只针对同商品)</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o442\">\n<a:ObjectID>1CB2D116-96CD-4A26-B9D4-B7AA00AD92E7</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521792488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524721741</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o443\">\n<a:ObjectID>AF625FED-C1BF-47A8-94CE-EAB80C7CE452</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521792909</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792920</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o444\">\n<a:ObjectID>56253152-8B4B-4F5D-ABB7-DFAEBED5C6EA</a:ObjectID>\n<a:Name>full_price</a:Name>\n<a:Code>full_price</a:Code>\n<a:CreationDate>1521792498</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792848</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o445\">\n<a:ObjectID>A23F3BDA-C442-413A-8F7F-EBBAFF4EB634</a:ObjectID>\n<a:Name>reduce_price</a:Name>\n<a:Code>reduce_price</a:Code>\n<a:CreationDate>1521792498</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792848</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o446\">\n<a:ObjectID>42DEDB72-EACE-44AD-8377-601D1EF19A71</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521792488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792498</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o442\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o446\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o244\">\n<a:ObjectID>8CA12D96-D48C-4542-A89B-718C043C331E</a:ObjectID>\n<a:Name>pms_product_attribute_category</a:Name>\n<a:Code>pms_product_attribute_category</a:Code>\n<a:CreationDate>1522044163</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044533</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品属性分类表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o447\">\n<a:ObjectID>C0EDF8D7-B021-4E78-AB1C-3372732BAA8A</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522044196</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044533</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o448\">\n<a:ObjectID>DF80D9F1-71A8-4898-9D4B-CDEFFFD1C51F</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522044211</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044389</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o449\">\n<a:ObjectID>34182414-4199-49E6-B221-AF015FAD34FB</a:ObjectID>\n<a:Name>attribute_count</a:Name>\n<a:Code>attribute_count</a:Code>\n<a:CreationDate>1522044211</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044418</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>属性数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o450\">\n<a:ObjectID>728FAF40-18B5-42AD-9006-390BB12DF6D5</a:ObjectID>\n<a:Name>param_count</a:Name>\n<a:Code>param_count</a:Code>\n<a:CreationDate>1522044211</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044436</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>参数数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o451\">\n<a:ObjectID>C340AD67-5366-4172-A5C1-715381DA4E4C</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522044527</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044533</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o447\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o451\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o245\">\n<a:ObjectID>1959D6C2-18BC-4144-85F7-C5CD3C830DB4</a:ObjectID>\n<a:Name>pms_product_attribute</a:Name>\n<a:Code>pms_product_attribute</a:Code>\n<a:CreationDate>1522044465</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045805</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品属性参数表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o452\">\n<a:ObjectID>9736DD68-0C91-45FD-98D9-098B45FAA881</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522044502</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044525</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o453\">\n<a:ObjectID>46A4A5DC-A87A-4AB1-A41A-E70B98AA3C7F</a:ObjectID>\n<a:Name>product_attribute_category_id</a:Name>\n<a:Code>product_attribute_category_id</a:Code>\n<a:CreationDate>1522045168</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045192</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o454\">\n<a:ObjectID>A23C122D-1090-414B-A50F-64053E0CA705</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522044544</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044628</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o455\">\n<a:ObjectID>0475CD9F-ECC5-435C-812F-16D6D2FDA0F5</a:ObjectID>\n<a:Name>select_type</a:Name>\n<a:Code>select_type</a:Code>\n<a:CreationDate>1522044544</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1551343683</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>属性选择类型：0-&gt;唯一；1-&gt;单选；2-&gt;多选；对应属性和参数意义不同；</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o456\">\n<a:ObjectID>A656FC1F-FC28-4012-8876-5FE082ADCFC1</a:ObjectID>\n<a:Name>input_type</a:Name>\n<a:Code>input_type</a:Code>\n<a:CreationDate>1522044628</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044761</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>属性录入方式：0-&gt;手工录入；1-&gt;从列表中选取</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o457\">\n<a:ObjectID>673D1CDE-138E-45B6-9ADE-9C9FBAF1FA3C</a:ObjectID>\n<a:Name>input_list</a:Name>\n<a:Code>input_list</a:Code>\n<a:CreationDate>1522044737</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044853</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>可选值列表，以逗号隔开</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o458\">\n<a:ObjectID>2710E2E2-FD53-4302-B88E-62F2B708E736</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522044833</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045635</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序字段：最高的可以单独上传图片</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o459\">\n<a:ObjectID>6A4CA846-5A79-4A70-9C1B-69D819C67C91</a:ObjectID>\n<a:Name>filter_type</a:Name>\n<a:Code>filter_type</a:Code>\n<a:CreationDate>1522044833</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045152</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类筛选样式：1-&gt;普通；1-&gt;颜色</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o460\">\n<a:ObjectID>2BE254B3-3CD8-4794-929E-3FBEB258936B</a:ObjectID>\n<a:Name>search_type</a:Name>\n<a:Code>search_type</a:Code>\n<a:CreationDate>1522045233</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045285</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>检索类型；0-&gt;不需要进行检索；1-&gt;关键字检索；2-&gt;范围检索</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o461\">\n<a:ObjectID>5C1F000F-8181-4CF0-B2C6-422AC7CD8EF3</a:ObjectID>\n<a:Name>related_status</a:Name>\n<a:Code>related_status</a:Code>\n<a:CreationDate>1522045363</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045485</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>相同属性产品是否关联；0-&gt;不关联；1-&gt;关联</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o462\">\n<a:ObjectID>3660F2D1-79BF-4600-B965-259108FA8784</a:ObjectID>\n<a:Name>hand_add_status</a:Name>\n<a:Code>hand_add_status</a:Code>\n<a:CreationDate>1522045453</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045556</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否支持手动新增；0-&gt;不支持；1-&gt;支持</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o463\">\n<a:ObjectID>1EFD6D7F-29E6-4B52-A192-EDDEFFF5EB54</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522045781</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045820</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>属性的类型；0-&gt;规格；1-&gt;参数</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o464\">\n<a:ObjectID>D37FC115-4FED-46C1-9D29-34FE0FCB103F</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522044517</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044525</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o452\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o464\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o246\">\n<a:ObjectID>70D24471-1832-42AF-BF28-DF5C4D67427D</a:ObjectID>\n<a:Name>pms_product_attribute_value</a:Name>\n<a:Code>pms_product_attribute_value</a:Code>\n<a:CreationDate>1522046351</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046456</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>存储产品参数信息的表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o465\">\n<a:ObjectID>98949F13-7401-4B46-8C46-AD0EDB279FA6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522046392</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046409</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o466\">\n<a:ObjectID>A73883DF-2D36-497D-8D90-9EB0F5CF3C5B</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522046451</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524710981</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o467\">\n<a:ObjectID>92ACF804-9722-47C3-826B-A2611338F2F6</a:ObjectID>\n<a:Name>product_attribute_id</a:Name>\n<a:Code>product_attribute_id</a:Code>\n<a:CreationDate>1522046456</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524710981</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o468\">\n<a:ObjectID>E83F864A-D6C1-48EA-B9A3-7C9AB2ED55A1</a:ObjectID>\n<a:Name>value</a:Name>\n<a:Code>value</a:Code>\n<a:CreationDate>1522046406</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1531100886</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>手动添加规格或参数的值，参数单值，规格有多个时以逗号隔开</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o469\">\n<a:ObjectID>66A6E0B8-A090-45F7-ACD4-8815D7DF6B6F</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522046392</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046406</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o465\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o469\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o247\">\n<a:ObjectID>73D97C96-1D05-46E2-89CA-985688FD385B</a:ObjectID>\n<a:Name>cms_topic</a:Name>\n<a:Code>cms_topic</a:Code>\n<a:CreationDate>1522050428</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141317</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>话题表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o470\">\n<a:ObjectID>E5586D56-C86E-40C0-8433-7EAAB1A7A79F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522050454</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522050470</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o471\">\n<a:ObjectID>8DBF595F-4E5A-42F6-A301-D87380DA3FE6</a:ObjectID>\n<a:Name>category_id</a:Name>\n<a:Code>category_id</a:Code>\n<a:CreationDate>1522141317</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141327</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o472\">\n<a:ObjectID>8CDFD790-F0B3-436A-8295-5F442B1A3E07</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522050467</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522050484</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o473\">\n<a:ObjectID>CD7B71CD-51EB-49B3-93FE-59F59BF51EF2</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522140989</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o474\">\n<a:ObjectID>351D963E-FCB6-4A62-A03E-79FC4362CAFD</a:ObjectID>\n<a:Name>start_time</a:Name>\n<a:Code>start_time</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522140989</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o475\">\n<a:ObjectID>BC71816F-CC52-4DD7-869B-5EF23E07824D</a:ObjectID>\n<a:Name>end_time</a:Name>\n<a:Code>end_time</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522140989</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o476\">\n<a:ObjectID>082A202D-0BB3-41C1-9474-62FE6C172569</a:ObjectID>\n<a:Name>attend_count</a:Name>\n<a:Code>attend_count</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141052</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>参与人数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o477\">\n<a:ObjectID>6A84107F-35BF-4BB0-B867-39198A321E01</a:ObjectID>\n<a:Name>attention_count</a:Name>\n<a:Code>attention_count</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141063</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>关注人数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o478\">\n<a:ObjectID>5A9F5276-5222-4760-BA85-CA98154759F9</a:ObjectID>\n<a:Name>read_count</a:Name>\n<a:Code>read_count</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522140989</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o479\">\n<a:ObjectID>1931F93B-6D40-4FD7-9C4F-1C67815C3459</a:ObjectID>\n<a:Name>award_name</a:Name>\n<a:Code>award_name</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522140997</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>奖品名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o480\">\n<a:ObjectID>6440D5DB-2981-4203-9519-A4CB896AB498</a:ObjectID>\n<a:Name>attend_type</a:Name>\n<a:Code>attend_type</a:Code>\n<a:CreationDate>1522140989</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141043</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>参与方式</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o481\">\n<a:ObjectID>C88BACB1-A103-4EC5-8800-F500CE872650</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522141034</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141083</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>话题内容</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o482\">\n<a:ObjectID>9469C4F2-63EF-48D7-85F7-749CBD56D5A9</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522050454</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522050467</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o470\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o482\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o248\">\n<a:ObjectID>143551D6-36A8-4263-B499-17416D5B4E78</a:ObjectID>\n<a:Name>cms_prefrence_area</a:Name>\n<a:Code>cms_prefrence_area</a:Code>\n<a:CreationDate>1522112533</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139400</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优选专区</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o483\">\n<a:ObjectID>601C99AA-881D-4188-A507-8EBC584792A1</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522112534</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112571</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o484\">\n<a:ObjectID>FCDEF8AE-3C3E-4D80-8718-68B2BFDAAAAB</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522112567</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112584</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o485\">\n<a:ObjectID>6F54EFCF-2121-40E1-A012-0780AA817B9E</a:ObjectID>\n<a:Name>sub_title</a:Name>\n<a:Code>sub_title</a:Code>\n<a:CreationDate>1522139220</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o486\">\n<a:ObjectID>31AB8614-FFF2-430B-A3B9-8592C41EC3B4</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1522139329</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139365</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>展示图片</a:Comment>\n<a:DataType>varbinary(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o487\">\n<a:ObjectID>27D98403-DF29-48CA-A724-8E2B6FFEFB01</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522139372</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139400</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o488\">\n<a:ObjectID>3BD7C5D5-B647-4499-ABA6-AE5E08D069CE</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139372</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139400</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o489\">\n<a:ObjectID>D4E19AA8-AFAB-4791-A6C7-15DBDF850779</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522112534</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112567</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o483\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o489\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o249\">\n<a:ObjectID>A13BD5C1-4EB4-4269-978C-7BC04C9CDC6E</a:ObjectID>\n<a:Name>cms_prefrence_area_product_relation</a:Name>\n<a:Code>cms_prefrence_area_product_relation</a:Code>\n<a:CreationDate>1522112617</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215871</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优选专区和产品关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o490\">\n<a:ObjectID>F54F6DBB-9A10-4191-9426-087F11A04093</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522112618</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112684</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o491\">\n<a:ObjectID>AD6438FF-9782-40FA-82DB-D99F8C15BC39</a:ObjectID>\n<a:Name>prefrence_area_id</a:Name>\n<a:Code>prefrence_area_id</a:Code>\n<a:CreationDate>1522112691</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139303</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o492\">\n<a:ObjectID>A5DE8A1D-EF5C-4ADB-BAEC-1DC5B833C89D</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522112694</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112722</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o493\">\n<a:ObjectID>6248D431-92E7-4999-9E2E-A8492D60909B</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522112618</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112681</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o490\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o493\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o250\">\n<a:ObjectID>7124790D-D56B-43AC-9EF3-1CFC5BF12114</a:ObjectID>\n<a:Name>pms_product_category_attribute_relation</a:Name>\n<a:Code>pms_product_category_attribute_relation</a:Code>\n<a:CreationDate>1522115893</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215883</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品的分类和属性的关系表，用于设置分类筛选条件（只支持一级分类）</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o494\">\n<a:ObjectID>9185CBA8-9501-4F1D-869D-7CFE0D62A0E5</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522115894</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115954</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o495\">\n<a:ObjectID>2A249FE2-167D-4966-B80C-A1F2029335D5</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1522115961</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115975</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o496\">\n<a:ObjectID>CA02967F-18F1-4803-AE3A-A4C6F3085047</a:ObjectID>\n<a:Name>product_attribute_id</a:Name>\n<a:Code>product_attribute_id</a:Code>\n<a:CreationDate>1522115983</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115997</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o497\">\n<a:ObjectID>7664FAB4-1504-4257-846E-556F70D39E63</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522115894</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o494\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o497\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o251\">\n<a:ObjectID>56CDA36B-EA58-4AE1-B858-A5F9A2F29A8E</a:ObjectID>\n<a:Name>pms_comment</a:Name>\n<a:Code>pms_comment</a:Code>\n<a:CreationDate>1522118136</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119143</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品评价表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o498\">\n<a:ObjectID>0B63A5AB-69A1-49D3-B274-537BE5F79603</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522118175</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118191</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o499\">\n<a:ObjectID>AAEF7DDC-9B2F-46B6-A8B1-C6F87BF129B3</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522118676</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118692</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o500\">\n<a:ObjectID>E861609A-6A46-4405-ABD0-EE63DF7C18AB</a:ObjectID>\n<a:Name>member_nick_name</a:Name>\n<a:Code>member_nick_name</a:Code>\n<a:CreationDate>1522118254</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o501\">\n<a:ObjectID>93F98F3F-AE44-425D-8437-15EFCA931DEE</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522118254</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o502\">\n<a:ObjectID>3B937D50-F65E-4FCC-91E6-987280555E0F</a:ObjectID>\n<a:Name>star</a:Name>\n<a:Code>star</a:Code>\n<a:CreationDate>1522118296</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118388</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评价星数：0-&gt;5</a:Comment>\n<a:DataType>int(3)</a:DataType>\n<a:Length>3</a:Length>\n</o:Column>\n<o:Column Id=\"o503\">\n<a:ObjectID>FF2F85AD-9EEF-4482-8425-012B16214ACC</a:ObjectID>\n<a:Name>member_ip</a:Name>\n<a:Code>member_ip</a:Code>\n<a:CreationDate>1522118356</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118421</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评价的ip</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o504\">\n<a:ObjectID>928C78C9-46A9-4372-89AE-240801429406</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522118413</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118537</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o505\">\n<a:ObjectID>60548BBB-24E8-420F-A512-5446E5A2E760</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522118413</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118537</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o506\">\n<a:ObjectID>9F48621B-2FCF-45E5-9143-1BE198FF29B5</a:ObjectID>\n<a:Name>product_attribute</a:Name>\n<a:Code>product_attribute</a:Code>\n<a:CreationDate>1522118413</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118546</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>购买时的商品属性</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o507\">\n<a:ObjectID>DCCC00DA-5050-4C5E-B95B-2FCC03D9FD16</a:ObjectID>\n<a:Name>collect_couont</a:Name>\n<a:Code>collect_couont</a:Code>\n<a:CreationDate>1522118537</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118636</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o508\">\n<a:ObjectID>0C6D9887-AA40-4B94-93DC-624FB5BDE0BA</a:ObjectID>\n<a:Name>read_count</a:Name>\n<a:Code>read_count</a:Code>\n<a:CreationDate>1522118537</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118636</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o509\">\n<a:ObjectID>7B205E86-CD8C-4B49-8E5C-34A3FB5FB46B</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522118537</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118636</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o510\">\n<a:ObjectID>BE5DD03F-680E-4FF4-BC30-A3249F0F3240</a:ObjectID>\n<a:Name>pics</a:Name>\n<a:Code>pics</a:Code>\n<a:CreationDate>1522118537</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118653</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>上传图片地址，以逗号隔开</a:Comment>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o511\">\n<a:ObjectID>27BD4283-26AA-4F27-9E13-963F0588E6E2</a:ObjectID>\n<a:Name>member_icon</a:Name>\n<a:Code>member_icon</a:Code>\n<a:CreationDate>1522118919</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118952</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评论用户头像</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o512\">\n<a:ObjectID>1C85F6E9-ECED-473D-95C8-3509F812EBAE</a:ObjectID>\n<a:Name>replay_count</a:Name>\n<a:Code>replay_count</a:Code>\n<a:CreationDate>1522119113</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119127</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o513\">\n<a:ObjectID>FB3F2C83-222B-4B40-9A1A-B8E7586FC5D1</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522118175</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118187</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o498\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o513\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o252\">\n<a:ObjectID>9E632F70-2FF6-43F1-8035-39044AC4B722</a:ObjectID>\n<a:Name>pms_comment_replay</a:Name>\n<a:Code>pms_comment_replay</a:Code>\n<a:CreationDate>1522118840</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119205</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品评价回复表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o514\">\n<a:ObjectID>C0FE35AD-E3D8-46AA-BD43-0A4FE9348CF6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522118870</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118887</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o515\">\n<a:ObjectID>6A4043C2-5C50-430C-BD5B-AA0D11362AC2</a:ObjectID>\n<a:Name>comment_id</a:Name>\n<a:Code>comment_id</a:Code>\n<a:CreationDate>1522119056</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119072</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o516\">\n<a:ObjectID>C6A4F7EC-CA0E-4E95-80BB-BB5BD4C7CF03</a:ObjectID>\n<a:Name>member_nick_name</a:Name>\n<a:Code>member_nick_name</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119041</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o517\">\n<a:ObjectID>D39F911F-9FF3-401E-89A2-A0CF1AEB11F5</a:ObjectID>\n<a:Name>member_icon</a:Name>\n<a:Code>member_icon</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119041</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o518\">\n<a:ObjectID>37F379DF-80F8-4A2D-A1FD-F1B8DFFF3E8C</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119041</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o519\">\n<a:ObjectID>4D97D374-C6C4-4835-8901-0A0AF230090C</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119041</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o520\">\n<a:ObjectID>7323FC1E-0690-46C9-AE91-EBC17297BB57</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522119192</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119239</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评论人员类型；0-&gt;会员；1-&gt;管理员</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o521\">\n<a:ObjectID>AB67D302-57F5-41ED-BA76-1DA5FCEA3BD1</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522118880</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118887</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o514\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o521\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o253\">\n<a:ObjectID>6D104B7B-620F-491A-ABC4-B60B21CF69BC</a:ObjectID>\n<a:Name>pms_album</a:Name>\n<a:Code>pms_album</a:Code>\n<a:CreationDate>1522120039</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>相册表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o522\">\n<a:ObjectID>424E4971-5936-46F8-BAE1-7F4220EDC6B5</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522120040</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120064</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o523\">\n<a:ObjectID>0C2DE146-32E0-438D-907D-FA27F53BE712</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522120061</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o524\">\n<a:ObjectID>2DAC711E-D5AE-4A25-8D7E-3A748D5B5988</a:ObjectID>\n<a:Name>cover_pic</a:Name>\n<a:Code>cover_pic</a:Code>\n<a:CreationDate>1522120061</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o525\">\n<a:ObjectID>B2BBBBA4-937B-440C-9708-7D2094D5893B</a:ObjectID>\n<a:Name>pic_count</a:Name>\n<a:Code>pic_count</a:Code>\n<a:CreationDate>1522120061</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o526\">\n<a:ObjectID>F34D2B7C-8CB3-4078-99E6-ED7DA2FEC59B</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522120061</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o527\">\n<a:ObjectID>1EED58B2-81C2-4FA8-8242-3B9845D29645</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1522120061</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o528\">\n<a:ObjectID>1535694E-35FA-45D2-9EC4-0AC46AAB6A81</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522120040</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120061</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o522\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o528\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o254\">\n<a:ObjectID>111B6F68-21FF-450D-9F6E-40C4E4F09B6C</a:ObjectID>\n<a:Name>pms_album_pic</a:Name>\n<a:Code>pms_album_pic</a:Code>\n<a:CreationDate>1522120250</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120295</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>画册图片表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o529\">\n<a:ObjectID>E25430EB-9E92-44D3-BD29-B357E9DCB2F6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522120251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120277</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o530\">\n<a:ObjectID>572B79C1-82C5-405D-A13E-11183C8382C3</a:ObjectID>\n<a:Name>album_id</a:Name>\n<a:Code>album_id</a:Code>\n<a:CreationDate>1522120295</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120304</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o531\">\n<a:ObjectID>EA74BD79-E880-467B-AEED-0E92E733AE95</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1522120273</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o532\">\n<a:ObjectID>B677823F-37C2-47FB-A8EE-F10B80BF40BB</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522120251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120273</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o529\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o532\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o255\">\n<a:ObjectID>B57200C6-A503-406F-BC2F-5B144309EC10</a:ObjectID>\n<a:Name>cms_subject</a:Name>\n<a:Code>cms_subject</a:Code>\n<a:CreationDate>1522138190</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542086220</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o533\">\n<a:ObjectID>53BC0750-B403-49FD-A50A-F081E7D2409F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522138235</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524711592</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o534\">\n<a:ObjectID>42524411-D613-4537-A110-5746681D4178</a:ObjectID>\n<a:Name>category_id</a:Name>\n<a:Code>category_id</a:Code>\n<a:CreationDate>1522138705</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139827</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o535\">\n<a:ObjectID>B88B2152-E11E-4B3E-8752-12B9A9B9D6E6</a:ObjectID>\n<a:Name>title</a:Name>\n<a:Code>title</a:Code>\n<a:CreationDate>1522138235</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138313</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o536\">\n<a:ObjectID>82CD4D66-89A8-4563-A6E1-1DE23B4E0326</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1522138235</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138320</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题主图</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o537\">\n<a:ObjectID>7CE3D060-441E-426C-A4DE-E36FA20C37B3</a:ObjectID>\n<a:Name>product_count</a:Name>\n<a:Code>product_count</a:Code>\n<a:CreationDate>1522138235</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138330</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>关联产品数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o538\">\n<a:ObjectID>DC926B26-780C-422A-9F01-918ACE01616D</a:ObjectID>\n<a:Name>recommend_status</a:Name>\n<a:Code>recommend_status</a:Code>\n<a:CreationDate>1522138235</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138489</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o539\">\n<a:ObjectID>ADDFD504-1961-4B20-A5A7-2663BE5DC0E6</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522138313</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138489</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o540\">\n<a:ObjectID>5D13D140-A74E-4586-880C-1BFE0A0E11D4</a:ObjectID>\n<a:Name>collect_count</a:Name>\n<a:Code>collect_count</a:Code>\n<a:CreationDate>1522138313</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138489</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o541\">\n<a:ObjectID>EAEA9201-9947-490A-9AA6-36A980292101</a:ObjectID>\n<a:Name>read_count</a:Name>\n<a:Code>read_count</a:Code>\n<a:CreationDate>1522138313</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138489</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o542\">\n<a:ObjectID>2FEB2EE8-3445-412B-809E-86AA3ECF4529</a:ObjectID>\n<a:Name>comment_count</a:Name>\n<a:Code>comment_count</a:Code>\n<a:CreationDate>1522138313</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138489</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o543\">\n<a:ObjectID>3213DDDC-F105-4CF3-85B1-0AF4B28D18BD</a:ObjectID>\n<a:Name>album_pics</a:Name>\n<a:Code>album_pics</a:Code>\n<a:CreationDate>1522138313</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138499</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>画册图片用逗号分割</a:Comment>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o544\">\n<a:ObjectID>3E65E187-85C6-4C2C-8508-6459E5634653</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1522138733</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138806</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o545\">\n<a:ObjectID>2E84713F-CB2B-46A6-BA44-489D2F6458EE</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522138733</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139016</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>显示状态：0-&gt;不显示；1-&gt;显示</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o546\">\n<a:ObjectID>53DFEF92-6705-4834-A79D-DBE1EA44CC23</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522138733</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138806</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o547\">\n<a:ObjectID>2BEA9B61-5B2A-495A-A1F3-CDC9992E6EC0</a:ObjectID>\n<a:Name>forward_count</a:Name>\n<a:Code>forward_count</a:Code>\n<a:CreationDate>1522139567</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139597</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>转发数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o548\">\n<a:ObjectID>38F4212D-8579-407B-BA77-92A54008F60B</a:ObjectID>\n<a:Name>category_name</a:Name>\n<a:Code>category_name</a:Code>\n<a:CreationDate>1542086194</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542086464</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题分类名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o549\">\n<a:ObjectID>EEB1DA22-1547-4B23-B534-2C0E6E700AC7</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522138603</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138607</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o533\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o549\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o256\">\n<a:ObjectID>606E012F-14A2-4A00-AD6E-15A2EFBB9C5E</a:ObjectID>\n<a:Name>cms_subject_product_relation</a:Name>\n<a:Code>cms_subject_product_relation</a:Code>\n<a:CreationDate>1522138561</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215878</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题商品关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o550\">\n<a:ObjectID>5DF4FFB5-2AF3-432F-B7B4-7F3BB6E24DBE</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522138589</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139788</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o551\">\n<a:ObjectID>CEA5917C-7E9D-4BBC-9C36-526EDCFEE760</a:ObjectID>\n<a:Name>subject_id</a:Name>\n<a:Code>subject_id</a:Code>\n<a:CreationDate>1522138613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138642</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o552\">\n<a:ObjectID>5071E824-D357-4D1D-A766-5EEF7042D9DB</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522138618</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138642</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o553\">\n<a:ObjectID>F54E063F-39C6-4A3F-B83A-85972E2FF817</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522138589</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138597</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o550\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o553\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o257\">\n<a:ObjectID>AB473418-20D2-4DA3-8888-C528B336912A</a:ObjectID>\n<a:Name>cms_subject_category</a:Name>\n<a:Code>cms_subject_category</a:Code>\n<a:CreationDate>1522138655</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题分类表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o554\">\n<a:ObjectID>25CBB635-2A80-4F21-B7E8-E352F1B4F77F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o555\">\n<a:ObjectID>A1D41EA4-B0CA-4941-A909-27D9909E0E37</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522138679</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138696</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o556\">\n<a:ObjectID>D8AE7B27-35EB-4915-B668-4C51D80A4A48</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522139032</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139093</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类图标</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o557\">\n<a:ObjectID>6FA5F7F2-CFF4-42F4-8F7D-21845B349CCB</a:ObjectID>\n<a:Name>subject_count</a:Name>\n<a:Code>subject_count</a:Code>\n<a:CreationDate>1522139087</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o558\">\n<a:ObjectID>B0C5DD2A-9B58-4590-8B05-06401B097A8C</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(2)</a:DataType>\n<a:Length>2</a:Length>\n</o:Column>\n<o:Column Id=\"o559\">\n<a:ObjectID>E2526823-EFE1-4B05-B1D2-26F058A2982A</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o560\">\n<a:ObjectID>FB93F2E5-22E1-4B1A-A200-33E4152340C2</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138679</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o554\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o560\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o258\">\n<a:ObjectID>49773448-772B-485E-A3C7-B11481FECA81</a:ObjectID>\n<a:Name>cms_subject_comment</a:Name>\n<a:Code>cms_subject_comment</a:Code>\n<a:CreationDate>1522118840</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141232</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题评论表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o561\">\n<a:ObjectID>1147FDE1-65B1-4BFD-A1A2-B020098BE42C</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522118870</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o562\">\n<a:ObjectID>2ADF8874-CC3E-474C-B210-4025C4AC3F72</a:ObjectID>\n<a:Name>subject_id</a:Name>\n<a:Code>subject_id</a:Code>\n<a:CreationDate>1522141232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141245</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o563\">\n<a:ObjectID>B0459F20-23C7-466D-8A4F-8796D69A0C08</a:ObjectID>\n<a:Name>member_nick_name</a:Name>\n<a:Code>member_nick_name</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o564\">\n<a:ObjectID>C2AF427F-DE7F-4C75-ACE7-0ABFD02455DA</a:ObjectID>\n<a:Name>member_icon</a:Name>\n<a:Code>member_icon</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o565\">\n<a:ObjectID>5D00E7C2-F197-490B-819E-120CEC889DC6</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o566\">\n<a:ObjectID>DF4234D6-78A1-41C9-AD35-1888B1FEAB6F</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o567\">\n<a:ObjectID>86082980-A127-4EDF-8EFC-E8148463178A</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139856</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139873</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o568\">\n<a:ObjectID>36EEDF00-52B8-437E-B236-EEA161669A1B</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522118880</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o561\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o568\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o259\">\n<a:ObjectID>D0100727-1202-4283-BD62-F95371B06299</a:ObjectID>\n<a:Name>cms_topic_comment</a:Name>\n<a:Code>cms_topic_comment</a:Code>\n<a:CreationDate>1522118840</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522399064</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题评论表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o569\">\n<a:ObjectID>58CD3CFC-497C-4971-AD22-9987D668CDE6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522118870</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o570\">\n<a:ObjectID>DE828932-9533-4CE1-86D2-A92BD6FED7AA</a:ObjectID>\n<a:Name>member_nick_name</a:Name>\n<a:Code>member_nick_name</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o571\">\n<a:ObjectID>45FF2606-4361-412C-B9DC-397D23DEE33B</a:ObjectID>\n<a:Name>topic_id</a:Name>\n<a:Code>topic_id</a:Code>\n<a:CreationDate>1522141157</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141168</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o572\">\n<a:ObjectID>449FC5FE-AE37-4C13-B286-63FD48F70DA9</a:ObjectID>\n<a:Name>member_icon</a:Name>\n<a:Code>member_icon</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o573\">\n<a:ObjectID>395DC11D-5668-46CE-AAA6-AFFD0AEC84A2</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o574\">\n<a:ObjectID>31AE7B63-BC68-4E98-B907-92F1D8C6CD90</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o575\">\n<a:ObjectID>711458F7-23E9-480C-8749-66742D667C05</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139856</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o576\">\n<a:ObjectID>AF9DA610-2D90-4723-8586-DE3F17CC93AC</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522118880</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o569\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o576\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o260\">\n<a:ObjectID>DAA0A46E-FEF2-4004-97B6-4FF049BC1DF2</a:ObjectID>\n<a:Name>cms_topic_category</a:Name>\n<a:Code>cms_topic_category</a:Code>\n<a:CreationDate>1522138655</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141297</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>话题分类表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o577\">\n<a:ObjectID>D109BEFC-0C6F-4B8C-AA21-461DB4903D66</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o578\">\n<a:ObjectID>F26259A6-E8E7-4CBC-BBBF-9E99449079B4</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522138679</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o579\">\n<a:ObjectID>1DAD2A73-1384-45CD-84B3-C8A2021FAB46</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522139032</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类图标</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o580\">\n<a:ObjectID>2413D731-87CA-45E0-AD41-AA64C90DA23F</a:ObjectID>\n<a:Name>subject_count</a:Name>\n<a:Code>subject_count</a:Code>\n<a:CreationDate>1522139087</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o581\">\n<a:ObjectID>B591EC57-36F5-4C03-A012-D0ADBF3E4C0F</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(2)</a:DataType>\n<a:Length>2</a:Length>\n</o:Column>\n<o:Column Id=\"o582\">\n<a:ObjectID>DAFFB2FD-33EB-4BB3-9E0C-0297E575E351</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o583\">\n<a:ObjectID>99A75D70-8F78-4D6E-8953-00CADCEAB0E0</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o577\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o583\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o261\">\n<a:ObjectID>5312D8EC-AF1A-469E-BC98-AB6273AAAE0E</a:ObjectID>\n<a:Name>cms_help</a:Name>\n<a:Code>cms_help</a:Code>\n<a:CreationDate>1522141745</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142006</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>帮助表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o584\">\n<a:ObjectID>A9D8065D-3D37-419F-9038-978F59CEBB8F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522141746</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141791</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o585\">\n<a:ObjectID>99F1B8BB-6318-423F-8D30-A40703AF7A53</a:ObjectID>\n<a:Name>category_id</a:Name>\n<a:Code>category_id</a:Code>\n<a:CreationDate>1522142006</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142017</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o586\">\n<a:ObjectID>C7F74EDD-B6CB-4D46-9617-F8C14AB2DF2F</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o587\">\n<a:ObjectID>FF621D0D-B8FA-4725-A175-D7B2BABA5B94</a:ObjectID>\n<a:Name>title</a:Name>\n<a:Code>title</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o588\">\n<a:ObjectID>E6895426-49FA-4AF4-BB77-757AA0BF864C</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o589\">\n<a:ObjectID>F08C0B0D-F6B3-4A69-AA15-9DE56C118112</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o590\">\n<a:ObjectID>4354AAE9-96D2-4D68-9074-4D6D43058031</a:ObjectID>\n<a:Name>read_count</a:Name>\n<a:Code>read_count</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o591\">\n<a:ObjectID>38267C50-CED4-4040-80C3-F2BB84F55DE1</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>text</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o592\">\n<a:ObjectID>23861D6B-7336-4999-B247-2795E01A36A6</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522141746</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141776</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o584\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o592\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o262\">\n<a:ObjectID>C69D6CF4-1D0A-4C73-BD5D-728063BA5CF5</a:ObjectID>\n<a:Name>cms_help_category</a:Name>\n<a:Code>cms_help_category</a:Code>\n<a:CreationDate>1522138655</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141973</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>帮助分类表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o593\">\n<a:ObjectID>67081E82-4B28-4B4B-950A-A6977DDC416C</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o594\">\n<a:ObjectID>23A542BE-7271-45B8-9BA3-2994EC446525</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522138679</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o595\">\n<a:ObjectID>E5E3B51D-A536-42AF-A7B5-B0CB88FA1382</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522139032</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类图标</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o596\">\n<a:ObjectID>433A0125-DC14-4DE3-AC67-4F50F73D9C10</a:ObjectID>\n<a:Name>help_count</a:Name>\n<a:Code>help_count</a:Code>\n<a:CreationDate>1522139087</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141999</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o597\">\n<a:ObjectID>66476CEF-9E6C-4DD2-8CF4-F17B95C150DF</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(2)</a:DataType>\n<a:Length>2</a:Length>\n</o:Column>\n<o:Column Id=\"o598\">\n<a:ObjectID>08AA26A1-B9BA-42BA-B07E-A3F313619269</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o599\">\n<a:ObjectID>7062AB8C-E6E5-4256-9CAA-E35D576A4067</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o593\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o599\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o264\">\n<a:ObjectID>EE13E81B-7389-4258-A293-350022D681E9</a:ObjectID>\n<a:Name>cms_member_report</a:Name>\n<a:Code>cms_member_report</a:Code>\n<a:CreationDate>1522142154</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142502</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户举报表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o600\">\n<a:ObjectID>26970FB1-6D6F-4F9B-B5AE-A006A5DA00B0</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522142174</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142240</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o601\">\n<a:ObjectID>6447324C-45CB-4E42-9437-A15934CB1F0D</a:ObjectID>\n<a:Name>report_type</a:Name>\n<a:Code>report_type</a:Code>\n<a:CreationDate>1522142174</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142646</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>举报类型：0-&gt;商品评价；1-&gt;话题内容；2-&gt;用户评论</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o602\">\n<a:ObjectID>020ECB31-0883-4162-80FA-2DFC32D3C7A5</a:ObjectID>\n<a:Name>report_member_name</a:Name>\n<a:Code>report_member_name</a:Code>\n<a:CreationDate>1522142240</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142303</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>举报人</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o603\">\n<a:ObjectID>C0692AD1-F67F-4EA1-8AA3-ACA47B0262AB</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522142298</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142386</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o604\">\n<a:ObjectID>C57611C0-AF26-4C7A-8D51-A283494F883A</a:ObjectID>\n<a:Name>report_object</a:Name>\n<a:Code>report_object</a:Code>\n<a:CreationDate>1522142298</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142386</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o605\">\n<a:ObjectID>A426736C-C224-4935-88EF-580A9D84580B</a:ObjectID>\n<a:Name>report_status</a:Name>\n<a:Code>report_status</a:Code>\n<a:CreationDate>1522142298</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142414</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>举报状态：0-&gt;未处理；1-&gt;已处理</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o606\">\n<a:ObjectID>2C32CB54-23F4-4619-8AB4-530388A5E455</a:ObjectID>\n<a:Name>handle_status</a:Name>\n<a:Code>handle_status</a:Code>\n<a:CreationDate>1522142386</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142486</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>处理结果：0-&gt;无效；1-&gt;有效；2-&gt;恶意</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o607\">\n<a:ObjectID>21DB5501-BCE1-40F6-9CEC-77A10758E766</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522142456</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142502</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n</o:Table>\n<o:Table Id=\"o265\">\n<a:ObjectID>62AC3907-4D95-4CFC-BB5D-A066679C4474</a:ObjectID>\n<a:Name>sms_coupon</a:Name>\n<a:Code>sms_coupon</a:Code>\n<a:CreationDate>1522215010</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541664280</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠卷表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o608\">\n<a:ObjectID>D967F787-301C-4453-9F6B-54CD376E68F4</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522215060</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724388</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o609\">\n<a:ObjectID>A42144EE-CFD6-4093-B8DF-AAEB4D87BCE3</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522215069</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215247</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠卷类型；0-&gt;全场赠券；1-&gt;会员赠券；2-&gt;购物赠券；3-&gt;注册赠券</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o610\">\n<a:ObjectID>4EEFF0DA-F8C0-4231-939F-9E67BFF4FA99</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522215086</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215247</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o611\">\n<a:ObjectID>C1161877-9671-43DB-8EA5-50B4ECBB89E4</a:ObjectID>\n<a:Name>platform</a:Name>\n<a:Code>platform</a:Code>\n<a:CreationDate>1522215086</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535445907</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>使用平台：0-&gt;全部；1-&gt;移动；2-&gt;PC</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o612\">\n<a:ObjectID>94DC173C-3B97-4520-9ADD-8F5F2ED04470</a:ObjectID>\n<a:Name>count</a:Name>\n<a:Code>count</a:Code>\n<a:CreationDate>1522215247</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215314</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o613\">\n<a:ObjectID>A15DA5DE-2744-4053-86C7-8A1CE2CA14D4</a:ObjectID>\n<a:Name>amount</a:Name>\n<a:Code>amount</a:Code>\n<a:CreationDate>1522215309</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747455</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o614\">\n<a:ObjectID>52D1095B-621A-413D-8161-72182E758527</a:ObjectID>\n<a:Name>per_limit</a:Name>\n<a:Code>per_limit</a:Code>\n<a:CreationDate>1522215394</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215437</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每人限领张数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o615\">\n<a:ObjectID>5D8378FF-E9D3-487E-B268-ABEECE41A427</a:ObjectID>\n<a:Name>min_point</a:Name>\n<a:Code>min_point</a:Code>\n<a:CreationDate>1522215424</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747549</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>使用门槛；0表示无门槛</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o616\">\n<a:ObjectID>A7094DFB-0744-466F-8C88-3131A1FEDB45</a:ObjectID>\n<a:Name>start_time</a:Name>\n<a:Code>start_time</a:Code>\n<a:CreationDate>1522215598</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215693</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o617\">\n<a:ObjectID>D9174D11-163F-4C6F-A36B-6EE33F1B7541</a:ObjectID>\n<a:Name>end_time</a:Name>\n<a:Code>end_time</a:Code>\n<a:CreationDate>1522215598</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215693</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o618\">\n<a:ObjectID>DF9AE437-11C1-4711-8579-9BA970124238</a:ObjectID>\n<a:Name>use_type</a:Name>\n<a:Code>use_type</a:Code>\n<a:CreationDate>1522215598</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215739</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>使用类型：0-&gt;全场通用；1-&gt;指定分类；2-&gt;指定商品</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o619\">\n<a:ObjectID>6F6944A7-CA49-4C62-8D4E-42FAFBBECB22</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522215693</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215779</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>备注</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o620\">\n<a:ObjectID>039EF37D-E0E4-4201-A3EF-539492AD9D53</a:ObjectID>\n<a:Name>publish_count</a:Name>\n<a:Code>publish_count</a:Code>\n<a:CreationDate>1522216740</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216765</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发行数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o621\">\n<a:ObjectID>6B22702A-9639-4B94-BDFF-D6203A623754</a:ObjectID>\n<a:Name>use_count</a:Name>\n<a:Code>use_count</a:Code>\n<a:CreationDate>1522216759</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216817</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>已使用数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o622\">\n<a:ObjectID>62F7E121-0FF8-41A5-A2F3-3CD1EBCF0113</a:ObjectID>\n<a:Name>receive_count</a:Name>\n<a:Code>receive_count</a:Code>\n<a:CreationDate>1535438655</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535439531</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>领取数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o623\">\n<a:ObjectID>C16B86B5-7FE8-4A40-B5BC-0890539301BB</a:ObjectID>\n<a:Name>enable_time</a:Name>\n<a:Code>enable_time</a:Code>\n<a:CreationDate>1522216971</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217000</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>可以领取的日期</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o624\">\n<a:ObjectID>57C38097-F524-4B80-9779-539E0F875778</a:ObjectID>\n<a:Name>code</a:Name>\n<a:Code>code</a:Code>\n<a:CreationDate>1522217015</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217041</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠码</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o625\">\n<a:ObjectID>7F81033C-AF9F-48BD-9332-708B55931EE7</a:ObjectID>\n<a:Name>member_level</a:Name>\n<a:Code>member_level</a:Code>\n<a:CreationDate>1522288044</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522288094</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>可领取的会员类型：0-&gt;无限时</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o626\">\n<a:ObjectID>F7B63883-C186-47A9-A442-EF3DC025999C</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522215069</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215086</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o608\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o626\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o266\">\n<a:ObjectID>F77D8A78-124B-40EF-BCA9-DF1D0BE3BBAD</a:ObjectID>\n<a:Name>sms_coupon_product_relation</a:Name>\n<a:Code>sms_coupon_product_relation</a:Code>\n<a:CreationDate>1522215792</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541748859</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券和产品的关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o627\">\n<a:ObjectID>51FBBF44-892D-4904-AD72-C367AD27B4DE</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522215913</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215933</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o628\">\n<a:ObjectID>8D3316AD-1CAF-4B5E-8FA0-645C1C73FFD7</a:ObjectID>\n<a:Name>coupon_id</a:Name>\n<a:Code>coupon_id</a:Code>\n<a:CreationDate>1522215975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535445127</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o629\">\n<a:ObjectID>39E7492F-B104-48BA-9460-88C66C6B971E</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522216015</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216048</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o630\">\n<a:ObjectID>6CFC63DC-3FA7-4C08-B3D3-EC4AB73264E5</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1541748810</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541748864</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品名称</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o631\">\n<a:ObjectID>30FFA3E1-D99B-4580-9685-A712EA6F1395</a:ObjectID>\n<a:Name>product_sn</a:Name>\n<a:Code>product_sn</a:Code>\n<a:CreationDate>1541748810</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541748881</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品编码</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o632\">\n<a:ObjectID>0DDAC07B-7800-4763-A772-BEDE47E015F8</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522215913</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215928</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o627\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o632\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o267\">\n<a:ObjectID>18D5F08F-2392-4C0C-8AD0-1264DD968732</a:ObjectID>\n<a:Name>sms_coupon_product_category_relation</a:Name>\n<a:Code>sms_coupon_product_category_relation</a:Code>\n<a:CreationDate>1522216155</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541749816</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券和产品分类关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o633\">\n<a:ObjectID>B1EF094E-8F24-4E21-92C3-20D17815DD8E</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522216188</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216239</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o634\">\n<a:ObjectID>0F265619-5CCA-4327-A335-B36E28B77CE9</a:ObjectID>\n<a:Name>coupon_id</a:Name>\n<a:Code>coupon_id</a:Code>\n<a:CreationDate>1522216251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724416</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o635\">\n<a:ObjectID>BB220B24-5719-4254-9EAB-A73F809F1D91</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1522216380</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216395</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o636\">\n<a:ObjectID>8F514E26-8A5D-4746-9906-994728A01841</a:ObjectID>\n<a:Name>product_category_name</a:Name>\n<a:Code>product_category_name</a:Code>\n<a:CreationDate>1541749144</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541749816</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品分类名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o637\">\n<a:ObjectID>E412773B-A578-4D21-B72F-679B380A40EC</a:ObjectID>\n<a:Name>parent_category_name</a:Name>\n<a:Code>parent_category_name</a:Code>\n<a:CreationDate>1541749144</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541749816</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>父分类名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o638\">\n<a:ObjectID>120C3D95-47A0-4ADC-86DD-F632EF5F5785</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522216188</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216237</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o633\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o638\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o268\">\n<a:ObjectID>118563D1-BD6A-4137-B818-9A52AE43F4B3</a:ObjectID>\n<a:Name>sms_coupon_history</a:Name>\n<a:Code>sms_coupon_history</a:Code>\n<a:CreationDate>1522217089</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490649</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券使用、领取历史表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o639\">\n<a:ObjectID>8AF960D9-0931-474B-9087-67A9C769289A</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522217090</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535522371</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o640\">\n<a:ObjectID>AEA45EC9-857C-4ADD-B505-8E6D0638F274</a:ObjectID>\n<a:Name>coupon_id</a:Name>\n<a:Code>coupon_id</a:Code>\n<a:CreationDate>1522220508</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724407</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o641\">\n<a:ObjectID>C2493798-DD46-4B0A-8BA4-76DED0B49E03</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522220546</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724407</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o642\">\n<a:ObjectID>254CB808-9D45-446D-9E7E-29A33FB74779</a:ObjectID>\n<a:Name>order_id</a:Name>\n<a:Code>order_id</a:Code>\n<a:CreationDate>1541490552</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490628</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o643\">\n<a:ObjectID>5D6DA42D-A033-45CC-8B4D-4A4577934E21</a:ObjectID>\n<a:Name>coupon_code</a:Name>\n<a:Code>coupon_code</a:Code>\n<a:CreationDate>1522217932</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522218055</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o644\">\n<a:ObjectID>D55C94A5-5416-4994-9794-10BAFCDF3A70</a:ObjectID>\n<a:Name>member_nickname</a:Name>\n<a:Code>member_nickname</a:Code>\n<a:CreationDate>1522217932</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522218107</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>领取人昵称</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o645\">\n<a:ObjectID>1FBF338D-A9F0-435F-A465-6C0D461C08EE</a:ObjectID>\n<a:Name>get_type</a:Name>\n<a:Code>get_type</a:Code>\n<a:CreationDate>1522218055</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522218134</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>获取类型：0-&gt;后台赠送；1-&gt;主动获取</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o646\">\n<a:ObjectID>2900D394-F7F9-411D-A014-19DB3D1ED702</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522218107</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220296</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o647\">\n<a:ObjectID>3447D394-9F55-41F0-B4AB-B52685CFD9B9</a:ObjectID>\n<a:Name>use_status</a:Name>\n<a:Code>use_status</a:Code>\n<a:CreationDate>1522218107</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220481</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>使用状态：0-&gt;未使用；1-&gt;已使用；2-&gt;已过期</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o648\">\n<a:ObjectID>74C76E33-9483-4D78-88C2-77812D6BE4E4</a:ObjectID>\n<a:Name>use_time</a:Name>\n<a:Code>use_time</a:Code>\n<a:CreationDate>1522220361</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220487</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>使用时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o649\">\n<a:ObjectID>59A8EC2E-C3C8-479C-8D25-D43AAE161E1C</a:ObjectID>\n<a:Name>order_sn</a:Name>\n<a:Code>order_sn</a:Code>\n<a:CreationDate>1541490633</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490681</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单号码</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o650\">\n<a:ObjectID>539446A0-347B-4B13-9A1B-C1F91302A908</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522217090</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217131</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o639\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o650\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o269\">\n<a:ObjectID>39073F58-E0FD-4E97-91A0-AFA7D8C5F626</a:ObjectID>\n<a:Name>ums_member</a:Name>\n<a:Code>ums_member</a:Code>\n<a:CreationDate>1522217487</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o651\">\n<a:ObjectID>D9B1967D-3B90-493E-BF71-D0C0AA8AF792</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522217488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o652\">\n<a:ObjectID>BA9FA416-B0B0-49A8-99B2-EE1F2F689613</a:ObjectID>\n<a:Name>member_level_id</a:Name>\n<a:Code>member_level_id</a:Code>\n<a:CreationDate>1522386868</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391485</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o653\">\n<a:ObjectID>2B15CF6E-9928-4C28-A7F0-2D249CF28D2E</a:ObjectID>\n<a:Name>username</a:Name>\n<a:Code>username</a:Code>\n<a:CreationDate>1522217626</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217755</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户名</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o654\">\n<a:ObjectID>8B3B0D82-2CA0-4466-AEA1-F24F2791C164</a:ObjectID>\n<a:Name>password</a:Name>\n<a:Code>password</a:Code>\n<a:CreationDate>1522217626</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217766</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>密码</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o655\">\n<a:ObjectID>A3756B41-7B58-47EE-9C90-4410B7014C14</a:ObjectID>\n<a:Name>nickname</a:Name>\n<a:Code>nickname</a:Code>\n<a:CreationDate>1522217712</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217794</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>昵称</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o656\">\n<a:ObjectID>771E62BD-6B4C-4AD5-8243-80EF105C5C12</a:ObjectID>\n<a:Name>phone</a:Name>\n<a:Code>phone</a:Code>\n<a:CreationDate>1522303316</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747629</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>手机号码</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o657\">\n<a:ObjectID>2AC98331-159E-4556-B2BE-2A511AF1012B</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522386896</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522386937</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>帐号启用状态:0-&gt;禁用；1-&gt;启用</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o658\">\n<a:ObjectID>290E9B19-DC94-49BE-8B20-4CC5BE6B4A2E</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522386911</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522386982</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>注册时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o659\">\n<a:ObjectID>687462C1-C969-4A1F-8FF4-CFBDDF78FD97</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522387000</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387018</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>头像</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o660\">\n<a:ObjectID>3DBECFB8-A73F-4B4E-8770-394020C94B46</a:ObjectID>\n<a:Name>gender</a:Name>\n<a:Code>gender</a:Code>\n<a:CreationDate>1522387014</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387079</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>性别：0-&gt;未知；1-&gt;男；2-&gt;女</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o661\">\n<a:ObjectID>037D5C09-930F-4CB2-9488-A0D04C98B3DF</a:ObjectID>\n<a:Name>birthday</a:Name>\n<a:Code>birthday</a:Code>\n<a:CreationDate>1522387055</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387102</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>生日</a:Comment>\n<a:DataType>date</a:DataType>\n</o:Column>\n<o:Column Id=\"o662\">\n<a:ObjectID>5799AC70-2F20-49AD-ACB3-3ACE21BDFA24</a:ObjectID>\n<a:Name>city</a:Name>\n<a:Code>city</a:Code>\n<a:CreationDate>1522387097</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387133</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>所做城市</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o663\">\n<a:ObjectID>5E11EA43-DC5E-48B6-9C7D-4B3283DFEA04</a:ObjectID>\n<a:Name>job</a:Name>\n<a:Code>job</a:Code>\n<a:CreationDate>1522387127</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387170</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>职业</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o664\">\n<a:ObjectID>E4E5B724-CA9B-4DBF-9338-F35A6CEB07C6</a:ObjectID>\n<a:Name>personalized_signature</a:Name>\n<a:Code>personalized_signature</a:Code>\n<a:CreationDate>1522387164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387227</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>个性签名</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o665\">\n<a:ObjectID>B9C8A488-CE4C-4162-95B8-95AAF2F50D79</a:ObjectID>\n<a:Name>source_type</a:Name>\n<a:Code>source_type</a:Code>\n<a:CreationDate>1522387221</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387354</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户来源</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o666\">\n<a:ObjectID>B2615BC0-8624-420C-9ADD-74B7CC0E1A34</a:ObjectID>\n<a:Name>integration</a:Name>\n<a:Code>integration</a:Code>\n<a:CreationDate>1522388283</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388297</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o667\">\n<a:ObjectID>68060654-B3F9-460C-B0AD-F69C3D79E7E4</a:ObjectID>\n<a:Name>growth</a:Name>\n<a:Code>growth</a:Code>\n<a:CreationDate>1522388293</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388314</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>成长值</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o668\">\n<a:ObjectID>F451866B-0691-4BD0-885F-8F8AC6BB07B6</a:ObjectID>\n<a:Name>luckey_count</a:Name>\n<a:Code>luckey_count</a:Code>\n<a:CreationDate>1522389179</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389203</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>剩余抽奖次数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o669\">\n<a:ObjectID>DF6E2A37-1087-482C-B3AB-6E24F7CF5824</a:ObjectID>\n<a:Name>history_integration</a:Name>\n<a:Code>history_integration</a:Code>\n<a:CreationDate>1522396288</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396312</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>历史积分数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o670\">\n<a:ObjectID>D643CABA-BFF8-4444-BC9C-459F23DD209B</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522217488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o651\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o670\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o270\">\n<a:ObjectID>A0B70C04-02B7-4362-8DE8-EEC09E11CFDE</a:ObjectID>\n<a:Name>sms_home_brand</a:Name>\n<a:Code>sms_home_brand</a:Code>\n<a:CreationDate>1522223818</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224364</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首页推荐品牌表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o671\">\n<a:ObjectID>55989B16-E9BA-4806-BE60-FBB53C20AFFB</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522224202</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224219</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o672\">\n<a:ObjectID>6EB211BF-005A-45C4-9AD2-3B624549C78B</a:ObjectID>\n<a:Name>brand_id</a:Name>\n<a:Code>brand_id</a:Code>\n<a:CreationDate>1522224364</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224376</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o673\">\n<a:ObjectID>961D5B66-0DD8-42E5-BFB4-93E536FEC18A</a:ObjectID>\n<a:Name>brand_name</a:Name>\n<a:Code>brand_name</a:Code>\n<a:CreationDate>1522224216</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224265</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o674\">\n<a:ObjectID>F2CF792A-6DB6-445B-9BA9-18C8DC17D441</a:ObjectID>\n<a:Name>recommend_status</a:Name>\n<a:Code>recommend_status</a:Code>\n<a:CreationDate>1522224216</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224356</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o675\">\n<a:ObjectID>1AB9EBEC-5310-4ADE-9CAD-39F414C49A73</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522224339</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224356</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o676\">\n<a:ObjectID>D81DA96A-E9F0-4D79-971E-1D88C5B3C093</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522224202</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224216</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o671\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o676\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o271\">\n<a:ObjectID>A25B1802-83AF-4D73-B715-B3CD83BF30B8</a:ObjectID>\n<a:Name>sms_home_new_product</a:Name>\n<a:Code>sms_home_new_product</a:Code>\n<a:CreationDate>1522224403</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225874</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>新鲜好物表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o677\">\n<a:ObjectID>D44BCE8A-007A-475D-A1A8-A84615449866</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522225739</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225765</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o678\">\n<a:ObjectID>41AB6B8F-5955-4D0F-82C9-3ECE03DE627F</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522225874</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225891</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o679\">\n<a:ObjectID>0199CB4D-CCB5-45A9-987A-C688680BAD6C</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225835</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o680\">\n<a:ObjectID>30DFEEA7-AEB5-420B-BB6F-99F4E2A2D4FC</a:ObjectID>\n<a:Name>recommend_status</a:Name>\n<a:Code>recommend_status</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225835</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o681\">\n<a:ObjectID>D1A8F553-7744-46C7-B8BC-D27C3AD0717E</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225844</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o682\">\n<a:ObjectID>73A2D055-78DF-477F-83FF-E76CEE5860BB</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522225739</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225762</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o677\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o682\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o272\">\n<a:ObjectID>37399CAC-C0E1-4103-867A-C162B935BFDF</a:ObjectID>\n<a:Name>sms_home_recommend_product</a:Name>\n<a:Code>sms_home_recommend_product</a:Code>\n<a:CreationDate>1522224403</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>人气推荐商品表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o683\">\n<a:ObjectID>2C05FE30-5B42-49AB-B442-DA48DFBF56ED</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522225739</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o684\">\n<a:ObjectID>81AA6507-AEAF-445F-8BCA-FE792FD6167D</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522226077</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398713</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o685\">\n<a:ObjectID>5C55D312-2E41-4F12-80A1-D6220C9E71E0</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226008</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o686\">\n<a:ObjectID>D1CF9580-8D7D-44B9-82A5-1227DC667978</a:ObjectID>\n<a:Name>recommend_status</a:Name>\n<a:Code>recommend_status</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226008</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o687\">\n<a:ObjectID>6B5CC5E0-6B02-4C2B-A8DB-EDAC443C4924</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226008</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o688\">\n<a:ObjectID>7256867D-3478-4506-AA49-3528838619BD</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522225739</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o683\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o688\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o273\">\n<a:ObjectID>6B4E377F-EF19-4F4C-8FA6-0179636E1DD0</a:ObjectID>\n<a:Name>sms_home_recommend_subject</a:Name>\n<a:Code>sms_home_recommend_subject</a:Code>\n<a:CreationDate>1522223818</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首页推荐专题表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o689\">\n<a:ObjectID>BB3B377B-FD15-4644-9382-23DEE1D35C62</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522224202</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o690\">\n<a:ObjectID>76387001-86B6-464D-9C61-25F2D7290848</a:ObjectID>\n<a:Name>subject_id</a:Name>\n<a:Code>subject_id</a:Code>\n<a:CreationDate>1522226272</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226311</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o691\">\n<a:ObjectID>FBF57C52-1D78-415A-A0F1-8C22ECDD209F</a:ObjectID>\n<a:Name>subject_name</a:Name>\n<a:Code>subject_name</a:Code>\n<a:CreationDate>1522224216</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226180</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o692\">\n<a:ObjectID>95A506FC-F1AE-4FDC-A8B6-14DDC2C7686D</a:ObjectID>\n<a:Name>recommend_status</a:Name>\n<a:Code>recommend_status</a:Code>\n<a:CreationDate>1522224216</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226140</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o693\">\n<a:ObjectID>B7738C94-3636-4CDF-9361-426285F61C01</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522224339</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226140</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o694\">\n<a:ObjectID>4024BDA0-F53B-48E3-AD69-82EDDF413307</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522224202</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o689\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o694\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o275\">\n<a:ObjectID>02B689AF-49BE-4746-9132-46B2A938FDCB</a:ObjectID>\n<a:Name>sms_home_advertise</a:Name>\n<a:Code>sms_home_advertise</a:Code>\n<a:CreationDate>1522227700</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541578000</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首页轮播广告表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o695\">\n<a:ObjectID>2794FB1E-CC31-453F-BE91-089DEA2F10D0</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522228220</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228237</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o696\">\n<a:ObjectID>170EB06D-58AC-4810-AA05-2E800F4402A7</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522228234</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228288</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o697\">\n<a:ObjectID>2D08193E-455A-44D9-8568-65DFC657C51C</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522228234</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228317</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>轮播位置：0-&gt;PC首页轮播；1-&gt;app首页轮播</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o698\">\n<a:ObjectID>5BBDEC82-0B2C-4005-AE60-30C24AB2C60B</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1522228288</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228387</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o699\">\n<a:ObjectID>9544B543-B26F-4A94-8533-D1CD347E092A</a:ObjectID>\n<a:Name>start_time</a:Name>\n<a:Code>start_time</a:Code>\n<a:CreationDate>1522228288</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228387</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o700\">\n<a:ObjectID>EBE6682D-2345-42DD-B161-78D72008FC58</a:ObjectID>\n<a:Name>end_time</a:Name>\n<a:Code>end_time</a:Code>\n<a:CreationDate>1522228288</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228387</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o701\">\n<a:ObjectID>1E82BBF3-64A8-4937-B8E8-2EF1E5396463</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522228288</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228415</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>上下线状态：0-&gt;下线；1-&gt;上线</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o702\">\n<a:ObjectID>7FED5C77-61EC-4ED3-BC71-69B346DB69BD</a:ObjectID>\n<a:Name>click_count</a:Name>\n<a:Code>click_count</a:Code>\n<a:CreationDate>1522228387</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228455</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>点击数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o703\">\n<a:ObjectID>28ED368B-9046-4647-8365-6C3CC1A73A00</a:ObjectID>\n<a:Name>order_count</a:Name>\n<a:Code>order_count</a:Code>\n<a:CreationDate>1522228387</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228465</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>下单数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o704\">\n<a:ObjectID>18C101B3-A72F-483F-9A9A-68C90EA4A002</a:ObjectID>\n<a:Name>url</a:Name>\n<a:Code>url</a:Code>\n<a:CreationDate>1522228518</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228545</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>链接地址</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o705\">\n<a:ObjectID>E271F2ED-7B8E-4D02-94F9-DCC3B014B01D</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522228518</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228572</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>备注</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o706\">\n<a:ObjectID>08E34019-824F-4A5D-8635-8CA439722F8E</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1541577989</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541578016</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,102={9480E6AA-83DD-4AA7-9C91-E48F709C29D9},CharSet,0=\n{B314652C-DD43-4F81-8524-6F97A1BAACBA},Collate,0=\n\n</a:ExtendedAttributesText>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o707\">\n<a:ObjectID>8C05A0D5-5A40-4E5F-803C-21DE1581AB40</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522228220</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228234</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o695\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o707\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o276\">\n<a:ObjectID>781E9BBD-7312-4347-A32B-F153B07BC2D6</a:ObjectID>\n<a:Name>sms_flash_promotion</a:Name>\n<a:Code>sms_flash_promotion</a:Code>\n<a:CreationDate>1522300652</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522301372</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限时购表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o708\">\n<a:ObjectID>A001C3CA-7F30-48B5-BBCA-4DE4FF3AC6D7</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522300654</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179315</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o709\">\n<a:ObjectID>E7B4D1BF-2B28-4CB5-A266-BF73B2C545CD</a:ObjectID>\n<a:Name>title</a:Name>\n<a:Code>title</a:Code>\n<a:CreationDate>1522300794</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522300838</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o710\">\n<a:ObjectID>9E90026D-CCB7-42C4-8305-6C9ED00FBEAD</a:ObjectID>\n<a:Name>start_date</a:Name>\n<a:Code>start_date</a:Code>\n<a:CreationDate>1522300794</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>开始日期</a:Comment>\n<a:DataType>date</a:DataType>\n</o:Column>\n<o:Column Id=\"o711\">\n<a:ObjectID>9C92406F-BE6E-4DD0-B9F6-B6DB731826D8</a:ObjectID>\n<a:Name>end_date</a:Name>\n<a:Code>end_date</a:Code>\n<a:CreationDate>1522300794</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178653</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>结束日期</a:Comment>\n<a:DataType>date</a:DataType>\n</o:Column>\n<o:Column Id=\"o712\">\n<a:ObjectID>7CF4BD09-90C4-4A00-861D-E4BB0DEDE4F0</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522300794</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522300845</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>上下线状态</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o713\">\n<a:ObjectID>8D6B6BCE-483E-49D8-9BFE-66FF9BAF4E04</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522301354</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178658</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>秒杀时间段名称</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o714\">\n<a:ObjectID>E91F0404-5C5E-465C-965B-AA29A2AC352C</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522300654</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522300717</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o708\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o714\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o277\">\n<a:ObjectID>FC0B4AB8-B381-4962-9E00-9012B9389DB2</a:ObjectID>\n<a:Name>sms_flash_promotion_log</a:Name>\n<a:Code>sms_flash_promotion_log</a:Code>\n<a:CreationDate>1522303116</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303410</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限时购通知记录</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o715\">\n<a:ObjectID>8D5CC3D3-9472-4F2E-85C5-141575078624</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522303118</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303155</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o716\">\n<a:ObjectID>43575263-62FC-44CF-9134-A53E2549A413</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522303390</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303400</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o717\">\n<a:ObjectID>0E5CDA77-D030-43C4-8F3F-62F1DDAF2321</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522303410</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303424</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o718\">\n<a:ObjectID>58059F15-8E1E-441A-B852-B83A2DC6AF61</a:ObjectID>\n<a:Name>member_phone</a:Name>\n<a:Code>member_phone</a:Code>\n<a:CreationDate>1522303170</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o719\">\n<a:ObjectID>E37B4C93-8839-4792-A41C-174666319BC6</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522303170</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o720\">\n<a:ObjectID>26E55C30-24F2-46E9-8FB8-937189C88290</a:ObjectID>\n<a:Name>subscribe_time</a:Name>\n<a:Code>subscribe_time</a:Code>\n<a:CreationDate>1522303170</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303306</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员订阅时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o721\">\n<a:ObjectID>63E8BD65-5DC6-4E86-90D0-81644C960C3A</a:ObjectID>\n<a:Name>send_time</a:Name>\n<a:Code>send_time</a:Code>\n<a:CreationDate>1522303170</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o722\">\n<a:ObjectID>F5CEFAF5-C8E0-41B0-8893-07DF42A1591B</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522303118</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303152</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o715\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o722\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o278\">\n<a:ObjectID>284E46B4-B9CC-41C1-B331-6F43782ADCC3</a:ObjectID>\n<a:Name>ums_admin</a:Name>\n<a:Code>ums_admin</a:Code>\n<a:CreationDate>1522303730</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538200957</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o723\">\n<a:ObjectID>6D584959-4514-4CEC-A0D4-785E46D1A943</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303915</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o724\">\n<a:ObjectID>C69E81B8-3A8A-4F1C-AD79-05187FCF35D3</a:ObjectID>\n<a:Name>username</a:Name>\n<a:Code>username</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538199970</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户名</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o725\">\n<a:ObjectID>7EB23336-7D63-4C02-AD85-17DA3DC93E6A</a:ObjectID>\n<a:Name>password</a:Name>\n<a:Code>password</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538199975</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>密码</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o726\">\n<a:ObjectID>FD9B4CBF-DDF3-4CC8-BD69-15221A3E52A8</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303910</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>头像</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o727\">\n<a:ObjectID>68129CD9-A241-453D-9223-FB146806D646</a:ObjectID>\n<a:Name>email</a:Name>\n<a:Code>email</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538199986</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>邮箱</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o728\">\n<a:ObjectID>5722E92D-6F67-43AA-B480-756C0DC91BDE</a:ObjectID>\n<a:Name>nick_name</a:Name>\n<a:Code>nick_name</a:Code>\n<a:CreationDate>1538199900</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538199929</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>昵称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o729\">\n<a:ObjectID>FF0D16AA-77D3-4829-B8E2-9831244DE3B9</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1538199923</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538200014</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>备注信息</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o730\">\n<a:ObjectID>AFA0423A-C6BD-424F-B7DB-85D9635EB5A6</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1538200009</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538200107</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o731\">\n<a:ObjectID>8CBC1229-E6C7-4EB9-B50D-E765E651E3F4</a:ObjectID>\n<a:Name>login_time</a:Name>\n<a:Code>login_time</a:Code>\n<a:CreationDate>1538200009</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538200119</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>最后登录时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o732\">\n<a:ObjectID>63B04D92-8CF8-40F0-855D-272C2976729F</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1538200789</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538200890</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>帐号启用状态：0-&gt;禁用；1-&gt;启用</a:Comment>\n<a:DefaultValue>1</a:DefaultValue>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o733\">\n<a:ObjectID>DC1A590C-BB4F-430C-A34E-014AEC5844D1</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303905</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o723\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o733\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o279\">\n<a:ObjectID>DC20F109-83F4-4E8A-B2CF-299453506A86</a:ObjectID>\n<a:Name>ums_admin_login_log</a:Name>\n<a:Code>ums_admin_login_log</a:Code>\n<a:CreationDate>1522303928</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304178</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户登录日志表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o734\">\n<a:ObjectID>8F7618DF-D0CA-48C3-9E4F-CBAA9A41A69B</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522303929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303971</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o735\">\n<a:ObjectID>C8AEFA16-C796-4CED-902C-21EA9F55C75C</a:ObjectID>\n<a:Name>admin_id</a:Name>\n<a:Code>admin_id</a:Code>\n<a:CreationDate>1522304178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304187</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o736\">\n<a:ObjectID>B535BE06-4C99-4645-9B42-D984356CF2FF</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522303968</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304151</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o737\">\n<a:ObjectID>6236706F-C5E9-44A6-8BC2-FE0D2F8C8476</a:ObjectID>\n<a:Name>ip</a:Name>\n<a:Code>ip</a:Code>\n<a:CreationDate>1522303968</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304151</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o738\">\n<a:ObjectID>9E05D212-E28A-463B-9F1D-87FD83F90421</a:ObjectID>\n<a:Name>address</a:Name>\n<a:Code>address</a:Code>\n<a:CreationDate>1522303968</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304151</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o739\">\n<a:ObjectID>D481AC77-5DC7-490F-856C-C3676F9407AA</a:ObjectID>\n<a:Name>user_agent</a:Name>\n<a:Code>user_agent</a:Code>\n<a:CreationDate>1522303968</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304158</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>浏览器登录类型</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o740\">\n<a:ObjectID>127CDB1B-576E-4CE4-B977-681E887F8EEE</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522303929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303968</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o734\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o740\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o280\">\n<a:ObjectID>A6C67972-0C12-4876-8087-2E48F9028CA7</a:ObjectID>\n<a:Name>ums_member_level</a:Name>\n<a:Code>ums_member_level</a:Code>\n<a:CreationDate>1522379808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员等级表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o741\">\n<a:ObjectID>129583EA-DC62-4E57-AEF8-FCA2A4DD3BD4</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522379810</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o742\">\n<a:ObjectID>4D12F464-1BC3-4D75-9BF6-AB23F4899E9B</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522379831</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522379896</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o743\">\n<a:ObjectID>38041EA5-676A-4D2B-931F-8158FDA8CB48</a:ObjectID>\n<a:Name>growth_point</a:Name>\n<a:Code>growth_point</a:Code>\n<a:CreationDate>1522379831</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522379896</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o744\">\n<a:ObjectID>63E410FA-E2CC-41F9-9FE9-9272F61F19A1</a:ObjectID>\n<a:Name>default_status</a:Name>\n<a:Code>default_status</a:Code>\n<a:CreationDate>1522379896</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522379987</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否为默认等级：0-&gt;不是；1-&gt;是</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o745\">\n<a:ObjectID>4B60128E-FF93-4486-B758-081868324568</a:ObjectID>\n<a:Name>free_freight_point</a:Name>\n<a:Code>free_freight_point</a:Code>\n<a:CreationDate>1522379964</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380124</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>免运费标准</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o746\">\n<a:ObjectID>9A810F9D-3942-417E-9057-39A71284BEB1</a:ObjectID>\n<a:Name>comment_growth_point</a:Name>\n<a:Code>comment_growth_point</a:Code>\n<a:CreationDate>1522380184</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380212</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每次评价获取的成长值</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o747\">\n<a:ObjectID>437D93E8-BC05-48F4-9103-AAADEC2F18B3</a:ObjectID>\n<a:Name>priviledge_free_freight</a:Name>\n<a:Code>priviledge_free_freight</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380558</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有免邮特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o748\">\n<a:ObjectID>4ACB8B0D-322B-4240-994A-BF76A866C4C1</a:ObjectID>\n<a:Name>priviledge_sign_in</a:Name>\n<a:Code>priviledge_sign_in</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380566</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有签到特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o749\">\n<a:ObjectID>76160658-2A87-4D99-8A9E-9F2CA2752530</a:ObjectID>\n<a:Name>priviledge_comment</a:Name>\n<a:Code>priviledge_comment</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380592</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有评论获奖励特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o750\">\n<a:ObjectID>4BFAE1D1-5395-4502-BA29-FD53E5C998FF</a:ObjectID>\n<a:Name>priviledge_promotion</a:Name>\n<a:Code>priviledge_promotion</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380617</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有专享活动特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o751\">\n<a:ObjectID>4D408989-5456-40D8-AEEE-9E1E14564E6A</a:ObjectID>\n<a:Name>priviledge_member_price</a:Name>\n<a:Code>priviledge_member_price</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747697</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有会员价格特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o752\">\n<a:ObjectID>3C4297F8-BFE4-42AC-8967-1627A0EB62AE</a:ObjectID>\n<a:Name>priviledge_birthday</a:Name>\n<a:Code>priviledge_birthday</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380640</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有生日特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o753\">\n<a:ObjectID>CD9D3466-6A59-4BD3-B7BC-8B3478EDA73B</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522386815</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522386830</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o754\">\n<a:ObjectID>E6F6D42A-97D4-4207-B966-0BBD47776D79</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522379810</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o741\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o754\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o281\">\n<a:ObjectID>31084C7B-4E3D-4630-A484-B457DFC84069</a:ObjectID>\n<a:Name>ums_member_product_category_relation</a:Name>\n<a:Code>ums_member_product_category_relation</a:Code>\n<a:CreationDate>1522387387</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387526</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员与产品分类关系表（用户喜欢的分类）</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o755\">\n<a:ObjectID>9F3E472B-AE33-4C2A-BC75-F7EF6CD3F295</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522387388</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387447</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o756\">\n<a:ObjectID>CF33591F-94A0-4ECB-A19E-1FCDECAEFB2B</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522387461</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391508</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o757\">\n<a:ObjectID>26A81B95-6339-4F97-9FD9-7A9343D8FC3C</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1522387526</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387541</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o758\">\n<a:ObjectID>319FB1F7-17E2-404B-8A53-1D83019DBED4</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522387388</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387444</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o755\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o758\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o282\">\n<a:ObjectID>94C05B4D-0F20-4449-8EC4-52604C753834</a:ObjectID>\n<a:Name>ums_member_statistics_info</a:Name>\n<a:Code>ums_member_statistics_info</a:Code>\n<a:CreationDate>1522387906</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390765</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员统计信息</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o759\">\n<a:ObjectID>6B92C176-B80A-42DF-913D-4B9F276C8DEE</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522387936</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391425</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o760\">\n<a:ObjectID>D357658D-303B-4EF3-AC8E-E97A22EB9F28</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522389232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391425</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o761\">\n<a:ObjectID>854439C2-AEFC-4DBE-B9F0-26F768FACD07</a:ObjectID>\n<a:Name>consume_amount</a:Name>\n<a:Code>consume_amount</a:Code>\n<a:CreationDate>1522387970</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388137</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>累计消费金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o762\">\n<a:ObjectID>6F0A7AA7-4899-4BD7-B041-449A73F83B50</a:ObjectID>\n<a:Name>order_count</a:Name>\n<a:Code>order_count</a:Code>\n<a:CreationDate>1522388177</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388194</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o763\">\n<a:ObjectID>03C07BA1-E675-412B-AE21-FC427A919156</a:ObjectID>\n<a:Name>coupon_count</a:Name>\n<a:Code>coupon_count</a:Code>\n<a:CreationDate>1522388366</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388384</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o764\">\n<a:ObjectID>40B971A2-E3E9-4987-9B21-2455EF702FA4</a:ObjectID>\n<a:Name>comment_count</a:Name>\n<a:Code>comment_count</a:Code>\n<a:CreationDate>1522388395</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388414</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评价数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o765\">\n<a:ObjectID>285C0BDD-D3D2-4715-969F-3F04972A9216</a:ObjectID>\n<a:Name>return_order_count</a:Name>\n<a:Code>return_order_count</a:Code>\n<a:CreationDate>1522388791</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388810</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o766\">\n<a:ObjectID>D44D9C8E-834B-49C2-A487-19243A6B75C7</a:ObjectID>\n<a:Name>login_count</a:Name>\n<a:Code>login_count</a:Code>\n<a:CreationDate>1522388804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388842</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>登录次数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o767\">\n<a:ObjectID>A6954A96-3E39-412D-8648-6420D1DE69A8</a:ObjectID>\n<a:Name>attend_count</a:Name>\n<a:Code>attend_count</a:Code>\n<a:CreationDate>1522388885</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>关注数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o768\">\n<a:ObjectID>801A9777-A84E-455D-87DB-CB5F223BEC40</a:ObjectID>\n<a:Name>fans_count</a:Name>\n<a:Code>fans_count</a:Code>\n<a:CreationDate>1522388904</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388949</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>粉丝数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o769\">\n<a:ObjectID>E7A5B7B0-3561-4149-A49A-F8130558ABBD</a:ObjectID>\n<a:Name>collect_product_count</a:Name>\n<a:Code>collect_product_count</a:Code>\n<a:CreationDate>1522388944</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o770\">\n<a:ObjectID>5E257B18-EF0C-4C89-941D-78783C0D17DF</a:ObjectID>\n<a:Name>collect_subject_count</a:Name>\n<a:Code>collect_subject_count</a:Code>\n<a:CreationDate>1522388944</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o771\">\n<a:ObjectID>37323B30-236A-4CAE-B7E5-AE3A5F527ABA</a:ObjectID>\n<a:Name>collect_topic_count</a:Name>\n<a:Code>collect_topic_count</a:Code>\n<a:CreationDate>1522388944</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o772\">\n<a:ObjectID>186B8DCF-6580-4D89-AA2B-89333527FCD6</a:ObjectID>\n<a:Name>collect_comment_count</a:Name>\n<a:Code>collect_comment_count</a:Code>\n<a:CreationDate>1522388944</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o773\">\n<a:ObjectID>29465239-85D6-4029-B631-809C1AC7F1FB</a:ObjectID>\n<a:Name>invite_friend_count</a:Name>\n<a:Code>invite_friend_count</a:Code>\n<a:CreationDate>1522388944</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389309</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o774\">\n<a:ObjectID>C133A420-C28D-4442-B747-9CFEA1E2FA2A</a:ObjectID>\n<a:Name>recent_order_time</a:Name>\n<a:Code>recent_order_time</a:Code>\n<a:CreationDate>1522390747</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390773</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>最后一次下订单时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o775\">\n<a:ObjectID>920005AF-C54B-4D67-9D61-7A15D96EC34D</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522387936</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387970</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o759\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o775\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o283\">\n<a:ObjectID>C1C1114F-DE94-4DF6-80DD-7A8210AC0D1B</a:ObjectID>\n<a:Name>ums_member_receive_address</a:Name>\n<a:Code>ums_member_receive_address</a:Code>\n<a:CreationDate>1522390106</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535437101</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员收货地址表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o776\">\n<a:ObjectID>98B61DFE-761A-4910-A45C-89DE44A801BD</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522390108</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390428</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o777\">\n<a:ObjectID>817400C5-8063-4373-9F89-F52F0AA9E815</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522390434</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391455</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o778\">\n<a:ObjectID>AFF04439-EC58-4338-8228-623D8193B384</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522390108</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390245</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o779\">\n<a:ObjectID>0CDFE5D1-E06C-466F-B066-F6FFC0FC0873</a:ObjectID>\n<a:Name>phone_number</a:Name>\n<a:Code>phone_number</a:Code>\n<a:CreationDate>1522390108</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390221</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o780\">\n<a:ObjectID>2D383AAE-D002-480B-B081-4ABB9A0FE45F</a:ObjectID>\n<a:Name>default_status</a:Name>\n<a:Code>default_status</a:Code>\n<a:CreationDate>1522390286</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390346</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否为默认</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o781\">\n<a:ObjectID>013038D3-3265-4B47-AA73-C893A6006BD8</a:ObjectID>\n<a:Name>post_code</a:Name>\n<a:Code>post_code</a:Code>\n<a:CreationDate>1522390221</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390293</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>邮政编码</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o782\">\n<a:ObjectID>214E7869-4680-4DDC-A4AF-611BDB9DB594</a:ObjectID>\n<a:Name>province</a:Name>\n<a:Code>province</a:Code>\n<a:CreationDate>1535436971</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535437029</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>省份/直辖市</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o783\">\n<a:ObjectID>B014298F-01AD-4171-9D9F-916D27574AB6</a:ObjectID>\n<a:Name>city</a:Name>\n<a:Code>city</a:Code>\n<a:CreationDate>1535436971</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535437115</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>城市</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o784\">\n<a:ObjectID>106C677E-A9B6-40ED-A992-CD0CADF4BFFF</a:ObjectID>\n<a:Name>region</a:Name>\n<a:Code>region</a:Code>\n<a:CreationDate>1535437026</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535437123</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>区</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o785\">\n<a:ObjectID>4EDEC710-4328-4BF8-BCCC-EA8EAAA48FF1</a:ObjectID>\n<a:Name>detail_address</a:Name>\n<a:Code>detail_address</a:Code>\n<a:CreationDate>1522390108</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535436990</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>详细地址(街道)</a:Comment>\n<a:DataType>varchar(128)</a:DataType>\n<a:Length>128</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o786\">\n<a:ObjectID>DF83812C-9AB1-43B1-9C66-06DDD339917E</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522390409</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390420</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o776\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o786\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o284\">\n<a:ObjectID>202E7837-16F9-471E-8D27-BADDF8ABC40F</a:ObjectID>\n<a:Name>ums_member_login_log</a:Name>\n<a:Code>ums_member_login_log</a:Code>\n<a:CreationDate>1522390511</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747822</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员登录记录</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o787\">\n<a:ObjectID>4B9B3F0B-970F-4BD2-ADA9-9B5AF12CB5AB</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522390513</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390660</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o788\">\n<a:ObjectID>96996021-E445-4698-B1A6-42E723CA01EF</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522390644</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391446</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o789\">\n<a:ObjectID>D5AD4C5C-E858-4BA3-8DB3-741A4D6D780C</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522390531</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747822</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o790\">\n<a:ObjectID>EA660841-B4C3-4D58-BA70-765F688BBFB9</a:ObjectID>\n<a:Name>ip</a:Name>\n<a:Code>ip</a:Code>\n<a:CreationDate>1522390531</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390603</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o791\">\n<a:ObjectID>4129F50F-3EB2-402A-8239-25FB68B06BE1</a:ObjectID>\n<a:Name>city</a:Name>\n<a:Code>city</a:Code>\n<a:CreationDate>1522390531</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390603</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o792\">\n<a:ObjectID>9C080457-2FBF-4EEA-B7DF-B465681C679C</a:ObjectID>\n<a:Name>login_type</a:Name>\n<a:Code>login_type</a:Code>\n<a:CreationDate>1522390531</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390637</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>登录类型：0-&gt;PC；1-&gt;android;2-&gt;ios;3-&gt;小程序</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o793\">\n<a:ObjectID>026D0B9F-44F5-4302-8766-551E0CBA48E2</a:ObjectID>\n<a:Name>province</a:Name>\n<a:Code>province</a:Code>\n<a:CreationDate>1522747786</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747822</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o794\">\n<a:ObjectID>EC511DBF-DA00-49B0-9DD3-AE6E4E18496A</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522390513</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390531</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o787\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o794\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o285\">\n<a:ObjectID>2A13105F-B4ED-4672-A401-CDDE4B9CE410</a:ObjectID>\n<a:Name>ums_member_tag</a:Name>\n<a:Code>ums_member_tag</a:Code>\n<a:CreationDate>1522390830</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391227</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户标签表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o795\">\n<a:ObjectID>438F1497-2B84-4368-AE85-9E1806F36FC9</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522390831</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390857</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o796\">\n<a:ObjectID>96FB084C-E214-4481-95FD-52FF9AF5C1FA</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522390831</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391227</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o797\">\n<a:ObjectID>C727F26A-5CFA-4C30-9EE3-A5F87998DE9E</a:ObjectID>\n<a:Name>finish_order_count</a:Name>\n<a:Code>finish_order_count</a:Code>\n<a:CreationDate>1522390854</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>自动打标签完成订单数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o798\">\n<a:ObjectID>148613FB-7BCE-4145-B955-B0077E630B6E</a:ObjectID>\n<a:Name>finish_order_amount</a:Name>\n<a:Code>finish_order_amount</a:Code>\n<a:CreationDate>1522390854</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391246</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>自动打标签完成订单金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o799\">\n<a:ObjectID>02E5405B-3466-42C6-B07B-090E17D190BA</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522390831</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390854</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o795\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o799\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o286\">\n<a:ObjectID>2D7B72D8-D25F-4A09-B4FA-16D2CEC9752A</a:ObjectID>\n<a:Name>ums_member_member_tag_relation</a:Name>\n<a:Code>ums_member_member_tag_relation</a:Code>\n<a:CreationDate>1522391304</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391380</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户和标签关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o800\">\n<a:ObjectID>BB1BD091-E5C8-4C12-8A9A-C2ADC962E7E5</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522391305</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391363</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o801\">\n<a:ObjectID>854EDA6D-D3FB-4AFF-92AD-1FDF1DC32E1E</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522391366</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391394</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o802\">\n<a:ObjectID>89D08954-C6F1-4B1F-8BAE-E19BDF39DE08</a:ObjectID>\n<a:Name>tag_id</a:Name>\n<a:Code>tag_id</a:Code>\n<a:CreationDate>1522391379</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391394</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o803\">\n<a:ObjectID>AEBACA14-2E96-4718-ACE9-C6F76721B8E8</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522391305</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391349</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o800\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o803\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o287\">\n<a:ObjectID>58F43871-0D7C-4478-9A1B-43102436A177</a:ObjectID>\n<a:Name>ums_integration_change_history</a:Name>\n<a:Code>ums_integration_change_history</a:Code>\n<a:CreationDate>1522396385</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396758</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分变化历史记录表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o804\">\n<a:ObjectID>457FA52E-BCCD-40B6-9595-2597CD6C75E2</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522396386</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396494</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o805\">\n<a:ObjectID>9964C6D5-F7BD-40FB-957B-7A66DFF172A4</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522396648</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396659</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o806\">\n<a:ObjectID>BCF4B5AF-DEA0-4D46-8A23-E5348BF281C8</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396534</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o807\">\n<a:ObjectID>52CE81B5-6BDF-40F0-97BA-2DC303583FF4</a:ObjectID>\n<a:Name>change_type</a:Name>\n<a:Code>change_type</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396606</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>改变类型：0-&gt;增加；1-&gt;减少</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o808\">\n<a:ObjectID>6D9BAE2A-F62A-4DA0-B9B4-AD3695E3ADEC</a:ObjectID>\n<a:Name>change_count</a:Name>\n<a:Code>change_count</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396606</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分改变数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o809\">\n<a:ObjectID>E63C6C7E-249C-4653-AF54-3DF677FF8B65</a:ObjectID>\n<a:Name>operate_man</a:Name>\n<a:Code>operate_man</a:Code>\n<a:CreationDate>1522396534</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396612</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作人员</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o810\">\n<a:ObjectID>079B7A28-0F20-4439-934B-AC8ABA31B76A</a:ObjectID>\n<a:Name>operate_note</a:Name>\n<a:Code>operate_note</a:Code>\n<a:CreationDate>1522396606</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396638</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作备注</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o811\">\n<a:ObjectID>A51DAFDF-D7E9-403D-A31F-7341E809448F</a:ObjectID>\n<a:Name>source_type</a:Name>\n<a:Code>source_type</a:Code>\n<a:CreationDate>1522396738</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396780</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分来源：0-&gt;购物；1-&gt;管理员修改</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o812\">\n<a:ObjectID>A0C0BBC3-CBCB-4FD0-A047-91D827AFA920</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522396386</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396491</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o804\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o812\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o288\">\n<a:ObjectID>DDBBBFBE-DCB3-4F92-A291-19A1F5767709</a:ObjectID>\n<a:Name>ums_growth_change_history</a:Name>\n<a:Code>ums_growth_change_history</a:Code>\n<a:CreationDate>1522396385</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396864</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>成长值变化历史记录表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o813\">\n<a:ObjectID>0161A828-441F-4CAB-90F0-2FC4EF6A6B3F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522396386</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o814\">\n<a:ObjectID>B546E2F7-48AB-4A7C-A4A0-28A667D75391</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522396864</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396878</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o815\">\n<a:ObjectID>D33F598C-18B5-4DF4-8326-FF7328B10F00</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o816\">\n<a:ObjectID>A0377031-7298-442C-B4DF-94C554828629</a:ObjectID>\n<a:Name>change_type</a:Name>\n<a:Code>change_type</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>改变类型：0-&gt;增加；1-&gt;减少</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o817\">\n<a:ObjectID>0EF45C85-5160-4E92-A3A6-C4B546D93214</a:ObjectID>\n<a:Name>change_count</a:Name>\n<a:Code>change_count</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分改变数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o818\">\n<a:ObjectID>4893755C-D937-4D36-9611-B9AD46A57BAA</a:ObjectID>\n<a:Name>operate_man</a:Name>\n<a:Code>operate_man</a:Code>\n<a:CreationDate>1522396534</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作人员</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o819\">\n<a:ObjectID>6CA349B8-491B-4E27-880E-D83491AB7849</a:ObjectID>\n<a:Name>operate_note</a:Name>\n<a:Code>operate_note</a:Code>\n<a:CreationDate>1522396606</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作备注</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o820\">\n<a:ObjectID>52268506-CE01-481B-ABD3-F84E4E9758C9</a:ObjectID>\n<a:Name>source_type</a:Name>\n<a:Code>source_type</a:Code>\n<a:CreationDate>1522396738</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分来源：0-&gt;购物；1-&gt;管理员修改</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o821\">\n<a:ObjectID>2BAA5513-B2CF-4B60-A990-6319EB2671C4</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522396386</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o813\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o821\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o290\">\n<a:ObjectID>D2D961A9-BB8B-41D8-A501-1AF511F65DF9</a:ObjectID>\n<a:Name>ums_member_task</a:Name>\n<a:Code>ums_member_task</a:Code>\n<a:CreationDate>1522397182</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397290</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员任务表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o822\">\n<a:ObjectID>56B17C0E-8FBA-4594-8C45-1FF6469A7159</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522397183</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397211</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o823\">\n<a:ObjectID>65D902D3-95D4-4540-BC18-F384B3710D83</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522397207</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397290</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o824\">\n<a:ObjectID>20EF2EF9-E621-4652-B334-862949676CA3</a:ObjectID>\n<a:Name>growth</a:Name>\n<a:Code>growth</a:Code>\n<a:CreationDate>1522397207</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397322</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>赠送成长值</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o825\">\n<a:ObjectID>55E587FF-CF0D-45D0-B63D-171E313D0FEB</a:ObjectID>\n<a:Name>intergration</a:Name>\n<a:Code>intergration</a:Code>\n<a:CreationDate>1522397207</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397329</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>赠送积分</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o826\">\n<a:ObjectID>6878B9A3-18D2-4405-97D4-B3BE49EBA993</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522397207</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397312</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>任务类型：0-&gt;新手任务；1-&gt;日常任务</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o827\">\n<a:ObjectID>EA426689-78F7-40C2-B520-83BA9FCC54D1</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522397183</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397207</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o822\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o827\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o292\">\n<a:ObjectID>9E564377-D9BE-4655-AC2E-13B0FD5CAF22</a:ObjectID>\n<a:Name>ums_member_rule_setting</a:Name>\n<a:Code>ums_member_rule_setting</a:Code>\n<a:CreationDate>1522397511</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397900</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员积分成长规则表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o828\">\n<a:ObjectID>125CFE60-6A33-4680-B726-FC5E68082C98</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522397511</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397554</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o829\">\n<a:ObjectID>38E3DC37-0559-41F6-84C0-3F5C43C48FF0</a:ObjectID>\n<a:Name>continue_sign_day</a:Name>\n<a:Code>continue_sign_day</a:Code>\n<a:CreationDate>1522397551</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397634</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>连续签到天数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o830\">\n<a:ObjectID>9508FDB7-6018-4E59-A007-49274C4627DC</a:ObjectID>\n<a:Name>continue_sign_point</a:Name>\n<a:Code>continue_sign_point</a:Code>\n<a:CreationDate>1522397620</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397799</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>连续签到赠送数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o831\">\n<a:ObjectID>2D67D7C4-242F-4287-AE03-819499C5EEE9</a:ObjectID>\n<a:Name>consume_per_point</a:Name>\n<a:Code>consume_per_point</a:Code>\n<a:CreationDate>1522397671</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397900</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每消费多少元获取1个点</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o832\">\n<a:ObjectID>3099A480-47E9-45F0-9183-7884D0C8B799</a:ObjectID>\n<a:Name>low_order_amount</a:Name>\n<a:Code>low_order_amount</a:Code>\n<a:CreationDate>1522397671</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397933</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>最低获取点数的订单金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o833\">\n<a:ObjectID>10ECB92A-03AE-4EC0-9F92-D4693B754400</a:ObjectID>\n<a:Name>max_point_per_order</a:Name>\n<a:Code>max_point_per_order</a:Code>\n<a:CreationDate>1522397799</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397949</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每笔订单最高获取点数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o834\">\n<a:ObjectID>BBA261DE-035F-41ED-96F8-64CF61B19EB8</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522397799</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397970</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>类型：0-&gt;积分规则；1-&gt;成长值规则</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o835\">\n<a:ObjectID>B72372E9-CEF8-4759-A874-B60E418F73DE</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522397511</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397551</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o828\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o835\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o294\">\n<a:ObjectID>C1DCA2EA-AC28-420C-BFEF-FFE7F5644910</a:ObjectID>\n<a:Name>ums_integration_consume_setting</a:Name>\n<a:Code>ums_integration_consume_setting</a:Code>\n<a:CreationDate>1522398032</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535615091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分消费设置</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o836\">\n<a:ObjectID>5A65A4E0-C798-494B-89AA-899A5FE7ECC3</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522398033</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398074</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o837\">\n<a:ObjectID>E5B7DEEB-C659-43D6-A649-4A7AA6BA968A</a:ObjectID>\n<a:Name>deduction_per_amount</a:Name>\n<a:Code>deduction_per_amount</a:Code>\n<a:CreationDate>1522398071</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398169</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每一元需要抵扣的积分数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o838\">\n<a:ObjectID>3F3EBC7E-C661-4BF6-9748-A63740946E37</a:ObjectID>\n<a:Name>max_percent_per_order</a:Name>\n<a:Code>max_percent_per_order</a:Code>\n<a:CreationDate>1522398150</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398207</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每笔订单最高抵用百分比</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o839\">\n<a:ObjectID>A51ACE1C-D2CC-4935-AEEE-392472F47BA1</a:ObjectID>\n<a:Name>use_unit</a:Name>\n<a:Code>use_unit</a:Code>\n<a:CreationDate>1522398194</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398281</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每次使用积分最小单位100</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o840\">\n<a:ObjectID>381B38BC-D7D6-44F6-8E9A-7EC3ED2D96C3</a:ObjectID>\n<a:Name>coupon_status</a:Name>\n<a:Code>coupon_status</a:Code>\n<a:CreationDate>1522398253</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398330</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否可以和优惠券同用；0-&gt;不可以；1-&gt;可以</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o841\">\n<a:ObjectID>E57C57B8-9833-47BB-905A-F54F0A5010DA</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522398033</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398071</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o836\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o841\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o295\">\n<a:ObjectID>9FDE9178-BEB4-4D80-8DFE-245B7FA5954D</a:ObjectID>\n<a:Name>oms_order</a:Name>\n<a:Code>oms_order</a:Code>\n<a:CreationDate>1522658325</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o842\">\n<a:ObjectID>3563269E-6EED-49DE-AC40-20CDE76A70F7</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522658326</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单id</a:Comment>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o843\">\n<a:ObjectID>1BFDD362-9A3F-4A39-A46A-988EFE0700F4</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522659209</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535612363</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o844\">\n<a:ObjectID>7A1BB5A1-6ACE-4259-9D2F-A11D74465729</a:ObjectID>\n<a:Name>coupon_id</a:Name>\n<a:Code>coupon_id</a:Code>\n<a:CreationDate>1522724329</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724373</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o845\">\n<a:ObjectID>190337D5-DBCF-44C7-8E8F-60BA716C7D73</a:ObjectID>\n<a:Name>order_sn</a:Name>\n<a:Code>order_sn</a:Code>\n<a:CreationDate>1522658365</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522658432</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单编号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o846\">\n<a:ObjectID>42DE6A32-DB28-4441-9D31-43954E2B32F8</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522658421</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522658633</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>提交时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o847\">\n<a:ObjectID>B66D00FB-2706-4456-9C8D-5BE63900E843</a:ObjectID>\n<a:Name>member_username</a:Name>\n<a:Code>member_username</a:Code>\n<a:CreationDate>1522658628</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522658689</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户帐号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o848\">\n<a:ObjectID>93AF6B00-CE9F-4E65-852A-21DF3E8E38D3</a:ObjectID>\n<a:Name>total_amount</a:Name>\n<a:Code>total_amount</a:Code>\n<a:CreationDate>1522658628</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522723559</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单总金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o849\">\n<a:ObjectID>AA07B22F-DFD0-4443-B124-4E7A948B8F1A</a:ObjectID>\n<a:Name>pay_amount</a:Name>\n<a:Code>pay_amount</a:Code>\n<a:CreationDate>1535611784</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535611836</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>应付金额（实际支付金额）</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o850\">\n<a:ObjectID>93484605-04CB-4451-BA1C-1D43843E1FE8</a:ObjectID>\n<a:Name>freight_amount</a:Name>\n<a:Code>freight_amount</a:Code>\n<a:CreationDate>1522723575</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522723610</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>运费金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o851\">\n<a:ObjectID>31D4C71F-D7FF-4C00-88F3-D1A8B195D948</a:ObjectID>\n<a:Name>promotion_amount</a:Name>\n<a:Code>promotion_amount</a:Code>\n<a:CreationDate>1522723762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522723859</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>促销优化金额（促销价、满减、阶梯价）</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o852\">\n<a:ObjectID>2AC97908-B95C-4C45-AD78-5AEBD42D415E</a:ObjectID>\n<a:Name>integration_amount</a:Name>\n<a:Code>integration_amount</a:Code>\n<a:CreationDate>1522723873</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522723942</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分抵扣金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o853\">\n<a:ObjectID>BDECF3D8-B85D-459A-9336-D298B11A129C</a:ObjectID>\n<a:Name>coupon_amount</a:Name>\n<a:Code>coupon_amount</a:Code>\n<a:CreationDate>1522724126</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724255</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券抵扣金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o854\">\n<a:ObjectID>570A30CB-E74E-4D54-A2F5-354511EEAD73</a:ObjectID>\n<a:Name>discount_amount</a:Name>\n<a:Code>discount_amount</a:Code>\n<a:CreationDate>1522724794</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724828</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>管理员后台调整订单使用的折扣金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o855\">\n<a:ObjectID>2506F5AD-C896-45DA-B1A9-47A3F09F32A7</a:ObjectID>\n<a:Name>pay_type</a:Name>\n<a:Code>pay_type</a:Code>\n<a:CreationDate>1522658684</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747151</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>支付方式：0-&gt;未支付；1-&gt;支付宝；2-&gt;微信</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o856\">\n<a:ObjectID>1E796BD6-898E-4EDA-8ADE-A86D6305ED56</a:ObjectID>\n<a:Name>source_type</a:Name>\n<a:Code>source_type</a:Code>\n<a:CreationDate>1522658832</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522658869</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单来源：0-&gt;PC订单；1-&gt;app订单</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o857\">\n<a:ObjectID>EBDE3354-1D7D-43AF-ADC1-D73233AF9967</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522658850</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659024</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单状态：0-&gt;待付款；1-&gt;待发货；2-&gt;已发货；3-&gt;已完成；4-&gt;已关闭；5-&gt;无效订单</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o858\">\n<a:ObjectID>17C117FA-5488-480A-98AD-35E18E6B084D</a:ObjectID>\n<a:Name>order_type</a:Name>\n<a:Code>order_type</a:Code>\n<a:CreationDate>1522658951</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659122</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单类型：0-&gt;正常订单；1-&gt;秒杀订单</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o859\">\n<a:ObjectID>61822C95-27AC-4143-8C5F-CDE6DFE15B2C</a:ObjectID>\n<a:Name>delivery_company</a:Name>\n<a:Code>delivery_company</a:Code>\n<a:CreationDate>1522659709</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725481</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>物流公司(配送方式)</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o860\">\n<a:ObjectID>91DA7F9F-8F28-4D16-8A89-1379C5141304</a:ObjectID>\n<a:Name>delivery_sn</a:Name>\n<a:Code>delivery_sn</a:Code>\n<a:CreationDate>1522659876</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659902</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>物流单号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o861\">\n<a:ObjectID>ACB792D2-4ED5-47EE-BAFD-C389DAAA07E3</a:ObjectID>\n<a:Name>auto_confirm_day</a:Name>\n<a:Code>auto_confirm_day</a:Code>\n<a:CreationDate>1522659893</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659955</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>自动确认时间（天）</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o862\">\n<a:ObjectID>C142CF56-1ED7-4D71-95DF-9F114248A7BC</a:ObjectID>\n<a:Name>integration</a:Name>\n<a:Code>integration</a:Code>\n<a:CreationDate>1522660001</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660021</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>可以获得的积分</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o863\">\n<a:ObjectID>EA968274-2B27-4C3C-9565-619251E927BA</a:ObjectID>\n<a:Name>growth</a:Name>\n<a:Code>growth</a:Code>\n<a:CreationDate>1522660001</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660081</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>可以活动的成长值</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o864\">\n<a:ObjectID>B8CC6F72-DB4E-4A81-9D94-16B7AE9470A1</a:ObjectID>\n<a:Name>promotion_info</a:Name>\n<a:Code>promotion_info</a:Code>\n<a:CreationDate>1522660053</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660086</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>活动信息</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o865\">\n<a:ObjectID>BBE7BE20-0F91-48B2-96EA-7852ACCE40D1</a:ObjectID>\n<a:Name>bill_type</a:Name>\n<a:Code>bill_type</a:Code>\n<a:CreationDate>1522660081</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660200</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发票类型：0-&gt;不开发票；1-&gt;电子发票；2-&gt;纸质发票</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o866\">\n<a:ObjectID>5A0811A5-51AF-47C2-A7F8-A2909F856961</a:ObjectID>\n<a:Name>bill_header</a:Name>\n<a:Code>bill_header</a:Code>\n<a:CreationDate>1522660171</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660226</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发票抬头</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o867\">\n<a:ObjectID>B0E18290-D990-4622-B718-71A7113E9480</a:ObjectID>\n<a:Name>bill_content</a:Name>\n<a:Code>bill_content</a:Code>\n<a:CreationDate>1522660220</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660256</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发票内容</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o868\">\n<a:ObjectID>CE69C28B-C4BC-44AA-B3F2-30B6AD8390F8</a:ObjectID>\n<a:Name>bill_receiver_phone</a:Name>\n<a:Code>bill_receiver_phone</a:Code>\n<a:CreationDate>1522660252</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660326</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收票人电话</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n</o:Column>\n<o:Column Id=\"o869\">\n<a:ObjectID>DB7AE7E6-2321-4C2C-8580-7AEB802EBE2C</a:ObjectID>\n<a:Name>bill_receiver_email</a:Name>\n<a:Code>bill_receiver_email</a:Code>\n<a:CreationDate>1522660252</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660344</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收票人邮箱</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o870\">\n<a:ObjectID>98B312FD-4E06-4D2B-AC6F-970B84E6C73F</a:ObjectID>\n<a:Name>receiver_name</a:Name>\n<a:Code>receiver_name</a:Code>\n<a:CreationDate>1522660318</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535612363</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人姓名</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o871\">\n<a:ObjectID>1174D5FE-B8AE-49E7-A4D2-F947BFE08091</a:ObjectID>\n<a:Name>receiver_phone</a:Name>\n<a:Code>receiver_phone</a:Code>\n<a:CreationDate>1522660394</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535612363</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人电话</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o872\">\n<a:ObjectID>AA0D5272-63FA-45D9-8816-9D547B177F10</a:ObjectID>\n<a:Name>receiver_post_code</a:Name>\n<a:Code>receiver_post_code</a:Code>\n<a:CreationDate>1522660418</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660472</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人邮编</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n</o:Column>\n<o:Column Id=\"o873\">\n<a:ObjectID>7E47519A-F397-40EF-A70D-4B26E116BD67</a:ObjectID>\n<a:Name>receiver_province</a:Name>\n<a:Code>receiver_province</a:Code>\n<a:CreationDate>1522660464</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660527</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>省份/直辖市</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n</o:Column>\n<o:Column Id=\"o874\">\n<a:ObjectID>3218F635-7F7D-4A36-9BF2-E1C822053456</a:ObjectID>\n<a:Name>receiver_city</a:Name>\n<a:Code>receiver_city</a:Code>\n<a:CreationDate>1522660515</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660549</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>城市</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n</o:Column>\n<o:Column Id=\"o875\">\n<a:ObjectID>8C3E74BC-0BCA-4E3F-A1F8-4C06D7192D4E</a:ObjectID>\n<a:Name>receiver_region</a:Name>\n<a:Code>receiver_region</a:Code>\n<a:CreationDate>1522660544</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660590</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>区</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n</o:Column>\n<o:Column Id=\"o876\">\n<a:ObjectID>661DB749-D0D5-43E2-B96E-2444DA4DBA06</a:ObjectID>\n<a:Name>receiver_detail_address</a:Name>\n<a:Code>receiver_detail_address</a:Code>\n<a:CreationDate>1522660585</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>详细地址</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o877\">\n<a:ObjectID>F0169A36-508E-4CDA-8BD0-6077437C30DA</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522724892</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724915</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单备注</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o878\">\n<a:ObjectID>735D23D8-B7B2-4474-A113-1ED7AAA6C9B8</a:ObjectID>\n<a:Name>confirm_status</a:Name>\n<a:Code>confirm_status</a:Code>\n<a:CreationDate>1522725950</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725999</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>确认收货状态：0-&gt;未确认；1-&gt;已确认</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o879\">\n<a:ObjectID>1D7E85F6-2738-40D2-A69D-1B55994F607A</a:ObjectID>\n<a:Name>delete_status</a:Name>\n<a:Code>delete_status</a:Code>\n<a:CreationDate>1535611815</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535612418</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>删除状态：0-&gt;未删除；1-&gt;已删除</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,102={9480E6AA-83DD-4AA7-9C91-E48F709C29D9},CharSet,0=\n{B314652C-DD43-4F81-8524-6F97A1BAACBA},Collate,0=\n\n</a:ExtendedAttributesText>\n</o:Column>\n<o:Column Id=\"o880\">\n<a:ObjectID>F556C92B-2EE8-48AB-B431-CABDBE189320</a:ObjectID>\n<a:Name>use_integration</a:Name>\n<a:Code>use_integration</a:Code>\n<a:CreationDate>1536136197</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1536136230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>下单时使用的积分</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o881\">\n<a:ObjectID>1D5BDFFC-6D63-44EA-8B7D-751C599A2A3A</a:ObjectID>\n<a:Name>payment_time</a:Name>\n<a:Code>payment_time</a:Code>\n<a:CreationDate>1539236189</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539236349</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>支付时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o882\">\n<a:ObjectID>D2094CD3-0C14-476E-9267-60186CD40813</a:ObjectID>\n<a:Name>delivery_time</a:Name>\n<a:Code>delivery_time</a:Code>\n<a:CreationDate>1539236207</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539236252</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发货时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o883\">\n<a:ObjectID>70755468-D317-4803-9B06-3975443F82C3</a:ObjectID>\n<a:Name>receive_time</a:Name>\n<a:Code>receive_time</a:Code>\n<a:CreationDate>1539236247</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539236359</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>确认收货时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o884\">\n<a:ObjectID>C9857D65-CC11-42E6-BE7C-03A1B181DCB4</a:ObjectID>\n<a:Name>comment_time</a:Name>\n<a:Code>comment_time</a:Code>\n<a:CreationDate>1539236349</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539236415</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评价时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o885\">\n<a:ObjectID>E2934ED3-7C35-4E4C-85C8-4554D6FED072</a:ObjectID>\n<a:Name>modify_time</a:Name>\n<a:Code>modify_time</a:Code>\n<a:CreationDate>1539236409</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539236440</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>修改时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o886\">\n<a:ObjectID>F98BE405-9DED-4054-ABBF-40BD4672B58B</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522658326</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o842\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o886\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o296\">\n<a:ObjectID>FDAAF085-F146-4ADE-919D-85D1DB4E61EE</a:ObjectID>\n<a:Name>oms_order_item</a:Name>\n<a:Code>oms_order_item</a:Code>\n<a:CreationDate>1522660695</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1540542634</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单中所包含的商品</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o887\">\n<a:ObjectID>C2ABF8A4-2DE7-4C17-8053-440A60BD8EE7</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522660696</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660748</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o888\">\n<a:ObjectID>B1934126-97B4-461B-B2A8-D53CCF81245C</a:ObjectID>\n<a:Name>order_id</a:Name>\n<a:Code>order_id</a:Code>\n<a:CreationDate>1522660753</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660776</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o889\">\n<a:ObjectID>EA411763-23EA-4E27-97CD-1C0D5925157C</a:ObjectID>\n<a:Name>order_sn</a:Name>\n<a:Code>order_sn</a:Code>\n<a:CreationDate>1522660755</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660781</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单编号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o890\">\n<a:ObjectID>DCF7D58B-AD64-48B0-9A65-4FDAE9A32DFB</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522660820</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660829</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o891\">\n<a:ObjectID>7BDD65C2-224E-413D-AD83-437754569B1C</a:ObjectID>\n<a:Name>product_pic</a:Name>\n<a:Code>product_pic</a:Code>\n<a:CreationDate>1522719518</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535696089</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o892\">\n<a:ObjectID>DFFC50EA-1E9A-4867-9EE8-B1A1B84E51E7</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522719518</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522719560</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o893\">\n<a:ObjectID>68478EE9-703A-4DFD-A085-7B109BBF650D</a:ObjectID>\n<a:Name>product_brand</a:Name>\n<a:Code>product_brand</a:Code>\n<a:CreationDate>1522719571</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522719666</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o894\">\n<a:ObjectID>27623FBE-2491-4310-AA4E-D93F4AD59154</a:ObjectID>\n<a:Name>product_sn</a:Name>\n<a:Code>product_sn</a:Code>\n<a:CreationDate>1522719571</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522719666</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o895\">\n<a:ObjectID>A9EF8281-439D-4D05-BB45-E933E648D979</a:ObjectID>\n<a:Name>product_price</a:Name>\n<a:Code>product_price</a:Code>\n<a:CreationDate>1522719571</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694206</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>销售价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o896\">\n<a:ObjectID>015E8942-52BF-4342-9C4C-1230A266C1C9</a:ObjectID>\n<a:Name>product_quantity</a:Name>\n<a:Code>product_quantity</a:Code>\n<a:CreationDate>1522723168</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694166</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>购买数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o897\">\n<a:ObjectID>EE8FDF66-7853-4BCE-98D9-40ADC13CC78F</a:ObjectID>\n<a:Name>product_sku_id</a:Name>\n<a:Code>product_sku_id</a:Code>\n<a:CreationDate>1535693972</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694126</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品sku编号</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o898\">\n<a:ObjectID>B13B6661-62F2-461A-B375-7556D6DBE56D</a:ObjectID>\n<a:Name>product_sku_code</a:Name>\n<a:Code>product_sku_code</a:Code>\n<a:CreationDate>1535693972</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品sku条码</a:Comment>\n<a:DataType>varchar(50)</a:DataType>\n<a:Length>50</a:Length>\n</o:Column>\n<o:Column Id=\"o899\">\n<a:ObjectID>6B11B4F4-2F88-4DA2-A6C6-B5563F8AB67F</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1535938231</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535938276</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品分类id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o900\">\n<a:ObjectID>51302EF8-1CD4-43F5-9C02-7920ED857D35</a:ObjectID>\n<a:Name>sp1</a:Name>\n<a:Code>sp1</a:Code>\n<a:CreationDate>1522724687</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724745</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品的销售属性</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o901\">\n<a:ObjectID>AA056090-3D72-4BAC-A931-CD49C31B9D7E</a:ObjectID>\n<a:Name>sp2</a:Name>\n<a:Code>sp2</a:Code>\n<a:CreationDate>1522724687</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724738</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o902\">\n<a:ObjectID>C0CCCE2C-B2C8-44A1-9F6B-771BFE62D760</a:ObjectID>\n<a:Name>sp3</a:Name>\n<a:Code>sp3</a:Code>\n<a:CreationDate>1522724687</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724738</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o903\">\n<a:ObjectID>00A626D1-90DA-4262-8FFB-874691D67C3E</a:ObjectID>\n<a:Name>promotion_name</a:Name>\n<a:Code>promotion_name</a:Code>\n<a:CreationDate>1535694274</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694390</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品促销名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o904\">\n<a:ObjectID>FCD8E9C9-7C56-47F0-8FBB-5534EB9B8FDE</a:ObjectID>\n<a:Name>promotion_amount</a:Name>\n<a:Code>promotion_amount</a:Code>\n<a:CreationDate>1535694166</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694826</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品促销分解金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o905\">\n<a:ObjectID>073E4D15-F6EB-405D-9429-3A2FD362E949</a:ObjectID>\n<a:Name>coupon_amount</a:Name>\n<a:Code>coupon_amount</a:Code>\n<a:CreationDate>1535694274</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694877</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券优惠分解金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o906\">\n<a:ObjectID>B4781397-191A-42B9-AAF7-D96E7BC3449D</a:ObjectID>\n<a:Name>integration_amount</a:Name>\n<a:Code>integration_amount</a:Code>\n<a:CreationDate>1535694826</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694927</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分优惠分解金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o907\">\n<a:ObjectID>AD7CAE73-04BF-4BB8-BEFA-E0A7B94BF373</a:ObjectID>\n<a:Name>real_amount</a:Name>\n<a:Code>real_amount</a:Code>\n<a:CreationDate>1522724652</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694701</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>该商品经过优惠后的分解金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o908\">\n<a:ObjectID>3FBC2AE3-3000-41C7-B78C-DB7AC7ABDC16</a:ObjectID>\n<a:Name>gift_integration</a:Name>\n<a:Code>gift_integration</a:Code>\n<a:CreationDate>1535964164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535964238</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品赠送积分</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o909\">\n<a:ObjectID>C7705A4E-64E8-44A3-B3BE-7A8762E73CFD</a:ObjectID>\n<a:Name>gift_growth</a:Name>\n<a:Code>gift_growth</a:Code>\n<a:CreationDate>1535964164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535964251</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品赠送成长值</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o910\">\n<a:ObjectID>07F49796-6B7C-4A44-BF17-6EF191BE819A</a:ObjectID>\n<a:Name>product_attr</a:Name>\n<a:Code>product_attr</a:Code>\n<a:CreationDate>1540542610</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1540542637</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品销售属性:[{&quot;key&quot;:&quot;颜色&quot;,&quot;value&quot;:&quot;颜色&quot;},{&quot;key&quot;:&quot;容量&quot;,&quot;value&quot;:&quot;4G&quot;}]</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o911\">\n<a:ObjectID>8B728C73-2ED3-4C44-8C64-95692A16EA10</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522660696</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660745</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o887\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o911\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o297\">\n<a:ObjectID>E184F9AC-F126-46D6-A8FF-5F95FBA2F74D</a:ObjectID>\n<a:Name>oms_order_operate_history</a:Name>\n<a:Code>oms_order_operate_history</a:Code>\n<a:CreationDate>1522724973</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725331</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单操作历史记录</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o912\">\n<a:ObjectID>46247D13-9B17-44EB-9300-7BA49AC214FB</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522724975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725013</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o913\">\n<a:ObjectID>CBAA2797-F782-492E-89D8-B87830B4FD86</a:ObjectID>\n<a:Name>order_id</a:Name>\n<a:Code>order_id</a:Code>\n<a:CreationDate>1522725331</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725342</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o914\">\n<a:ObjectID>B26D3031-3438-4CAB-BC93-2277F41D2F64</a:ObjectID>\n<a:Name>operate_man</a:Name>\n<a:Code>operate_man</a:Code>\n<a:CreationDate>1522725011</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725056</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作人：用户；系统；后台管理员</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o915\">\n<a:ObjectID>14B87125-FC24-4D09-982E-F43F618B6C3A</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522725037</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725076</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o916\">\n<a:ObjectID>296A8CF6-1BC8-46E1-846F-25114FF35EEB</a:ObjectID>\n<a:Name>order_status</a:Name>\n<a:Code>order_status</a:Code>\n<a:CreationDate>1522725072</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725298</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单状态：0-&gt;待付款；1-&gt;待发货；2-&gt;已发货；3-&gt;已完成；4-&gt;已关闭；5-&gt;无效订单</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o917\">\n<a:ObjectID>9F651D4E-088F-4735-ACAD-12ED16C49FDE</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522725292</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725326</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>备注</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o918\">\n<a:ObjectID>50772925-29B2-4E77-A02B-5AB8C229953C</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522724975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725011</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o912\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o918\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o299\">\n<a:ObjectID>A3448BD2-42B4-44EC-9BD2-9837B4DF8523</a:ObjectID>\n<a:Name>oms_order_setting</a:Name>\n<a:Code>oms_order_setting</a:Code>\n<a:CreationDate>1522726076</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522731991</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单设置表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o919\">\n<a:ObjectID>03B16432-ECCE-4698-B24A-05554E64C35C</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522726077</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522726104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o920\">\n<a:ObjectID>AC98E6B7-ADDF-43AD-B2F0-6CFE7715E9F1</a:ObjectID>\n<a:Name>flash_order_overtime</a:Name>\n<a:Code>flash_order_overtime</a:Code>\n<a:CreationDate>1522726101</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522726218</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>秒杀订单超时关闭时间(分)</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o921\">\n<a:ObjectID>C4E474C5-194A-4B54-8DF1-F37B681DE42B</a:ObjectID>\n<a:Name>normal_order_overtime</a:Name>\n<a:Code>normal_order_overtime</a:Code>\n<a:CreationDate>1522726150</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522726226</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>正常订单超时时间(分)</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o922\">\n<a:ObjectID>773FEFCD-F4A3-4D9E-B061-10C12CA1B397</a:ObjectID>\n<a:Name>confirm_overtime</a:Name>\n<a:Code>confirm_overtime</a:Code>\n<a:CreationDate>1522726177</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522726257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发货后自动确认收货时间（天）</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o923\">\n<a:ObjectID>DD5B89B8-5DC6-4EB1-B916-D76BD75CB0F5</a:ObjectID>\n<a:Name>finish_overtime</a:Name>\n<a:Code>finish_overtime</a:Code>\n<a:CreationDate>1522731908</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522732014</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>自动完成交易时间，不能申请售后（天）</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o924\">\n<a:ObjectID>D090D0ED-6A45-445C-ADE3-F1E18734F159</a:ObjectID>\n<a:Name>comment_overtime</a:Name>\n<a:Code>comment_overtime</a:Code>\n<a:CreationDate>1522731929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522732004</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单完成后自动好评时间（天）</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o925\">\n<a:ObjectID>7C2ADDA9-1584-4310-A3FE-7F1E18447823</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522726077</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522726101</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o919\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o925\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o300\">\n<a:ObjectID>5006E5DC-16F9-4C44-ABAA-2812B50757BB</a:ObjectID>\n<a:Name>oms_order_return_apply</a:Name>\n<a:Code>oms_order_return_apply</a:Code>\n<a:CreationDate>1522732897</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746524</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单退货申请</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o926\">\n<a:ObjectID>CF99B61C-D0E5-4EB4-BFC6-111A9F3D44E8</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522732898</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522732943</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o927\">\n<a:ObjectID>A6E68B83-006A-468C-A461-C647705E038C</a:ObjectID>\n<a:Name>order_id</a:Name>\n<a:Code>order_id</a:Code>\n<a:CreationDate>1522733188</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733198</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o928\">\n<a:ObjectID>8D1F23F9-09FD-416B-8E38-CFDE67721417</a:ObjectID>\n<a:Name>company_address_id</a:Name>\n<a:Code>company_address_id</a:Code>\n<a:CreationDate>1522745521</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745624</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货地址表id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o929\">\n<a:ObjectID>A6898418-67C2-4E9F-9093-6FF8782BD12F</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1539746524</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746553</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货商品id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o930\">\n<a:ObjectID>56ACAE3C-5533-44A1-BA57-602058B6CEF2</a:ObjectID>\n<a:Name>order_sn</a:Name>\n<a:Code>order_sn</a:Code>\n<a:CreationDate>1522733452</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单编号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o931\">\n<a:ObjectID>F2C78E24-CDB0-4AA7-B6CD-21E55B380E95</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522732939</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746482</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>申请时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o932\">\n<a:ObjectID>70FBE2CF-BE0D-44DD-8679-39DAA782E1A3</a:ObjectID>\n<a:Name>member_username</a:Name>\n<a:Code>member_username</a:Code>\n<a:CreationDate>1522732939</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745698</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员用户名</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o933\">\n<a:ObjectID>7B8A70B3-9FC9-4136-BEC9-D2DF393DB988</a:ObjectID>\n<a:Name>return_amount</a:Name>\n<a:Code>return_amount</a:Code>\n<a:CreationDate>1522732939</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733013</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退款金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o934\">\n<a:ObjectID>4FB9898E-63E4-4B21-B577-504320D3D4F9</a:ObjectID>\n<a:Name>return_name</a:Name>\n<a:Code>return_name</a:Code>\n<a:CreationDate>1522733003</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745642</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货人姓名</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o935\">\n<a:ObjectID>8ADCC57B-6CA5-4A89-8B5A-6283FE7B3DDF</a:ObjectID>\n<a:Name>return_phone</a:Name>\n<a:Code>return_phone</a:Code>\n<a:CreationDate>1522733468</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733653</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货人电话</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o936\">\n<a:ObjectID>F01CC8D2-508C-424D-BF17-AE42ABE28223</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522733003</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733137</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>申请状态：0-&gt;待处理；1-&gt;退货中；2-&gt;已完成；3-&gt;已拒绝</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o937\">\n<a:ObjectID>65402A2F-A01C-4B4D-9F19-9ACD48637159</a:ObjectID>\n<a:Name>handle_time</a:Name>\n<a:Code>handle_time</a:Code>\n<a:CreationDate>1522733003</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733179</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>处理时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o938\">\n<a:ObjectID>AADBD0C8-E8CD-45D6-BDF4-13840EEFA26C</a:ObjectID>\n<a:Name>product_pic</a:Name>\n<a:Code>product_pic</a:Code>\n<a:CreationDate>1522733217</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745750</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品图片</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o939\">\n<a:ObjectID>B4BB6015-3948-411C-9558-6CAF55CEF04C</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522733217</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745756</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o940\">\n<a:ObjectID>D30E609F-3F5C-401C-8690-EEA47B0E6694</a:ObjectID>\n<a:Name>product_brand</a:Name>\n<a:Code>product_brand</a:Code>\n<a:CreationDate>1522733217</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745719</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品品牌</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o941\">\n<a:ObjectID>86B4B2F7-9A36-47AC-A3DA-7F45FFF21639</a:ObjectID>\n<a:Name>product_attr</a:Name>\n<a:Code>product_attr</a:Code>\n<a:CreationDate>1522733217</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733369</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品销售属性：颜色：红色；尺码：xl;</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o942\">\n<a:ObjectID>DE661909-8CDC-4C09-A0C1-5587F969523A</a:ObjectID>\n<a:Name>product_count</a:Name>\n<a:Code>product_count</a:Code>\n<a:CreationDate>1522733332</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733395</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o943\">\n<a:ObjectID>B16F9E1E-749A-477B-B8E1-70B635CC8F00</a:ObjectID>\n<a:Name>product_price</a:Name>\n<a:Code>product_price</a:Code>\n<a:CreationDate>1539746095</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746212</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品单价</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o944\">\n<a:ObjectID>442BB5FC-951A-43B5-94AD-B3C2E1C8F28F</a:ObjectID>\n<a:Name>product_real_price</a:Name>\n<a:Code>product_real_price</a:Code>\n<a:CreationDate>1539746095</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746225</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品实际支付单价</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o945\">\n<a:ObjectID>B4DB3A15-7B0F-4C6D-B961-AF2C4CF14D50</a:ObjectID>\n<a:Name>reason</a:Name>\n<a:Code>reason</a:Code>\n<a:CreationDate>1522733512</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733657</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>原因</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o946\">\n<a:ObjectID>ECE8A578-4D6B-47EB-BB72-207D9BC93324</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1522733512</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733663</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>描述</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o947\">\n<a:ObjectID>E3C2C9CF-D72D-44AA-B1A3-5B5AC1950B63</a:ObjectID>\n<a:Name>proof_pics</a:Name>\n<a:Code>proof_pics</a:Code>\n<a:CreationDate>1522733653</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733740</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>凭证图片，以逗号隔开</a:Comment>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o948\">\n<a:ObjectID>B16F27C1-DFFA-40F1-83B5-F9DA3BB86FE6</a:ObjectID>\n<a:Name>handle_note</a:Name>\n<a:Code>handle_note</a:Code>\n<a:CreationDate>1522745027</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745078</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>处理备注</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o949\">\n<a:ObjectID>B8982C29-EB0D-4F63-A047-DDEDC91A78C3</a:ObjectID>\n<a:Name>handle_man</a:Name>\n<a:Code>handle_man</a:Code>\n<a:CreationDate>1522745592</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745618</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>处理人员</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o950\">\n<a:ObjectID>49E217E2-31BF-4F23-8125-62D5920E0B60</a:ObjectID>\n<a:Name>receive_man</a:Name>\n<a:Code>receive_man</a:Code>\n<a:CreationDate>1522745613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745658</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o951\">\n<a:ObjectID>8111E4F5-B8EA-4DCB-B899-A2E4921E6BC2</a:ObjectID>\n<a:Name>receive_time</a:Name>\n<a:Code>receive_time</a:Code>\n<a:CreationDate>1522745652</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745779</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o952\">\n<a:ObjectID>4C802C73-FB19-4C09-84C3-37E152CA8299</a:ObjectID>\n<a:Name>receive_note</a:Name>\n<a:Code>receive_note</a:Code>\n<a:CreationDate>1522745652</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745787</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货备注</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o953\">\n<a:ObjectID>D06B934B-B63D-4DCC-B1C1-62F79744A8AC</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522732898</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522732939</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o926\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o953\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o301\">\n<a:ObjectID>594B7799-023B-4DAF-840D-B224931CBA6C</a:ObjectID>\n<a:Name>oms_company_address</a:Name>\n<a:Code>oms_company_address</a:Code>\n<a:CreationDate>1522745162</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745228</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>公司收发货地址表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o954\">\n<a:ObjectID>F5A62BE4-F0B9-46C3-8591-5864BB83220D</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522745164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745194</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o955\">\n<a:ObjectID>359C7F83-8810-4F75-935C-8099B75676C6</a:ObjectID>\n<a:Name>address_name</a:Name>\n<a:Code>address_name</a:Code>\n<a:CreationDate>1522745192</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745253</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>地址名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o956\">\n<a:ObjectID>5AA8AC8B-9617-4A6F-B898-4206F7CE8169</a:ObjectID>\n<a:Name>send_status</a:Name>\n<a:Code>send_status</a:Code>\n<a:CreationDate>1522745248</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745302</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>默认发货地址：0-&gt;否；1-&gt;是</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o957\">\n<a:ObjectID>CDF1655B-32CC-4E54-BBE7-5F00549B7722</a:ObjectID>\n<a:Name>receive_status</a:Name>\n<a:Code>receive_status</a:Code>\n<a:CreationDate>1522745248</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745328</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否默认收货地址：0-&gt;否；1-&gt;是</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o958\">\n<a:ObjectID>F5195500-8663-482B-B587-27789546188C</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522745285</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745228</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收发货人姓名</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o959\">\n<a:ObjectID>D51012F2-BECB-4E6B-A7E9-5B6AC06D9087</a:ObjectID>\n<a:Name>phone</a:Name>\n<a:Code>phone</a:Code>\n<a:CreationDate>1522745285</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745508</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人电话</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o960\">\n<a:ObjectID>3D2DC8D4-9D56-4E95-8266-052132761CDE</a:ObjectID>\n<a:Name>province</a:Name>\n<a:Code>province</a:Code>\n<a:CreationDate>1522745363</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745209</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>省/直辖市</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o961\">\n<a:ObjectID>57267BF2-434D-4AEC-8E6B-DDCAA85233F7</a:ObjectID>\n<a:Name>city</a:Name>\n<a:Code>city</a:Code>\n<a:CreationDate>1522745363</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745217</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>市</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o962\">\n<a:ObjectID>F1F15023-139B-4048-8D0C-C9C46884C6E9</a:ObjectID>\n<a:Name>region</a:Name>\n<a:Code>region</a:Code>\n<a:CreationDate>1522745363</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745223</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>区</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o963\">\n<a:ObjectID>D3EA532D-AD33-45AF-BA17-1FE7D821EE64</a:ObjectID>\n<a:Name>detail_address</a:Name>\n<a:Code>detail_address</a:Code>\n<a:CreationDate>1539745108</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745239</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>详细地址</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o964\">\n<a:ObjectID>9B8E57D5-D022-48D7-BA87-3214D2DAB1BD</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522745164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745192</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o954\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o964\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o303\">\n<a:ObjectID>3FB6BF2A-C836-4B1F-AA9B-4219F4ECBC6D</a:ObjectID>\n<a:Name>oms_order_return_reason</a:Name>\n<a:Code>oms_order_return_reason</a:Code>\n<a:CreationDate>1522745726</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539238788</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货原因表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o965\">\n<a:ObjectID>8398CF1C-2327-4762-B370-7F7BB681FBE8</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522745728</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o966\">\n<a:ObjectID>7C7CCC5E-FBE6-49A6-A428-95A8A078B4EA</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522745760</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745845</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货类型</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o967\">\n<a:ObjectID>0C284FC4-E892-4BFF-B0AC-AD9BCB8E39D2</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522745760</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o968\">\n<a:ObjectID>D0151FA2-84E3-4252-9565-766B748B7AD3</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522745760</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745824</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>状态：0-&gt;不启用；1-&gt;启用</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o969\">\n<a:ObjectID>A3F8C1D7-A495-4E99-885D-FC8FB1E5747C</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1539238773</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539238794</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>添加时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o970\">\n<a:ObjectID>F0009D1F-CC14-45AA-BDB7-F25CFBBFE380</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522745728</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o965\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o970\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o304\">\n<a:ObjectID>679BF191-40EF-4FC4-8140-D9DA8F283689</a:ObjectID>\n<a:Name>oms_cart_item</a:Name>\n<a:Code>oms_cart_item</a:Code>\n<a:CreationDate>1533108597</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1582621132</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>购物车表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o971\">\n<a:ObjectID>0496CCD8-F7CC-4DD4-AEE7-919D8EFCD676</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1533108649</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533108729</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o972\">\n<a:ObjectID>BC6AB2CA-354D-447A-A466-54980B87F57F</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1533109970</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533110009</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o973\">\n<a:ObjectID>48241AB2-A6B4-48E5-A792-FAB72D97FD42</a:ObjectID>\n<a:Name>product_sku_id</a:Name>\n<a:Code>product_sku_id</a:Code>\n<a:CreationDate>1533115829</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115861</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o974\">\n<a:ObjectID>70CEB9F6-7F7D-4AB1-BB9D-3667BA109C72</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1533115896</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115923</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o975\">\n<a:ObjectID>8B8B68C0-7987-4E2B-9BAD-FF4F3428E03A</a:ObjectID>\n<a:Name>quantity</a:Name>\n<a:Code>quantity</a:Code>\n<a:CreationDate>1533108721</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533108755</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>购买数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o976\">\n<a:ObjectID>E2A71768-48C5-46B2-82B8-635169BFE66D</a:ObjectID>\n<a:Name>price</a:Name>\n<a:Code>price</a:Code>\n<a:CreationDate>1533108747</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533108790</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>添加到购物车的价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o977\">\n<a:ObjectID>B5A53CF7-C87D-411B-89DF-41888E2722C7</a:ObjectID>\n<a:Name>product_pic</a:Name>\n<a:Code>product_pic</a:Code>\n<a:CreationDate>1533110160</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171242</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品主图</a:Comment>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o978\">\n<a:ObjectID>E1A4F06D-34AE-4B0C-BCC6-F82BA9D1A76F</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1533110160</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171249</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品名称</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o979\">\n<a:ObjectID>7BBD4FA7-9C75-4ECA-9E08-BBEAC572BCB1</a:ObjectID>\n<a:Name>product_brand</a:Name>\n<a:Code>product_brand</a:Code>\n<a:CreationDate>1535696251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535696298</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o980\">\n<a:ObjectID>11170A56-1C61-4372-9E46-A3C9C587340E</a:ObjectID>\n<a:Name>product_sn</a:Name>\n<a:Code>product_sn</a:Code>\n<a:CreationDate>1535696251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535696298</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o981\">\n<a:ObjectID>2D4BFCEF-83F1-4697-8EF7-DCC5D2A9491D</a:ObjectID>\n<a:Name>product_sub_title</a:Name>\n<a:Code>product_sub_title</a:Code>\n<a:CreationDate>1533110160</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171264</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品副标题（卖点）</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o982\">\n<a:ObjectID>8A7E5878-BB5E-49F3-BE20-E6986E172BB3</a:ObjectID>\n<a:Name>product_sku_code</a:Name>\n<a:Code>product_sku_code</a:Code>\n<a:CreationDate>1533115799</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171279</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品sku条码</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o983\">\n<a:ObjectID>23C68713-D38A-4915-96E3-A9762199D386</a:ObjectID>\n<a:Name>member_nickname</a:Name>\n<a:Code>member_nickname</a:Code>\n<a:CreationDate>1533115939</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171328</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员昵称</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o984\">\n<a:ObjectID>5675315C-7265-4AC3-88D4-BC1525AC73B7</a:ObjectID>\n<a:Name>create_date</a:Name>\n<a:Code>create_date</a:Code>\n<a:CreationDate>1533116034</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171335</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o985\">\n<a:ObjectID>1D877A06-39CD-4A3C-B4A8-059588D13838</a:ObjectID>\n<a:Name>modify_date</a:Name>\n<a:Code>modify_date</a:Code>\n<a:CreationDate>1533116034</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171341</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>修改时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o986\">\n<a:ObjectID>20EF4C13-435F-4C03-B8A9-7E31F1432E21</a:ObjectID>\n<a:Name>delete_status</a:Name>\n<a:Code>delete_status</a:Code>\n<a:CreationDate>1533172423</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533172643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否删除</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o987\">\n<a:ObjectID>9C9C2AC9-F58B-4D31-BEF4-1D1892931E51</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1535530934</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535530961</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品的分类</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o988\">\n<a:ObjectID>B7274386-A224-491A-88E0-8FAADCA00C90</a:ObjectID>\n<a:Name>product_attr</a:Name>\n<a:Code>product_attr</a:Code>\n<a:CreationDate>1540542323</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1540542603</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品销售属性:[{&quot;key&quot;:&quot;颜色&quot;,&quot;value&quot;:&quot;银色&quot;},{&quot;key&quot;:&quot;容量&quot;,&quot;value&quot;:&quot;4G&quot;}]</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o989\">\n<a:ObjectID>29D735B7-E618-4C13-AF03-3858C68E6BA4</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1533108649</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533108680</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o971\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o989\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o305\">\n<a:ObjectID>76086A3D-70A2-4A7E-A4DA-9B79808A0A53</a:ObjectID>\n<a:Name>ums_role</a:Name>\n<a:Code>ums_role</a:Code>\n<a:CreationDate>1538200619</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201383</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户角色表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o990\">\n<a:ObjectID>2E853DB4-DEFD-42D5-A6BE-6226A3194CE4</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1538201005</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201117</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o991\">\n<a:ObjectID>A7C5F5AC-3D79-4BAB-A058-E801649746EB</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1538201019</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201122</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o992\">\n<a:ObjectID>013099EA-F84F-4262-9125-15DA3687C8CE</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1538201019</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201128</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>描述</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o993\">\n<a:ObjectID>F376357B-61CA-46D5-BED7-51C5322735A9</a:ObjectID>\n<a:Name>admin_count</a:Name>\n<a:Code>admin_count</a:Code>\n<a:CreationDate>1538201117</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201162</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o994\">\n<a:ObjectID>EAC9E6A6-7E67-44F0-B085-B7A2380828E9</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1538201155</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201198</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o995\">\n<a:ObjectID>8B4E2D43-F39C-46CD-B498-1CD02CDE1F81</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1538201193</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201235</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>启用状态：0-&gt;禁用；1-&gt;启用</a:Comment>\n<a:DefaultValue>1</a:DefaultValue>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o996\">\n<a:ObjectID>CDB0B35E-6C3A-4FE5-9D47-E7682E71302E</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1538201211</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201486</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o997\">\n<a:ObjectID>14F5A838-542A-4B80-8627-B17FF80D3D0C</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1538201019</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201117</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o990\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o997\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o306\">\n<a:ObjectID>4E46B794-7D2F-434B-9096-2F7DB97537BA</a:ObjectID>\n<a:Name>ums_permission</a:Name>\n<a:Code>ums_permission</a:Code>\n<a:CreationDate>1538201545</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户权限表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o998\">\n<a:ObjectID>E945AB0D-430D-4564-A942-AFAF3D3C6106</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1538201548</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201942</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,102={9480E6AA-83DD-4AA7-9C91-E48F709C29D9},CharSet,0=\n{B314652C-DD43-4F81-8524-6F97A1BAACBA},Collate,0=\n\n</a:ExtendedAttributesText>\n</o:Column>\n<o:Column Id=\"o999\">\n<a:ObjectID>B073CBDF-527E-4961-BF55-9C5A1F643303</a:ObjectID>\n<a:Name>pid</a:Name>\n<a:Code>pid</a:Code>\n<a:CreationDate>1538202362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202389</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>父级权限id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1000\">\n<a:ObjectID>E06DA657-9A51-42D9-A915-3D76B6D12AC7</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1538201932</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202068</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o1001\">\n<a:ObjectID>C2345EAD-45D6-41E7-8EAA-9DB2FD0F6C48</a:ObjectID>\n<a:Name>value</a:Name>\n<a:Code>value</a:Code>\n<a:CreationDate>1538201932</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202074</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>权限值</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1002\">\n<a:ObjectID>471034FB-C5B6-49C2-A117-AE9FEE311F8C</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1538201932</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202080</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>图标</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o1003\">\n<a:ObjectID>64C52B4C-E7C5-4A7E-AE70-CF628EFC67A7</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1538202064</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202174</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>权限类型：0-&gt;目录；1-&gt;菜单；2-&gt;按钮（接口绑定权限）</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o1004\">\n<a:ObjectID>8E492BD0-8033-4FE5-8B5B-C13F6977D9A9</a:ObjectID>\n<a:Name>uri</a:Name>\n<a:Code>uri</a:Code>\n<a:CreationDate>1538202208</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202264</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>前端资源路径</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1005\">\n<a:ObjectID>88B074E5-990C-4217-91F5-A88E56CC8142</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1538202092</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202228</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>启用状态；0-&gt;禁用；1-&gt;启用</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o1006\">\n<a:ObjectID>6A46B30B-44EC-4D13-BEBF-77C4D26113CA</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1538202257</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202303</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o1007\">\n<a:ObjectID>FE8DC496-D926-4C4C-94C0-59F19B98D411</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1538202257</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202334</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1008\">\n<a:ObjectID>1A1D360B-3856-4FE0-ABC3-9C9DD7180247</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1538201548</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201932</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o998\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1008\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o307\">\n<a:ObjectID>0ACD514B-6AD8-4092-9503-BB7418271C5D</a:ObjectID>\n<a:Name>ums_admin_role_relation</a:Name>\n<a:Code>ums_admin_role_relation</a:Code>\n<a:CreationDate>1538202419</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202492</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户和角色关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1009\">\n<a:ObjectID>FD4417BB-10DA-489F-95B7-2538DA63FEB7</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1538202420</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202461</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1010\">\n<a:ObjectID>7E2D454E-E44B-490F-9E86-11CB1D02A55F</a:ObjectID>\n<a:Name>admin_id</a:Name>\n<a:Code>admin_id</a:Code>\n<a:CreationDate>1538202471</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202487</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1011\">\n<a:ObjectID>6408BE19-A7C6-4F9D-B9C0-921BD494570B</a:ObjectID>\n<a:Name>role_id</a:Name>\n<a:Code>role_id</a:Code>\n<a:CreationDate>1538202492</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202502</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1012\">\n<a:ObjectID>6D817E44-8C99-4CFE-A645-0E536256B9D2</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1538202420</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202458</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1009\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1012\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o308\">\n<a:ObjectID>DF1649B4-5B0F-43F0-8E49-DFB2050E1F76</a:ObjectID>\n<a:Name>ums_role_permission_relation</a:Name>\n<a:Code>ums_role_permission_relation</a:Code>\n<a:CreationDate>1538202537</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202588</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户角色和权限关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1013\">\n<a:ObjectID>1144AF4C-1426-47B7-8212-DA3B3E6C2A36</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1538202538</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202580</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1014\">\n<a:ObjectID>FE5CF0B5-65AA-4B6D-AE3C-04E4A57077D0</a:ObjectID>\n<a:Name>role_id</a:Name>\n<a:Code>role_id</a:Code>\n<a:CreationDate>1538202586</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202605</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1015\">\n<a:ObjectID>3E519CF4-C6F8-4D40-828A-F3AFFDA09699</a:ObjectID>\n<a:Name>permission_id</a:Name>\n<a:Code>permission_id</a:Code>\n<a:CreationDate>1538202588</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202605</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1016\">\n<a:ObjectID>7169397A-EC6D-422E-9575-7D580D618896</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1538202538</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202576</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1013\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1016\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o309\">\n<a:ObjectID>13CA705F-65DC-48AC-9563-A5650E15DCC0</a:ObjectID>\n<a:Name>ums_admin_permission_relation</a:Name>\n<a:Code>ums_admin_permission_relation</a:Code>\n<a:CreationDate>1538202617</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538203086</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户和权限关系表(除角色中定义的权限以外的加减权限)</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1017\">\n<a:ObjectID>BE753374-E9C7-4C53-AC9C-D71DCF50662D</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1538202860</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202918</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1018\">\n<a:ObjectID>12FF5B6B-8647-49E1-927C-D43F14BBB174</a:ObjectID>\n<a:Name>admin_id</a:Name>\n<a:Code>admin_id</a:Code>\n<a:CreationDate>1538202927</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202948</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1019\">\n<a:ObjectID>8BDB3D8B-FFEF-4031-8D7A-EF81BE9BE670</a:ObjectID>\n<a:Name>permission_id</a:Name>\n<a:Code>permission_id</a:Code>\n<a:CreationDate>1538202929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202948</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1020\">\n<a:ObjectID>D5D4EBC8-9FCD-4A79-8171-4BC6027FA23E</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1538203070</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538203086</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1021\">\n<a:ObjectID>DF246E9E-48BE-43A9-A0A8-282F0AC6E482</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1538202860</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202916</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1017\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1021\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o310\">\n<a:ObjectID>0DE260F1-B640-49EA-8FD8-73901DA3FC6A</a:ObjectID>\n<a:Name>sms_flash_promotion_session</a:Name>\n<a:Code>sms_flash_promotion_session</a:Code>\n<a:CreationDate>1542177985</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178475</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限时购场次表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1022\">\n<a:ObjectID>10DEE53F-C0A5-4C47-B567-5B9318C189F5</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1542178330</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178351</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>编号</a:Comment>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1023\">\n<a:ObjectID>70BA3EA1-6434-4AFF-A8B7-BCFD893EE7BF</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1542178344</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178375</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>场次名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1024\">\n<a:ObjectID>E0270862-71AD-474C-96FE-3EEA4134152D</a:ObjectID>\n<a:Name>start_time</a:Name>\n<a:Code>start_time</a:Code>\n<a:CreationDate>1542178368</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178404</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每日开始时间</a:Comment>\n<a:DataType>time</a:DataType>\n</o:Column>\n<o:Column Id=\"o1025\">\n<a:ObjectID>A180A2E0-0FA8-475C-8D71-729FD0617D20</a:ObjectID>\n<a:Name>end_time</a:Name>\n<a:Code>end_time</a:Code>\n<a:CreationDate>1542178396</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178421</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每日结束时间</a:Comment>\n<a:DataType>time</a:DataType>\n</o:Column>\n<o:Column Id=\"o1026\">\n<a:ObjectID>49630CAC-6129-4521-AD71-0A3AFD07583A</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1542178416</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178456</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>启用状态：0-&gt;不启用；1-&gt;启用</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o1027\">\n<a:ObjectID>3E293EDE-0D9A-4933-8B3D-4293903D92D0</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1542178436</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178481</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1028\">\n<a:ObjectID>6F8C4687-C113-41B9-B674-6D8DE3D1E8D5</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1542178330</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178344</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1022\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1028\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o311\">\n<a:ObjectID>99F64742-38F7-4DA9-B8A0-1FC4476C94D3</a:ObjectID>\n<a:Name>sms_flash_promotion_product_relation</a:Name>\n<a:Code>sms_flash_promotion_product_relation</a:Code>\n<a:CreationDate>1542179013</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品限时购与商品关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1029\">\n<a:ObjectID>CAE82E75-D12D-4AD6-9A17-68423BF7E4E0</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1542179066</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542349350</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>编号</a:Comment>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1030\">\n<a:ObjectID>CEAF14F7-5D5C-4FF9-B86B-CF943BE9EAC9</a:ObjectID>\n<a:Name>flash_promotion_id</a:Name>\n<a:Code>flash_promotion_id</a:Code>\n<a:CreationDate>1542179374</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179387</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1031\">\n<a:ObjectID>23D89E50-A620-478D-A305-369556A666D9</a:ObjectID>\n<a:Name>flash_promotion_session_id</a:Name>\n<a:Code>flash_promotion_session_id</a:Code>\n<a:CreationDate>1542179394</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179410</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>编号</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1032\">\n<a:ObjectID>016A43A1-CCDE-4553-A432-5F9195B3E630</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1542179440</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179497</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1033\">\n<a:ObjectID>A82B7A85-9A20-438A-B428-5252675D21E5</a:ObjectID>\n<a:Name>flash_promotion_price</a:Name>\n<a:Code>flash_promotion_price</a:Code>\n<a:CreationDate>1542179066</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179497</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限时购价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o1034\">\n<a:ObjectID>608C7EEE-3CD9-452E-873C-AD3AFDF563A0</a:ObjectID>\n<a:Name>flash_promotion_count</a:Name>\n<a:Code>flash_promotion_count</a:Code>\n<a:CreationDate>1542179137</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179197</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限时购数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o1035\">\n<a:ObjectID>8211380C-691E-47D2-B1D7-F37E83667A4C</a:ObjectID>\n<a:Name>flash_promotion_limit</a:Name>\n<a:Code>flash_promotion_limit</a:Code>\n<a:CreationDate>1542179190</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179235</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每人限购数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o1036\">\n<a:ObjectID>7DB32E90-BA97-46B7-B90B-655587BBE50E</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1542179226</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1037\">\n<a:ObjectID>A2983D35-1038-45A0-954A-5BC756B9FBF6</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1542179066</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179137</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1029\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1037\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o312\">\n<a:ObjectID>FA962271-FBB8-4D55-88C3-B0565D4B7E6B</a:ObjectID>\n<a:Name>ums_menu</a:Name>\n<a:Code>ums_menu</a:Code>\n<a:CreationDate>1580624574</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625146</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台菜单表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1038\">\n<a:ObjectID>6E8CAA92-2096-418D-A93D-E79F719BB927</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1580624717</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580624742</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1039\">\n<a:ObjectID>ED194F66-7660-463A-A991-C2A652AB7BDD</a:ObjectID>\n<a:Name>parent_id</a:Name>\n<a:Code>parent_id</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625129</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>父级ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1040\">\n<a:ObjectID>751DDAFB-E47E-4C1F-8861-98417ABE4003</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o1041\">\n<a:ObjectID>C19B0D2B-9E4E-4D92-B934-23A5A434367E</a:ObjectID>\n<a:Name>title</a:Name>\n<a:Code>title</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>菜单名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o1042\">\n<a:ObjectID>3991C198-C8BC-442F-B9C3-8C3E822BDF58</a:ObjectID>\n<a:Name>level</a:Name>\n<a:Code>level</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>菜单级数</a:Comment>\n<a:DataType>int(4)</a:DataType>\n<a:Length>4</a:Length>\n</o:Column>\n<o:Column Id=\"o1043\">\n<a:ObjectID>F021AF73-1074-429E-A756-7795EAC8D046</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>菜单排序</a:Comment>\n<a:DataType>int(4)</a:DataType>\n<a:Length>4</a:Length>\n</o:Column>\n<o:Column Id=\"o1044\">\n<a:ObjectID>4B420CCD-31CE-4F99-864B-2130DB065195</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>前端名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o1045\">\n<a:ObjectID>F77FA949-AD6E-4812-8523-B4B89D603A5E</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>前端图标</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1046\">\n<a:ObjectID>BA0254CB-2942-4FA6-86A0-E90E43311099</a:ObjectID>\n<a:Name>hidden</a:Name>\n<a:Code>hidden</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>前端隐藏</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1047\">\n<a:ObjectID>5B17DE1C-3EF2-41FE-8598-919EF33A2D85</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1580624717</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580624739</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1038\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1047\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o313\">\n<a:ObjectID>21CA6441-50AA-434C-B1B2-51C4DB93E292</a:ObjectID>\n<a:Name>ums_resource</a:Name>\n<a:Code>ums_resource</a:Code>\n<a:CreationDate>1580624625</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869150</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台资源表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1048\">\n<a:ObjectID>F6CBDD55-60A9-4F16-8426-166F661106CF</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1580625178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625202</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1049\">\n<a:ObjectID>83039C2E-46A3-43E5-9F44-0C2793617519</a:ObjectID>\n<a:Name>category_id</a:Name>\n<a:Code>category_id</a:Code>\n<a:CreationDate>1580869150</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869174</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>资源分类ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1050\">\n<a:ObjectID>A9E82014-27A7-49AF-9BF1-2F10A4ABC85D</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1580625197</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625272</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o1051\">\n<a:ObjectID>623196A3-33D6-4F77-909E-66A8F05CDD19</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1580625197</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625272</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>资源名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1052\">\n<a:ObjectID>01AB5B01-DA3F-4F28-A338-A916E623F2A0</a:ObjectID>\n<a:Name>url</a:Name>\n<a:Code>url</a:Code>\n<a:CreationDate>1580625197</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625272</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>资源URL</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1053\">\n<a:ObjectID>B3CFE91C-D059-421F-8D9C-17321C7F38E7</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1580805910</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580805939</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>描述</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1054\">\n<a:ObjectID>10E24F7A-0390-476B-BAAE-1882C0BBD062</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1580625178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625197</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1048\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1054\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o314\">\n<a:ObjectID>B66F7908-B143-4176-80A9-B2CF44529D08</a:ObjectID>\n<a:Name>ums_role_menu_relation</a:Name>\n<a:Code>ums_role_menu_relation</a:Code>\n<a:CreationDate>1580624663</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625352</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台角色菜单关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1055\">\n<a:ObjectID>0A34DDDB-B366-496A-AED8-416DE19149F5</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1580625308</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625325</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1056\">\n<a:ObjectID>2AE22924-4904-41FA-AFB7-B0CF7FCBFC56</a:ObjectID>\n<a:Name>role_id</a:Name>\n<a:Code>role_id</a:Code>\n<a:CreationDate>1580625333</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625372</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>角色ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1057\">\n<a:ObjectID>748FA33E-A269-4189-A357-21F5885427C4</a:ObjectID>\n<a:Name>menu_id</a:Name>\n<a:Code>menu_id</a:Code>\n<a:CreationDate>1580625352</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625372</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>菜单ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1058\">\n<a:ObjectID>882EFB9B-0F11-4AE1-995B-C15CEDF564FA</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1580625308</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625322</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1055\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1058\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o315\">\n<a:ObjectID>C19BEA79-6E19-4CAD-9E31-9415E802B9DE</a:ObjectID>\n<a:Name>ums_role_resource_relation</a:Name>\n<a:Code>ums_role_resource_relation</a:Code>\n<a:CreationDate>1580624686</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625435</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台角色资源关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1059\">\n<a:ObjectID>6DF052C6-67CA-4BAA-A125-9F03DEDA9012</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1580625392</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625411</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1060\">\n<a:ObjectID>83982BFF-3E3D-4E6F-A458-FF3075464342</a:ObjectID>\n<a:Name>role_id</a:Name>\n<a:Code>role_id</a:Code>\n<a:CreationDate>1580625421</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625454</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>角色ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1061\">\n<a:ObjectID>09F02FAF-844E-44FE-93C8-7B4623939F50</a:ObjectID>\n<a:Name>resource_id</a:Name>\n<a:Code>resource_id</a:Code>\n<a:CreationDate>1580625435</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625454</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>资源ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1062\">\n<a:ObjectID>AB798EFF-998F-4E0E-B0A4-A20719A6AF79</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1580625392</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625408</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1059\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1062\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o316\">\n<a:ObjectID>B0508AE4-FED1-47A1-A771-889573F7520B</a:ObjectID>\n<a:Name>ums_resource_category</a:Name>\n<a:Code>ums_resource_category</a:Code>\n<a:CreationDate>1580869056</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1581324455</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>资源分类表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1063\">\n<a:ObjectID>F885A10E-E590-447C-8D5D-BC2BCD3DB671</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1580869083</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869099</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1064\">\n<a:ObjectID>D01B83FC-5268-4206-B92F-8F9BFE927112</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1580869095</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o1065\">\n<a:ObjectID>B986AFDF-AFBB-4E49-93AA-5CAD7907153A</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1580869095</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1066\">\n<a:ObjectID>094290D5-34B8-4EE4-B629-670A4BAA7382</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1581324427</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1581324455</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序</a:Comment>\n<a:DataType>int(4)</a:DataType>\n<a:Length>4</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1067\">\n<a:ObjectID>70C39D60-14D7-4260-94E9-1F6025702EC5</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1580869083</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869095</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1063\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1067\"/>\n</c:PrimaryKey>\n</o:Table>\n</c:Tables>\n<c:References>\n<o:Reference Id=\"o8\">\n<a:ObjectID>F8B50533-7F4C-4BE7-984B-4FC6A1156DC9</a:ObjectID>\n<a:Name>Reference_1</a:Name>\n<a:Code>Reference_1</a:Code>\n<a:CreationDate>1521706257</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o235\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o234\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o375\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1068\">\n<a:ObjectID>5236F74C-2761-4AC4-834A-BECC5D040393</a:ObjectID>\n<a:CreationDate>1521706257</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o364\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o318\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o11\">\n<a:ObjectID>6B097280-D411-432F-9CA0-7FC52C306D0F</a:ObjectID>\n<a:Name>Reference_2</a:Name>\n<a:Code>Reference_2</a:Code>\n<a:CreationDate>1521710488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710488</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o236\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1069\">\n<a:ObjectID>6EE78803-E5F6-4090-B810-7BBF7814F60C</a:ObjectID>\n<a:CreationDate>1521710488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710488</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o377\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o14\">\n<a:ObjectID>3447013F-AE0F-4B19-9E82-DEC9658CF62C</a:ObjectID>\n<a:Name>Reference_3</a:Name>\n<a:Code>Reference_3</a:Code>\n<a:CreationDate>1521770349</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770349</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o237\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1070\">\n<a:ObjectID>84F722B4-DF57-4BC3-88FD-B249B70D21A7</a:ObjectID>\n<a:CreationDate>1521770349</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770349</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o389\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o17\">\n<a:ObjectID>869F562E-B664-4E18-BB85-9F518C39050E</a:ObjectID>\n<a:Name>Reference_4</a:Name>\n<a:Code>Reference_4</a:Code>\n<a:CreationDate>1521771362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o238\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1071\">\n<a:ObjectID>0309D83E-51C3-4973-A636-9FEB27F4A6B6</a:ObjectID>\n<a:CreationDate>1521771362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o396\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o20\">\n<a:ObjectID>43D29FF3-315F-4770-9486-03345B3B66AA</a:ObjectID>\n<a:Name>Reference_5</a:Name>\n<a:Code>Reference_5</a:Code>\n<a:CreationDate>1521773101</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773101</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o239\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o234\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o420\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1072\">\n<a:ObjectID>7B820697-9FFD-4446-B6DF-F03F4F02FFE3</a:ObjectID>\n<a:CreationDate>1521773101</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773101</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o408\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o319\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o23\">\n<a:ObjectID>2FA754C9-59E9-4BC2-9FBD-D1F329A2D40D</a:ObjectID>\n<a:Name>Reference_6</a:Name>\n<a:Code>Reference_6</a:Code>\n<a:CreationDate>1521783613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o240\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o234\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o429\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1073\">\n<a:ObjectID>13DDC5F6-372D-47FF-AAFA-8AEF349E7FA8</a:ObjectID>\n<a:CreationDate>1521783613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o421\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o320\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o26\">\n<a:ObjectID>FFC57989-A7DF-43DC-8E90-0875CEC112DD</a:ObjectID>\n<a:Name>Reference_9</a:Name>\n<a:Code>Reference_9</a:Code>\n<a:CreationDate>1521791466</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791466</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o241\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1074\">\n<a:ObjectID>31ADEBC6-F176-41A7-8EAA-9AC3B8A253AB</a:ObjectID>\n<a:CreationDate>1521791466</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791466</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o431\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o29\">\n<a:ObjectID>77C4D61A-9FF5-4B2C-8C48-A2F7DB88ACA3</a:ObjectID>\n<a:Name>Reference_10</a:Name>\n<a:Code>Reference_10</a:Code>\n<a:CreationDate>1521792428</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792428</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o242\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1075\">\n<a:ObjectID>F2B169B3-7AC8-4FB1-822D-E1C91DFF6FFD</a:ObjectID>\n<a:CreationDate>1521792428</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792428</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o437\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o32\">\n<a:ObjectID>617A3E38-261B-48D9-B387-A4C69D4A702C</a:ObjectID>\n<a:Name>Reference_11</a:Name>\n<a:Code>Reference_11</a:Code>\n<a:CreationDate>1521792909</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792909</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o243\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1076\">\n<a:ObjectID>00AD7B43-F4CA-45D7-86BB-5756B4ED55BD</a:ObjectID>\n<a:CreationDate>1521792909</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792909</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o443\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o36\">\n<a:ObjectID>085DA277-2667-4A8D-8E4D-2C4E6787357E</a:ObjectID>\n<a:Name>Reference_12</a:Name>\n<a:Code>Reference_12</a:Code>\n<a:CreationDate>1522045168</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045168</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o244\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o245\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o451\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1077\">\n<a:ObjectID>286E06C6-6FAD-4323-82D9-6FB781153C46</a:ObjectID>\n<a:CreationDate>1522045168</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045168</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o447\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o453\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o38\">\n<a:ObjectID>DC5FEA31-5D2A-491B-A87A-BC45A53A0130</a:ObjectID>\n<a:Name>Reference_13</a:Name>\n<a:Code>Reference_13</a:Code>\n<a:CreationDate>1522046100</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046100</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o244\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o234\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o451\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1078\">\n<a:ObjectID>A2161167-D453-4661-9BF0-71D8908A6C42</a:ObjectID>\n<a:CreationDate>1522046100</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046100</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o447\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o321\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o41\">\n<a:ObjectID>09737ED1-34A7-4624-9B3D-F971732EC3C5</a:ObjectID>\n<a:Name>Reference_14</a:Name>\n<a:Code>Reference_14</a:Code>\n<a:CreationDate>1522046451</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046451</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o246\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1079\">\n<a:ObjectID>E25FF0B6-41E2-4801-8FE9-337EF9B991F7</a:ObjectID>\n<a:CreationDate>1522046451</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046451</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o466\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o43\">\n<a:ObjectID>1299128F-FAC5-44E2-86E2-29EF4E7A1638</a:ObjectID>\n<a:Name>Reference_15</a:Name>\n<a:Code>Reference_15</a:Code>\n<a:CreationDate>1522046456</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046456</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o245\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o246\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o464\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1080\">\n<a:ObjectID>1E64FE44-48BA-49B0-BDE1-66DA22B89EFF</a:ObjectID>\n<a:CreationDate>1522046456</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046456</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o452\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o467\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o47\">\n<a:ObjectID>8C8A4C2F-CB98-46EE-A602-698B99A13C3C</a:ObjectID>\n<a:Name>Reference_18</a:Name>\n<a:Code>Reference_18</a:Code>\n<a:CreationDate>1522112691</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112691</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o248\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o249\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o489\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1081\">\n<a:ObjectID>DEE74089-6A6D-4D7E-BADD-76E4D08EFA2D</a:ObjectID>\n<a:CreationDate>1522112691</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112691</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o483\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o491\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o49\">\n<a:ObjectID>0326D95A-002E-4506-89DF-DC650D6B10F6</a:ObjectID>\n<a:Name>Reference_19</a:Name>\n<a:Code>Reference_19</a:Code>\n<a:CreationDate>1522112694</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112694</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o249\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1082\">\n<a:ObjectID>5D44A212-AD69-4958-BAAF-9E16ED63FC67</a:ObjectID>\n<a:CreationDate>1522112694</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112694</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o492\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o51\">\n<a:ObjectID>62935DB0-A2C4-4D4E-B949-5DE296753EC6</a:ObjectID>\n<a:Name>Reference_20</a:Name>\n<a:Code>Reference_20</a:Code>\n<a:CreationDate>1522114406</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522114406</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o239\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o239\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o420\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1083\">\n<a:ObjectID>ECA8F78C-7015-44EB-9CD2-F72634D7F4BD</a:ObjectID>\n<a:CreationDate>1522114406</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522114406</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o408\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o409\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o54\">\n<a:ObjectID>0054659D-2257-491E-BEFD-4E934EF1326A</a:ObjectID>\n<a:Name>Reference_21</a:Name>\n<a:Code>Reference_21</a:Code>\n<a:CreationDate>1522115961</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115961</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o239\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o250\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o420\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1084\">\n<a:ObjectID>32BD37D4-4436-4069-9BD1-90CF0B1867E0</a:ObjectID>\n<a:CreationDate>1522115961</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115961</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o408\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o495\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o56\">\n<a:ObjectID>7FB8F1DE-EB1D-4B05-BC25-7F9A9C34DAC1</a:ObjectID>\n<a:Name>Reference_22</a:Name>\n<a:Code>Reference_22</a:Code>\n<a:CreationDate>1522115983</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115983</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o245\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o250\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o464\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1085\">\n<a:ObjectID>1A23B754-71EE-4496-B70F-0A3268C6F651</a:ObjectID>\n<a:CreationDate>1522115983</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115983</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o452\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o496\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o59\">\n<a:ObjectID>C8AEC8AC-5477-406C-9A47-85CAC6E9156F</a:ObjectID>\n<a:Name>Reference_23</a:Name>\n<a:Code>Reference_23</a:Code>\n<a:CreationDate>1522118676</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118676</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o251\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1086\">\n<a:ObjectID>1C883E67-84F9-4CD0-A4F5-D7CA2BE15DC5</a:ObjectID>\n<a:CreationDate>1522118676</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118676</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o499\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o62\">\n<a:ObjectID>6877F189-A5DC-4EC1-A805-D6DF43A175A8</a:ObjectID>\n<a:Name>Reference_24</a:Name>\n<a:Code>Reference_24</a:Code>\n<a:CreationDate>1522119056</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119056</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o251\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o252\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o513\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1087\">\n<a:ObjectID>1CE2FCCB-DF37-4C88-99DD-FA8C3EE7A09C</a:ObjectID>\n<a:CreationDate>1522119056</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119056</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o498\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o515\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o66\">\n<a:ObjectID>9F3EABD4-B8AD-4807-800A-EBB309C50C27</a:ObjectID>\n<a:Name>Reference_25</a:Name>\n<a:Code>Reference_25</a:Code>\n<a:CreationDate>1522120295</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120295</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o253\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o254\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o528\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1088\">\n<a:ObjectID>7D8DC4F2-D0A4-4CE9-B03E-44AE166786C0</a:ObjectID>\n<a:CreationDate>1522120295</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120295</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o522\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o530\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o70\">\n<a:ObjectID>4D22CD29-D84A-4780-A3CD-E8951913B139</a:ObjectID>\n<a:Name>Reference_26</a:Name>\n<a:Code>Reference_26</a:Code>\n<a:CreationDate>1522138613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o255\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o256\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o549\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1089\">\n<a:ObjectID>7CB99F50-753B-4347-B896-1F18D8FE6691</a:ObjectID>\n<a:CreationDate>1522138613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o533\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o551\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o72\">\n<a:ObjectID>FDD92660-6932-4BCE-8F83-2E7A223145EB</a:ObjectID>\n<a:Name>Reference_27</a:Name>\n<a:Code>Reference_27</a:Code>\n<a:CreationDate>1522138618</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138618</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o256\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1090\">\n<a:ObjectID>EC89DA87-A575-4940-973B-665854268261</a:ObjectID>\n<a:CreationDate>1522138618</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138618</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o552\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o75\">\n<a:ObjectID>BF5F391A-A0AC-4940-B493-B42F4DEBFE59</a:ObjectID>\n<a:Name>Reference_28</a:Name>\n<a:Code>Reference_28</a:Code>\n<a:CreationDate>1522138705</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138705</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o257\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o255\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o560\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1091\">\n<a:ObjectID>8E1A22EC-2246-48C4-A499-3D8A4D264C09</a:ObjectID>\n<a:CreationDate>1522138705</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138705</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o554\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o534\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o79\">\n<a:ObjectID>E84C4311-62F4-47BD-A024-62877B7D0ED5</a:ObjectID>\n<a:Name>Reference_30</a:Name>\n<a:Code>Reference_30</a:Code>\n<a:CreationDate>1522141157</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141157</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o247\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o259\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o482\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1092\">\n<a:ObjectID>2EA7348D-C8E8-4FCC-8215-01FE3AD58DFB</a:ObjectID>\n<a:CreationDate>1522141157</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141157</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o470\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o571\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o82\">\n<a:ObjectID>C0A04A49-9B21-4470-8507-D61981F41EF2</a:ObjectID>\n<a:Name>Reference_29</a:Name>\n<a:Code>Reference_29</a:Code>\n<a:CreationDate>1522141232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141232</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o255\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o258\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o549\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1093\">\n<a:ObjectID>8B858AAC-D00A-42FE-BEDC-73536876C045</a:ObjectID>\n<a:CreationDate>1522141232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141232</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o533\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o562\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o85\">\n<a:ObjectID>E8C1A0E5-7AB4-48DD-96D0-BFC0F9081B35</a:ObjectID>\n<a:Name>Reference_31</a:Name>\n<a:Code>Reference_31</a:Code>\n<a:CreationDate>1522141316</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141317</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o260\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o247\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o583\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1094\">\n<a:ObjectID>FC3A22FE-FD24-4DF0-BAC8-22659D3C8987</a:ObjectID>\n<a:CreationDate>1522141317</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141317</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o577\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o471\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o89\">\n<a:ObjectID>99192031-40EE-41ED-A43C-B27CC1039A2B</a:ObjectID>\n<a:Name>Reference_32</a:Name>\n<a:Code>Reference_32</a:Code>\n<a:CreationDate>1522142006</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142006</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o262\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o261\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o599\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1095\">\n<a:ObjectID>14DB9C0C-F9F0-4D4A-B44E-592028F6E75A</a:ObjectID>\n<a:CreationDate>1522142006</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142006</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o593\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o585\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o93\">\n<a:ObjectID>C562CD4F-BAD5-44CE-B507-727743B42808</a:ObjectID>\n<a:Name>Reference_33</a:Name>\n<a:Code>Reference_33</a:Code>\n<a:CreationDate>1522215975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215975</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o265\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o266\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o626\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1096\">\n<a:ObjectID>15304E84-71AA-40B1-84CB-904384B34B25</a:ObjectID>\n<a:CreationDate>1522215975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215975</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o608\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o628\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o95\">\n<a:ObjectID>049BB766-61EB-47C0-B95D-D25AFDB59734</a:ObjectID>\n<a:Name>Reference_34</a:Name>\n<a:Code>Reference_34</a:Code>\n<a:CreationDate>1522216015</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216015</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o266\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1097\">\n<a:ObjectID>457237AD-87EB-4A09-BA9F-36198B10D2FF</a:ObjectID>\n<a:CreationDate>1522216015</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216015</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o629\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o98\">\n<a:ObjectID>5D590043-1882-4A9B-8FC1-D9DC8580E02C</a:ObjectID>\n<a:Name>Reference_35</a:Name>\n<a:Code>Reference_35</a:Code>\n<a:CreationDate>1522216251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216251</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o265\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o267\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o626\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1098\">\n<a:ObjectID>3C2E5F27-A07C-4D88-9357-089D36122A25</a:ObjectID>\n<a:CreationDate>1522216251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216251</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o608\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o634\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o100\">\n<a:ObjectID>B5428618-7278-427D-A8BC-5CCB75A2547F</a:ObjectID>\n<a:Name>Reference_36</a:Name>\n<a:Code>Reference_36</a:Code>\n<a:CreationDate>1522216380</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216380</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o239\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o267\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o420\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1099\">\n<a:ObjectID>A8FA4798-0F1E-4D96-A254-77F5D71F6BBD</a:ObjectID>\n<a:CreationDate>1522216380</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216380</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o408\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o635\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o103\">\n<a:ObjectID>849E47A7-94DA-40C1-879A-F1C6E0C5CD19</a:ObjectID>\n<a:Name>Reference_37</a:Name>\n<a:Code>Reference_37</a:Code>\n<a:CreationDate>1522220508</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220508</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o265\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o268\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o626\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1100\">\n<a:ObjectID>5026171A-4B51-4B83-A113-4051F1E4F415</a:ObjectID>\n<a:CreationDate>1522220508</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220508</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o608\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o640\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o106\">\n<a:ObjectID>C3B9AA1D-7C7C-4CAD-885D-1542021D30E7</a:ObjectID>\n<a:Name>Reference_38</a:Name>\n<a:Code>Reference_38</a:Code>\n<a:CreationDate>1522220546</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220546</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o268\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1101\">\n<a:ObjectID>462222B9-A203-4D60-A353-A168356E3140</a:ObjectID>\n<a:CreationDate>1522220546</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220546</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o641\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o109\">\n<a:ObjectID>AF0E4AD5-A4B3-4095-8D2E-FF466A7FFBDC</a:ObjectID>\n<a:Name>Reference_39</a:Name>\n<a:Code>Reference_39</a:Code>\n<a:CreationDate>1522224364</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224364</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o235\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o270\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o375\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1102\">\n<a:ObjectID>BD28F911-4F98-4C9D-9171-E99F60476E2A</a:ObjectID>\n<a:CreationDate>1522224364</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224364</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o364\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o672\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o112\">\n<a:ObjectID>2E5F5354-7D3D-4CBE-9D6E-F7BF6EE3BB1E</a:ObjectID>\n<a:Name>Reference_40</a:Name>\n<a:Code>Reference_40</a:Code>\n<a:CreationDate>1522225874</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225874</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o271\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1103\">\n<a:ObjectID>8D1675C9-7749-4831-A5E6-ACD971AACF57</a:ObjectID>\n<a:CreationDate>1522225874</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225874</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o678\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o115\">\n<a:ObjectID>C7DCAECF-68BD-47D9-8C52-36A6B50C90C6</a:ObjectID>\n<a:Name>Reference_41</a:Name>\n<a:Code>Reference_41</a:Code>\n<a:CreationDate>1522226077</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226077</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o272\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1104\">\n<a:ObjectID>B30347B3-4138-4EA8-A0F5-EF0D9A34E01F</a:ObjectID>\n<a:CreationDate>1522226077</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226077</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o684\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o118\">\n<a:ObjectID>C11B5AAF-045B-4A2E-930C-71B38674EDCB</a:ObjectID>\n<a:Name>Reference_42</a:Name>\n<a:Code>Reference_42</a:Code>\n<a:CreationDate>1522226272</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226272</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o255\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o273\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o549\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1105\">\n<a:ObjectID>7D29D8DF-7EF1-4F43-928F-DDAC96A23858</a:ObjectID>\n<a:CreationDate>1522226272</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226272</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o533\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o690\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o121\">\n<a:ObjectID>B7417B7A-09B8-43CE-A17E-01ACFEC78BF6</a:ObjectID>\n<a:Name>Reference_44</a:Name>\n<a:Code>Reference_44</a:Code>\n<a:CreationDate>1522303390</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303390</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o277\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1106\">\n<a:ObjectID>942BBD31-85B8-46EA-893C-CB327C86F5BA</a:ObjectID>\n<a:CreationDate>1522303390</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303390</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o716\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o123\">\n<a:ObjectID>EF622572-2304-4875-8869-C1821D4BAA12</a:ObjectID>\n<a:Name>Reference_45</a:Name>\n<a:Code>Reference_45</a:Code>\n<a:CreationDate>1522303410</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303410</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o277\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1107\">\n<a:ObjectID>1E5174EE-C0B0-4144-98D5-679634DCCAEE</a:ObjectID>\n<a:CreationDate>1522303410</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303410</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o717\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o127\">\n<a:ObjectID>F7E27FB8-7156-4A4D-BC61-18CCE2DD98AA</a:ObjectID>\n<a:Name>Reference_46</a:Name>\n<a:Code>Reference_46</a:Code>\n<a:CreationDate>1522304178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304178</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o278\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o279\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o733\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1108\">\n<a:ObjectID>BD55704C-3F36-44CC-90E1-143F097FA894</a:ObjectID>\n<a:CreationDate>1522304178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304178</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o723\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o735\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o130\">\n<a:ObjectID>4D49B5C2-72FC-4407-9705-D42C0F203767</a:ObjectID>\n<a:Name>Reference_47</a:Name>\n<a:Code>Reference_47</a:Code>\n<a:CreationDate>1522386868</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522386868</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o280\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o269\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o754\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1109\">\n<a:ObjectID>17EC5CAA-580C-493D-9C2D-2EA3E9732A78</a:ObjectID>\n<a:CreationDate>1522386868</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522386868</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o741\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o652\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o133\">\n<a:ObjectID>C55C7A99-C315-4D03-AEDF-B5F8BCBCD8A4</a:ObjectID>\n<a:Name>Reference_48</a:Name>\n<a:Code>Reference_48</a:Code>\n<a:CreationDate>1522387461</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387461</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o281\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1110\">\n<a:ObjectID>F469B162-D88C-42A3-B64C-7B2751A4FCE1</a:ObjectID>\n<a:CreationDate>1522387461</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387461</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o756\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o135\">\n<a:ObjectID>CC1956B2-80D6-420D-9596-2ADE9F622A89</a:ObjectID>\n<a:Name>Reference_49</a:Name>\n<a:Code>Reference_49</a:Code>\n<a:CreationDate>1522387526</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387526</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o239\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o281\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o420\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1111\">\n<a:ObjectID>1D18BF30-4375-4618-A1C9-6DC998F248E4</a:ObjectID>\n<a:CreationDate>1522387526</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387526</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o408\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o757\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o138\">\n<a:ObjectID>74DB905B-E0F5-48AE-81CF-EF09159E2FF7</a:ObjectID>\n<a:Name>Reference_50</a:Name>\n<a:Code>Reference_50</a:Code>\n<a:CreationDate>1522389232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389232</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o282\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1112\">\n<a:ObjectID>183F9969-663E-4842-ABC2-C938F02C05E4</a:ObjectID>\n<a:CreationDate>1522389232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389232</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o760\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o141\">\n<a:ObjectID>7E2E910E-DFB4-4EB6-901A-B90812F54A87</a:ObjectID>\n<a:Name>Reference_51</a:Name>\n<a:Code>Reference_51</a:Code>\n<a:CreationDate>1522390434</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390434</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o283\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1113\">\n<a:ObjectID>AC355266-228D-4333-8E95-D13F2D176DB4</a:ObjectID>\n<a:CreationDate>1522390434</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390434</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o777\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o144\">\n<a:ObjectID>1BDEC7E5-B286-4BE4-8433-B6BD7A1C975A</a:ObjectID>\n<a:Name>Reference_52</a:Name>\n<a:Code>Reference_52</a:Code>\n<a:CreationDate>1522390644</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390644</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o284\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1114\">\n<a:ObjectID>3A358827-AE90-4AC6-80E6-CA340D69F7F2</a:ObjectID>\n<a:CreationDate>1522390644</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390644</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o788\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o147\">\n<a:ObjectID>AD855909-C83E-4375-8C80-7C2D7AC7075C</a:ObjectID>\n<a:Name>Reference_53</a:Name>\n<a:Code>Reference_53</a:Code>\n<a:CreationDate>1522391366</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391366</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o286\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1115\">\n<a:ObjectID>B0F12E0B-F2E6-40A6-AD2B-9FE858AAA8BE</a:ObjectID>\n<a:CreationDate>1522391366</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391366</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o801\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o150\">\n<a:ObjectID>E0AA6F91-B6EB-44AB-A3FB-B63A84A5DF06</a:ObjectID>\n<a:Name>Reference_54</a:Name>\n<a:Code>Reference_54</a:Code>\n<a:CreationDate>1522391379</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391380</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o285\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o286\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o799\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1116\">\n<a:ObjectID>F46C48A9-78A1-4C9A-BD75-DE0ED230A76D</a:ObjectID>\n<a:CreationDate>1522391379</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391380</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o795\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o802\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o153\">\n<a:ObjectID>BDACC991-AA2F-4A86-A7A7-BE7FD95D68F2</a:ObjectID>\n<a:Name>Reference_55</a:Name>\n<a:Code>Reference_55</a:Code>\n<a:CreationDate>1522396648</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396648</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o287\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1117\">\n<a:ObjectID>711AD4D5-212E-4E3B-BB26-DB79C4BE4E52</a:ObjectID>\n<a:CreationDate>1522396648</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396648</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o805\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o156\">\n<a:ObjectID>953F316F-943C-409D-87E2-A580F91F41DF</a:ObjectID>\n<a:Name>Reference_56</a:Name>\n<a:Code>Reference_56</a:Code>\n<a:CreationDate>1522396864</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396864</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o288\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1118\">\n<a:ObjectID>094B7BE5-D0AB-4987-8D74-508A27D3117F</a:ObjectID>\n<a:CreationDate>1522396864</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396864</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o814\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o159\">\n<a:ObjectID>EBD78B02-B47D-4132-A641-E9C384074F6F</a:ObjectID>\n<a:Name>Reference_57</a:Name>\n<a:Code>Reference_57</a:Code>\n<a:CreationDate>1522659209</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659209</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o295\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1119\">\n<a:ObjectID>8C15D427-62A0-40E7-9B02-84063CC6EB94</a:ObjectID>\n<a:CreationDate>1522659209</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659209</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o843\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o162\">\n<a:ObjectID>8A0714E1-3D0A-4983-AFD9-0AF0F17B0D22</a:ObjectID>\n<a:Name>Reference_58</a:Name>\n<a:Code>Reference_58</a:Code>\n<a:CreationDate>1522660753</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660753</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o295\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o296\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o886\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1120\">\n<a:ObjectID>043B7E7F-6688-42FD-BECE-3A4CE5A560F2</a:ObjectID>\n<a:CreationDate>1522660753</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660753</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o842\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o888\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o164\">\n<a:ObjectID>3BFC406B-AABB-48D0-BA77-69DB4EE17B0D</a:ObjectID>\n<a:Name>Reference_59</a:Name>\n<a:Code>Reference_59</a:Code>\n<a:CreationDate>1522660820</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660820</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o296\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1121\">\n<a:ObjectID>3592DAA0-2C95-48CF-9359-C157A0E27DC3</a:ObjectID>\n<a:CreationDate>1522660820</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660820</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o890\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o166\">\n<a:ObjectID>E36F0963-FA3D-49E2-99B0-1818EF60077C</a:ObjectID>\n<a:Name>Reference_60</a:Name>\n<a:Code>Reference_60</a:Code>\n<a:CreationDate>1522721755</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721755</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o280\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o241\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o754\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1122\">\n<a:ObjectID>BEE8D279-8DBF-40B3-899D-5B07570D0AD9</a:ObjectID>\n<a:CreationDate>1522721755</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721755</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o741\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o432\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o168\">\n<a:ObjectID>31949834-0CD4-4F67-A0A6-FA63B62C6B04</a:ObjectID>\n<a:Name>Reference_61</a:Name>\n<a:Code>Reference_61</a:Code>\n<a:CreationDate>1522724329</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724329</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o265\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o295\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o626\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1123\">\n<a:ObjectID>F5D0566A-35C3-4451-9C7D-782BC776C53E</a:ObjectID>\n<a:CreationDate>1522724329</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724329</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o608\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o844\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o171\">\n<a:ObjectID>AD47F573-29CC-4DB6-AFE1-BA511E55D40F</a:ObjectID>\n<a:Name>Reference_62</a:Name>\n<a:Code>Reference_62</a:Code>\n<a:CreationDate>1522725331</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725331</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o295\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o297\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o886\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1124\">\n<a:ObjectID>3AA8813B-9363-406A-91DF-4AD16E9C3CCA</a:ObjectID>\n<a:CreationDate>1522725331</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725331</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o842\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o913\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o174\">\n<a:ObjectID>16852476-7A1F-4AF5-81A5-D4C089766A13</a:ObjectID>\n<a:Name>Reference_63</a:Name>\n<a:Code>Reference_63</a:Code>\n<a:CreationDate>1522733188</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733188</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o295\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o300\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o886\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1125\">\n<a:ObjectID>DD05624A-7E08-4273-9758-C5EDA1A03134</a:ObjectID>\n<a:CreationDate>1522733188</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733188</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o842\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o927\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o177\">\n<a:ObjectID>5BC95764-C216-4A1C-8602-16F14615F674</a:ObjectID>\n<a:Name>Reference_64</a:Name>\n<a:Code>Reference_64</a:Code>\n<a:CreationDate>1522745521</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745521</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o301\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o300\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o964\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1126\">\n<a:ObjectID>EBF8A4B9-24B3-4D18-82FD-D12F847328C6</a:ObjectID>\n<a:CreationDate>1522745521</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745521</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o954\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o928\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o180\">\n<a:ObjectID>98A2D313-20A0-4AD2-B2BE-F85A6867D79D</a:ObjectID>\n<a:Name>Reference_65</a:Name>\n<a:Code>Reference_65</a:Code>\n<a:CreationDate>1533109967</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533109995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o304\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1127\">\n<a:ObjectID>BA7665F0-D173-45C6-AFE8-3C93CF330D79</a:ObjectID>\n<a:CreationDate>1533109970</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533109995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o972\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o182\">\n<a:ObjectID>814C49F7-4720-47CE-A38D-88721D01BA84</a:ObjectID>\n<a:Name>Reference_66</a:Name>\n<a:Code>Reference_66</a:Code>\n<a:CreationDate>1533115827</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115846</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o236\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o304\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o387\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1128\">\n<a:ObjectID>521484A5-B9C4-477D-8D45-97F7B15D7854</a:ObjectID>\n<a:CreationDate>1533115829</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115846</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o376\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o973\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o184\">\n<a:ObjectID>3B60C0B9-CC92-447D-838C-B9BA857608AE</a:ObjectID>\n<a:Name>Reference_67</a:Name>\n<a:Code>Reference_67</a:Code>\n<a:CreationDate>1533115888</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o304\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1129\">\n<a:ObjectID>FCADB7B3-0636-44C7-8AB4-067148971867</a:ObjectID>\n<a:CreationDate>1533115896</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o974\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o187\">\n<a:ObjectID>46FBCD47-38FC-487C-B390-7FE833196F94</a:ObjectID>\n<a:Name>Reference_68</a:Name>\n<a:Code>Reference_68</a:Code>\n<a:CreationDate>1538202362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o306\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o306\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1008\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1130\">\n<a:ObjectID>D2F8A3AD-54BE-4AE4-A988-128511B938A4</a:ObjectID>\n<a:CreationDate>1538202362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o998\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o999\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o190\">\n<a:ObjectID>C76888E3-16C6-4761-8136-511A526B6512</a:ObjectID>\n<a:Name>Reference_69</a:Name>\n<a:Code>Reference_69</a:Code>\n<a:CreationDate>1538202471</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202471</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o278\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o307\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o733\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1131\">\n<a:ObjectID>993B6DB6-8CE7-4A56-9273-AA66FB16F4A0</a:ObjectID>\n<a:CreationDate>1538202471</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202471</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o723\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1010\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o193\">\n<a:ObjectID>7D3662ED-D661-4086-BA3C-C9927BAEA31B</a:ObjectID>\n<a:Name>Reference_70</a:Name>\n<a:Code>Reference_70</a:Code>\n<a:CreationDate>1538202492</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202492</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o305\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o307\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o997\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1132\">\n<a:ObjectID>E47EA734-EA83-4289-8295-068CBD82C878</a:ObjectID>\n<a:CreationDate>1538202492</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202492</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o990\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1011\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o196\">\n<a:ObjectID>C27AC470-B6D5-4DEB-8985-4436775FF6EC</a:ObjectID>\n<a:Name>Reference_71</a:Name>\n<a:Code>Reference_71</a:Code>\n<a:CreationDate>1538202586</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o305\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o308\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o997\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1133\">\n<a:ObjectID>C3D164FC-7971-4ECF-B2F0-6B384C75DB8A</a:ObjectID>\n<a:CreationDate>1538202586</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o990\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1014\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o198\">\n<a:ObjectID>6C1E998D-3BE1-473B-A219-C12E87F599FC</a:ObjectID>\n<a:Name>Reference_72</a:Name>\n<a:Code>Reference_72</a:Code>\n<a:CreationDate>1538202588</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202588</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o306\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o308\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1008\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1134\">\n<a:ObjectID>5D69B943-755C-4D8A-90CC-525B02C3D50C</a:ObjectID>\n<a:CreationDate>1538202588</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202588</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o998\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1015\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o201\">\n<a:ObjectID>3A33B8D1-62CE-4DF3-9EAE-8F419CAA8AA8</a:ObjectID>\n<a:Name>Reference_73</a:Name>\n<a:Code>Reference_73</a:Code>\n<a:CreationDate>1538202927</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202927</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o278\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o309\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o733\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1135\">\n<a:ObjectID>C4F1E261-E196-4270-8809-851FB823B079</a:ObjectID>\n<a:CreationDate>1538202927</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202927</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o723\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1018\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o203\">\n<a:ObjectID>409CA456-66FD-4551-9709-9B58BAD20CBC</a:ObjectID>\n<a:Name>Reference_74</a:Name>\n<a:Code>Reference_74</a:Code>\n<a:CreationDate>1538202929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202929</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o306\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o309\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1008\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1136\">\n<a:ObjectID>9040B9D2-76A5-43F5-8889-3E21C379E806</a:ObjectID>\n<a:CreationDate>1538202929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202929</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o998\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1019\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o205\">\n<a:ObjectID>D8C09BAD-5666-4751-B992-C48035FB286A</a:ObjectID>\n<a:Name>Reference_75</a:Name>\n<a:Code>Reference_75</a:Code>\n<a:CreationDate>1539746524</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746524</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o300\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1137\">\n<a:ObjectID>6D41CF48-9B5F-47F1-8391-F0BC65998A26</a:ObjectID>\n<a:CreationDate>1539746524</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746524</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o929\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o207\">\n<a:ObjectID>E104E0D2-AE63-4FC2-8695-C31D32B33047</a:ObjectID>\n<a:Name>Reference_76</a:Name>\n<a:Code>Reference_76</a:Code>\n<a:CreationDate>1541490540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o295\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o268\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o886\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1138\">\n<a:ObjectID>933A26A1-5D64-4E1E-A05E-F70A9A4571A1</a:ObjectID>\n<a:CreationDate>1541490552</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o842\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o642\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o211\">\n<a:ObjectID>490FFEDD-0E16-49CD-83FA-07FE29AB81E1</a:ObjectID>\n<a:Name>Reference_77</a:Name>\n<a:Code>Reference_77</a:Code>\n<a:CreationDate>1542179374</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179374</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o276\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o311\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o714\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1139\">\n<a:ObjectID>CF2A4EB2-4046-4B11-A333-E288CA091AFF</a:ObjectID>\n<a:CreationDate>1542179374</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179374</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o708\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1030\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o214\">\n<a:ObjectID>C932213B-EF31-4E19-9C72-6C17A0AFDB6D</a:ObjectID>\n<a:Name>Reference_78</a:Name>\n<a:Code>Reference_78</a:Code>\n<a:CreationDate>1542179394</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179394</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o310\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o311\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1028\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1140\">\n<a:ObjectID>F03E2D7F-4760-4BDE-AB11-2394F26DB466</a:ObjectID>\n<a:CreationDate>1542179394</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179394</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o1022\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1031\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o216\">\n<a:ObjectID>17B2ADB4-4810-47D6-B703-99E62E4AFA4D</a:ObjectID>\n<a:Name>Reference_79</a:Name>\n<a:Code>Reference_79</a:Code>\n<a:CreationDate>1542179438</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o311\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1141\">\n<a:ObjectID>389ADFA5-E125-4583-ADBE-95053D3F0C72</a:ObjectID>\n<a:CreationDate>1542179440</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1032\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o219\">\n<a:ObjectID>4E8DE47E-16C3-4F6B-B284-06B30C3CB07D</a:ObjectID>\n<a:Name>Reference_80</a:Name>\n<a:Code>Reference_80</a:Code>\n<a:CreationDate>1580625109</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625129</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o312\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o312\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1047\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1142\">\n<a:ObjectID>9085DD5C-8F83-493E-9CFE-628DA54C8B96</a:ObjectID>\n<a:CreationDate>1580625109</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625129</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o1038\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1039\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o222\">\n<a:ObjectID>46BCEBF1-E21B-4EB3-A8DE-A5A2BAFFFBB6</a:ObjectID>\n<a:Name>Reference_81</a:Name>\n<a:Code>Reference_81</a:Code>\n<a:CreationDate>1580625333</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625333</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o305\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o314\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o997\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1143\">\n<a:ObjectID>A48E310F-1E8C-4B06-AF1B-4D070613C9E4</a:ObjectID>\n<a:CreationDate>1580625333</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625333</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o990\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1056\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o224\">\n<a:ObjectID>D4BF3C8D-A91A-4E49-82E9-CB738227C8C8</a:ObjectID>\n<a:Name>Reference_82</a:Name>\n<a:Code>Reference_82</a:Code>\n<a:CreationDate>1580625352</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625352</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o312\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o314\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1047\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1144\">\n<a:ObjectID>BF0FFD9A-62E7-47E9-84FB-9F2E08021926</a:ObjectID>\n<a:CreationDate>1580625352</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625352</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o1038\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1057\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o227\">\n<a:ObjectID>2E6DA228-0727-43B1-8814-D25233A0BCC6</a:ObjectID>\n<a:Name>Reference_83</a:Name>\n<a:Code>Reference_83</a:Code>\n<a:CreationDate>1580625421</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625421</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o305\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o315\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o997\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1145\">\n<a:ObjectID>6F492BCB-5604-4D5C-9DFE-B622A7D5FC91</a:ObjectID>\n<a:CreationDate>1580625421</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625421</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o990\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1060\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o230\">\n<a:ObjectID>CB1FAF78-7706-4745-8F2F-A9B2BDCFA7D2</a:ObjectID>\n<a:Name>Reference_84</a:Name>\n<a:Code>Reference_84</a:Code>\n<a:CreationDate>1580625435</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625435</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o313\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o315\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1054\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1146\">\n<a:ObjectID>B77FA1D0-9DDC-4FD9-B5FA-24CF8FE39B40</a:ObjectID>\n<a:CreationDate>1580625435</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625435</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o1048\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1061\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o233\">\n<a:ObjectID>F00FBAAE-944C-4129-B221-009502135923</a:ObjectID>\n<a:Name>Reference_85</a:Name>\n<a:Code>Reference_85</a:Code>\n<a:CreationDate>1580869150</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869150</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o316\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o313\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1067\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1147\">\n<a:ObjectID>6D8367E1-F1BA-4FAF-A735-B63D8A8D5D7A</a:ObjectID>\n<a:CreationDate>1580869150</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869150</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o1063\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1049\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n</c:References>\n<c:DefaultGroups>\n<o:Group Id=\"o1148\">\n<a:ObjectID>48492A0F-63AD-4453-B46B-89915CC87545</a:ObjectID>\n<a:Name>PUBLIC</a:Name>\n<a:Code>PUBLIC</a:Code>\n<a:CreationDate>1521705583</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521705583</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n</o:Group>\n</c:DefaultGroups>\n<c:TargetModels>\n<o:TargetModel Id=\"o1149\">\n<a:ObjectID>232AA7B8-E743-48F3-9530-102684B229BE</a:ObjectID>\n<a:Name>MySQL 5.0</a:Name>\n<a:Code>MYSQL50</a:Code>\n<a:CreationDate>1521705583</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521705583</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:TargetModelURL>file:///%_DBMS%/mysql50.xdb</a:TargetModelURL>\n<a:TargetModelID>F4F16ECD-F2F1-4006-AF6F-638D5C65F35E</a:TargetModelID>\n<a:TargetModelClassID>4BA9F647-DAB1-11D1-9944-006097355D9B</a:TargetModelClassID>\n<a:TargetModelLastModificationDate>1276524678</a:TargetModelLastModificationDate>\n<c:SessionShortcuts>\n<o:Shortcut Ref=\"o3\"/>\n</c:SessionShortcuts>\n</o:TargetModel>\n</c:TargetModels>\n</o:Model>\n</c:Children>\n</o:RootObject>\n\n</Model>"
  },
  {
    "path": "document/pdm/mall.pdm",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<?PowerDesigner AppLocale=\"UTF16\" ID=\"{7BB41C87-EFE8-409A-A86E-B1C3FCE34F8C}\" Label=\"\" LastModificationDate=\"1582621151\" Name=\"mall\" Objects=\"1197\" Symbols=\"156\" Target=\"MySQL 5.0\" Type=\"{CDE44E21-9669-11D1-9914-006097355D9B}\" signature=\"PDM_DATA_MODEL_XML\" version=\"16.5.0.3982\"?>\n<!-- do not edit this file -->\n\n<Model xmlns:a=\"attribute\" xmlns:c=\"collection\" xmlns:o=\"object\">\n\n<o:RootObject Id=\"o1\">\n<c:Children>\n<o:Model Id=\"o2\">\n<a:ObjectID>7BB41C87-EFE8-409A-A86E-B1C3FCE34F8C</a:ObjectID>\n<a:Name>mall</a:Name>\n<a:Code>mall</a:Code>\n<a:CreationDate>1521705583</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869150</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:PackageOptionsText>[FolderOptions]\n\n[FolderOptions\\Physical Objects]\nGenerationCheckModel=Yes\nGenerationPath=\nGenerationOptions=\nGenerationTasks=\nGenerationTargets=\nGenerationSelections=\nRevPkey=Yes\nRevFkey=Yes\nRevAkey=Yes\nRevCheck=Yes\nRevIndx=Yes\nRevOpts=Yes\nRevViewAsTabl=No\nRevViewOpts=Yes\nRevSystAsTabl=Yes\nRevTablPerm=No\nRevViewPerm=No\nRevProcPerm=No\nRevDbpkPerm=No\nRevSqncPerm=No\nRevAdtPerm=No\nRevUserPriv=No\nRevUserOpts=No\nRevGrpePriv=No\nRevRolePriv=No\nRevDtbsOpts=Yes\nRevDtbsPerm=No\nRevViewIndx=Yes\nRevJidxOpts=Yes\nRevStats=No\nRevTspcPerm=No\nRevCaseSensitive=No\nGenTrgrStdMsg=Yes\nGenTrgrMsgTab=\nGenTrgrMsgNo=\nGenTrgrMsgTxt=\nTrgrPreserve=No\nTrgrIns=Yes\nTrgrUpd=Yes\nTrgrDel=Yes\nTrgrC2Ins=Yes\nTrgrC2Upd=Yes\nTrgrC3=Yes\nTrgrC4=Yes\nTrgrC5=Yes\nTrgrC6=Yes\nTrgrC7=Yes\nTrgrC8=Yes\nTrgrC9=Yes\nTrgrC10=Yes\nTrgrC11=Yes\nTrgrC1=Yes\nTrgrC12Ins=Yes\nTrgrC12Upd=Yes\nTrgrC13=Yes\nUpdateTableStatistics=Yes\nUpdateColumnStatistics=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation]\nGenScriptName=create.sql\nGenScriptName0=update.sql\nGenScriptName1=crebas.sql\nGenScriptName2=crebas\nGenScriptName3=\nGenScriptName4=\nGenScriptName5=\nGenScriptName6=\nGenScriptName7=\nGenScriptName8=\nGenScriptName9=\nGenPathName=C:\\Users\\zhenghong\\Desktop\\\nGenSingleFile=Yes\nGenODBC=No\nGenCheckModel=Yes\nGenScriptPrev=Yes\nGenArchiveModel=No\nGenUseSync=No\nGenSyncChoice=0\nGenSyncArch=\nGenSyncRmg=0\n\n[FolderOptions\\Physical Objects\\Database Generation\\Format]\nGenScriptTitle=Yes\nGenScriptNamLabl=No\nGenScriptQDtbs=No\nGenScriptQOwnr=Yes\nGenScriptCase=0\nGenScriptEncoding=UTF8\nGenScriptNAcct=No\nIdentifierDelimiter=&quot;\n\n[FolderOptions\\Physical Objects\\Database Generation\\Database]\nCreate=Yes\nOpen=Yes\nClose=Yes\nDrop=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Database\\Create]\nPhysical Options=Yes\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Tablespace]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Tablespace\\Create]\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Storage]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\User]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPrivilege=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\User\\Create]\nPhysical Options=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Group]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPrivilege=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Role]\nCreate=Yes\nDrop=Yes\nPrivilege=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\UserDefinedDataType]\nCreate=Yes\nComment=Yes\nDrop=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\UserDefinedDataType\\Create]\nDefault value=Yes\nCheck=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\AbstractDataType]\nCreate=Yes\nHeader=Yes\nFooter=Yes\nDrop=Yes\nComment=Yes\nInstall JAVA class=Yes\nRemove JAVA class=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Rule]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Default]\nCreate=Yes\nComment=Yes\nDrop=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Sequence]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column]\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Table]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Table\\Create]\nCheck=Yes\nPhysical Options=Yes\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Table\\Create\\Check]\nConstraint declaration=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Column]\nUser datatype=No\nDefault value=Yes\nCheck=Yes\nPhysical Options=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Column\\Check]\nConstraint declaration=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Key]\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Key\\Primary key]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Key\\Primary key\\Create]\nConstraint declaration=No\nPhysical Options=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Key\\Alternate key]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Key\\Alternate key\\Create]\nConstraint declaration=No\nPhysical Options=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Foreign key]\nCreate=No\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Foreign key\\Create]\nConstraint declaration=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Index]\nCreate=No\nDrop=No\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Index\\Create]\nConstraint declaration=Yes\nPhysical Options=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Index\\Filter]\nPrimary key=No\nForeign key=No\nAlternate key=No\nCluster=Yes\nOther=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Trigger]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Table&amp;&amp;Column\\Trigger\\Filter]\nFor insert=Yes\nFor update=Yes\nFor delete=Yes\nFor other=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\Create]\nForce Column list=No\nPhysical Options=Yes\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\ViewColumn]\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\ViewIndex]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\ViewIndex\\Create]\nPhysical Options=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\ViewIndex\\Filter]\nCluster=Yes\nOther=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\Trigger]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\View\\Trigger\\Filter]\nFor insert=Yes\nFor update=Yes\nFor delete=Yes\nFor other=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\DBMSTrigger]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Synonym]\nCreate=Yes\nDrop=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Synonym\\Filter]\nTable=Yes\nView=Yes\nProc=Yes\nSynonym=Yes\nDatabase Package=Yes\nSequence=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\JoinIndex]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\JoinIndex\\Create]\nPhysical Options=Yes\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Procedure]\nCreate=Yes\nDrop=Yes\nComment=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\Procedure\\Create]\nHeader=Yes\nFooter=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\DatabasePackage]\nCreate=Yes\nDrop=Yes\nPermission=No\n\n[FolderOptions\\Physical Objects\\Database Generation\\WebService]\nCreate=Yes\nDrop=Yes\nComment=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Dimension]\nCreate=Yes\nDrop=Yes\n\n[FolderOptions\\Physical Objects\\Database Generation\\Synchronization]\nGenBackupTabl=1\nGenKeepBackTabl=1\nGenTmpTablDrop=No\nGenKeepTablOpts=No\n\n[FolderOptions\\Physical Objects\\Test Data]\nGenDataPathName=C:\\Users\\zhenghong\\Desktop\\\nGenDataSinglefile=Yes\nGenDataScriptName=testdata.sql\nGenDataScriptName0=\nGenDataScriptName1=\nGenDataScriptName2=\nGenDataScriptName3=\nGenDataScriptName4=\nGenDataScriptName5=\nGenDataScriptName6=\nGenDataScriptName7=\nGenDataScriptName8=\nGenDataScriptName9=\nGenDataOdbc=0\nGenDataDelOld=No\nGenDataTitle=No\nGenDataDefNumRows=20\nGenDataCommit=0\nGenDataPacket=0\nGenDataOwner=No\nGenDataProfNumb=\nGenDataProfChar=\nGenDataProfDate=\nGenDataCSVSeparator=,\nGenDataFileFormat=CSV\nGenDataUseWizard=No\n\n[FolderOptions\\Pdm]\nIndxIQName=%COLUMN%_%INDEXTYPE%\nIndxPK=Yes\nIndxFK=Yes\nIndxAK=Yes\nIndxPKName=%TABLE%_PK\nIndxFKName=%REFR%_FK\nIndxAKName=%AKEY%_AK\nIndxPreserve=No\nIndxThreshold=0\nIndxStats=No\nRefrPreserve=No\nJidxPreserve=No\nRbldMultiFact=Yes\nRbldMultiDim=Yes\nRbldMultiJidx=Yes\nCubePreserve=No\nTablStProcPreserve=No\nProcDepPreserve=Yes\nTrgrDepPreserve=Yes\nCubeScriptPath=\nCubeScriptCase=0\nCubeScriptEncoding=ANSI\nCubeScriptNacct=No\nCubeScriptHeader=No\nCubeScriptExt=csv\nCubeScriptExt0=txt\nCubeScriptExt1=\nCubeScriptExt2=\nCubeScriptSep=,\nCubeScriptDeli=&quot;\nEstimationYears=0\nDfltDomnName=D_%.U:VALUE%\nDfltColnName=D_%.U:VALUE%\nDfltReuse=Yes\nDfltDrop=Yes\n\n[FolderOptions\\CheckModel]\n\n[FolderOptions\\CheckModel\\Package]\n\n[FolderOptions\\CheckModel\\Package\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\CheckPackageMissTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\DefaultCheckPackageMissTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\CircularReference]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\ConstraintName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\CnstMaxLen]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\CircularDependency]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Package\\ShortcutUniqCode]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Table]\n\n[FolderOptions\\CheckModel\\Table\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\UniqIndex]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\MaxLen - NAME]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\EmptyColl - COLNCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\EmptyColl - INDXCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\EmptyColl - KEYCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\SerialColumnNumber]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\EmptyCollYesYes]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\TableIndexes]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\Mapping]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\MappingSFMap]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\EmptyColl - PERMCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Table\\CheckTablePartitionKey]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTableStartDate]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTableRefNoLifecycle]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTableSourceMapping]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTablePartialColumnMapping]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTableKeyColumnMapping]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\CheckTableNotOnLifecycleTablespace]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table\\MYSQL50_Table_Table_storage_type]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column]\n\n[FolderOptions\\CheckModel\\Table.Column\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\DomainDivergence]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\ColumnMandatory]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckNumParam]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckPrecSupLng]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckUndefDttp]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\FkeyDttpDivergence]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\FkeyCheckDivergence]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\ColnSqncNoKey]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\ColnSqncDttp]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\SerialColumnFK]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\ColumnCompExpr]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckColumnOneToOneMapping]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckColumnDataTypeMapping]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckColumnNoMapping]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\CheckDttpIncompatibleFormat]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\MYSQL50_Column_Auto_increment_key]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Column\\MYSQL50_Column_Datatype_attributes]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index]\n\n[FolderOptions\\CheckModel\\Table.Index\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\EmptyColl - CIDXCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\UndefIndexType]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\IndexColumnCount]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\IQIndxHNGUniq]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\CheckIncludeColl - Tabl]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Index\\MYSQL50_Index_Fulltext_indexes_validity]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key]\n\n[FolderOptions\\CheckModel\\Table.Key\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\EmptyColl - COLNCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\CheckIncludeColl - Tabl]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Key\\MultiKeySqnc]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger]\n\n[FolderOptions\\CheckModel\\Table.Trigger\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table.Trigger\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index]\n\n[FolderOptions\\CheckModel\\Join Index\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Join Index\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View]\n\n[FolderOptions\\CheckModel\\View\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View\\EmptyColl - PERMCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\View.View Index]\n\n[FolderOptions\\CheckModel\\View.View Index\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\EmptyColl - CIDXCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\IndexColumnCount]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View.View Index\\CheckIncludeColl - Tabl]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference]\n\n[FolderOptions\\CheckModel\\Reference\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\Reflexive]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\EmptyColl - RFJNCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\IncompleteJoin]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Reference\\JoinOrder]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference]\n\n[FolderOptions\\CheckModel\\View Reference\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\View Reference\\EmptyColl - VRFJNCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain]\n\n[FolderOptions\\CheckModel\\Domain\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\CheckNumParam]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\CheckPrecSupLng]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\CheckUndefDttp]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Domain\\CheckDttpIncompatibleFormat]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default]\n\n[FolderOptions\\CheckModel\\Default\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\DfltValeEmpty]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Default\\DfltSameVale]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User]\n\n[FolderOptions\\CheckModel\\User\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\User\\UniquePassword]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Group]\n\n[FolderOptions\\CheckModel\\Group\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\EmptyColl - USERCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Group\\UniquePassword]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Role]\n\n[FolderOptions\\CheckModel\\Role\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Role\\EmptyColl - USERCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure]\n\n[FolderOptions\\CheckModel\\Procedure\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\ProcBodyEmpty]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Procedure\\EmptyColl - PERMCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\DBMS Trigger]\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\DBMS Trigger\\DbmsTriggerEvent]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source]\n\n[FolderOptions\\CheckModel\\Data Source\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\EmptyColl - MODLSRC]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\DtscTargets]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Source\\CheckDataSourceModels]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Horizontal Partitioning]\n\n[FolderOptions\\CheckModel\\Horizontal Partitioning\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Horizontal Partitioning\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Horizontal Partitioning\\EmptyColl - PARTCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Horizontal Partitioning\\TargetTables]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Vertical Partitioning]\n\n[FolderOptions\\CheckModel\\Vertical Partitioning\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Vertical Partitioning\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Vertical Partitioning\\EmptyColl - PARTCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Vertical Partitioning\\TargetTables]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table Collapsing]\n\n[FolderOptions\\CheckModel\\Table Collapsing\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table Collapsing\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table Collapsing\\EmptyColl - TargetTable]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Table Collapsing\\TargetTables]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact]\n\n[FolderOptions\\CheckModel\\Fact\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\EmptyColl - MEASCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\Mapping]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\MappingSFMap]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\EmptyColl - ALLOLINKCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact\\CubeDupAssociation]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension]\n\n[FolderOptions\\CheckModel\\Dimension\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\EmptyColl - DATTRCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\EmptyColl - HIERCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\DimnDupHierarchy]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\DimnDefHierarchy]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\Mapping]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\MappingSFMap]\nCheckSeverity=No\nFixRequested=Yes\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension\\SerialColumnNumber]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association]\n\n[FolderOptions\\CheckModel\\Association\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Association\\EmptyColl - Hierarchy]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute]\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Attribute\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure]\n\n[FolderOptions\\CheckModel\\Fact.Measure\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Fact.Measure\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy]\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Dimension.Hierarchy\\EmptyColl - DATTRCOL]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym]\n\n[FolderOptions\\CheckModel\\Synonym\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\MaxLen - NAME]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Synonym\\EmptyColl - BASEOBJ]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type]\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\AdtInstantiable]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type\\AdtAbstractUsed]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure]\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\AdtProcUniqName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\UniqueDefinition]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Abstract Data Type.Abstract Data Type Procedure\\ReturnDataType]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package]\n\n[FolderOptions\\CheckModel\\Database Package\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\MaxLen - NAME]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\EmptyColl - PROCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package\\EmptyColl - CURCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package\\EmptyColl - VARCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package\\EmptyColl - TYPCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package\\EmptyColl - EXCCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure]\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\UniqueDefinition]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\EmptyColl - PARM]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Procedure\\ReturnDataType]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence]\n\n[FolderOptions\\CheckModel\\Sequence\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Sequence\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor]\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\UniqueDefinition]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\ReturnDataType]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Cursor\\EmptyColl - PARM]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=No\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable]\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Variable\\CheckUndefDttp]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type]\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Type\\UniqueDefinition]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception]\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database Package.Database Package Exception\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace]\n\n[FolderOptions\\CheckModel\\Tablespace\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Tablespace\\IsObjectUsed]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage]\n\n[FolderOptions\\CheckModel\\Storage\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Storage\\IsObjectUsed]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database]\n\n[FolderOptions\\CheckModel\\Database\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Database\\IsObjectUsed]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service]\n\n[FolderOptions\\CheckModel\\Web Service\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation]\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Web Service.Web Operation\\MaxLen - CODE]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle]\n\n[FolderOptions\\CheckModel\\Lifecycle\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\CheckLifecyclePhase]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\CheckLifecycleRetention]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle\\CheckPartitionRange]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase]\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseTbspace]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseIQTbspace]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseDuplicateTbspace]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseTbspaceCurrency]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseRetention]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseIdlePeriod]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseDataSource]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Lifecycle.Phase\\CheckPhaseExternalOnFirst]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Replication]\n\n[FolderOptions\\CheckModel\\Replication\\PartialReplication]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule]\n\n[FolderOptions\\CheckModel\\Business Rule\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Business Rule\\EmptyColl - OBJCOL]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object]\n\n[FolderOptions\\CheckModel\\Extended Object\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Object\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link]\n\n[FolderOptions\\CheckModel\\Extended Link\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Extended Link\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File]\n\n[FolderOptions\\CheckModel\\File\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\File\\CheckPathExists]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format]\n\n[FolderOptions\\CheckModel\\Data Format\\CheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\CheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\DefaultCheckUseOnlyTerms]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\DefaultCheckUseTermBySynonym]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\NotApprovedTerms]\nCheckSeverity=Yes\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\UniqueName]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\UniqueCode]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes\n\n[FolderOptions\\CheckModel\\Data Format\\CheckDataFormatNullExpression]\nCheckSeverity=No\nFixRequested=No\nCheckRequested=Yes</a:PackageOptionsText>\n<a:ModelOptionsText>[ModelOptions]\n\n[ModelOptions\\Physical Objects]\nCaseSensitive=No\nDisplayName=Yes\nEnableTrans=No\nUseTerm=No\nEnableRequirements=No\nEnableFullShortcut=Yes\nDefaultDttp=\nIgnoreOwner=No\nRebuildTrigger=Yes\nRefrUnique=No\nRefrAutoMigrate=Yes\nRefrMigrateReuse=No\nRefrMigrateDomain=Yes\nRefrMigrateCheck=Yes\nRefrMigrateRule=Yes\nRefrMigrateExtd=No\nRefrMigrDefaultLink=No\nRefrDfltImpl=D\nRefrPrgtColn=No\nRefrMigrateToEnd=No\nRebuildTriggerDep=No\nColnFKName=%.3:PARENT%_%COLUMN%\nColnFKNameUse=No\nDomnCopyDttp=Yes\nDomnCopyChck=No\nDomnCopyRule=No\nDomnCopyMand=No\nDomnCopyExtd=No\nDomnCopyProf=No\nNotation=0\nDomnDefaultMandatory=No\nColnDefaultMandatory=No\nTablDefaultOwner=\nViewDefaultOwner=\nTrgrDefaultOwnerTabl=\nTrgrDefaultOwnerView=\nIdxDefaultOwnerTabl=\nIdxDefaultOwnerView=\nJdxDefaultOwner=\nDBPackDefaultOwner=\nSeqDefaultOwner=\nProcDefaultOwner=\nDBMSTrgrDefaultOwner=\nCurrency=USD\nRefrDeleteConstraint=1\nRefrUpdateConstraint=1\nRefrParentMandatory=No\nRefrParentChangeAllow=Yes\nRefrCheckOnCommit=No\n\n[ModelOptions\\Physical Objects\\NamingOptionsTemplates]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMPCKG]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMPCKG\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMPCKG\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMDOMN]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMDOMN\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\PDMDOMN\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\TABL]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\TABL\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\TABL\\Code]\nTemplate=\nMaxLen=64\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\COLN]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\COLN\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\COLN\\Code]\nTemplate=\nMaxLen=64\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\INDX]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\INDX\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\INDX\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\REFR]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\REFR\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\REFR\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VREF]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VREF\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VREF\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEW]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEW\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEW\\Code]\nTemplate=\nMaxLen=64\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEWC]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEWC\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\VIEWC\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBSERV]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBSERV\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBSERV\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=&#39;a&#39;-&#39;z&#39;,&#39;A&#39;-&#39;Z&#39;,&#39;0&#39;-&#39;9&#39;,&quot;/-_.!~*&#39;()&quot;\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBOP]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBOP\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WEBOP\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=&#39;a&#39;-&#39;z&#39;,&#39;A&#39;-&#39;Z&#39;,&#39;0&#39;-&#39;9&#39;,&quot;/-_.!~*&#39;()&quot;\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WPARAM]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WPARAM\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\WPARAM\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FACT]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FACT\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FACT\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DIMN]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DIMN\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DIMN\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\MEAS]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\MEAS\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\MEAS\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DATTR]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DATTR\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DATTR\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FILO]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FILO\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FILO\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMEOBJ]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMEOBJ\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMEOBJ\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMELNK]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMELNK\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\FRMELNK\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DefaultClass]\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DefaultClass\\Name]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Physical Objects\\ClssNamingOptions\\DefaultClass\\Code]\nTemplate=\nMaxLen=254\nCase=M\nValidChar=\nInvldChar=\nAllValid=Yes\nNoAccent=No\nDefaultChar=\nScript=\nConvTable=\nConvTablePath=%_HOME%\\Resource Files\\Conversion Tables\n\n[ModelOptions\\Connection]\n\n[ModelOptions\\Pdm]\n\n[ModelOptions\\Generate]\n\n[ModelOptions\\Generate\\Xsm]\nGenRootElement=Yes\nGenComplexType=No\nGenAttribute=Yes\nCheckModel=Yes\nSaveLinks=Yes\nORMapping=No\nNameToCode=No\n\n[ModelOptions\\Generate\\Pdm]\nRRMapping=No\n\n[ModelOptions\\Generate\\Cdm]\nCheckModel=Yes\nSaveLinks=Yes\nNameToCode=No\nNotation=2\n\n[ModelOptions\\Generate\\Oom]\nCheckModel=Yes\nSaveLinks=Yes\nORMapping=No\nNameToCode=Yes\nClassPrefix=\n\n[ModelOptions\\Generate\\Ldm]\nCheckModel=Yes\nSaveLinks=Yes\nNameToCode=No\n\n[ModelOptions\\Default Opts]\n\n[ModelOptions\\Default Opts\\TABL]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\COLN]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\INDX]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\AKEY]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\PKEY]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\STOR]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\TSPC]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\SQNC]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\DTBS]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\USER]\nPhysOpts=\n\n[ModelOptions\\Default Opts\\JIDX]\nPhysOpts=</a:ModelOptionsText>\n<c:DBMS>\n<o:Shortcut Id=\"o3\">\n<a:ObjectID>14D4F090-917F-4538-8687-B423AA42B832</a:ObjectID>\n<a:Name>MySQL 5.0</a:Name>\n<a:Code>MYSQL50</a:Code>\n<a:CreationDate>1521705583</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521705583</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:TargetStereotype/>\n<a:TargetID>F4F16ECD-F2F1-4006-AF6F-638D5C65F35E</a:TargetID>\n<a:TargetClassID>4BA9F647-DAB1-11D1-9944-006097355D9B</a:TargetClassID>\n</o:Shortcut>\n</c:DBMS>\n<c:PhysicalDiagrams>\n<o:PhysicalDiagram Id=\"o4\">\n<a:ObjectID>137EC109-4534-4C7A-BB72-091B8362EA59</a:ObjectID>\n<a:Name>diagram</a:Name>\n<a:Code>diagram</a:Code>\n<a:CreationDate>1521705583</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869150</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DisplayPreferences>[DisplayPreferences]\n\n[DisplayPreferences\\PDM]\n\n[DisplayPreferences\\General]\nAdjust to text=Yes\nSnap Grid=No\nConstrain Labels=Yes\nDisplay Grid=No\nShow Page Delimiter=Yes\nShow Links intersections=Yes\nActivate automatic link routing=Yes\nGrid size=800\nGraphic unit=2\nWindow color=255 255 255\nBackground image=\nBackground mode=8\nWatermark image=\nWatermark mode=8\nShow watermark on screen=No\nGradient mode=0\nGradient end color=255 255 255\nShow Swimlane=No\nSwimlaneVert=Yes\nTreeVert=No\nCompDark=0\n\n[DisplayPreferences\\Object]\nShow Icon=No\nMode=2\nTrunc Length=40\nWord Length=40\nWord Text=!&quot;#$%&amp;&#39;)*+,-./:;=&gt;?@\\]^_`|}~\nShortcut IntIcon=Yes\nShortcut IntLoct=Yes\nShortcut IntFullPath=No\nShortcut IntLastPackage=Yes\nShortcut ExtIcon=Yes\nShortcut ExtLoct=No\nShortcut ExtFullPath=No\nShortcut ExtLastPackage=Yes\nShortcut ExtIncludeModl=Yes\nEObjShowStrn=Yes\nExtendedObject.Comment=No\nExtendedObject.IconPicture=No\nExtendedObject.TextStyle=No\nExtendedObject_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Object Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;Separator Name=&quot;Separator&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Comment&quot; Attribute=&quot;Comment&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;LEFT&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nELnkShowStrn=Yes\nELnkShowName=Yes\nExtendedLink_SymbolLayout=&lt;Form&gt;[CRLF] &lt;Form Name=&quot;Center&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Source&quot; &gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Destination&quot; &gt;[CRLF] &lt;/Form&gt;[CRLF]&lt;/Form&gt;\nFileObject.Stereotype=No\nFileObject.DisplayName=Yes\nFileObject.LocationOrName=No\nFileObject.IconPicture=No\nFileObject.TextStyle=No\nFileObject.IconMode=Yes\nFileObject_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;Yes&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Location&quot; Attribute=&quot;LocationOrName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/ExclusiveChoice&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nPackage.Stereotype=Yes\nPackage.Comment=No\nPackage.IconPicture=No\nPackage.TextStyle=No\nPackage_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;Separator Name=&quot;Separator&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Comment&quot; Attribute=&quot;Comment&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;LEFT&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nDisplay Model Version=Yes\nTable.Stereotype=Yes\nTable.DisplayName=Yes\nTable.OwnerDisplayName=No\nTable.Columns=Yes\nTable.Columns._Filter=&quot;All Columns&quot; PDMCOLNALL\nTable.Columns._Columns=Stereotype DataType KeyIndicator\nTable.Columns._Limit=-5\nTable.Keys=No\nTable.Keys._Columns=Stereotype Indicator\nTable.Indexes=No\nTable.Indexes._Columns=Stereotype\nTable.Triggers=No\nTable.Triggers._Columns=Stereotype\nTable.Comment=No\nTable.IconPicture=No\nTable.TextStyle=No\nTable_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;Yes&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Owner and Name&quot; Attribute=&quot;OwnerDisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/ExclusiveChoice&gt;[CRLF] &lt;Separator Name=&quot;Separator&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Columns&quot; Collection=&quot;Columns&quot; Columns=&quot;Stereotype No\\r\\nDisplayName Yes\\r\\nDataType No\\r\\nSymbolDataType No &amp;quot;Domain or Data type&amp;quot;\\r\\nDomain No\\r\\nKeyIndicator No\\r\\nIndexIndicator No\\r\\nNullStatus No&quot; Filters=&quot;&amp;quot;All Columns&amp;quot;  PDMCOLNALL &amp;quot;&amp;quot;\\r\\n&amp;quot;PK Columns&amp;quot;  PDMCOLNPK &amp;quot;\\&amp;quot;PRIM \\&amp;quot;TRUE\\&amp;quot; TRUE\\&amp;quot;&amp;quot;\\r\\n&amp;quot;Key Columns&amp;quot;  PDMCOLNKEY &amp;quot;\\&amp;quot;KEYS \\&amp;quot;TRUE\\&amp;quot; TRUE\\&amp;quot;&amp;quot;&quot; HasLimit=&quot;Yes&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Keys&quot; Collection=&quot;Keys&quot; Columns=&quot;Stereotype No\\r\\nDisplayName Yes\\r\\nIndicator No&quot; HasLimit=&quot;No&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Indexes&quot; Collection=&quot;Indexes&quot; Columns=&quot;Stereotype No\\r\\nDisplayName Yes\\r\\nIndicator No&quot; HasLimit=&quot;No&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Triggers&quot; Collection=&quot;Triggers&quot; Columns=&quot;Stereotype No\\r\\nDisplayName Yes&quot; HasLimit=&quot;No&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Comment&quot; Attribute=&quot;Comment&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;LEFT&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nView.Stereotype=Yes\nView.DisplayName=Yes\nView.OwnerDisplayName=No\nView.Columns=Yes\nView.Columns._Columns=DisplayName\nView.Columns._Limit=-5\nView.TemporaryVTables=Yes\nView.Indexes=No\nView.Comment=No\nView.IconPicture=No\nView.TextStyle=No\nView_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;Yes&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Owner and Name&quot; Attribute=&quot;OwnerDisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/ExclusiveChoice&gt;[CRLF] &lt;Separator Name=&quot;Separator&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Columns&quot; Collection=&quot;Columns&quot; Columns=&quot;DisplayName No\\r\\nExpression No\\r\\nDataType No\\r\\nSymbolDataType No &amp;quot;Domain or Data type&amp;quot;\\r\\nIndexIndicator No&quot; HasLimit=&quot;Yes&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Tables&quot; Collection=&quot;TemporaryVTables&quot; Columns=&quot;Name Yes&quot; HasLimit=&quot;No&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardCollection Name=&quot;Indexes&quot; Collection=&quot;Indexes&quot; Columns=&quot;DisplayName Yes&quot; HasLimit=&quot;No&quot; HideEmpty=&quot;No&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Comment&quot; Attribute=&quot;Comment&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;LEFT&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nProcedure.Stereotype=No\nProcedure.DisplayName=Yes\nProcedure.OwnerDisplayName=No\nProcedure.Comment=No\nProcedure.IconPicture=No\nProcedure.TextStyle=No\nProcedure_SymbolLayout=&lt;Form&gt;[CRLF] &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;Yes&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Owner and Name&quot; Attribute=&quot;OwnerDisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/ExclusiveChoice&gt;[CRLF] &lt;Separator Name=&quot;Separator&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Comment&quot; Attribute=&quot;Comment&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;LEFT&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Icon&quot; Attribute=&quot;IconPicture&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF] &lt;StandardAttribute Name=&quot;Force top align&quot; Attribute=&quot;TextStyle&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Alignment=&quot;CNTR&quot; Caption=&quot;&quot; Mandatory=&quot;Yes&quot; /&gt;[CRLF]&lt;/Form&gt;\nReference.Cardinality=No\nReference.ImplementationType=No\nReference.ChildRole=Yes\nReference.Stereotype=Yes\nReference.DisplayName=No\nReference.ForeignKeyConstraintName=No\nReference.JoinExpression=No\nReference.Integrity=No\nReference.ParentRole=Yes\nReference_SymbolLayout=&lt;Form&gt;[CRLF] &lt;Form Name=&quot;Source&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Cardinality&quot; Attribute=&quot;Cardinality&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Implementation&quot; Attribute=&quot;ImplementationType&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Child Role&quot; Attribute=&quot;ChildRole&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Center&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;No&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]   &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]   &lt;StandardAttribute Name=&quot;Cons&amp;amp;traint Name&quot; Attribute=&quot;ForeignKeyConstraintName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;Cons&amp;amp;traint Name&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]   &lt;StandardAttribute Name=&quot;Join&quot; Attribute=&quot;JoinExpression&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;Join&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;/ExclusiveChoice&gt;[CRLF]  &lt;StandardAttribute Name=&quot;Referential integrity&quot; Attribute=&quot;Integrity&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;Referential integrity&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Destination&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Parent Role&quot; Attribute=&quot;ParentRole&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF]&lt;/Form&gt;\nViewReference.ChildRole=Yes\nViewReference.Stereotype=Yes\nViewReference.DisplayName=No\nViewReference.JoinExpression=No\nViewReference.ParentRole=Yes\nViewReference_SymbolLayout=&lt;Form&gt;[CRLF] &lt;Form Name=&quot;Source&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Child Role&quot; Attribute=&quot;ChildRole&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Center&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Stereotype&quot; Attribute=&quot;Stereotype&quot; Prefix=&quot;&amp;lt;&amp;lt;&quot; Suffix=&quot;&amp;gt;&amp;gt;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;ExclusiveChoice Name=&quot;Exclusive Choice&quot; Mandatory=&quot;No&quot; Display=&quot;HorizontalRadios&quot; &gt;[CRLF]   &lt;StandardAttribute Name=&quot;Name&quot; Attribute=&quot;DisplayName&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]   &lt;StandardAttribute Name=&quot;Join Expression&quot; Attribute=&quot;JoinExpression&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF]  &lt;/ExclusiveChoice&gt;[CRLF] &lt;/Form&gt;[CRLF] &lt;Form Name=&quot;Destination&quot; &gt;[CRLF]  &lt;StandardAttribute Name=&quot;Parent Role&quot; Attribute=&quot;ParentRole&quot; Prefix=&quot;&quot; Suffix=&quot;&quot; Caption=&quot;&quot; Mandatory=&quot;No&quot; /&gt;[CRLF] &lt;/Form&gt;[CRLF]&lt;/Form&gt;\n\n[DisplayPreferences\\Symbol]\n\n[DisplayPreferences\\Symbol\\FRMEOBJ]\nSTRNFont=新宋体,8,N\nSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nLABLFont=新宋体,8,N\nLABLFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=6000\nHeight=2000\nBrush color=255 255 255\nFill Color=Yes\nBrush style=6\nBrush bitmap mode=12\nBrush gradient mode=64\nBrush gradient color=192 192 192\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 255 128 128\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\FRMELNK]\nCENTERFont=新宋体,8,N\nCENTERFont color=0 0 0\nLine style=1\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 128 128 255\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\FILO]\nOBJSTRNFont=新宋体,8,N\nOBJSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nLCNMFont=新宋体,8,N\nLCNMFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=4800\nHeight=3600\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 0 0 255\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\PDMPCKG]\nSTRNFont=新宋体,8,N\nSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nLABLFont=新宋体,8,N\nLABLFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=4800\nHeight=4000\nBrush color=255 255 192\nFill Color=Yes\nBrush style=6\nBrush bitmap mode=12\nBrush gradient mode=65\nBrush gradient color=255 255 255\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 178 178 178\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\TABL]\nSTRNFont=新宋体,10,N\nSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nOWNRDISPNAMEFont=新宋体,8,N\nOWNRDISPNAMEFont color=0 0 0\nColumnsFont=新宋体,8,N\nColumnsFont color=0 0 0\nTablePkColumnsFont=新宋体,8,U\nTablePkColumnsFont color=0 0 0\nTableFkColumnsFont=新宋体,8,N\nTableFkColumnsFont color=0 0 0\nKeysFont=新宋体,8,N\nKeysFont color=0 0 0\nIndexesFont=新宋体,8,N\nIndexesFont color=0 0 0\nTriggersFont=新宋体,8,N\nTriggersFont color=0 0 0\nLABLFont=新宋体,8,N\nLABLFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=4800\nHeight=4000\nBrush color=178 214 252\nFill Color=Yes\nBrush style=6\nBrush bitmap mode=12\nBrush gradient mode=65\nBrush gradient color=255 255 255\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 0 128 192\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\VIEW]\nSTRNFont=新宋体,8,N\nSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nOWNRDISPNAMEFont=新宋体,8,N\nOWNRDISPNAMEFont color=0 0 0\nColumnsFont=新宋体,8,N\nColumnsFont color=0 0 0\nTablePkColumnsFont=新宋体,8,U\nTablePkColumnsFont color=0 0 0\nTableFkColumnsFont=新宋体,8,N\nTableFkColumnsFont color=0 0 0\nTemporaryVTablesFont=新宋体,8,N\nTemporaryVTablesFont color=0 0 0\nIndexesFont=新宋体,8,N\nIndexesFont color=0 0 0\nLABLFont=新宋体,8,N\nLABLFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=4800\nHeight=4000\nBrush color=208 208 255\nFill Color=Yes\nBrush style=6\nBrush bitmap mode=12\nBrush gradient mode=65\nBrush gradient color=255 255 255\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 128 128 192\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\PROC]\nSTRNFont=新宋体,8,N\nSTRNFont color=0 0 0\nDISPNAMEFont=新宋体,8,N\nDISPNAMEFont color=0 0 0\nOWNRDISPNAMEFont=新宋体,8,N\nOWNRDISPNAMEFont color=0 0 0\nLABLFont=新宋体,8,N\nLABLFont color=0 0 0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nWidth=4000\nHeight=1000\nBrush color=255 255 192\nFill Color=Yes\nBrush style=6\nBrush bitmap mode=12\nBrush gradient mode=65\nBrush gradient color=255 255 255\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 128 108 0\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\REFR]\nSOURCEFont=新宋体,8,N\nSOURCEFont color=0 0 0\nCENTERFont=新宋体,8,N\nCENTERFont color=0 0 0\nDESTINATIONFont=新宋体,8,N\nDESTINATIONFont color=0 0 0\nLine style=1\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 0 128 192\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\VREF]\nSOURCEFont=新宋体,8,N\nSOURCEFont color=0 0 0\nCENTERFont=新宋体,8,N\nCENTERFont color=0 0 0\nDESTINATIONFont=新宋体,8,N\nDESTINATIONFont color=0 0 0\nLine style=1\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 128 128 192\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\USRDEPD]\nOBJXSTRFont=新宋体,8,N\nOBJXSTRFont color=0 0 0\nLine style=1\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=2 0 128 128 255\nShadow color=192 192 192\nShadow=0\n\n[DisplayPreferences\\Symbol\\Free Symbol]\nFree TextFont=新宋体,8,N\nFree TextFont color=0 0 0\nLine style=0\nAutoAdjustToText=Yes\nKeep aspect=No\nKeep center=No\nKeep size=No\nBrush color=255 255 255\nFill Color=Yes\nBrush style=1\nBrush bitmap mode=12\nBrush gradient mode=0\nBrush gradient color=118 118 118\nBrush background image=\nCustom shape=\nCustom text mode=0\nPen=1 0 0 0 255\nShadow color=192 192 192\nShadow=0</a:DisplayPreferences>\n<a:PaperSize>(2280, 128972)</a:PaperSize>\n<a:PageMargins>((315,354), (433,354))</a:PageMargins>\n<a:PageOrientation>1</a:PageOrientation>\n<a:PaperSource>15</a:PaperSource>\n<c:Symbols>\n<o:ReferenceSymbol Id=\"o5\">\n<a:CreationDate>1521706257</a:CreationDate>\n<a:ModificationDate>1522399274</a:ModificationDate>\n<a:Rect>((118,137911), (3606,139161))</a:Rect>\n<a:ListOfPoints>((518,138536),(3206,138536))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o7\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o8\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o9\">\n<a:CreationDate>1521710488</a:CreationDate>\n<a:ModificationDate>1522301998</a:ModificationDate>\n<a:Rect>((-32542,131813), (-18882,146342))</a:Rect>\n<a:ListOfPoints>((-32142,145942),(-32142,132438),(-19282,132438))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o10\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o11\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o12\">\n<a:CreationDate>1521770349</a:CreationDate>\n<a:ModificationDate>1522399160</a:ModificationDate>\n<a:Rect>((-19307,147483), (-18057,152962))</a:Rect>\n<a:ListOfPoints>((-18682,152562),(-18682,147883))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o13\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o14\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o15\">\n<a:CreationDate>1521771362</a:CreationDate>\n<a:ModificationDate>1522722888</a:ModificationDate>\n<a:Rect>((-2768,147483), (-1518,154573))</a:Rect>\n<a:ListOfPoints>((-2143,154173),(-2143,147883))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o16\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o17\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o18\">\n<a:CreationDate>1521773101</a:CreationDate>\n<a:ModificationDate>1522399245</a:ModificationDate>\n<a:Rect>((118,145689), (8052,147828))</a:Rect>\n<a:ListOfPoints>((518,146089),(4085,146089),(4085,147203),(7652,147203))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o20\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o21\">\n<a:CreationDate>1521783613</a:CreationDate>\n<a:ModificationDate>1522301998</a:ModificationDate>\n<a:Rect>((-36148,140470), (-18882,141720))</a:Rect>\n<a:ListOfPoints>((-19282,141095),(-35748,141095))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o22\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o23\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o24\">\n<a:CreationDate>1521791466</a:CreationDate>\n<a:ModificationDate>1522721783</a:ModificationDate>\n<a:Rect>((-35006,116007), (-18882,117257))</a:Rect>\n<a:ListOfPoints>((-34606,116632),(-19282,116632))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o25\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o26\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o27\">\n<a:CreationDate>1521792428</a:CreationDate>\n<a:ModificationDate>1522721669</a:ModificationDate>\n<a:Rect>((-37186,123158), (-18882,124408))</a:Rect>\n<a:ListOfPoints>((-36786,123783),(-19282,123783))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o28\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o29\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o30\">\n<a:CreationDate>1521792909</a:CreationDate>\n<a:ModificationDate>1522721672</a:ModificationDate>\n<a:Rect>((-36959,130601), (-18882,131851))</a:Rect>\n<a:ListOfPoints>((-36559,131226),(-19282,131226))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o31\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o32\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o33\">\n<a:CreationDate>1522045168</a:CreationDate>\n<a:ModificationDate>1522399263</a:ModificationDate>\n<a:Rect>((26779,91096), (28029,95555))</a:Rect>\n<a:ListOfPoints>((27404,91496),(27404,95155))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o34\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o35\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o36\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o37\">\n<a:CreationDate>1522046100</a:CreationDate>\n<a:ModificationDate>1522399263</a:ModificationDate>\n<a:Rect>((118,99478), (28233,125231))</a:Rect>\n<a:ListOfPoints>((518,124831),(27608,124831),(27608,99878))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o35\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o38\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o39\">\n<a:CreationDate>1522046451</a:CreationDate>\n<a:ModificationDate>1522399258</a:ModificationDate>\n<a:Rect>((-10672,88961), (-7729,112209))</a:Rect>\n<a:ListOfPoints>((-8129,89361),(-10047,89361),(-10047,111809))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o40\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o41\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o42\">\n<a:CreationDate>1522046456</a:CreationDate>\n<a:ModificationDate>1522399261</a:ModificationDate>\n<a:Rect>((6477,85210), (12264,86460))</a:Rect>\n<a:ListOfPoints>((6877,85835),(11864,85835))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o40\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o34\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o43\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o44\">\n<a:CreationDate>1522112691</a:CreationDate>\n<a:ModificationDate>1522399105</a:ModificationDate>\n<a:Rect>((-41320,55031), (-36214,56281))</a:Rect>\n<a:ListOfPoints>((-36614,55656),(-40920,55656))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o45\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o46\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o47\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o48\">\n<a:CreationDate>1522112694</a:CreationDate>\n<a:ModificationDate>1522399105</a:ModificationDate>\n<a:Rect>((-16713,57856), (-15463,112209))</a:Rect>\n<a:ListOfPoints>((-16088,58256),(-16088,111809))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o45\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o49\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o50\">\n<a:CreationDate>1522114406</a:CreationDate>\n<a:ModificationDate>1522399245</a:ModificationDate>\n<a:Rect>((16796,151962), (26808,154513))</a:Rect>\n<a:ListOfPoints>((18480,152362),(26408,152362),(26408,153888),(17196,153888))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<a:AutomaticRoutingState>4</a:AutomaticRoutingState>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o51\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o52\">\n<a:CreationDate>1522115961</a:CreationDate>\n<a:ModificationDate>1522399266</a:ModificationDate>\n<a:Rect>((16844,105298), (20156,145559))</a:Rect>\n<a:ListOfPoints>((17244,105698),(19531,105698),(19531,145159))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o53\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o54\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o55\">\n<a:CreationDate>1522115983</a:CreationDate>\n<a:ModificationDate>1522399266</a:ModificationDate>\n<a:Rect>((11839,91096), (13089,104099))</a:Rect>\n<a:ListOfPoints>((12464,103699),(12464,91496))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o53\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o34\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o56\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o57\">\n<a:CreationDate>1522118676</a:CreationDate>\n<a:ModificationDate>1522721912</a:ModificationDate>\n<a:Rect>((-21193,102395), (-18057,112209))</a:Rect>\n<a:ListOfPoints>((-20793,102795),(-18682,102795),(-18682,111809))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o58\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o59\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o60\">\n<a:CreationDate>1522119056</a:CreationDate>\n<a:ModificationDate>1522721912</a:ModificationDate>\n<a:Rect>((-37481,102138), (-32899,103388))</a:Rect>\n<a:ListOfPoints>((-37081,102763),(-33299,102763))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o61\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o58\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o62\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o63\">\n<a:CreationDate>1522120295</a:CreationDate>\n<a:ModificationDate>1522399221</a:ModificationDate>\n<a:Rect>((-24810,167598), (-19344,168848))</a:Rect>\n<a:ListOfPoints>((-19744,168223),(-24410,168223))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o64\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o65\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o66\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o67\">\n<a:CreationDate>1522138613</a:CreationDate>\n<a:ModificationDate>1522399095</a:ModificationDate>\n<a:Rect>((-24954,40604), (-19115,41854))</a:Rect>\n<a:ListOfPoints>((-19515,41229),(-24554,41229))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o68\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o69\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o70\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o71\">\n<a:CreationDate>1522138618</a:CreationDate>\n<a:ModificationDate>1522399095</a:ModificationDate>\n<a:Rect>((-34348,42015), (-12721,130651))</a:Rect>\n<a:ListOfPoints>((-13121,42415),(-13121,75553),(-33948,75553),(-33948,130026),(-19282,130026))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o68\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o72\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o73\">\n<a:CreationDate>1522138705</a:CreationDate>\n<a:ModificationDate>1522399092</a:ModificationDate>\n<a:Rect>((-43671,34853), (-38546,36103))</a:Rect>\n<a:ListOfPoints>((-38946,35478),(-43271,35478))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o69\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o74\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o75\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o76\">\n<a:CreationDate>1522141157</a:CreationDate>\n<a:ModificationDate>1522399066</a:ModificationDate>\n<a:Rect>((-25433,19586), (-17431,20836))</a:Rect>\n<a:ListOfPoints>((-17831,20211),(-25033,20211))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o77\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o78\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o79\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o80\">\n<a:CreationDate>1522141232</a:CreationDate>\n<a:ModificationDate>1522399094</a:ModificationDate>\n<a:Rect>((-43321,40604), (-38546,41854))</a:Rect>\n<a:ListOfPoints>((-42921,41229),(-38946,41229))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o81\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o69\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o82\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o83\">\n<a:CreationDate>1522141316</a:CreationDate>\n<a:ModificationDate>1522399068</a:ModificationDate>\n<a:Rect>((-44663,18136), (-38253,19386))</a:Rect>\n<a:ListOfPoints>((-38653,18761),(-44263,18761))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o78\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o84\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o85\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o86\">\n<a:CreationDate>1522142006</a:CreationDate>\n<a:ModificationDate>1522399038</a:ModificationDate>\n<a:Rect>((-42272,4919), (-33459,6169))</a:Rect>\n<a:ListOfPoints>((-41872,5544),(-33859,5544))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o87\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o88\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o89\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o90\">\n<a:CreationDate>1522215975</a:CreationDate>\n<a:ModificationDate>1522398810</a:ModificationDate>\n<a:Rect>((62000,154589), (65163,155839))</a:Rect>\n<a:ListOfPoints>((62400,155214),(64763,155214))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o91\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o92\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o93\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o94\">\n<a:CreationDate>1522216015</a:CreationDate>\n<a:ModificationDate>1522398810</a:ModificationDate>\n<a:Rect>((118,129221), (50900,156036))</a:Rect>\n<a:ListOfPoints>((50500,155636),(41338,155636),(41338,129846),(518,129846))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o91\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o95\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o96\">\n<a:CreationDate>1522216251</a:CreationDate>\n<a:ModificationDate>1522398808</a:ModificationDate>\n<a:Rect>((62486,144990), (65163,146240))</a:Rect>\n<a:ListOfPoints>((62886,145615),(64763,145615))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o97\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o92\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o98\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o99\">\n<a:CreationDate>1522216380</a:CreationDate>\n<a:ModificationDate>1522399245</a:ModificationDate>\n<a:Rect>((20100,145134), (46631,146384))</a:Rect>\n<a:ListOfPoints>((46231,145759),(20500,145759))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o97\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o100\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o101\">\n<a:CreationDate>1522220508</a:CreationDate>\n<a:ModificationDate>1541490687</a:ModificationDate>\n<a:Rect>((77597,148397), (88375,149647))</a:Rect>\n<a:ListOfPoints>((87975,149022),(77997,149022))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o102\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o92\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o103\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o104\">\n<a:CreationDate>1522220546</a:CreationDate>\n<a:ModificationDate>1541490615</a:ModificationDate>\n<a:Rect>((59369,64259), (99115,147363))</a:Rect>\n<a:ListOfPoints>((98715,146963),(98715,64884),(59769,64884))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o102\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o106\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o107\">\n<a:CreationDate>1522224364</a:CreationDate>\n<a:ModificationDate>1522399274</a:ModificationDate>\n<a:Rect>((18744,122602), (80891,138598))</a:Rect>\n<a:ListOfPoints>((80491,123002),(74505,123002),(74505,137973),(19144,137973))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o108\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o7\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o109\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o110\">\n<a:CreationDate>1522225874</a:CreationDate>\n<a:ModificationDate>1522398795</a:ModificationDate>\n<a:Rect>((118,126647), (80417,130069))</a:Rect>\n<a:ListOfPoints>((80017,129669),(72926,129669),(72926,127272),(518,127272))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o111\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o112\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o113\">\n<a:CreationDate>1522226077</a:CreationDate>\n<a:ModificationDate>1522398792</a:ModificationDate>\n<a:Rect>((118,130712), (79609,136199))</a:Rect>\n<a:ListOfPoints>((79209,135799),(38938,135799),(38938,131337),(518,131337))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o114\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o115\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o116\">\n<a:CreationDate>1522226272</a:CreationDate>\n<a:ModificationDate>1522399075</a:ModificationDate>\n<a:Rect>((-38306,48140), (83441,113756))</a:Rect>\n<a:ListOfPoints>((83041,113356),(83041,94555),(-37681,94555),(-37681,48540))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o117\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o69\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o118\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o119\">\n<a:CreationDate>1522303390</a:CreationDate>\n<a:ModificationDate>1542180981</a:ModificationDate>\n<a:Rect>((56152,72245), (57402,98630))</a:Rect>\n<a:ListOfPoints>((56777,98230),(56777,72645))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o120\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o121\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o122\">\n<a:CreationDate>1522303410</a:CreationDate>\n<a:ModificationDate>1542180981</a:ModificationDate>\n<a:Rect>((-9472,101195), (50367,112209))</a:Rect>\n<a:ListOfPoints>((49967,101595),(-8847,101595),(-8847,111809))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o120\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o123\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o124\">\n<a:CreationDate>1522304178</a:CreationDate>\n<a:ModificationDate>1538200596</a:ModificationDate>\n<a:Rect>((35098,10654), (42842,11904))</a:Rect>\n<a:ListOfPoints>((35498,11279),(42442,11279))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o125\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o126\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o127\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o128\">\n<a:CreationDate>1522386868</a:CreationDate>\n<a:ModificationDate>1522398605</a:ModificationDate>\n<a:Rect>((36870,42888), (49607,52723))</a:Rect>\n<a:ListOfPoints>((49207,52323),(49207,43513),(37270,43513))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o129\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o130\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o131\">\n<a:CreationDate>1522387461</a:CreationDate>\n<a:ModificationDate>1522399143</a:ModificationDate>\n<a:Rect>((50982,72245), (52232,75672))</a:Rect>\n<a:ListOfPoints>((51607,75272),(51607,72645))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o132\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o133\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o134\">\n<a:CreationDate>1522387526</a:CreationDate>\n<a:ModificationDate>1522399245</a:ModificationDate>\n<a:Rect>((20100,78871), (40538,151445))</a:Rect>\n<a:ListOfPoints>((40138,79271),(40138,150820),(20500,150820))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o132\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o19\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o135\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o136\">\n<a:CreationDate>1522389232</a:CreationDate>\n<a:ModificationDate>1522398872</a:ModificationDate>\n<a:Rect>((33605,58216), (43845,60017))</a:Rect>\n<a:ListOfPoints>((34005,59617),(34005,58841),(43445,58841))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<a:AutomaticRoutingState>2</a:AutomaticRoutingState>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o137\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o138\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o139\">\n<a:CreationDate>1522390434</a:CreationDate>\n<a:ModificationDate>1522398601</a:ModificationDate>\n<a:Rect>((33005,54232), (43845,55482))</a:Rect>\n<a:ListOfPoints>((33405,54857),(43445,54857))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o140\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o141\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o142\">\n<a:CreationDate>1522390644</a:CreationDate>\n<a:ModificationDate>1522398535</a:ModificationDate>\n<a:Rect>((33522,26819), (52232,52723))</a:Rect>\n<a:ListOfPoints>((33922,27219),(51607,27219),(51607,52323))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o143\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o144\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o145\">\n<a:CreationDate>1522391366</a:CreationDate>\n<a:ModificationDate>1522398601</a:ModificationDate>\n<a:Rect>((59369,61859), (62562,63109))</a:Rect>\n<a:ListOfPoints>((62162,62484),(59769,62484))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o146\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o147\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o148\">\n<a:CreationDate>1522391379</a:CreationDate>\n<a:ModificationDate>1522398616</a:ModificationDate>\n<a:Rect>((69534,56429), (70784,60444))</a:Rect>\n<a:ListOfPoints>((70159,60044),(70159,56829))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o146\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o149\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o150\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o151\">\n<a:CreationDate>1522396648</a:CreationDate>\n<a:ModificationDate>1522398621</a:ModificationDate>\n<a:Rect>((52182,34420), (64724,52723))</a:Rect>\n<a:ListOfPoints>((64324,34820),(52807,34820),(52807,52323))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o152\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o153\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o154\">\n<a:CreationDate>1522396864</a:CreationDate>\n<a:ModificationDate>1522398618</a:ModificationDate>\n<a:Rect>((53382,44918), (64185,52723))</a:Rect>\n<a:ListOfPoints>((63785,45318),(54007,45318),(54007,52323))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o155\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o156\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o157\">\n<a:CreationDate>1522659209</a:CreationDate>\n<a:ModificationDate>1522724919</a:ModificationDate>\n<a:Rect>((-101497,31459), (51032,102938))</a:Rect>\n<a:ListOfPoints>((-101097,102538),(-101097,31859),(50407,31859),(50407,52323))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o159\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o160\">\n<a:CreationDate>1522660753</a:CreationDate>\n<a:ModificationDate>1522724919</a:ModificationDate>\n<a:Rect>((-90857,129887), (-79217,131137))</a:Rect>\n<a:ListOfPoints>((-79617,130512),(-90457,130512))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o161\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o162\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o163\">\n<a:CreationDate>1522660820</a:CreationDate>\n<a:ModificationDate>1522719674</a:ModificationDate>\n<a:Rect>((-64973,127931), (-18882,129181))</a:Rect>\n<a:ListOfPoints>((-64573,128556),(-19282,128556))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o161\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o164\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o165\">\n<a:CreationDate>1522721755</a:CreationDate>\n<a:ModificationDate>1522721783</a:ModificationDate>\n<a:Rect>((-55169,48103), (20574,117096))</a:Rect>\n<a:ListOfPoints>((-49770,116696),(-54769,116696),(-54769,48728),(20174,48728))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o25\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o129\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o166\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o167\">\n<a:CreationDate>1522724329</a:CreationDate>\n<a:ModificationDate>1522724329</a:ModificationDate>\n<a:Rect>((-100297,77071), (65163,153166))</a:Rect>\n<a:ListOfPoints>((-99897,102538),(-99897,77471),(35821,77471),(35821,152541),(64763,152541))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o92\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o168\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o169\">\n<a:CreationDate>1522725331</a:CreationDate>\n<a:ModificationDate>1522725331</a:ModificationDate>\n<a:Rect>((-90857,117058), (-77798,118308))</a:Rect>\n<a:ListOfPoints>((-78198,117683),(-90457,117683))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o170\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o171\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o172\">\n<a:CreationDate>1522733188</a:CreationDate>\n<a:ModificationDate>1539745800</a:ModificationDate>\n<a:Rect>((-90857,102513), (-73424,103763))</a:Rect>\n<a:ListOfPoints>((-73824,103138),(-90457,103138))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o173\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o174\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o175\">\n<a:CreationDate>1522745521</a:CreationDate>\n<a:ModificationDate>1539745800</a:ModificationDate>\n<a:Rect>((-84902,89423), (-73424,90673))</a:Rect>\n<a:ListOfPoints>((-73824,90048),(-84502,90048))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o173\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o176\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o177\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o178\">\n<a:CreationDate>1533109967</a:CreationDate>\n<a:ModificationDate>1533110262</a:ModificationDate>\n<a:Rect>((-119919,81722), (-12496,112209))</a:Rect>\n<a:ListOfPoints>((-119519,94842),(-119519,82122),(-13121,82122),(-13121,111809))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o179\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o180\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o181\">\n<a:CreationDate>1533115827</a:CreationDate>\n<a:ModificationDate>1533116074</a:ModificationDate>\n<a:Rect>((-112642,102747), (-38745,153053))</a:Rect>\n<a:ListOfPoints>((-112242,103147),(-109969,103147),(-109969,152428),(-39145,152428))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o179\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o10\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o182\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o183\">\n<a:CreationDate>1533115888</a:CreationDate>\n<a:ModificationDate>1533115888</a:ModificationDate>\n<a:Rect>((-121119,61859), (43845,95242))</a:Rect>\n<a:ListOfPoints>((-120719,94842),(-120719,78671),(37870,78671),(37870,62484),(43445,62484))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o179\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o105\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o184\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o185\">\n<a:CreationDate>1538202362</a:CreationDate>\n<a:ModificationDate>1580624566</a:ModificationDate>\n<a:Rect>((25795,-5333), (33632,-148))</a:Rect>\n<a:ListOfPoints>((26195,-2272),(26195,-548),(32832,-548),(32832,-4708),(32232,-4708))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<a:AutomaticRoutingState>4</a:AutomaticRoutingState>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o186\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o186\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o187\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o188\">\n<a:CreationDate>1538202471</a:CreationDate>\n<a:ModificationDate>1580609625</a:ModificationDate>\n<a:Rect>((54116,11057), (59346,12307))</a:Rect>\n<a:ListOfPoints>((58946,11682),(54516,11682))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o189\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o126\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o190\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o191\">\n<a:CreationDate>1538202492</a:CreationDate>\n<a:ModificationDate>1580609625</a:ModificationDate>\n<a:Rect>((65496,8109), (66746,11214))</a:Rect>\n<a:ListOfPoints>((66121,10814),(66121,8509))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o189\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o192\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o193\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o194\">\n<a:CreationDate>1538202586</a:CreationDate>\n<a:ModificationDate>1580624567</a:ModificationDate>\n<a:Rect>((46201,-5622), (66746,1711))</a:Rect>\n<a:ListOfPoints>((46601,-5222),(66121,-5222),(66121,1311))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o195\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o192\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o196\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o197\">\n<a:CreationDate>1538202588</a:CreationDate>\n<a:ModificationDate>1580624567</a:ModificationDate>\n<a:Rect>((31832,-6533), (34857,-5283))</a:Rect>\n<a:ListOfPoints>((34457,-5908),(32232,-5908))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o195\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o186\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o198\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o199\">\n<a:CreationDate>1538202927</a:CreationDate>\n<a:ModificationDate>1580624563</a:ModificationDate>\n<a:Rect>((31729,2823), (42842,4073))</a:Rect>\n<a:ListOfPoints>((32129,3448),(42442,3448))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o200\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o126\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o201\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o202\">\n<a:CreationDate>1538202929</a:CreationDate>\n<a:ModificationDate>1580624566</a:ModificationDate>\n<a:Rect>((24370,-2672), (25620,1487))</a:Rect>\n<a:ListOfPoints>((24995,1087),(24995,-2272))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o200\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o186\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o203\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o204\">\n<a:CreationDate>1539746524</a:CreationDate>\n<a:ModificationDate>1539746524</a:ModificationDate>\n<a:Rect>((-65536,108004), (-18882,114533))</a:Rect>\n<a:ListOfPoints>((-65136,108404),(-65136,113908),(-19282,113908))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o173\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o205\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o206\">\n<a:CreationDate>1541490540</a:CreationDate>\n<a:ModificationDate>1541490615</a:ModificationDate>\n<a:Rect>((-90857,91755), (97915,147363))</a:Rect>\n<a:ListOfPoints>((97515,146963),(97515,92155),(-20193,92155),(-20193,111251),(-90457,111251))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o102\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o158\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o207\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o208\">\n<a:CreationDate>1542179374</a:CreationDate>\n<a:ModificationDate>1542180977</a:ModificationDate>\n<a:Rect>((47632,114935), (48882,118924))</a:Rect>\n<a:ListOfPoints>((48257,115335),(48257,118524))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o209\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o210\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o211\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o212\">\n<a:CreationDate>1542179394</a:CreationDate>\n<a:ModificationDate>1542180977</a:ModificationDate>\n<a:Rect>((64837,114935), (66087,117902))</a:Rect>\n<a:ListOfPoints>((65462,115335),(65462,117502))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o209\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o213\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o214\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o215\">\n<a:CreationDate>1542179438</a:CreationDate>\n<a:ModificationDate>1542180977</a:ModificationDate>\n<a:Rect>((118,111784), (42403,113034))</a:Rect>\n<a:ListOfPoints>((42003,112409),(518,112409))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o209\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o6\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o216\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o217\">\n<a:CreationDate>1580625109</a:CreationDate>\n<a:ModificationDate>1580625137</a:ModificationDate>\n<a:Rect>((83723,16521), (99015,25885))</a:Rect>\n<a:ListOfPoints>((86540,16921),(86540,25485),(98615,25485),(98615,20467),(84123,20467))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<a:AutomaticRoutingState>4</a:AutomaticRoutingState>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o218\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o218\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o219\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o220\">\n<a:CreationDate>1580625333</a:CreationDate>\n<a:ModificationDate>1580625381</a:ModificationDate>\n<a:Rect>((71758,1788), (77807,3038))</a:Rect>\n<a:ListOfPoints>((77407,2413),(72158,2413))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o221\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o192\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o222\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o223\">\n<a:CreationDate>1580625352</a:CreationDate>\n<a:ModificationDate>1580625378</a:ModificationDate>\n<a:Rect>((81744,4384), (82994,12281))</a:Rect>\n<a:ListOfPoints>((82369,4784),(82369,11881))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o221\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o218\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o224\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o225\">\n<a:CreationDate>1580625421</a:CreationDate>\n<a:ModificationDate>1580625458</a:ModificationDate>\n<a:Rect>((71758,4759), (92510,6009))</a:Rect>\n<a:ListOfPoints>((92110,5384),(72158,5384))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o226\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o192\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o227\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o228\">\n<a:CreationDate>1580625435</a:CreationDate>\n<a:ModificationDate>1581324463</a:ModificationDate>\n<a:Rect>((95430,5190), (96680,9775))</a:Rect>\n<a:ListOfPoints>((96055,5590),(96055,9375))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o226\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o229\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o230\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:ReferenceSymbol Id=\"o231\">\n<a:CreationDate>1580869150</a:CreationDate>\n<a:ModificationDate>1581324463</a:ModificationDate>\n<a:Rect>((101766,14015), (107589,15265))</a:Rect>\n<a:ListOfPoints>((102166,14640),(107189,14640))</a:ListOfPoints>\n<a:CornerStyle>1</a:CornerStyle>\n<a:ArrowStyle>1</a:ArrowStyle>\n<a:LineColor>12615680</a:LineColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>CENTER 0 新宋体,8,N\nSOURCE 0 新宋体,8,N\nDESTINATION 0 新宋体,8,N</a:FontList>\n<c:SourceSymbol>\n<o:TableSymbol Ref=\"o229\"/>\n</c:SourceSymbol>\n<c:DestinationSymbol>\n<o:TableSymbol Ref=\"o232\"/>\n</c:DestinationSymbol>\n<c:Object>\n<o:Reference Ref=\"o233\"/>\n</c:Object>\n</o:ReferenceSymbol>\n<o:TableSymbol Id=\"o6\">\n<a:CreationDate>1521705853</a:CreationDate>\n<a:ModificationDate>1524811003</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-19282,111809), (518,147883))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o234\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o7\">\n<a:CreationDate>1521706107</a:CreationDate>\n<a:ModificationDate>1522399274</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((3206,132976), (19144,143474))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:SymbolContent>Table.Stereotype 1\nTable.DisplayName 1\nTable.OwnerDisplayName 0\nTable.Columns 1 -5 &quot;All Columns&quot; PDMCOLNALL Stereotype DataType KeyIndicator\nTable.Keys 0 0 &quot;&quot; &quot;&quot; Stereotype Indicator\nTable.Indexes 0 0 &quot;&quot; &quot;&quot; Stereotype\nTable.Triggers 0 0 &quot;&quot; &quot;&quot; Stereotype\nTable.Comment 0</a:SymbolContent>\n<c:Object>\n<o:Table Ref=\"o235\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o10\">\n<a:CreationDate>1521709482</a:CreationDate>\n<a:ModificationDate>1582277412</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-39145,145942), (-25139,158914))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o236\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o13\">\n<a:CreationDate>1521710820</a:CreationDate>\n<a:ModificationDate>1522399160</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-25547,152562), (-13473,158934))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o237\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o16\">\n<a:CreationDate>1521770649</a:CreationDate>\n<a:ModificationDate>1522722888</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-9920,154173), (5632,165495))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o238\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o19\">\n<a:CreationDate>1521773028</a:CreationDate>\n<a:ModificationDate>1522399245</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((7652,145159), (20500,156481))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o239\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o22\">\n<a:CreationDate>1521782818</a:CreationDate>\n<a:ModificationDate>1522116249</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-49754,136272), (-35748,144294))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o240\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o25\">\n<a:CreationDate>1521791032</a:CreationDate>\n<a:ModificationDate>1528184156</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-49770,113922), (-34606,119470))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o241\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o28\">\n<a:CreationDate>1521791865</a:CreationDate>\n<a:ModificationDate>1522721669</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-48860,121016), (-36786,126564))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o242\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o31\">\n<a:CreationDate>1521791901</a:CreationDate>\n<a:ModificationDate>1522721672</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-49407,129426), (-36559,134150))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o243\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o35\">\n<a:CreationDate>1522044163</a:CreationDate>\n<a:ModificationDate>1522399263</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20787,95155), (34021,99878))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o244\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o34\">\n<a:CreationDate>1522044465</a:CreationDate>\n<a:ModificationDate>1522399261</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((11864,80174), (30892,91496))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o245\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o40\">\n<a:CreationDate>1522046351</a:CreationDate>\n<a:ModificationDate>1524811003</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-8675,84638), (6877,89361))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o246\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o78\">\n<a:CreationDate>1522050428</a:CreationDate>\n<a:ModificationDate>1522399063</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-38653,14550), (-25033,25872))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o247\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o46\">\n<a:CreationDate>1522112533</a:CreationDate>\n<a:ModificationDate>1522399103</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-53768,52470), (-40920,58842))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o248\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o45\">\n<a:CreationDate>1522112617</a:CreationDate>\n<a:ModificationDate>1522399105</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-36614,53594), (-15488,58256))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o249\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o53\">\n<a:CreationDate>1522115893</a:CreationDate>\n<a:ModificationDate>1522399266</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((378,103699), (17244,107698))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o250\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o58\">\n<a:CreationDate>1522118136</a:CreationDate>\n<a:ModificationDate>1522721912</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-33299,95709), (-20793,109817))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o251\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o61\">\n<a:CreationDate>1522118840</a:CreationDate>\n<a:ModificationDate>1522721910</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-49529,99005), (-37081,106855))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o252\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o65\">\n<a:CreationDate>1522120039</a:CreationDate>\n<a:ModificationDate>1522399218</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-36872,165037), (-24410,171409))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o253\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o64\">\n<a:CreationDate>1522120250</a:CreationDate>\n<a:ModificationDate>1522399221</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-19744,166032), (-8442,170031))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o254\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o69\">\n<a:CreationDate>1522138190</a:CreationDate>\n<a:ModificationDate>1542086220</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-38946,33918), (-24554,48540))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o255\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o68\">\n<a:CreationDate>1522138561</a:CreationDate>\n<a:ModificationDate>1522399095</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-19515,38416), (-6728,42415))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o256\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o74\">\n<a:CreationDate>1522138655</a:CreationDate>\n<a:ModificationDate>1522399092</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-56119,32459), (-43271,38831))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o257\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o81\">\n<a:CreationDate>1522139643</a:CreationDate>\n<a:ModificationDate>1522399094</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-55369,40423), (-42921,47585))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o258\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o77\">\n<a:CreationDate>1522141104</a:CreationDate>\n<a:ModificationDate>1522399066</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-17831,15073), (-5383,22235))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o259\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o84\">\n<a:CreationDate>1522141269</a:CreationDate>\n<a:ModificationDate>1522399068</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-57111,15575), (-44263,21947))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o260\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o87\">\n<a:CreationDate>1522141745</a:CreationDate>\n<a:ModificationDate>1522399038</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-50946,1067), (-41872,9775))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o261\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o88\">\n<a:CreationDate>1522141950</a:CreationDate>\n<a:ModificationDate>1522399038</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-33859,2358), (-21783,8730))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o262\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o263\">\n<a:CreationDate>1522142154</a:CreationDate>\n<a:ModificationDate>1522399038</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-14870,1448), (-1842,9470))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o264\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o92\">\n<a:CreationDate>1522215010</a:CreationDate>\n<a:ModificationDate>1541748859</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((64763,140885), (77997,157159))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o265\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o91\">\n<a:CreationDate>1522215792</a:CreationDate>\n<a:ModificationDate>1522398810</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((50500,153048), (62400,157047))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o266\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o97\">\n<a:CreationDate>1522216155</a:CreationDate>\n<a:ModificationDate>1522398808</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((46231,143710), (62886,147709))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o267\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o102\">\n<a:CreationDate>1522217089</a:CreationDate>\n<a:ModificationDate>1541490687</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((87975,146963), (103049,157789))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o268\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o105\">\n<a:CreationDate>1522217487</a:CreationDate>\n<a:ModificationDate>1522398601</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((43445,52323), (59769,72645))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o269\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o108\">\n<a:CreationDate>1522223818</a:CreationDate>\n<a:ModificationDate>1522398796</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((80491,120228), (94111,125776))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o270\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o111\">\n<a:CreationDate>1522224403</a:CreationDate>\n<a:ModificationDate>1522398795</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((80017,126895), (93637,132443))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o271\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o114\">\n<a:CreationDate>1522226008</a:CreationDate>\n<a:ModificationDate>1522398792</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((79209,133025), (92829,138573))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o272\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o117\">\n<a:CreationDate>1522226140</a:CreationDate>\n<a:ModificationDate>1522398801</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((81729,113356), (95349,118904))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o273\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o274\">\n<a:CreationDate>1522227700</a:CreationDate>\n<a:ModificationDate>1542179018</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((84563,94201), (96637,105523))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o275\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o210\">\n<a:CreationDate>1522300652</a:CreationDate>\n<a:ModificationDate>1542180972</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((42220,118524), (54294,124896))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o276\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o120\">\n<a:CreationDate>1522303116</a:CreationDate>\n<a:ModificationDate>1542180981</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((49967,98230), (63587,105428))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o277\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o126\">\n<a:CreationDate>1522303730</a:CreationDate>\n<a:ModificationDate>1538200596</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((42442,2610), (54516,12282))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o278\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o125\">\n<a:CreationDate>1522303928</a:CreationDate>\n<a:ModificationDate>1522398635</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((23424,7923), (35498,14295))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o279\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o129\">\n<a:CreationDate>1522379808</a:CreationDate>\n<a:ModificationDate>1522398605</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20174,37439), (37270,49587))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o280\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o132\">\n<a:CreationDate>1522387387</a:CreationDate>\n<a:ModificationDate>1522399143</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((38718,75272), (55734,79271))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o281\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o137\">\n<a:CreationDate>1522387906</a:CreationDate>\n<a:ModificationDate>1522398872</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20470,59617), (36794,74239))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o282\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o140\">\n<a:CreationDate>1522390106</a:CreationDate>\n<a:ModificationDate>1535437026</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20171,50021), (33405,59693))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o283\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o143\">\n<a:CreationDate>1522390511</a:CreationDate>\n<a:ModificationDate>1522398535</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((22234,23620), (33922,30818))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o284\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o149\">\n<a:CreationDate>1522390830</a:CreationDate>\n<a:ModificationDate>1522398616</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((62383,52106), (77935,56829))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o285\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o146\">\n<a:CreationDate>1522391304</a:CreationDate>\n<a:ModificationDate>1522398550</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((62162,60044), (74010,64043))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o286\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o152\">\n<a:CreationDate>1522396385</a:CreationDate>\n<a:ModificationDate>1522398621</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((64324,30809), (76786,38831))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o287\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o155\">\n<a:CreationDate>1522396809</a:CreationDate>\n<a:ModificationDate>1522398618</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((63785,41307), (76247,49329))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o288\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o289\">\n<a:CreationDate>1522397182</a:CreationDate>\n<a:ModificationDate>1522398632</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((60231,18019), (72693,23567))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o290\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o291\">\n<a:CreationDate>1522397511</a:CreationDate>\n<a:ModificationDate>1522398629</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((41533,16306), (57085,23504))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o292\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o293\">\n<a:CreationDate>1522398032</a:CreationDate>\n<a:ModificationDate>1535615091</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((22716,17129), (36336,22677))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o294\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o158\">\n<a:CreationDate>1522658325</a:CreationDate>\n<a:ModificationDate>1522724919</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-109337,102538), (-90457,132828))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o295\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o161\">\n<a:CreationDate>1522660695</a:CreationDate>\n<a:ModificationDate>1522723641</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-79617,123965), (-64573,137059))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o296\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o170\">\n<a:CreationDate>1522724973</a:CreationDate>\n<a:ModificationDate>1522725331</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-78198,113051), (-65736,119423))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o297\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o298\">\n<a:CreationDate>1522726076</a:CreationDate>\n<a:ModificationDate>1522732894</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-125389,125206), (-111769,131578))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o299\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o173\">\n<a:CreationDate>1522732897</a:CreationDate>\n<a:ModificationDate>1539745800</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-73824,83922), (-57114,108404))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o300\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o176\">\n<a:CreationDate>1522745162</a:CreationDate>\n<a:ModificationDate>1522745515</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-97736,85264), (-84502,94832))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o301\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o302\">\n<a:CreationDate>1522745726</a:CreationDate>\n<a:ModificationDate>1522745726</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-125978,117636), (-113904,123184))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o303\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o179\">\n<a:CreationDate>1533108597</a:CreationDate>\n<a:ModificationDate>1533116074</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((-126796,94842), (-112242,111452))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o304\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o192\">\n<a:CreationDate>1538200619</a:CreationDate>\n<a:ModificationDate>1538202954</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((60084,1311), (72158,8509))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o305\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o186\">\n<a:CreationDate>1538201545</a:CreationDate>\n<a:ModificationDate>1580624566</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20158,-11944), (32232,-2272))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o306\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o189\">\n<a:CreationDate>1538202419</a:CreationDate>\n<a:ModificationDate>1580609625</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((58946,10814), (73218,15337))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o307\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o195\">\n<a:CreationDate>1538202537</a:CreationDate>\n<a:ModificationDate>1580624567</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((34457,-7542), (46601,-2903))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o308\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o200\">\n<a:CreationDate>1538202617</a:CreationDate>\n<a:ModificationDate>1580624563</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((20655,1087), (32129,5810))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o309\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o213\">\n<a:CreationDate>1542177985</a:CreationDate>\n<a:ModificationDate>1542179426</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((57941,117502), (72983,124214))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o310\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o209\">\n<a:CreationDate>1542179013</a:CreationDate>\n<a:ModificationDate>1542180977</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((42003,107173), (68001,115335))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o311\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o218\">\n<a:CreationDate>1580624574</a:CreationDate>\n<a:ModificationDate>1580625137</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((76332,11881), (88406,21427))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o312\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o229\">\n<a:CreationDate>1580624625</a:CreationDate>\n<a:ModificationDate>1581324463</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((89944,9375), (102166,16974))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o313\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o221\">\n<a:CreationDate>1580624663</a:CreationDate>\n<a:ModificationDate>1580625381</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((77407,42), (87097,4784))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o314\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o226\">\n<a:CreationDate>1580624686</a:CreationDate>\n<a:ModificationDate>1580625458</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((92110,601), (102656,5590))</a:Rect>\n<a:AutoAdjustToText>0</a:AutoAdjustToText>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<a:ManuallyResized>1</a:ManuallyResized>\n<c:Object>\n<o:Table Ref=\"o315\"/>\n</c:Object>\n</o:TableSymbol>\n<o:TableSymbol Id=\"o232\">\n<a:CreationDate>1580869056</a:CreationDate>\n<a:ModificationDate>1580869177</a:ModificationDate>\n<a:IconMode>-1</a:IconMode>\n<a:Rect>((107189,12279), (119263,17002))</a:Rect>\n<a:LineColor>12615680</a:LineColor>\n<a:FillColor>16570034</a:FillColor>\n<a:ShadowColor>12632256</a:ShadowColor>\n<a:FontList>STRN 0 新宋体,10,N\nDISPNAME 0 新宋体,8,N\nOWNRDISPNAME 0 新宋体,8,N\nColumns 0 新宋体,8,N\nTablePkColumns 0 新宋体,8,U\nTableFkColumns 0 新宋体,8,N\nKeys 0 新宋体,8,N\nIndexes 0 新宋体,8,N\nTriggers 0 新宋体,8,N\nLABL 0 新宋体,8,N</a:FontList>\n<a:BrushStyle>6</a:BrushStyle>\n<a:GradientFillMode>65</a:GradientFillMode>\n<a:GradientEndColor>16777215</a:GradientEndColor>\n<c:Object>\n<o:Table Ref=\"o316\"/>\n</c:Object>\n</o:TableSymbol>\n</c:Symbols>\n</o:PhysicalDiagram>\n</c:PhysicalDiagrams>\n<c:DefaultDiagram>\n<o:PhysicalDiagram Ref=\"o4\"/>\n</c:DefaultDiagram>\n<c:Tables>\n<o:Table Id=\"o234\">\n<a:ObjectID>164FB8D9-0905-474E-87B0-2A812FEB067D</a:ObjectID>\n<a:Name>pms_product</a:Name>\n<a:Code>pms_product</a:Code>\n<a:CreationDate>1521705853</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179559</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品信息</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o317\">\n<a:ObjectID>8AF7359B-13B5-4473-A6E3-242871D32BD6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521705876</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o318\">\n<a:ObjectID>B6BFD1D9-71C4-49F0-A761-EB23FDF9EF89</a:ObjectID>\n<a:Name>brand_id</a:Name>\n<a:Code>brand_id</a:Code>\n<a:CreationDate>1521706257</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706277</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o319\">\n<a:ObjectID>EFA57D19-DB53-47A2-9E13-6F237D2B8765</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1521773101</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773123</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o320\">\n<a:ObjectID>9E4E0B0C-6DC6-4602-A1BB-BEF479CC25B4</a:ObjectID>\n<a:Name>feight_template_id</a:Name>\n<a:Code>feight_template_id</a:Code>\n<a:CreationDate>1521783613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783636</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o321\">\n<a:ObjectID>122FA791-93A8-4854-AB3B-87B68387B78D</a:ObjectID>\n<a:Name>product_attribute_category_id</a:Name>\n<a:Code>product_attribute_category_id</a:Code>\n<a:CreationDate>1522046100</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046125</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o322\">\n<a:ObjectID>C67A0956-CA1B-4ADF-878F-13B1538C122A</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1521705899</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771550</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o323\">\n<a:ObjectID>EC9E5B4D-23BF-425E-9781-90BD8BC6D802</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1521705899</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770319</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o324\">\n<a:ObjectID>BAAD6FF5-DD35-4EFA-8B78-E4DB32CCFC06</a:ObjectID>\n<a:Name>product_sn</a:Name>\n<a:Code>product_sn</a:Code>\n<a:CreationDate>1521706312</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771591</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>货号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o325\">\n<a:ObjectID>FC369A8B-64C8-4931-A1E2-80F902E4FE4A</a:ObjectID>\n<a:Name>delete_status</a:Name>\n<a:Code>delete_status</a:Code>\n<a:CreationDate>1521773185</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773247</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>删除状态：0-&gt;未删除；1-&gt;已删除</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o326\">\n<a:ObjectID>12E77491-5C20-442C-9E04-DE7192B496D3</a:ObjectID>\n<a:Name>publish_status</a:Name>\n<a:Code>publish_status</a:Code>\n<a:CreationDate>1521706416</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521708284</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>上架状态：0-&gt;下架；1-&gt;上架</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o327\">\n<a:ObjectID>7E4B57E7-DCCD-4D96-93E0-E3A2E0D9B2F8</a:ObjectID>\n<a:Name>new_status</a:Name>\n<a:Code>new_status</a:Code>\n<a:CreationDate>1521708193</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521708312</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>新品状态:0-&gt;不是新品；1-&gt;新品</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o328\">\n<a:ObjectID>C32DF9EC-A332-4DB2-A56B-74E0F6168FF1</a:ObjectID>\n<a:Name>recommand_status</a:Name>\n<a:Code>recommand_status</a:Code>\n<a:CreationDate>1521708193</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521708410</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>推荐状态；0-&gt;不推荐；1-&gt;推荐</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o329\">\n<a:ObjectID>47876735-91B4-42FC-A052-22640AC057D8</a:ObjectID>\n<a:Name>verify_status</a:Name>\n<a:Code>verify_status</a:Code>\n<a:CreationDate>1521710674</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710725</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>审核状态：0-&gt;未审核；1-&gt;审核通过</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o330\">\n<a:ObjectID>07A57EB8-410D-4E59-AD0C-8A1AD4DD3951</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1521708381</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521708544</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o331\">\n<a:ObjectID>93478201-C851-481D-B110-56414379F2A3</a:ObjectID>\n<a:Name>sale</a:Name>\n<a:Code>sale</a:Code>\n<a:CreationDate>1521710587</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>销量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o332\">\n<a:ObjectID>C5845093-F658-46C1-B381-6585F2337029</a:ObjectID>\n<a:Name>price</a:Name>\n<a:Code>price</a:Code>\n<a:CreationDate>1521706312</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706372</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o333\">\n<a:ObjectID>8A8C872F-23FC-42E2-BC8F-EA4374E0C4ED</a:ObjectID>\n<a:Name>promotion_price</a:Name>\n<a:Code>promotion_price</a:Code>\n<a:CreationDate>1521770729</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522720423</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>促销价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o334\">\n<a:ObjectID>DADE2195-8B3B-42F2-9C5A-847124C0C327</a:ObjectID>\n<a:Name>gift_growth</a:Name>\n<a:Code>gift_growth</a:Code>\n<a:CreationDate>1527561524</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535963779</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>赠送的成长值</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o335\">\n<a:ObjectID>9ECDB8CD-593F-431C-B580-756BC29F0E69</a:ObjectID>\n<a:Name>gift_point</a:Name>\n<a:Code>gift_point</a:Code>\n<a:CreationDate>1521771016</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535963789</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>赠送的积分</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o336\">\n<a:ObjectID>1C3E16DC-0AB6-489F-83D6-CB92058E8AD6</a:ObjectID>\n<a:Name>use_point_limit</a:Name>\n<a:Code>use_point_limit</a:Code>\n<a:CreationDate>1521771103</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771156</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限制使用的积分数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o337\">\n<a:ObjectID>8DBA22FF-9FEF-4E36-8B0D-D0712EB1AFDD</a:ObjectID>\n<a:Name>sub_title</a:Name>\n<a:Code>sub_title</a:Code>\n<a:CreationDate>1521773700</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773733</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>副标题</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o338\">\n<a:ObjectID>074C30CA-F802-4EA3-8B92-AE332D8FE237</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1521774517</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791536</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品描述</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o339\">\n<a:ObjectID>50335AAB-9D8F-4794-A706-A51E04285498</a:ObjectID>\n<a:Name>original_price</a:Name>\n<a:Code>original_price</a:Code>\n<a:CreationDate>1521775224</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521775254</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>市场价</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o340\">\n<a:ObjectID>F1511198-BFDC-4CA7-A79F-6BEA7863E4CA</a:ObjectID>\n<a:Name>stock</a:Name>\n<a:Code>stock</a:Code>\n<a:CreationDate>1521775417</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521775449</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>库存</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o341\">\n<a:ObjectID>9B83BF24-B43F-41AE-93AA-6E9723B41F3D</a:ObjectID>\n<a:Name>low_stock</a:Name>\n<a:Code>low_stock</a:Code>\n<a:CreationDate>1521775417</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521775458</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>库存预警值</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o342\">\n<a:ObjectID>29B50C2C-38C6-4080-83F7-309CC040B9D3</a:ObjectID>\n<a:Name>unit</a:Name>\n<a:Code>unit</a:Code>\n<a:CreationDate>1521775486</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521775515</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>单位</a:Comment>\n<a:DataType>varchar(16)</a:DataType>\n<a:Length>16</a:Length>\n</o:Column>\n<o:Column Id=\"o343\">\n<a:ObjectID>F07F26B4-DC76-4F4D-8FF7-6E299DAE613A</a:ObjectID>\n<a:Name>weight</a:Name>\n<a:Code>weight</a:Code>\n<a:CreationDate>1521775567</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521775649</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品重量，默认为克</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o344\">\n<a:ObjectID>730DF7D7-E307-4039-BFD4-04B4E145776D</a:ObjectID>\n<a:Name>preview_status</a:Name>\n<a:Code>preview_status</a:Code>\n<a:CreationDate>1521782409</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521782456</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否为预告商品：0-&gt;不是；1-&gt;是</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o345\">\n<a:ObjectID>BB566C0D-3C0A-42EB-AAFE-89E56EDB5AF3</a:ObjectID>\n<a:Name>service_ids</a:Name>\n<a:Code>service_ids</a:Code>\n<a:CreationDate>1521783875</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521784127</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>以逗号分割的产品服务：1-&gt;无忧退货；2-&gt;快速退款；3-&gt;免费包邮</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o346\">\n<a:ObjectID>25E62F7C-D9D8-4B61-8337-7A94F4A1F969</a:ObjectID>\n<a:Name>keywords</a:Name>\n<a:Code>keywords</a:Code>\n<a:CreationDate>1521784236</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521784353</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o347\">\n<a:ObjectID>730BAD96-E459-412D-B812-E9BDBDF6DC1B</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1521784236</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521784353</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o348\">\n<a:ObjectID>22BBCF62-4B72-4C69-BFE1-81F1378D4703</a:ObjectID>\n<a:Name>album_pics</a:Name>\n<a:Code>album_pics</a:Code>\n<a:CreationDate>1522046916</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046981</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>画册图片，连产品图片限制为5张，以逗号分割</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o349\">\n<a:ObjectID>27D69BFE-AEE5-4095-9688-3F11B0A3F5B3</a:ObjectID>\n<a:Name>detail_title</a:Name>\n<a:Code>detail_title</a:Code>\n<a:CreationDate>1521784236</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521784353</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o350\">\n<a:ObjectID>66C1D3B2-DFB9-472B-9B46-054F4A995EC8</a:ObjectID>\n<a:Name>detail_desc</a:Name>\n<a:Code>detail_desc</a:Code>\n<a:CreationDate>1521784236</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521784353</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o351\">\n<a:ObjectID>4407B70B-168F-489C-86FC-913130573035</a:ObjectID>\n<a:Name>detail_html</a:Name>\n<a:Code>detail_html</a:Code>\n<a:CreationDate>1522047002</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522047039</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品详情网页内容</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o352\">\n<a:ObjectID>A16D766A-2FAC-4806-B5B6-7BCE643BD125</a:ObjectID>\n<a:Name>detail_mobile_html</a:Name>\n<a:Code>detail_mobile_html</a:Code>\n<a:CreationDate>1522047022</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522047069</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>移动端网页详情</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o353\">\n<a:ObjectID>125B7984-46F6-4A6B-986E-637075A7B792</a:ObjectID>\n<a:Name>promotion_start_time</a:Name>\n<a:Code>promotion_start_time</a:Code>\n<a:CreationDate>1522721079</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721101</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>促销开始时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o354\">\n<a:ObjectID>CD7F32DC-B2C4-4F0B-86A6-C3EF8BBC11E4</a:ObjectID>\n<a:Name>promotion_end_time</a:Name>\n<a:Code>promotion_end_time</a:Code>\n<a:CreationDate>1522721096</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>促销结束时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o355\">\n<a:ObjectID>AF663519-4F0B-438D-9F86-A3B4494C91B5</a:ObjectID>\n<a:Name>promotion_per_limit</a:Name>\n<a:Code>promotion_per_limit</a:Code>\n<a:CreationDate>1522721333</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721377</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>活动限购数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o356\">\n<a:ObjectID>2870F419-7F16-4C2C-BEE8-69AD3C322429</a:ObjectID>\n<a:Name>promotion_type</a:Name>\n<a:Code>promotion_type</a:Code>\n<a:CreationDate>1522721953</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179623</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>促销类型：0-&gt;没有促销使用原价;1-&gt;使用促销价；2-&gt;使用会员价；3-&gt;使用阶梯价格；4-&gt;使用满减价格；5-&gt;限时购</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o357\">\n<a:ObjectID>BC8E43C1-F35D-4BA2-A622-D282035B08CF</a:ObjectID>\n<a:Name>product_category_name</a:Name>\n<a:Code>product_category_name</a:Code>\n<a:CreationDate>1524810975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524811010</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品分类名称</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o358\">\n<a:ObjectID>7B4B3817-5E34-476B-B9DF-20FC181A2FC4</a:ObjectID>\n<a:Name>brand_name</a:Name>\n<a:Code>brand_name</a:Code>\n<a:CreationDate>1524811003</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524811036</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>品牌名称</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o359\">\n<a:ObjectID>8FF04A0E-BF3D-4A1B-B05D-FAD79976F256</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521705876</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o317\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:Indexes>\n<o:Index Id=\"o360\">\n<a:ObjectID>C003EAE8-4D2B-4CD2-910D-617ED63DCFDE</a:ObjectID>\n<a:Name>index_name</a:Name>\n<a:Code>index_name</a:Code>\n<a:CreationDate>1521771497</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771550</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:IndexColumns>\n<o:IndexColumn Id=\"o361\">\n<a:ObjectID>F55EF3D5-E93C-4AAE-95BE-5E91AD084511</a:ObjectID>\n<a:CreationDate>1521771542</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771550</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Column>\n<o:Column Ref=\"o322\"/>\n</c:Column>\n</o:IndexColumn>\n</c:IndexColumns>\n</o:Index>\n<o:Index Id=\"o362\">\n<a:ObjectID>EC80C139-CCE0-49CF-AF77-52A1C35DC8AC</a:ObjectID>\n<a:Name>index_product_sn</a:Name>\n<a:Code>index_product_sn</a:Code>\n<a:CreationDate>1521771497</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521772268</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Unique>1</a:Unique>\n<c:IndexColumns>\n<o:IndexColumn Id=\"o363\">\n<a:ObjectID>D0E6B1E9-C1D3-40AD-BCA6-928C253C57CC</a:ObjectID>\n<a:CreationDate>1521771579</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771591</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Column>\n<o:Column Ref=\"o324\"/>\n</c:Column>\n</o:IndexColumn>\n</c:IndexColumns>\n</o:Index>\n</c:Indexes>\n<c:PrimaryKey>\n<o:Key Ref=\"o359\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o235\">\n<a:ObjectID>8DB91C27-0C0C-42C1-9C82-B99A752DFFDE</a:ObjectID>\n<a:Name>pms_brand</a:Name>\n<a:Code>pms_brand</a:Code>\n<a:CreationDate>1521706107</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116692</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>品牌表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o364\">\n<a:ObjectID>BA330DA5-20D1-42FB-A362-94D07D30A4B6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521706123</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706154</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o365\">\n<a:ObjectID>45F3DFE2-8F5D-4CDF-9FE5-4A6904BB07D4</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1521706148</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706194</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o366\">\n<a:ObjectID>CDFF668D-2DBA-4D99-8E76-B05114B8EAD7</a:ObjectID>\n<a:Name>first_letter</a:Name>\n<a:Code>first_letter</a:Code>\n<a:CreationDate>1522116447</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116473</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首字母</a:Comment>\n<a:DataType>varchar(8)</a:DataType>\n<a:Length>8</a:Length>\n</o:Column>\n<o:Column Id=\"o367\">\n<a:ObjectID>9E323340-1826-471A-93EE-92C45769B194</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522116482</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116540</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o368\">\n<a:ObjectID>97FF98F7-8A09-4C40-8D52-FC32F0021DF9</a:ObjectID>\n<a:Name>factory_status</a:Name>\n<a:Code>factory_status</a:Code>\n<a:CreationDate>1522116482</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116560</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否为品牌制造商：0-&gt;不是；1-&gt;是</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o369\">\n<a:ObjectID>5F86AE1D-14C6-421F-9065-6B3248678ECF</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116692</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o370\">\n<a:ObjectID>A8CA06B3-8F05-4D05-A9E0-B979D053C74A</a:ObjectID>\n<a:Name>product_count</a:Name>\n<a:Code>product_count</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116717</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o371\">\n<a:ObjectID>F6BC9D0C-3D20-4CB3-B906-0D660320FC88</a:ObjectID>\n<a:Name>product_comment_count</a:Name>\n<a:Code>product_comment_count</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116728</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品评论数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o372\">\n<a:ObjectID>28BF01C1-2534-46E1-8D03-3D1304399694</a:ObjectID>\n<a:Name>logo</a:Name>\n<a:Code>logo</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116744</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>品牌logo</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o373\">\n<a:ObjectID>955AC940-E5A2-4791-8DB3-46874F51898B</a:ObjectID>\n<a:Name>big_pic</a:Name>\n<a:Code>big_pic</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116821</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专区大图</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o374\">\n<a:ObjectID>822303EE-A57E-432B-AB93-E9C6B4B67358</a:ObjectID>\n<a:Name>brand_story</a:Name>\n<a:Code>brand_story</a:Code>\n<a:CreationDate>1522116540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116753</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>品牌故事</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o375\">\n<a:ObjectID>12C8D1EF-1F7E-46ED-AD23-4F0BD57F243D</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521706123</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706148</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o364\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o375\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o236\">\n<a:ObjectID>A9A5B46B-D1A3-4619-86D4-AD1A3FF949B1</a:ObjectID>\n<a:Name>pms_sku_stock</a:Name>\n<a:Code>pms_sku_stock</a:Code>\n<a:CreationDate>1521709482</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1582621117</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>sku的库存</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o376\">\n<a:ObjectID>F8A87B5F-1B3E-416A-9AA6-E6330490C79F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521709484</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115846</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o377\">\n<a:ObjectID>0A9D0B97-8FCA-4D49-9649-6D3A6398F71D</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521710488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710505</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o378\">\n<a:ObjectID>300133D5-246C-492C-8106-E0464641A1AD</a:ObjectID>\n<a:Name>sku_code</a:Name>\n<a:Code>sku_code</a:Code>\n<a:CreationDate>1521709695</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522214782</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>sku编码</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o379\">\n<a:ObjectID>2C098191-D831-42F7-981A-BB5FC58097A3</a:ObjectID>\n<a:Name>price</a:Name>\n<a:Code>price</a:Code>\n<a:CreationDate>1521709829</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521709926</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o380\">\n<a:ObjectID>F0D06968-A5E5-4A38-82DA-909C1AF9500C</a:ObjectID>\n<a:Name>stock</a:Name>\n<a:Code>stock</a:Code>\n<a:CreationDate>1521709829</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535619079</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>库存</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o381\">\n<a:ObjectID>627512CB-E621-46A5-B077-12BB80006181</a:ObjectID>\n<a:Name>low_stock</a:Name>\n<a:Code>low_stock</a:Code>\n<a:CreationDate>1521709829</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521709939</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>预警库存</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o382\">\n<a:ObjectID>2385F4C5-9983-48B4-9E03-710937E056A4</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1521710423</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770332</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>展示图片</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o383\">\n<a:ObjectID>C9AA0DC8-AEE6-4401-AE9A-65B6FD89A608</a:ObjectID>\n<a:Name>sale</a:Name>\n<a:Code>sale</a:Code>\n<a:CreationDate>1521710565</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710584</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>销量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o384\">\n<a:ObjectID>F8B829D9-2390-44F9-AE79-B698E94E2F5D</a:ObjectID>\n<a:Name>promotion_price</a:Name>\n<a:Code>promotion_price</a:Code>\n<a:CreationDate>1534927833</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1534927874</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>单品促销价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o385\">\n<a:ObjectID>385D5E74-8D2D-4429-8BF1-1DB7C0ED0E8D</a:ObjectID>\n<a:Name>lock_stock</a:Name>\n<a:Code>lock_stock</a:Code>\n<a:CreationDate>1534927865</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535619073</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>锁定库存</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o386\">\n<a:ObjectID>30F35E66-3167-4F75-B0DC-48B30CEC1C4F</a:ObjectID>\n<a:Name>sp_data</a:Name>\n<a:Code>sp_data</a:Code>\n<a:CreationDate>1582277384</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1582277412</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品销售属性，json格式</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o387\">\n<a:ObjectID>BF22FDBF-9CF7-4FF4-A579-4C0AAC38A457</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521709484</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115846</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o376\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o387\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o237\">\n<a:ObjectID>B9FC590F-46F6-4235-8672-FF13B2E50A77</a:ObjectID>\n<a:Name>pms_product_vertify_record</a:Name>\n<a:Code>pms_product_vertify_record</a:Code>\n<a:CreationDate>1521710820</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770349</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品审核记录</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o388\">\n<a:ObjectID>530FCADE-4166-42A4-8453-5D874EEC4522</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770174</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o389\">\n<a:ObjectID>7493F171-CA73-4150-A6EA-AB0D8FF46D75</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521770349</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o390\">\n<a:ObjectID>9786F28F-F757-486B-93A9-7C5A5E46D950</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521711025</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o391\">\n<a:ObjectID>7E1BFDC6-E587-45E4-AE7C-8C3466279D4C</a:ObjectID>\n<a:Name>vertify_man</a:Name>\n<a:Code>vertify_man</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521711032</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>审核人</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o392\">\n<a:ObjectID>06C38A5C-1977-42C3-A614-B2DF0654BB47</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524816533</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>审核后的状态：0-&gt;未通过；2-&gt;已通过</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o393\">\n<a:ObjectID>8C61E1D1-7809-4E91-8638-43739274A2CB</a:ObjectID>\n<a:Name>detail</a:Name>\n<a:Code>detail</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770161</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>反馈详情</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o394\">\n<a:ObjectID>5AA18CE6-B6B1-4D42-840C-F0ED5A7EE6AC</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521710821</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521711025</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o388\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o394\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o238\">\n<a:ObjectID>9063AF6E-4B68-4106-803C-747646C77EB0</a:ObjectID>\n<a:Name>pms_product_operate_log</a:Name>\n<a:Code>pms_product_operate_log</a:Code>\n<a:CreationDate>1521770649</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o395\">\n<a:ObjectID>715605E0-FA0B-4C2F-87CA-35849F4999B3</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521770770</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770806</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o396\">\n<a:ObjectID>3DB748F5-8378-4A65-9103-BC4AF0D6CD51</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521771362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771375</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o397\">\n<a:ObjectID>ED9DDCD5-C1E3-4A0A-A2BF-6AE1FE20479B</a:ObjectID>\n<a:Name>price_old</a:Name>\n<a:Code>price_old</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o398\">\n<a:ObjectID>38DD8227-7B0A-4661-A5B4-48AE1CC49CB0</a:ObjectID>\n<a:Name>price_new</a:Name>\n<a:Code>price_new</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o399\">\n<a:ObjectID>25E58A65-F4B3-4A38-BF9F-B4951F1D2A52</a:ObjectID>\n<a:Name>sale_price_old</a:Name>\n<a:Code>sale_price_old</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o400\">\n<a:ObjectID>A2768BA1-44DB-4DA5-8E18-42AE3A6181FD</a:ObjectID>\n<a:Name>sale_price_new</a:Name>\n<a:Code>sale_price_new</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o401\">\n<a:ObjectID>ACC53AA1-DE06-4626-9248-159BA1AEF3C0</a:ObjectID>\n<a:Name>gift_point_old</a:Name>\n<a:Code>gift_point_old</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771014</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>赠送的积分</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o402\">\n<a:ObjectID>AE80A7D3-2CF1-4F55-87C8-48BF66B3E0F5</a:ObjectID>\n<a:Name>gift_point_new</a:Name>\n<a:Code>gift_point_new</a:Code>\n<a:CreationDate>1521770804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o403\">\n<a:ObjectID>9D16C330-E114-4778-B552-DDF06AF3BC55</a:ObjectID>\n<a:Name>use_point_limit_old</a:Name>\n<a:Code>use_point_limit_old</a:Code>\n<a:CreationDate>1521771164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771200</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o404\">\n<a:ObjectID>F4FFECE7-3152-46A5-83C6-60D352457335</a:ObjectID>\n<a:Name>use_point_limit_new</a:Name>\n<a:Code>use_point_limit_new</a:Code>\n<a:CreationDate>1521771164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771200</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o405\">\n<a:ObjectID>74162271-05EF-4D60-A189-252B04234604</a:ObjectID>\n<a:Name>operate_man</a:Name>\n<a:Code>operate_man</a:Code>\n<a:CreationDate>1521771246</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771275</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作人</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o406\">\n<a:ObjectID>966002F8-6310-4146-A9EA-4F185033236B</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1521771269</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771335</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o407\">\n<a:ObjectID>74CA880E-049D-422E-9C8D-AD3A1E73DCE2</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521770770</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770804</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o395\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o407\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o239\">\n<a:ObjectID>0D760BB3-CA67-4F64-B6A5-2D093F7657D6</a:ObjectID>\n<a:Name>pms_product_category</a:Name>\n<a:Code>pms_product_category</a:Code>\n<a:CreationDate>1521773028</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115630</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品分类</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o408\">\n<a:ObjectID>7235E328-6BF3-4CFD-B1C6-A02A6F6718A9</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521773048</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773067</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o409\">\n<a:ObjectID>0E642091-F38B-4D5F-937D-DA9C4151EFE2</a:ObjectID>\n<a:Name>parent_id</a:Name>\n<a:Code>parent_id</a:Code>\n<a:CreationDate>1522114406</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522114468</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>上机分类的编号：0表示一级分类</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o410\">\n<a:ObjectID>BDD611F1-0142-4419-B183-4F15282363D5</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1521773064</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773092</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o411\">\n<a:ObjectID>1A0124D2-0307-433A-ADEA-62C14A6003F0</a:ObjectID>\n<a:Name>level</a:Name>\n<a:Code>level</a:Code>\n<a:CreationDate>1522114959</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522116072</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类级别：0-&gt;1级；1-&gt;2级</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o412\">\n<a:ObjectID>E50CCB02-2506-46DA-A95C-950DE16DF50F</a:ObjectID>\n<a:Name>product_count</a:Name>\n<a:Code>product_count</a:Code>\n<a:CreationDate>1522115030</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115103</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o413\">\n<a:ObjectID>054029CE-B46E-4C2D-BFE1-E460D1B12275</a:ObjectID>\n<a:Name>product_unit</a:Name>\n<a:Code>product_unit</a:Code>\n<a:CreationDate>1522115030</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115103</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o414\">\n<a:ObjectID>8FF814D8-75E9-43DC-8CA8-890BECAEC537</a:ObjectID>\n<a:Name>nav_status</a:Name>\n<a:Code>nav_status</a:Code>\n<a:CreationDate>1522115030</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115270</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否显示在导航栏：0-&gt;不显示；1-&gt;显示</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o415\">\n<a:ObjectID>D38D4B8B-1852-4350-93ED-1803A7BEA6E7</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522115145</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115208</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>显示状态：0-&gt;不显示；1-&gt;显示</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o416\">\n<a:ObjectID>B47FED84-81B7-4E39-B763-8EE996F2424B</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522115178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115228</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o417\">\n<a:ObjectID>DB87CC69-B178-4FCD-B827-2A6C79ED2FE9</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522115323</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115342</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>图标</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o418\">\n<a:ObjectID>93F08150-5658-4346-B8FC-7F52F889824A</a:ObjectID>\n<a:Name>keywords</a:Name>\n<a:Code>keywords</a:Code>\n<a:CreationDate>1522115588</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115630</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o419\">\n<a:ObjectID>4B01893A-E307-49EB-B5D4-98B55B0A48D1</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1522115588</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115634</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>描述</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o420\">\n<a:ObjectID>64090BE2-8BEC-4616-8DDE-E24C94B52E9D</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521773048</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773064</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o408\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o420\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o240\">\n<a:ObjectID>4C5F5ABA-B6AB-4689-9F04-B487E920C073</a:ObjectID>\n<a:Name>pms_feight_template</a:Name>\n<a:Code>pms_feight_template</a:Code>\n<a:CreationDate>1521782818</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783539</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>运费模版</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o421\">\n<a:ObjectID>50FF090A-11EC-4F73-B237-ACA1D6347465</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521783117</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783139</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o422\">\n<a:ObjectID>E3A40203-E74E-4FC9-8A61-0169E8FD93BF</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1521783135</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783238</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o423\">\n<a:ObjectID>8BE728B7-5B75-4D76-A896-09F73A87B08A</a:ObjectID>\n<a:Name>charge_type</a:Name>\n<a:Code>charge_type</a:Code>\n<a:CreationDate>1521783135</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783309</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>计费类型:0-&gt;按重量；1-&gt;按件数</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o424\">\n<a:ObjectID>63F6CF39-B317-4872-869A-4AA80BCB1FDC</a:ObjectID>\n<a:Name>first_weight</a:Name>\n<a:Code>first_weight</a:Code>\n<a:CreationDate>1521783270</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783558</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首重kg</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o425\">\n<a:ObjectID>DC192E82-45CE-4623-AD18-DA14ECB31F39</a:ObjectID>\n<a:Name>first_fee</a:Name>\n<a:Code>first_fee</a:Code>\n<a:CreationDate>1521783270</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783579</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首费（元）</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o426\">\n<a:ObjectID>7D5538AC-2415-4EFA-8A9B-A46204FF35CB</a:ObjectID>\n<a:Name>continue_weight</a:Name>\n<a:Code>continue_weight</a:Code>\n<a:CreationDate>1521783270</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783539</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o427\">\n<a:ObjectID>4EC457E3-A82A-4B3B-86B7-D4E0C200780F</a:ObjectID>\n<a:Name>continme_fee</a:Name>\n<a:Code>continme_fee</a:Code>\n<a:CreationDate>1521783270</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783539</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o428\">\n<a:ObjectID>FE7A715E-1C3C-4E28-BBB2-1B34605B2EAF</a:ObjectID>\n<a:Name>dest</a:Name>\n<a:Code>dest</a:Code>\n<a:CreationDate>1521783270</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783601</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>目的地（省、市）</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o429\">\n<a:ObjectID>3F3D7980-1F46-4F3E-BDFD-AF0F8EEE2FA6</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521783117</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o421\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o429\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o241\">\n<a:ObjectID>22CB8FD3-3DDD-4FF9-AE76-E13CF6CD6875</a:ObjectID>\n<a:Name>pms_member_price</a:Name>\n<a:Code>pms_member_price</a:Code>\n<a:CreationDate>1521791032</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1528184156</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品会员价格表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o430\">\n<a:ObjectID>30FC5C31-983F-4219-9339-C8B5BABB7234</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521791069</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791086</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o431\">\n<a:ObjectID>9BC9FEC6-7030-4F2B-9C10-86F37EB776FD</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521791466</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791479</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o432\">\n<a:ObjectID>49BA6972-E766-4A84-8B8B-9C4DD271CE61</a:ObjectID>\n<a:Name>member_level_id</a:Name>\n<a:Code>member_level_id</a:Code>\n<a:CreationDate>1522721755</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721767</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o433\">\n<a:ObjectID>941A6699-6C9F-4E4B-9FAA-B6E6F69906EC</a:ObjectID>\n<a:Name>member_price</a:Name>\n<a:Code>member_price</a:Code>\n<a:CreationDate>1522721615</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721665</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o434\">\n<a:ObjectID>0B4E79EF-7E2C-41DE-B72B-C9BC578A2F72</a:ObjectID>\n<a:Name>member_level_name</a:Name>\n<a:Code>member_level_name</a:Code>\n<a:CreationDate>1528184129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1528184156</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o435\">\n<a:ObjectID>FE782243-6FFE-4CEE-BA53-9AFE8D357748</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521791069</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791083</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o430\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o435\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o242\">\n<a:ObjectID>DDA47447-C998-4D66-9FD0-1A64A30E043C</a:ObjectID>\n<a:Name>pms_product_ladder</a:Name>\n<a:Code>pms_product_ladder</a:Code>\n<a:CreationDate>1521791865</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721483</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品阶梯价格表(只针对同商品)</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o436\">\n<a:ObjectID>C7FD3278-BB15-4A88-A424-42163F101417</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521792127</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792152</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o437\">\n<a:ObjectID>3FDC1BDA-8A46-4848-9D75-3856408246F6</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521792428</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792442</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o438\">\n<a:ObjectID>8A95CD6B-64CA-48FE-BF0F-46E24B04A977</a:ObjectID>\n<a:Name>count</a:Name>\n<a:Code>count</a:Code>\n<a:CreationDate>1521792148</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792177</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>满足的商品数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o439\">\n<a:ObjectID>F9D8DAEF-F28F-424D-9532-FB464AD4E654</a:ObjectID>\n<a:Name>discount</a:Name>\n<a:Code>discount</a:Code>\n<a:CreationDate>1521792164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792218</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>折扣</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o440\">\n<a:ObjectID>7693845E-7B98-4C2E-9406-863D4F8E612A</a:ObjectID>\n<a:Name>price</a:Name>\n<a:Code>price</a:Code>\n<a:CreationDate>1521792219</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>折后价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o441\">\n<a:ObjectID>4C0C9B14-EE1D-4112-A02D-85975F91C2F9</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521792127</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792148</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o436\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o441\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o243\">\n<a:ObjectID>9C7F6D83-696D-4AC2-B63C-41A457276432</a:ObjectID>\n<a:Name>pms_product_full_reduction</a:Name>\n<a:Code>pms_product_full_reduction</a:Code>\n<a:CreationDate>1521791901</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721499</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品满减表(只针对同商品)</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o442\">\n<a:ObjectID>1CB2D116-96CD-4A26-B9D4-B7AA00AD92E7</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1521792488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524721741</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o443\">\n<a:ObjectID>AF625FED-C1BF-47A8-94CE-EAB80C7CE452</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1521792909</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792920</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o444\">\n<a:ObjectID>56253152-8B4B-4F5D-ABB7-DFAEBED5C6EA</a:ObjectID>\n<a:Name>full_price</a:Name>\n<a:Code>full_price</a:Code>\n<a:CreationDate>1521792498</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792848</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o445\">\n<a:ObjectID>A23F3BDA-C442-413A-8F7F-EBBAFF4EB634</a:ObjectID>\n<a:Name>reduce_price</a:Name>\n<a:Code>reduce_price</a:Code>\n<a:CreationDate>1521792498</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792848</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o446\">\n<a:ObjectID>42DEDB72-EACE-44AD-8377-601D1EF19A71</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1521792488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792498</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o442\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o446\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o244\">\n<a:ObjectID>8CA12D96-D48C-4542-A89B-718C043C331E</a:ObjectID>\n<a:Name>pms_product_attribute_category</a:Name>\n<a:Code>pms_product_attribute_category</a:Code>\n<a:CreationDate>1522044163</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044533</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品属性分类表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o447\">\n<a:ObjectID>C0EDF8D7-B021-4E78-AB1C-3372732BAA8A</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522044196</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044533</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o448\">\n<a:ObjectID>DF80D9F1-71A8-4898-9D4B-CDEFFFD1C51F</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522044211</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044389</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o449\">\n<a:ObjectID>34182414-4199-49E6-B221-AF015FAD34FB</a:ObjectID>\n<a:Name>attribute_count</a:Name>\n<a:Code>attribute_count</a:Code>\n<a:CreationDate>1522044211</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044418</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>属性数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o450\">\n<a:ObjectID>728FAF40-18B5-42AD-9006-390BB12DF6D5</a:ObjectID>\n<a:Name>param_count</a:Name>\n<a:Code>param_count</a:Code>\n<a:CreationDate>1522044211</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044436</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>参数数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o451\">\n<a:ObjectID>C340AD67-5366-4172-A5C1-715381DA4E4C</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522044527</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044533</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o447\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o451\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o245\">\n<a:ObjectID>1959D6C2-18BC-4144-85F7-C5CD3C830DB4</a:ObjectID>\n<a:Name>pms_product_attribute</a:Name>\n<a:Code>pms_product_attribute</a:Code>\n<a:CreationDate>1522044465</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045805</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品属性参数表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o452\">\n<a:ObjectID>9736DD68-0C91-45FD-98D9-098B45FAA881</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522044502</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044525</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o453\">\n<a:ObjectID>46A4A5DC-A87A-4AB1-A41A-E70B98AA3C7F</a:ObjectID>\n<a:Name>product_attribute_category_id</a:Name>\n<a:Code>product_attribute_category_id</a:Code>\n<a:CreationDate>1522045168</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045192</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o454\">\n<a:ObjectID>A23C122D-1090-414B-A50F-64053E0CA705</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522044544</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044628</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o455\">\n<a:ObjectID>0475CD9F-ECC5-435C-812F-16D6D2FDA0F5</a:ObjectID>\n<a:Name>select_type</a:Name>\n<a:Code>select_type</a:Code>\n<a:CreationDate>1522044544</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1551343683</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>属性选择类型：0-&gt;唯一；1-&gt;单选；2-&gt;多选；对应属性和参数意义不同；</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o456\">\n<a:ObjectID>A656FC1F-FC28-4012-8876-5FE082ADCFC1</a:ObjectID>\n<a:Name>input_type</a:Name>\n<a:Code>input_type</a:Code>\n<a:CreationDate>1522044628</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044761</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>属性录入方式：0-&gt;手工录入；1-&gt;从列表中选取</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o457\">\n<a:ObjectID>673D1CDE-138E-45B6-9ADE-9C9FBAF1FA3C</a:ObjectID>\n<a:Name>input_list</a:Name>\n<a:Code>input_list</a:Code>\n<a:CreationDate>1522044737</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044853</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>可选值列表，以逗号隔开</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o458\">\n<a:ObjectID>2710E2E2-FD53-4302-B88E-62F2B708E736</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522044833</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045635</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序字段：最高的可以单独上传图片</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o459\">\n<a:ObjectID>6A4CA846-5A79-4A70-9C1B-69D819C67C91</a:ObjectID>\n<a:Name>filter_type</a:Name>\n<a:Code>filter_type</a:Code>\n<a:CreationDate>1522044833</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045152</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类筛选样式：1-&gt;普通；1-&gt;颜色</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o460\">\n<a:ObjectID>2BE254B3-3CD8-4794-929E-3FBEB258936B</a:ObjectID>\n<a:Name>search_type</a:Name>\n<a:Code>search_type</a:Code>\n<a:CreationDate>1522045233</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045285</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>检索类型；0-&gt;不需要进行检索；1-&gt;关键字检索；2-&gt;范围检索</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o461\">\n<a:ObjectID>5C1F000F-8181-4CF0-B2C6-422AC7CD8EF3</a:ObjectID>\n<a:Name>related_status</a:Name>\n<a:Code>related_status</a:Code>\n<a:CreationDate>1522045363</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045485</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>相同属性产品是否关联；0-&gt;不关联；1-&gt;关联</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o462\">\n<a:ObjectID>3660F2D1-79BF-4600-B965-259108FA8784</a:ObjectID>\n<a:Name>hand_add_status</a:Name>\n<a:Code>hand_add_status</a:Code>\n<a:CreationDate>1522045453</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045556</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否支持手动新增；0-&gt;不支持；1-&gt;支持</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o463\">\n<a:ObjectID>1EFD6D7F-29E6-4B52-A192-EDDEFFF5EB54</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522045781</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045820</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>属性的类型；0-&gt;规格；1-&gt;参数</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o464\">\n<a:ObjectID>D37FC115-4FED-46C1-9D29-34FE0FCB103F</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522044517</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522044525</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o452\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o464\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o246\">\n<a:ObjectID>70D24471-1832-42AF-BF28-DF5C4D67427D</a:ObjectID>\n<a:Name>pms_product_attribute_value</a:Name>\n<a:Code>pms_product_attribute_value</a:Code>\n<a:CreationDate>1522046351</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046456</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>存储产品参数信息的表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o465\">\n<a:ObjectID>98949F13-7401-4B46-8C46-AD0EDB279FA6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522046392</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046409</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o466\">\n<a:ObjectID>A73883DF-2D36-497D-8D90-9EB0F5CF3C5B</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522046451</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524710981</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o467\">\n<a:ObjectID>92ACF804-9722-47C3-826B-A2611338F2F6</a:ObjectID>\n<a:Name>product_attribute_id</a:Name>\n<a:Code>product_attribute_id</a:Code>\n<a:CreationDate>1522046456</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524710981</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o468\">\n<a:ObjectID>E83F864A-D6C1-48EA-B9A3-7C9AB2ED55A1</a:ObjectID>\n<a:Name>value</a:Name>\n<a:Code>value</a:Code>\n<a:CreationDate>1522046406</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1531100886</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>手动添加规格或参数的值，参数单值，规格有多个时以逗号隔开</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o469\">\n<a:ObjectID>66A6E0B8-A090-45F7-ACD4-8815D7DF6B6F</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522046392</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046406</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o465\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o469\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o247\">\n<a:ObjectID>73D97C96-1D05-46E2-89CA-985688FD385B</a:ObjectID>\n<a:Name>cms_topic</a:Name>\n<a:Code>cms_topic</a:Code>\n<a:CreationDate>1522050428</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141317</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>话题表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o470\">\n<a:ObjectID>E5586D56-C86E-40C0-8433-7EAAB1A7A79F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522050454</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522050470</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o471\">\n<a:ObjectID>8DBF595F-4E5A-42F6-A301-D87380DA3FE6</a:ObjectID>\n<a:Name>category_id</a:Name>\n<a:Code>category_id</a:Code>\n<a:CreationDate>1522141317</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141327</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o472\">\n<a:ObjectID>8CDFD790-F0B3-436A-8295-5F442B1A3E07</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522050467</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522050484</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o473\">\n<a:ObjectID>CD7B71CD-51EB-49B3-93FE-59F59BF51EF2</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522140989</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o474\">\n<a:ObjectID>351D963E-FCB6-4A62-A03E-79FC4362CAFD</a:ObjectID>\n<a:Name>start_time</a:Name>\n<a:Code>start_time</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522140989</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o475\">\n<a:ObjectID>BC71816F-CC52-4DD7-869B-5EF23E07824D</a:ObjectID>\n<a:Name>end_time</a:Name>\n<a:Code>end_time</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522140989</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o476\">\n<a:ObjectID>082A202D-0BB3-41C1-9474-62FE6C172569</a:ObjectID>\n<a:Name>attend_count</a:Name>\n<a:Code>attend_count</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141052</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>参与人数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o477\">\n<a:ObjectID>6A84107F-35BF-4BB0-B867-39198A321E01</a:ObjectID>\n<a:Name>attention_count</a:Name>\n<a:Code>attention_count</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141063</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>关注人数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o478\">\n<a:ObjectID>5A9F5276-5222-4760-BA85-CA98154759F9</a:ObjectID>\n<a:Name>read_count</a:Name>\n<a:Code>read_count</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522140989</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o479\">\n<a:ObjectID>1931F93B-6D40-4FD7-9C4F-1C67815C3459</a:ObjectID>\n<a:Name>award_name</a:Name>\n<a:Code>award_name</a:Code>\n<a:CreationDate>1522140807</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522140997</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>奖品名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o480\">\n<a:ObjectID>6440D5DB-2981-4203-9519-A4CB896AB498</a:ObjectID>\n<a:Name>attend_type</a:Name>\n<a:Code>attend_type</a:Code>\n<a:CreationDate>1522140989</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141043</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>参与方式</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o481\">\n<a:ObjectID>C88BACB1-A103-4EC5-8800-F500CE872650</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522141034</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141083</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>话题内容</a:Comment>\n<a:DataType>text</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o482\">\n<a:ObjectID>9469C4F2-63EF-48D7-85F7-749CBD56D5A9</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522050454</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522050467</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o470\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o482\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o248\">\n<a:ObjectID>143551D6-36A8-4263-B499-17416D5B4E78</a:ObjectID>\n<a:Name>cms_prefrence_area</a:Name>\n<a:Code>cms_prefrence_area</a:Code>\n<a:CreationDate>1522112533</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139400</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优选专区</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o483\">\n<a:ObjectID>601C99AA-881D-4188-A507-8EBC584792A1</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522112534</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112571</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o484\">\n<a:ObjectID>FCDEF8AE-3C3E-4D80-8718-68B2BFDAAAAB</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522112567</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112584</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o485\">\n<a:ObjectID>6F54EFCF-2121-40E1-A012-0780AA817B9E</a:ObjectID>\n<a:Name>sub_title</a:Name>\n<a:Code>sub_title</a:Code>\n<a:CreationDate>1522139220</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o486\">\n<a:ObjectID>31AB8614-FFF2-430B-A3B9-8592C41EC3B4</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1522139329</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139365</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>展示图片</a:Comment>\n<a:DataType>varbinary(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o487\">\n<a:ObjectID>27D98403-DF29-48CA-A724-8E2B6FFEFB01</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522139372</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139400</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o488\">\n<a:ObjectID>3BD7C5D5-B647-4499-ABA6-AE5E08D069CE</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139372</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139400</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o489\">\n<a:ObjectID>D4E19AA8-AFAB-4791-A6C7-15DBDF850779</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522112534</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112567</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o483\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o489\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o249\">\n<a:ObjectID>A13BD5C1-4EB4-4269-978C-7BC04C9CDC6E</a:ObjectID>\n<a:Name>cms_prefrence_area_product_relation</a:Name>\n<a:Code>cms_prefrence_area_product_relation</a:Code>\n<a:CreationDate>1522112617</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215871</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优选专区和产品关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o490\">\n<a:ObjectID>F54F6DBB-9A10-4191-9426-087F11A04093</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522112618</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112684</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o491\">\n<a:ObjectID>AD6438FF-9782-40FA-82DB-D99F8C15BC39</a:ObjectID>\n<a:Name>prefrence_area_id</a:Name>\n<a:Code>prefrence_area_id</a:Code>\n<a:CreationDate>1522112691</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139303</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o492\">\n<a:ObjectID>A5DE8A1D-EF5C-4ADB-BAEC-1DC5B833C89D</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522112694</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112722</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o493\">\n<a:ObjectID>6248D431-92E7-4999-9E2E-A8492D60909B</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522112618</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112681</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o490\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o493\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o250\">\n<a:ObjectID>7124790D-D56B-43AC-9EF3-1CFC5BF12114</a:ObjectID>\n<a:Name>pms_product_category_attribute_relation</a:Name>\n<a:Code>pms_product_category_attribute_relation</a:Code>\n<a:CreationDate>1522115893</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215883</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品的分类和属性的关系表，用于设置分类筛选条件（只支持一级分类）</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o494\">\n<a:ObjectID>9185CBA8-9501-4F1D-869D-7CFE0D62A0E5</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522115894</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115954</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o495\">\n<a:ObjectID>2A249FE2-167D-4966-B80C-A1F2029335D5</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1522115961</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115975</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o496\">\n<a:ObjectID>CA02967F-18F1-4803-AE3A-A4C6F3085047</a:ObjectID>\n<a:Name>product_attribute_id</a:Name>\n<a:Code>product_attribute_id</a:Code>\n<a:CreationDate>1522115983</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115997</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o497\">\n<a:ObjectID>7664FAB4-1504-4257-846E-556F70D39E63</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522115894</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o494\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o497\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o251\">\n<a:ObjectID>56CDA36B-EA58-4AE1-B858-A5F9A2F29A8E</a:ObjectID>\n<a:Name>pms_comment</a:Name>\n<a:Code>pms_comment</a:Code>\n<a:CreationDate>1522118136</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119143</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品评价表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o498\">\n<a:ObjectID>0B63A5AB-69A1-49D3-B274-537BE5F79603</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522118175</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118191</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o499\">\n<a:ObjectID>AAEF7DDC-9B2F-46B6-A8B1-C6F87BF129B3</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522118676</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118692</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o500\">\n<a:ObjectID>E861609A-6A46-4405-ABD0-EE63DF7C18AB</a:ObjectID>\n<a:Name>member_nick_name</a:Name>\n<a:Code>member_nick_name</a:Code>\n<a:CreationDate>1522118254</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o501\">\n<a:ObjectID>93F98F3F-AE44-425D-8437-15EFCA931DEE</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522118254</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o502\">\n<a:ObjectID>3B937D50-F65E-4FCC-91E6-987280555E0F</a:ObjectID>\n<a:Name>star</a:Name>\n<a:Code>star</a:Code>\n<a:CreationDate>1522118296</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118388</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评价星数：0-&gt;5</a:Comment>\n<a:DataType>int(3)</a:DataType>\n<a:Length>3</a:Length>\n</o:Column>\n<o:Column Id=\"o503\">\n<a:ObjectID>FF2F85AD-9EEF-4482-8425-012B16214ACC</a:ObjectID>\n<a:Name>member_ip</a:Name>\n<a:Code>member_ip</a:Code>\n<a:CreationDate>1522118356</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118421</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评价的ip</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o504\">\n<a:ObjectID>928C78C9-46A9-4372-89AE-240801429406</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522118413</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118537</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o505\">\n<a:ObjectID>60548BBB-24E8-420F-A512-5446E5A2E760</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522118413</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118537</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o506\">\n<a:ObjectID>9F48621B-2FCF-45E5-9143-1BE198FF29B5</a:ObjectID>\n<a:Name>product_attribute</a:Name>\n<a:Code>product_attribute</a:Code>\n<a:CreationDate>1522118413</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118546</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>购买时的商品属性</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o507\">\n<a:ObjectID>DCCC00DA-5050-4C5E-B95B-2FCC03D9FD16</a:ObjectID>\n<a:Name>collect_couont</a:Name>\n<a:Code>collect_couont</a:Code>\n<a:CreationDate>1522118537</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118636</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o508\">\n<a:ObjectID>0C6D9887-AA40-4B94-93DC-624FB5BDE0BA</a:ObjectID>\n<a:Name>read_count</a:Name>\n<a:Code>read_count</a:Code>\n<a:CreationDate>1522118537</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118636</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o509\">\n<a:ObjectID>7B205E86-CD8C-4B49-8E5C-34A3FB5FB46B</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522118537</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118636</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o510\">\n<a:ObjectID>BE5DD03F-680E-4FF4-BC30-A3249F0F3240</a:ObjectID>\n<a:Name>pics</a:Name>\n<a:Code>pics</a:Code>\n<a:CreationDate>1522118537</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118653</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>上传图片地址，以逗号隔开</a:Comment>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o511\">\n<a:ObjectID>27BD4283-26AA-4F27-9E13-963F0588E6E2</a:ObjectID>\n<a:Name>member_icon</a:Name>\n<a:Code>member_icon</a:Code>\n<a:CreationDate>1522118919</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118952</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评论用户头像</a:Comment>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o512\">\n<a:ObjectID>1C85F6E9-ECED-473D-95C8-3509F812EBAE</a:ObjectID>\n<a:Name>replay_count</a:Name>\n<a:Code>replay_count</a:Code>\n<a:CreationDate>1522119113</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119127</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o513\">\n<a:ObjectID>FB3F2C83-222B-4B40-9A1A-B8E7586FC5D1</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522118175</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118187</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o498\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o513\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o252\">\n<a:ObjectID>9E632F70-2FF6-43F1-8035-39044AC4B722</a:ObjectID>\n<a:Name>pms_comment_replay</a:Name>\n<a:Code>pms_comment_replay</a:Code>\n<a:CreationDate>1522118840</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119205</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品评价回复表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o514\">\n<a:ObjectID>C0FE35AD-E3D8-46AA-BD43-0A4FE9348CF6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522118870</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118887</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o515\">\n<a:ObjectID>6A4043C2-5C50-430C-BD5B-AA0D11362AC2</a:ObjectID>\n<a:Name>comment_id</a:Name>\n<a:Code>comment_id</a:Code>\n<a:CreationDate>1522119056</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119072</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o516\">\n<a:ObjectID>C6A4F7EC-CA0E-4E95-80BB-BB5BD4C7CF03</a:ObjectID>\n<a:Name>member_nick_name</a:Name>\n<a:Code>member_nick_name</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119041</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o517\">\n<a:ObjectID>D39F911F-9FF3-401E-89A2-A0CF1AEB11F5</a:ObjectID>\n<a:Name>member_icon</a:Name>\n<a:Code>member_icon</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119041</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o518\">\n<a:ObjectID>37F379DF-80F8-4A2D-A1FD-F1B8DFFF3E8C</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119041</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o519\">\n<a:ObjectID>4D97D374-C6C4-4835-8901-0A0AF230090C</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119041</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o520\">\n<a:ObjectID>7323FC1E-0690-46C9-AE91-EBC17297BB57</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522119192</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119239</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评论人员类型；0-&gt;会员；1-&gt;管理员</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o521\">\n<a:ObjectID>AB67D302-57F5-41ED-BA76-1DA5FCEA3BD1</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522118880</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118887</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o514\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o521\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o253\">\n<a:ObjectID>6D104B7B-620F-491A-ABC4-B60B21CF69BC</a:ObjectID>\n<a:Name>pms_album</a:Name>\n<a:Code>pms_album</a:Code>\n<a:CreationDate>1522120039</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>相册表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o522\">\n<a:ObjectID>424E4971-5936-46F8-BAE1-7F4220EDC6B5</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522120040</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120064</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o523\">\n<a:ObjectID>0C2DE146-32E0-438D-907D-FA27F53BE712</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522120061</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o524\">\n<a:ObjectID>2DAC711E-D5AE-4A25-8D7E-3A748D5B5988</a:ObjectID>\n<a:Name>cover_pic</a:Name>\n<a:Code>cover_pic</a:Code>\n<a:CreationDate>1522120061</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o525\">\n<a:ObjectID>B2BBBBA4-937B-440C-9708-7D2094D5893B</a:ObjectID>\n<a:Name>pic_count</a:Name>\n<a:Code>pic_count</a:Code>\n<a:CreationDate>1522120061</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o526\">\n<a:ObjectID>F34D2B7C-8CB3-4078-99E6-ED7DA2FEC59B</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522120061</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o527\">\n<a:ObjectID>1EED58B2-81C2-4FA8-8242-3B9845D29645</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1522120061</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o528\">\n<a:ObjectID>1535694E-35FA-45D2-9EC4-0AC46AAB6A81</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522120040</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120061</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o522\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o528\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o254\">\n<a:ObjectID>111B6F68-21FF-450D-9F6E-40C4E4F09B6C</a:ObjectID>\n<a:Name>pms_album_pic</a:Name>\n<a:Code>pms_album_pic</a:Code>\n<a:CreationDate>1522120250</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120295</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>画册图片表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o529\">\n<a:ObjectID>E25430EB-9E92-44D3-BD29-B357E9DCB2F6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522120251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120277</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o530\">\n<a:ObjectID>572B79C1-82C5-405D-A13E-11183C8382C3</a:ObjectID>\n<a:Name>album_id</a:Name>\n<a:Code>album_id</a:Code>\n<a:CreationDate>1522120295</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120304</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o531\">\n<a:ObjectID>EA74BD79-E880-467B-AEED-0E92E733AE95</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1522120273</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o532\">\n<a:ObjectID>B677823F-37C2-47FB-A8EE-F10B80BF40BB</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522120251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120273</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o529\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o532\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o255\">\n<a:ObjectID>B57200C6-A503-406F-BC2F-5B144309EC10</a:ObjectID>\n<a:Name>cms_subject</a:Name>\n<a:Code>cms_subject</a:Code>\n<a:CreationDate>1522138190</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542086220</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o533\">\n<a:ObjectID>53BC0750-B403-49FD-A50A-F081E7D2409F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522138235</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1524711592</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o534\">\n<a:ObjectID>42524411-D613-4537-A110-5746681D4178</a:ObjectID>\n<a:Name>category_id</a:Name>\n<a:Code>category_id</a:Code>\n<a:CreationDate>1522138705</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139827</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o535\">\n<a:ObjectID>B88B2152-E11E-4B3E-8752-12B9A9B9D6E6</a:ObjectID>\n<a:Name>title</a:Name>\n<a:Code>title</a:Code>\n<a:CreationDate>1522138235</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138313</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o536\">\n<a:ObjectID>82CD4D66-89A8-4563-A6E1-1DE23B4E0326</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1522138235</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138320</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题主图</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o537\">\n<a:ObjectID>7CE3D060-441E-426C-A4DE-E36FA20C37B3</a:ObjectID>\n<a:Name>product_count</a:Name>\n<a:Code>product_count</a:Code>\n<a:CreationDate>1522138235</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138330</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>关联产品数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o538\">\n<a:ObjectID>DC926B26-780C-422A-9F01-918ACE01616D</a:ObjectID>\n<a:Name>recommend_status</a:Name>\n<a:Code>recommend_status</a:Code>\n<a:CreationDate>1522138235</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138489</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o539\">\n<a:ObjectID>ADDFD504-1961-4B20-A5A7-2663BE5DC0E6</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522138313</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138489</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o540\">\n<a:ObjectID>5D13D140-A74E-4586-880C-1BFE0A0E11D4</a:ObjectID>\n<a:Name>collect_count</a:Name>\n<a:Code>collect_count</a:Code>\n<a:CreationDate>1522138313</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138489</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o541\">\n<a:ObjectID>EAEA9201-9947-490A-9AA6-36A980292101</a:ObjectID>\n<a:Name>read_count</a:Name>\n<a:Code>read_count</a:Code>\n<a:CreationDate>1522138313</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138489</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o542\">\n<a:ObjectID>2FEB2EE8-3445-412B-809E-86AA3ECF4529</a:ObjectID>\n<a:Name>comment_count</a:Name>\n<a:Code>comment_count</a:Code>\n<a:CreationDate>1522138313</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138489</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o543\">\n<a:ObjectID>3213DDDC-F105-4CF3-85B1-0AF4B28D18BD</a:ObjectID>\n<a:Name>album_pics</a:Name>\n<a:Code>album_pics</a:Code>\n<a:CreationDate>1522138313</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138499</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>画册图片用逗号分割</a:Comment>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o544\">\n<a:ObjectID>3E65E187-85C6-4C2C-8508-6459E5634653</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1522138733</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138806</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o545\">\n<a:ObjectID>2E84713F-CB2B-46A6-BA44-489D2F6458EE</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522138733</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139016</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>显示状态：0-&gt;不显示；1-&gt;显示</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o546\">\n<a:ObjectID>53DFEF92-6705-4834-A79D-DBE1EA44CC23</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522138733</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138806</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>text</a:DataType>\n</o:Column>\n<o:Column Id=\"o547\">\n<a:ObjectID>2BEA9B61-5B2A-495A-A1F3-CDC9992E6EC0</a:ObjectID>\n<a:Name>forward_count</a:Name>\n<a:Code>forward_count</a:Code>\n<a:CreationDate>1522139567</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139597</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>转发数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o548\">\n<a:ObjectID>38F4212D-8579-407B-BA77-92A54008F60B</a:ObjectID>\n<a:Name>category_name</a:Name>\n<a:Code>category_name</a:Code>\n<a:CreationDate>1542086194</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542086464</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题分类名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o549\">\n<a:ObjectID>EEB1DA22-1547-4B23-B534-2C0E6E700AC7</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522138603</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138607</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o533\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o549\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o256\">\n<a:ObjectID>606E012F-14A2-4A00-AD6E-15A2EFBB9C5E</a:ObjectID>\n<a:Name>cms_subject_product_relation</a:Name>\n<a:Code>cms_subject_product_relation</a:Code>\n<a:CreationDate>1522138561</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215878</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题商品关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o550\">\n<a:ObjectID>5DF4FFB5-2AF3-432F-B7B4-7F3BB6E24DBE</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522138589</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139788</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o551\">\n<a:ObjectID>CEA5917C-7E9D-4BBC-9C36-526EDCFEE760</a:ObjectID>\n<a:Name>subject_id</a:Name>\n<a:Code>subject_id</a:Code>\n<a:CreationDate>1522138613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138642</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o552\">\n<a:ObjectID>5071E824-D357-4D1D-A766-5EEF7042D9DB</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522138618</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138642</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o553\">\n<a:ObjectID>F54E063F-39C6-4A3F-B83A-85972E2FF817</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522138589</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138597</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o550\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o553\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o257\">\n<a:ObjectID>AB473418-20D2-4DA3-8888-C528B336912A</a:ObjectID>\n<a:Name>cms_subject_category</a:Name>\n<a:Code>cms_subject_category</a:Code>\n<a:CreationDate>1522138655</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题分类表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o554\">\n<a:ObjectID>25CBB635-2A80-4F21-B7E8-E352F1B4F77F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o555\">\n<a:ObjectID>A1D41EA4-B0CA-4941-A909-27D9909E0E37</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522138679</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138696</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o556\">\n<a:ObjectID>D8AE7B27-35EB-4915-B668-4C51D80A4A48</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522139032</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139093</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类图标</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o557\">\n<a:ObjectID>6FA5F7F2-CFF4-42F4-8F7D-21845B349CCB</a:ObjectID>\n<a:Name>subject_count</a:Name>\n<a:Code>subject_count</a:Code>\n<a:CreationDate>1522139087</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o558\">\n<a:ObjectID>B0C5DD2A-9B58-4590-8B05-06401B097A8C</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(2)</a:DataType>\n<a:Length>2</a:Length>\n</o:Column>\n<o:Column Id=\"o559\">\n<a:ObjectID>E2526823-EFE1-4B05-B1D2-26F058A2982A</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o560\">\n<a:ObjectID>FB93F2E5-22E1-4B1A-A200-33E4152340C2</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138679</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o554\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o560\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o258\">\n<a:ObjectID>49773448-772B-485E-A3C7-B11481FECA81</a:ObjectID>\n<a:Name>cms_subject_comment</a:Name>\n<a:Code>cms_subject_comment</a:Code>\n<a:CreationDate>1522118840</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141232</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题评论表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o561\">\n<a:ObjectID>1147FDE1-65B1-4BFD-A1A2-B020098BE42C</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522118870</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o562\">\n<a:ObjectID>2ADF8874-CC3E-474C-B210-4025C4AC3F72</a:ObjectID>\n<a:Name>subject_id</a:Name>\n<a:Code>subject_id</a:Code>\n<a:CreationDate>1522141232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141245</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o563\">\n<a:ObjectID>B0459F20-23C7-466D-8A4F-8796D69A0C08</a:ObjectID>\n<a:Name>member_nick_name</a:Name>\n<a:Code>member_nick_name</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o564\">\n<a:ObjectID>C2AF427F-DE7F-4C75-ACE7-0ABFD02455DA</a:ObjectID>\n<a:Name>member_icon</a:Name>\n<a:Code>member_icon</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o565\">\n<a:ObjectID>5D00E7C2-F197-490B-819E-120CEC889DC6</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o566\">\n<a:ObjectID>DF4234D6-78A1-41C9-AD35-1888B1FEAB6F</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o567\">\n<a:ObjectID>86082980-A127-4EDF-8EFC-E8148463178A</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139856</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139873</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o568\">\n<a:ObjectID>36EEDF00-52B8-437E-B236-EEA161669A1B</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522118880</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522139643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o561\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o568\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o259\">\n<a:ObjectID>D0100727-1202-4283-BD62-F95371B06299</a:ObjectID>\n<a:Name>cms_topic_comment</a:Name>\n<a:Code>cms_topic_comment</a:Code>\n<a:CreationDate>1522118840</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522399064</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题评论表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o569\">\n<a:ObjectID>58CD3CFC-497C-4971-AD22-9987D668CDE6</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522118870</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o570\">\n<a:ObjectID>DE828932-9533-4CE1-86D2-A92BD6FED7AA</a:ObjectID>\n<a:Name>member_nick_name</a:Name>\n<a:Code>member_nick_name</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o571\">\n<a:ObjectID>45FF2606-4361-412C-B9DC-397D23DEE33B</a:ObjectID>\n<a:Name>topic_id</a:Name>\n<a:Code>topic_id</a:Code>\n<a:CreationDate>1522141157</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141168</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o572\">\n<a:ObjectID>449FC5FE-AE37-4C13-B286-63FD48F70DA9</a:ObjectID>\n<a:Name>member_icon</a:Name>\n<a:Code>member_icon</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(255)</a:DataType>\n<a:Length>255</a:Length>\n</o:Column>\n<o:Column Id=\"o573\">\n<a:ObjectID>395DC11D-5668-46CE-AAA6-AFFD0AEC84A2</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o574\">\n<a:ObjectID>31AE7B63-BC68-4E98-B907-92F1D8C6CD90</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522118977</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o575\">\n<a:ObjectID>711458F7-23E9-480C-8749-66742D667C05</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139856</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o576\">\n<a:ObjectID>AF9DA610-2D90-4723-8586-DE3F17CC93AC</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522118880</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o569\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o576\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o260\">\n<a:ObjectID>DAA0A46E-FEF2-4004-97B6-4FF049BC1DF2</a:ObjectID>\n<a:Name>cms_topic_category</a:Name>\n<a:Code>cms_topic_category</a:Code>\n<a:CreationDate>1522138655</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141297</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>话题分类表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o577\">\n<a:ObjectID>D109BEFC-0C6F-4B8C-AA21-461DB4903D66</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o578\">\n<a:ObjectID>F26259A6-E8E7-4CBC-BBBF-9E99449079B4</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522138679</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o579\">\n<a:ObjectID>1DAD2A73-1384-45CD-84B3-C8A2021FAB46</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522139032</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类图标</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o580\">\n<a:ObjectID>2413D731-87CA-45E0-AD41-AA64C90DA23F</a:ObjectID>\n<a:Name>subject_count</a:Name>\n<a:Code>subject_count</a:Code>\n<a:CreationDate>1522139087</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o581\">\n<a:ObjectID>B591EC57-36F5-4C03-A012-D0ADBF3E4C0F</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(2)</a:DataType>\n<a:Length>2</a:Length>\n</o:Column>\n<o:Column Id=\"o582\">\n<a:ObjectID>DAFFB2FD-33EB-4BB3-9E0C-0297E575E351</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o583\">\n<a:ObjectID>99A75D70-8F78-4D6E-8953-00CADCEAB0E0</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141269</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o577\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o583\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o261\">\n<a:ObjectID>5312D8EC-AF1A-469E-BC98-AB6273AAAE0E</a:ObjectID>\n<a:Name>cms_help</a:Name>\n<a:Code>cms_help</a:Code>\n<a:CreationDate>1522141745</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142006</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>帮助表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o584\">\n<a:ObjectID>A9D8065D-3D37-419F-9038-978F59CEBB8F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522141746</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141791</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o585\">\n<a:ObjectID>99F1B8BB-6318-423F-8D30-A40703AF7A53</a:ObjectID>\n<a:Name>category_id</a:Name>\n<a:Code>category_id</a:Code>\n<a:CreationDate>1522142006</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142017</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o586\">\n<a:ObjectID>C7F74EDD-B6CB-4D46-9617-F8C14AB2DF2F</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o587\">\n<a:ObjectID>FF621D0D-B8FA-4725-A175-D7B2BABA5B94</a:ObjectID>\n<a:Name>title</a:Name>\n<a:Code>title</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o588\">\n<a:ObjectID>E6895426-49FA-4AF4-BB77-757AA0BF864C</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o589\">\n<a:ObjectID>F08C0B0D-F6B3-4A69-AA15-9DE56C118112</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o590\">\n<a:ObjectID>4354AAE9-96D2-4D68-9074-4D6D43058031</a:ObjectID>\n<a:Name>read_count</a:Name>\n<a:Code>read_count</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o591\">\n<a:ObjectID>38267C50-CED4-4040-80C3-F2BB84F55DE1</a:ObjectID>\n<a:Name>content</a:Name>\n<a:Code>content</a:Code>\n<a:CreationDate>1522141808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141921</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>text</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o592\">\n<a:ObjectID>23861D6B-7336-4999-B247-2795E01A36A6</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522141746</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141776</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o584\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o592\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o262\">\n<a:ObjectID>C69D6CF4-1D0A-4C73-BD5D-728063BA5CF5</a:ObjectID>\n<a:Name>cms_help_category</a:Name>\n<a:Code>cms_help_category</a:Code>\n<a:CreationDate>1522138655</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141973</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>帮助分类表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o593\">\n<a:ObjectID>67081E82-4B28-4B4B-950A-A6977DDC416C</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o594\">\n<a:ObjectID>23A542BE-7271-45B8-9BA3-2994EC446525</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522138679</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o595\">\n<a:ObjectID>E5E3B51D-A536-42AF-A7B5-B0CB88FA1382</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522139032</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类图标</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o596\">\n<a:ObjectID>433A0125-DC14-4DE3-AC67-4F50F73D9C10</a:ObjectID>\n<a:Name>help_count</a:Name>\n<a:Code>help_count</a:Code>\n<a:CreationDate>1522139087</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141999</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>专题数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o597\">\n<a:ObjectID>66476CEF-9E6C-4DD2-8CF4-F17B95C150DF</a:ObjectID>\n<a:Name>show_status</a:Name>\n<a:Code>show_status</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(2)</a:DataType>\n<a:Length>2</a:Length>\n</o:Column>\n<o:Column Id=\"o598\">\n<a:ObjectID>08AA26A1-B9BA-42BA-B07E-A3F313619269</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522139129</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o599\">\n<a:ObjectID>7062AB8C-E6E5-4256-9CAA-E35D576A4067</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522138656</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141950</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o593\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o599\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o264\">\n<a:ObjectID>EE13E81B-7389-4258-A293-350022D681E9</a:ObjectID>\n<a:Name>cms_member_report</a:Name>\n<a:Code>cms_member_report</a:Code>\n<a:CreationDate>1522142154</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142502</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户举报表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o600\">\n<a:ObjectID>26970FB1-6D6F-4F9B-B5AE-A006A5DA00B0</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522142174</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142240</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o601\">\n<a:ObjectID>6447324C-45CB-4E42-9437-A15934CB1F0D</a:ObjectID>\n<a:Name>report_type</a:Name>\n<a:Code>report_type</a:Code>\n<a:CreationDate>1522142174</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142646</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>举报类型：0-&gt;商品评价；1-&gt;话题内容；2-&gt;用户评论</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o602\">\n<a:ObjectID>020ECB31-0883-4162-80FA-2DFC32D3C7A5</a:ObjectID>\n<a:Name>report_member_name</a:Name>\n<a:Code>report_member_name</a:Code>\n<a:CreationDate>1522142240</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142303</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>举报人</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o603\">\n<a:ObjectID>C0692AD1-F67F-4EA1-8AA3-ACA47B0262AB</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522142298</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142386</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o604\">\n<a:ObjectID>C57611C0-AF26-4C7A-8D51-A283494F883A</a:ObjectID>\n<a:Name>report_object</a:Name>\n<a:Code>report_object</a:Code>\n<a:CreationDate>1522142298</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142386</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o605\">\n<a:ObjectID>A426736C-C224-4935-88EF-580A9D84580B</a:ObjectID>\n<a:Name>report_status</a:Name>\n<a:Code>report_status</a:Code>\n<a:CreationDate>1522142298</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142414</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>举报状态：0-&gt;未处理；1-&gt;已处理</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o606\">\n<a:ObjectID>2C32CB54-23F4-4619-8AB4-530388A5E455</a:ObjectID>\n<a:Name>handle_status</a:Name>\n<a:Code>handle_status</a:Code>\n<a:CreationDate>1522142386</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142486</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>处理结果：0-&gt;无效；1-&gt;有效；2-&gt;恶意</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o607\">\n<a:ObjectID>21DB5501-BCE1-40F6-9CEC-77A10758E766</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522142456</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142502</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n</o:Table>\n<o:Table Id=\"o265\">\n<a:ObjectID>62AC3907-4D95-4CFC-BB5D-A066679C4474</a:ObjectID>\n<a:Name>sms_coupon</a:Name>\n<a:Code>sms_coupon</a:Code>\n<a:CreationDate>1522215010</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541664280</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠卷表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o608\">\n<a:ObjectID>D967F787-301C-4453-9F6B-54CD376E68F4</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522215060</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724388</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o609\">\n<a:ObjectID>A42144EE-CFD6-4093-B8DF-AAEB4D87BCE3</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522215069</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215247</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠卷类型；0-&gt;全场赠券；1-&gt;会员赠券；2-&gt;购物赠券；3-&gt;注册赠券</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o610\">\n<a:ObjectID>4EEFF0DA-F8C0-4231-939F-9E67BFF4FA99</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522215086</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215247</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o611\">\n<a:ObjectID>C1161877-9671-43DB-8EA5-50B4ECBB89E4</a:ObjectID>\n<a:Name>platform</a:Name>\n<a:Code>platform</a:Code>\n<a:CreationDate>1522215086</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535445907</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>使用平台：0-&gt;全部；1-&gt;移动；2-&gt;PC</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o612\">\n<a:ObjectID>94DC173C-3B97-4520-9ADD-8F5F2ED04470</a:ObjectID>\n<a:Name>count</a:Name>\n<a:Code>count</a:Code>\n<a:CreationDate>1522215247</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215314</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o613\">\n<a:ObjectID>A15DA5DE-2744-4053-86C7-8A1CE2CA14D4</a:ObjectID>\n<a:Name>amount</a:Name>\n<a:Code>amount</a:Code>\n<a:CreationDate>1522215309</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747455</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o614\">\n<a:ObjectID>52D1095B-621A-413D-8161-72182E758527</a:ObjectID>\n<a:Name>per_limit</a:Name>\n<a:Code>per_limit</a:Code>\n<a:CreationDate>1522215394</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215437</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每人限领张数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o615\">\n<a:ObjectID>5D8378FF-E9D3-487E-B268-ABEECE41A427</a:ObjectID>\n<a:Name>min_point</a:Name>\n<a:Code>min_point</a:Code>\n<a:CreationDate>1522215424</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747549</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>使用门槛；0表示无门槛</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o616\">\n<a:ObjectID>A7094DFB-0744-466F-8C88-3131A1FEDB45</a:ObjectID>\n<a:Name>start_time</a:Name>\n<a:Code>start_time</a:Code>\n<a:CreationDate>1522215598</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215693</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o617\">\n<a:ObjectID>D9174D11-163F-4C6F-A36B-6EE33F1B7541</a:ObjectID>\n<a:Name>end_time</a:Name>\n<a:Code>end_time</a:Code>\n<a:CreationDate>1522215598</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215693</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o618\">\n<a:ObjectID>DF9AE437-11C1-4711-8579-9BA970124238</a:ObjectID>\n<a:Name>use_type</a:Name>\n<a:Code>use_type</a:Code>\n<a:CreationDate>1522215598</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215739</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>使用类型：0-&gt;全场通用；1-&gt;指定分类；2-&gt;指定商品</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o619\">\n<a:ObjectID>6F6944A7-CA49-4C62-8D4E-42FAFBBECB22</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522215693</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215779</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>备注</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o620\">\n<a:ObjectID>039EF37D-E0E4-4201-A3EF-539492AD9D53</a:ObjectID>\n<a:Name>publish_count</a:Name>\n<a:Code>publish_count</a:Code>\n<a:CreationDate>1522216740</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216765</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发行数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o621\">\n<a:ObjectID>6B22702A-9639-4B94-BDFF-D6203A623754</a:ObjectID>\n<a:Name>use_count</a:Name>\n<a:Code>use_count</a:Code>\n<a:CreationDate>1522216759</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216817</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>已使用数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o622\">\n<a:ObjectID>62F7E121-0FF8-41A5-A2F3-3CD1EBCF0113</a:ObjectID>\n<a:Name>receive_count</a:Name>\n<a:Code>receive_count</a:Code>\n<a:CreationDate>1535438655</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535439531</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>领取数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o623\">\n<a:ObjectID>C16B86B5-7FE8-4A40-B5BC-0890539301BB</a:ObjectID>\n<a:Name>enable_time</a:Name>\n<a:Code>enable_time</a:Code>\n<a:CreationDate>1522216971</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217000</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>可以领取的日期</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o624\">\n<a:ObjectID>57C38097-F524-4B80-9779-539E0F875778</a:ObjectID>\n<a:Name>code</a:Name>\n<a:Code>code</a:Code>\n<a:CreationDate>1522217015</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217041</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠码</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o625\">\n<a:ObjectID>7F81033C-AF9F-48BD-9332-708B55931EE7</a:ObjectID>\n<a:Name>member_level</a:Name>\n<a:Code>member_level</a:Code>\n<a:CreationDate>1522288044</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522288094</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>可领取的会员类型：0-&gt;无限时</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o626\">\n<a:ObjectID>F7B63883-C186-47A9-A442-EF3DC025999C</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522215069</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215086</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o608\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o626\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o266\">\n<a:ObjectID>F77D8A78-124B-40EF-BCA9-DF1D0BE3BBAD</a:ObjectID>\n<a:Name>sms_coupon_product_relation</a:Name>\n<a:Code>sms_coupon_product_relation</a:Code>\n<a:CreationDate>1522215792</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541748859</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券和产品的关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o627\">\n<a:ObjectID>51FBBF44-892D-4904-AD72-C367AD27B4DE</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522215913</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215933</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o628\">\n<a:ObjectID>8D3316AD-1CAF-4B5E-8FA0-645C1C73FFD7</a:ObjectID>\n<a:Name>coupon_id</a:Name>\n<a:Code>coupon_id</a:Code>\n<a:CreationDate>1522215975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535445127</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o629\">\n<a:ObjectID>39E7492F-B104-48BA-9460-88C66C6B971E</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522216015</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216048</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o630\">\n<a:ObjectID>6CFC63DC-3FA7-4C08-B3D3-EC4AB73264E5</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1541748810</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541748864</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品名称</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o631\">\n<a:ObjectID>30FFA3E1-D99B-4580-9685-A712EA6F1395</a:ObjectID>\n<a:Name>product_sn</a:Name>\n<a:Code>product_sn</a:Code>\n<a:CreationDate>1541748810</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541748881</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品编码</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o632\">\n<a:ObjectID>0DDAC07B-7800-4763-A772-BEDE47E015F8</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522215913</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215928</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o627\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o632\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o267\">\n<a:ObjectID>18D5F08F-2392-4C0C-8AD0-1264DD968732</a:ObjectID>\n<a:Name>sms_coupon_product_category_relation</a:Name>\n<a:Code>sms_coupon_product_category_relation</a:Code>\n<a:CreationDate>1522216155</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541749816</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券和产品分类关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o633\">\n<a:ObjectID>B1EF094E-8F24-4E21-92C3-20D17815DD8E</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522216188</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216239</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o634\">\n<a:ObjectID>0F265619-5CCA-4327-A335-B36E28B77CE9</a:ObjectID>\n<a:Name>coupon_id</a:Name>\n<a:Code>coupon_id</a:Code>\n<a:CreationDate>1522216251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724416</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o635\">\n<a:ObjectID>BB220B24-5719-4254-9EAB-A73F809F1D91</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1522216380</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216395</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o636\">\n<a:ObjectID>8F514E26-8A5D-4746-9906-994728A01841</a:ObjectID>\n<a:Name>product_category_name</a:Name>\n<a:Code>product_category_name</a:Code>\n<a:CreationDate>1541749144</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541749816</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>产品分类名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o637\">\n<a:ObjectID>E412773B-A578-4D21-B72F-679B380A40EC</a:ObjectID>\n<a:Name>parent_category_name</a:Name>\n<a:Code>parent_category_name</a:Code>\n<a:CreationDate>1541749144</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541749816</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>父分类名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o638\">\n<a:ObjectID>120C3D95-47A0-4ADC-86DD-F632EF5F5785</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522216188</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216237</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o633\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o638\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o268\">\n<a:ObjectID>118563D1-BD6A-4137-B818-9A52AE43F4B3</a:ObjectID>\n<a:Name>sms_coupon_history</a:Name>\n<a:Code>sms_coupon_history</a:Code>\n<a:CreationDate>1522217089</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490649</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券使用、领取历史表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o639\">\n<a:ObjectID>8AF960D9-0931-474B-9087-67A9C769289A</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522217090</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535522371</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o640\">\n<a:ObjectID>AEA45EC9-857C-4ADD-B505-8E6D0638F274</a:ObjectID>\n<a:Name>coupon_id</a:Name>\n<a:Code>coupon_id</a:Code>\n<a:CreationDate>1522220508</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724407</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o641\">\n<a:ObjectID>C2493798-DD46-4B0A-8BA4-76DED0B49E03</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522220546</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724407</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o642\">\n<a:ObjectID>254CB808-9D45-446D-9E7E-29A33FB74779</a:ObjectID>\n<a:Name>order_id</a:Name>\n<a:Code>order_id</a:Code>\n<a:CreationDate>1541490552</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490628</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o643\">\n<a:ObjectID>5D6DA42D-A033-45CC-8B4D-4A4577934E21</a:ObjectID>\n<a:Name>coupon_code</a:Name>\n<a:Code>coupon_code</a:Code>\n<a:CreationDate>1522217932</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522218055</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o644\">\n<a:ObjectID>D55C94A5-5416-4994-9794-10BAFCDF3A70</a:ObjectID>\n<a:Name>member_nickname</a:Name>\n<a:Code>member_nickname</a:Code>\n<a:CreationDate>1522217932</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522218107</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>领取人昵称</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o645\">\n<a:ObjectID>1FBF338D-A9F0-435F-A465-6C0D461C08EE</a:ObjectID>\n<a:Name>get_type</a:Name>\n<a:Code>get_type</a:Code>\n<a:CreationDate>1522218055</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522218134</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>获取类型：0-&gt;后台赠送；1-&gt;主动获取</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o646\">\n<a:ObjectID>2900D394-F7F9-411D-A014-19DB3D1ED702</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522218107</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220296</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o647\">\n<a:ObjectID>3447D394-9F55-41F0-B4AB-B52685CFD9B9</a:ObjectID>\n<a:Name>use_status</a:Name>\n<a:Code>use_status</a:Code>\n<a:CreationDate>1522218107</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220481</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>使用状态：0-&gt;未使用；1-&gt;已使用；2-&gt;已过期</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o648\">\n<a:ObjectID>74C76E33-9483-4D78-88C2-77812D6BE4E4</a:ObjectID>\n<a:Name>use_time</a:Name>\n<a:Code>use_time</a:Code>\n<a:CreationDate>1522220361</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220487</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>使用时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o649\">\n<a:ObjectID>59A8EC2E-C3C8-479C-8D25-D43AAE161E1C</a:ObjectID>\n<a:Name>order_sn</a:Name>\n<a:Code>order_sn</a:Code>\n<a:CreationDate>1541490633</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490681</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单号码</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o650\">\n<a:ObjectID>539446A0-347B-4B13-9A1B-C1F91302A908</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522217090</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217131</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o639\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o650\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o269\">\n<a:ObjectID>39073F58-E0FD-4E97-91A0-AFA7D8C5F626</a:ObjectID>\n<a:Name>ums_member</a:Name>\n<a:Code>ums_member</a:Code>\n<a:CreationDate>1522217487</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o651\">\n<a:ObjectID>D9B1967D-3B90-493E-BF71-D0C0AA8AF792</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522217488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o652\">\n<a:ObjectID>BA9FA416-B0B0-49A8-99B2-EE1F2F689613</a:ObjectID>\n<a:Name>member_level_id</a:Name>\n<a:Code>member_level_id</a:Code>\n<a:CreationDate>1522386868</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391485</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o653\">\n<a:ObjectID>2B15CF6E-9928-4C28-A7F0-2D249CF28D2E</a:ObjectID>\n<a:Name>username</a:Name>\n<a:Code>username</a:Code>\n<a:CreationDate>1522217626</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217755</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户名</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o654\">\n<a:ObjectID>8B3B0D82-2CA0-4466-AEA1-F24F2791C164</a:ObjectID>\n<a:Name>password</a:Name>\n<a:Code>password</a:Code>\n<a:CreationDate>1522217626</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217766</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>密码</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o655\">\n<a:ObjectID>A3756B41-7B58-47EE-9C90-4410B7014C14</a:ObjectID>\n<a:Name>nickname</a:Name>\n<a:Code>nickname</a:Code>\n<a:CreationDate>1522217712</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522217794</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>昵称</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o656\">\n<a:ObjectID>771E62BD-6B4C-4AD5-8243-80EF105C5C12</a:ObjectID>\n<a:Name>phone</a:Name>\n<a:Code>phone</a:Code>\n<a:CreationDate>1522303316</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747629</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>手机号码</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o657\">\n<a:ObjectID>2AC98331-159E-4556-B2BE-2A511AF1012B</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522386896</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522386937</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>帐号启用状态:0-&gt;禁用；1-&gt;启用</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o658\">\n<a:ObjectID>290E9B19-DC94-49BE-8B20-4CC5BE6B4A2E</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522386911</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522386982</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>注册时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o659\">\n<a:ObjectID>687462C1-C969-4A1F-8FF4-CFBDDF78FD97</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522387000</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387018</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>头像</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o660\">\n<a:ObjectID>3DBECFB8-A73F-4B4E-8770-394020C94B46</a:ObjectID>\n<a:Name>gender</a:Name>\n<a:Code>gender</a:Code>\n<a:CreationDate>1522387014</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387079</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>性别：0-&gt;未知；1-&gt;男；2-&gt;女</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o661\">\n<a:ObjectID>037D5C09-930F-4CB2-9488-A0D04C98B3DF</a:ObjectID>\n<a:Name>birthday</a:Name>\n<a:Code>birthday</a:Code>\n<a:CreationDate>1522387055</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387102</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>生日</a:Comment>\n<a:DataType>date</a:DataType>\n</o:Column>\n<o:Column Id=\"o662\">\n<a:ObjectID>5799AC70-2F20-49AD-ACB3-3ACE21BDFA24</a:ObjectID>\n<a:Name>city</a:Name>\n<a:Code>city</a:Code>\n<a:CreationDate>1522387097</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387133</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>所做城市</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o663\">\n<a:ObjectID>5E11EA43-DC5E-48B6-9C7D-4B3283DFEA04</a:ObjectID>\n<a:Name>job</a:Name>\n<a:Code>job</a:Code>\n<a:CreationDate>1522387127</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387170</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>职业</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o664\">\n<a:ObjectID>E4E5B724-CA9B-4DBF-9338-F35A6CEB07C6</a:ObjectID>\n<a:Name>personalized_signature</a:Name>\n<a:Code>personalized_signature</a:Code>\n<a:CreationDate>1522387164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387227</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>个性签名</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o665\">\n<a:ObjectID>B9C8A488-CE4C-4162-95B8-95AAF2F50D79</a:ObjectID>\n<a:Name>source_type</a:Name>\n<a:Code>source_type</a:Code>\n<a:CreationDate>1522387221</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387354</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户来源</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o666\">\n<a:ObjectID>B2615BC0-8624-420C-9ADD-74B7CC0E1A34</a:ObjectID>\n<a:Name>integration</a:Name>\n<a:Code>integration</a:Code>\n<a:CreationDate>1522388283</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388297</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o667\">\n<a:ObjectID>68060654-B3F9-460C-B0AD-F69C3D79E7E4</a:ObjectID>\n<a:Name>growth</a:Name>\n<a:Code>growth</a:Code>\n<a:CreationDate>1522388293</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388314</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>成长值</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o668\">\n<a:ObjectID>F451866B-0691-4BD0-885F-8F8AC6BB07B6</a:ObjectID>\n<a:Name>luckey_count</a:Name>\n<a:Code>luckey_count</a:Code>\n<a:CreationDate>1522389179</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389203</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>剩余抽奖次数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o669\">\n<a:ObjectID>DF6E2A37-1087-482C-B3AB-6E24F7CF5824</a:ObjectID>\n<a:Name>history_integration</a:Name>\n<a:Code>history_integration</a:Code>\n<a:CreationDate>1522396288</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396312</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>历史积分数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o670\">\n<a:ObjectID>D643CABA-BFF8-4444-BC9C-459F23DD209B</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522217488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o651\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o670\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o270\">\n<a:ObjectID>A0B70C04-02B7-4362-8DE8-EEC09E11CFDE</a:ObjectID>\n<a:Name>sms_home_brand</a:Name>\n<a:Code>sms_home_brand</a:Code>\n<a:CreationDate>1522223818</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224364</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首页推荐品牌表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o671\">\n<a:ObjectID>55989B16-E9BA-4806-BE60-FBB53C20AFFB</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522224202</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224219</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o672\">\n<a:ObjectID>6EB211BF-005A-45C4-9AD2-3B624549C78B</a:ObjectID>\n<a:Name>brand_id</a:Name>\n<a:Code>brand_id</a:Code>\n<a:CreationDate>1522224364</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224376</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o673\">\n<a:ObjectID>961D5B66-0DD8-42E5-BFB4-93E536FEC18A</a:ObjectID>\n<a:Name>brand_name</a:Name>\n<a:Code>brand_name</a:Code>\n<a:CreationDate>1522224216</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224265</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o674\">\n<a:ObjectID>F2CF792A-6DB6-445B-9BA9-18C8DC17D441</a:ObjectID>\n<a:Name>recommend_status</a:Name>\n<a:Code>recommend_status</a:Code>\n<a:CreationDate>1522224216</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224356</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o675\">\n<a:ObjectID>1AB9EBEC-5310-4ADE-9CAD-39F414C49A73</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522224339</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224356</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o676\">\n<a:ObjectID>D81DA96A-E9F0-4D79-971E-1D88C5B3C093</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522224202</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224216</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o671\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o676\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o271\">\n<a:ObjectID>A25B1802-83AF-4D73-B715-B3CD83BF30B8</a:ObjectID>\n<a:Name>sms_home_new_product</a:Name>\n<a:Code>sms_home_new_product</a:Code>\n<a:CreationDate>1522224403</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225874</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>新鲜好物表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o677\">\n<a:ObjectID>D44BCE8A-007A-475D-A1A8-A84615449866</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522225739</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225765</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o678\">\n<a:ObjectID>41AB6B8F-5955-4D0F-82C9-3ECE03DE627F</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522225874</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225891</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o679\">\n<a:ObjectID>0199CB4D-CCB5-45A9-987A-C688680BAD6C</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225835</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o680\">\n<a:ObjectID>30DFEEA7-AEB5-420B-BB6F-99F4E2A2D4FC</a:ObjectID>\n<a:Name>recommend_status</a:Name>\n<a:Code>recommend_status</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225835</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o681\">\n<a:ObjectID>D1A8F553-7744-46C7-B8BC-D27C3AD0717E</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225844</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o682\">\n<a:ObjectID>73A2D055-78DF-477F-83FF-E76CEE5860BB</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522225739</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225762</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o677\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o682\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o272\">\n<a:ObjectID>37399CAC-C0E1-4103-867A-C162B935BFDF</a:ObjectID>\n<a:Name>sms_home_recommend_product</a:Name>\n<a:Code>sms_home_recommend_product</a:Code>\n<a:CreationDate>1522224403</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>人气推荐商品表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o683\">\n<a:ObjectID>2C05FE30-5B42-49AB-B442-DA48DFBF56ED</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522225739</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o684\">\n<a:ObjectID>81AA6507-AEAF-445F-8BCA-FE792FD6167D</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522226077</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398713</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o685\">\n<a:ObjectID>5C55D312-2E41-4F12-80A1-D6220C9E71E0</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226008</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o686\">\n<a:ObjectID>D1CF9580-8D7D-44B9-82A5-1227DC667978</a:ObjectID>\n<a:Name>recommend_status</a:Name>\n<a:Code>recommend_status</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226008</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o687\">\n<a:ObjectID>6B5CC5E0-6B02-4C2B-A8DB-EDAC443C4924</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522225762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226008</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o688\">\n<a:ObjectID>7256867D-3478-4506-AA49-3528838619BD</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522225739</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o683\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o688\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o273\">\n<a:ObjectID>6B4E377F-EF19-4F4C-8FA6-0179636E1DD0</a:ObjectID>\n<a:Name>sms_home_recommend_subject</a:Name>\n<a:Code>sms_home_recommend_subject</a:Code>\n<a:CreationDate>1522223818</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首页推荐专题表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o689\">\n<a:ObjectID>BB3B377B-FD15-4644-9382-23DEE1D35C62</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522224202</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o690\">\n<a:ObjectID>76387001-86B6-464D-9C61-25F2D7290848</a:ObjectID>\n<a:Name>subject_id</a:Name>\n<a:Code>subject_id</a:Code>\n<a:CreationDate>1522226272</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226311</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o691\">\n<a:ObjectID>FBF57C52-1D78-415A-A0F1-8C22ECDD209F</a:ObjectID>\n<a:Name>subject_name</a:Name>\n<a:Code>subject_name</a:Code>\n<a:CreationDate>1522224216</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226180</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o692\">\n<a:ObjectID>95A506FC-F1AE-4FDC-A8B6-14DDC2C7686D</a:ObjectID>\n<a:Name>recommend_status</a:Name>\n<a:Code>recommend_status</a:Code>\n<a:CreationDate>1522224216</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226140</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o693\">\n<a:ObjectID>B7738C94-3636-4CDF-9361-426285F61C01</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522224339</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226140</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o694\">\n<a:ObjectID>4024BDA0-F53B-48E3-AD69-82EDDF413307</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522224202</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o689\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o694\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o275\">\n<a:ObjectID>02B689AF-49BE-4746-9132-46B2A938FDCB</a:ObjectID>\n<a:Name>sms_home_advertise</a:Name>\n<a:Code>sms_home_advertise</a:Code>\n<a:CreationDate>1522227700</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541578000</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>首页轮播广告表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o695\">\n<a:ObjectID>2794FB1E-CC31-453F-BE91-089DEA2F10D0</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522228220</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228237</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o696\">\n<a:ObjectID>170EB06D-58AC-4810-AA05-2E800F4402A7</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522228234</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228288</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o697\">\n<a:ObjectID>2D08193E-455A-44D9-8568-65DFC657C51C</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522228234</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228317</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>轮播位置：0-&gt;PC首页轮播；1-&gt;app首页轮播</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o698\">\n<a:ObjectID>5BBDEC82-0B2C-4005-AE60-30C24AB2C60B</a:ObjectID>\n<a:Name>pic</a:Name>\n<a:Code>pic</a:Code>\n<a:CreationDate>1522228288</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228387</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o699\">\n<a:ObjectID>9544B543-B26F-4A94-8533-D1CD347E092A</a:ObjectID>\n<a:Name>start_time</a:Name>\n<a:Code>start_time</a:Code>\n<a:CreationDate>1522228288</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228387</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o700\">\n<a:ObjectID>EBE6682D-2345-42DD-B161-78D72008FC58</a:ObjectID>\n<a:Name>end_time</a:Name>\n<a:Code>end_time</a:Code>\n<a:CreationDate>1522228288</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228387</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o701\">\n<a:ObjectID>1E82BBF3-64A8-4937-B8E8-2EF1E5396463</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522228288</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228415</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>上下线状态：0-&gt;下线；1-&gt;上线</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o702\">\n<a:ObjectID>7FED5C77-61EC-4ED3-BC71-69B346DB69BD</a:ObjectID>\n<a:Name>click_count</a:Name>\n<a:Code>click_count</a:Code>\n<a:CreationDate>1522228387</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228455</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>点击数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o703\">\n<a:ObjectID>28ED368B-9046-4647-8365-6C3CC1A73A00</a:ObjectID>\n<a:Name>order_count</a:Name>\n<a:Code>order_count</a:Code>\n<a:CreationDate>1522228387</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228465</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>下单数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o704\">\n<a:ObjectID>18C101B3-A72F-483F-9A9A-68C90EA4A002</a:ObjectID>\n<a:Name>url</a:Name>\n<a:Code>url</a:Code>\n<a:CreationDate>1522228518</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228545</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>链接地址</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o705\">\n<a:ObjectID>E271F2ED-7B8E-4D02-94F9-DCC3B014B01D</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522228518</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228572</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>备注</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o706\">\n<a:ObjectID>08E34019-824F-4A5D-8635-8CA439722F8E</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1541577989</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541578016</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,102={9480E6AA-83DD-4AA7-9C91-E48F709C29D9},CharSet,0=\n{B314652C-DD43-4F81-8524-6F97A1BAACBA},Collate,0=\n\n</a:ExtendedAttributesText>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o707\">\n<a:ObjectID>8C05A0D5-5A40-4E5F-803C-21DE1581AB40</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522228220</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522228234</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o695\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o707\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o276\">\n<a:ObjectID>781E9BBD-7312-4347-A32B-F153B07BC2D6</a:ObjectID>\n<a:Name>sms_flash_promotion</a:Name>\n<a:Code>sms_flash_promotion</a:Code>\n<a:CreationDate>1522300652</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522301372</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限时购表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o708\">\n<a:ObjectID>A001C3CA-7F30-48B5-BBCA-4DE4FF3AC6D7</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522300654</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179315</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o709\">\n<a:ObjectID>E7B4D1BF-2B28-4CB5-A266-BF73B2C545CD</a:ObjectID>\n<a:Name>title</a:Name>\n<a:Code>title</a:Code>\n<a:CreationDate>1522300794</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522300838</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o710\">\n<a:ObjectID>9E90026D-CCB7-42C4-8305-6C9ED00FBEAD</a:ObjectID>\n<a:Name>start_date</a:Name>\n<a:Code>start_date</a:Code>\n<a:CreationDate>1522300794</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>开始日期</a:Comment>\n<a:DataType>date</a:DataType>\n</o:Column>\n<o:Column Id=\"o711\">\n<a:ObjectID>9C92406F-BE6E-4DD0-B9F6-B6DB731826D8</a:ObjectID>\n<a:Name>end_date</a:Name>\n<a:Code>end_date</a:Code>\n<a:CreationDate>1522300794</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178653</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>结束日期</a:Comment>\n<a:DataType>date</a:DataType>\n</o:Column>\n<o:Column Id=\"o712\">\n<a:ObjectID>7CF4BD09-90C4-4A00-861D-E4BB0DEDE4F0</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522300794</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522300845</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>上下线状态</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o713\">\n<a:ObjectID>8D6B6BCE-483E-49D8-9BFE-66FF9BAF4E04</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522301354</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178658</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>秒杀时间段名称</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o714\">\n<a:ObjectID>E91F0404-5C5E-465C-965B-AA29A2AC352C</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522300654</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522300717</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o708\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o714\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o277\">\n<a:ObjectID>FC0B4AB8-B381-4962-9E00-9012B9389DB2</a:ObjectID>\n<a:Name>sms_flash_promotion_log</a:Name>\n<a:Code>sms_flash_promotion_log</a:Code>\n<a:CreationDate>1522303116</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303410</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限时购通知记录</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o715\">\n<a:ObjectID>8D5CC3D3-9472-4F2E-85C5-141575078624</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522303118</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303155</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o716\">\n<a:ObjectID>43575263-62FC-44CF-9134-A53E2549A413</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522303390</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303400</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o717\">\n<a:ObjectID>0E5CDA77-D030-43C4-8F3F-62F1DDAF2321</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522303410</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303424</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o718\">\n<a:ObjectID>58059F15-8E1E-441A-B852-B83A2DC6AF61</a:ObjectID>\n<a:Name>member_phone</a:Name>\n<a:Code>member_phone</a:Code>\n<a:CreationDate>1522303170</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o719\">\n<a:ObjectID>E37B4C93-8839-4792-A41C-174666319BC6</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522303170</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o720\">\n<a:ObjectID>26E55C30-24F2-46E9-8FB8-937189C88290</a:ObjectID>\n<a:Name>subscribe_time</a:Name>\n<a:Code>subscribe_time</a:Code>\n<a:CreationDate>1522303170</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303306</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员订阅时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o721\">\n<a:ObjectID>63E8BD65-5DC6-4E86-90D0-81644C960C3A</a:ObjectID>\n<a:Name>send_time</a:Name>\n<a:Code>send_time</a:Code>\n<a:CreationDate>1522303170</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303291</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o722\">\n<a:ObjectID>F5CEFAF5-C8E0-41B0-8893-07DF42A1591B</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522303118</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303152</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o715\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o722\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o278\">\n<a:ObjectID>284E46B4-B9CC-41C1-B331-6F43782ADCC3</a:ObjectID>\n<a:Name>ums_admin</a:Name>\n<a:Code>ums_admin</a:Code>\n<a:CreationDate>1522303730</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538200957</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o723\">\n<a:ObjectID>6D584959-4514-4CEC-A0D4-785E46D1A943</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303915</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o724\">\n<a:ObjectID>C69E81B8-3A8A-4F1C-AD79-05187FCF35D3</a:ObjectID>\n<a:Name>username</a:Name>\n<a:Code>username</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538199970</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户名</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o725\">\n<a:ObjectID>7EB23336-7D63-4C02-AD85-17DA3DC93E6A</a:ObjectID>\n<a:Name>password</a:Name>\n<a:Code>password</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538199975</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>密码</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o726\">\n<a:ObjectID>FD9B4CBF-DDF3-4CC8-BD69-15221A3E52A8</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303910</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>头像</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o727\">\n<a:ObjectID>68129CD9-A241-453D-9223-FB146806D646</a:ObjectID>\n<a:Name>email</a:Name>\n<a:Code>email</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538199986</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>邮箱</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o728\">\n<a:ObjectID>5722E92D-6F67-43AA-B480-756C0DC91BDE</a:ObjectID>\n<a:Name>nick_name</a:Name>\n<a:Code>nick_name</a:Code>\n<a:CreationDate>1538199900</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538199929</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>昵称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o729\">\n<a:ObjectID>FF0D16AA-77D3-4829-B8E2-9831244DE3B9</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1538199923</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538200014</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>备注信息</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o730\">\n<a:ObjectID>AFA0423A-C6BD-424F-B7DB-85D9635EB5A6</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1538200009</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538200107</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o731\">\n<a:ObjectID>8CBC1229-E6C7-4EB9-B50D-E765E651E3F4</a:ObjectID>\n<a:Name>login_time</a:Name>\n<a:Code>login_time</a:Code>\n<a:CreationDate>1538200009</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538200119</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>最后登录时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o732\">\n<a:ObjectID>63B04D92-8CF8-40F0-855D-272C2976729F</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1538200789</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538200890</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>帐号启用状态：0-&gt;禁用；1-&gt;启用</a:Comment>\n<a:DefaultValue>1</a:DefaultValue>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o733\">\n<a:ObjectID>DC1A590C-BB4F-430C-A34E-014AEC5844D1</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522303731</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303905</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o723\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o733\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o279\">\n<a:ObjectID>DC20F109-83F4-4E8A-B2CF-299453506A86</a:ObjectID>\n<a:Name>ums_admin_login_log</a:Name>\n<a:Code>ums_admin_login_log</a:Code>\n<a:CreationDate>1522303928</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304178</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户登录日志表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o734\">\n<a:ObjectID>8F7618DF-D0CA-48C3-9E4F-CBAA9A41A69B</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522303929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303971</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o735\">\n<a:ObjectID>C8AEFA16-C796-4CED-902C-21EA9F55C75C</a:ObjectID>\n<a:Name>admin_id</a:Name>\n<a:Code>admin_id</a:Code>\n<a:CreationDate>1522304178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304187</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o736\">\n<a:ObjectID>B535BE06-4C99-4645-9B42-D984356CF2FF</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522303968</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304151</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o737\">\n<a:ObjectID>6236706F-C5E9-44A6-8BC2-FE0D2F8C8476</a:ObjectID>\n<a:Name>ip</a:Name>\n<a:Code>ip</a:Code>\n<a:CreationDate>1522303968</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304151</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o738\">\n<a:ObjectID>9E05D212-E28A-463B-9F1D-87FD83F90421</a:ObjectID>\n<a:Name>address</a:Name>\n<a:Code>address</a:Code>\n<a:CreationDate>1522303968</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304151</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o739\">\n<a:ObjectID>D481AC77-5DC7-490F-856C-C3676F9407AA</a:ObjectID>\n<a:Name>user_agent</a:Name>\n<a:Code>user_agent</a:Code>\n<a:CreationDate>1522303968</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304158</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>浏览器登录类型</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o740\">\n<a:ObjectID>127CDB1B-576E-4CE4-B977-681E887F8EEE</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522303929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303968</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o734\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o740\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o280\">\n<a:ObjectID>A6C67972-0C12-4876-8087-2E48F9028CA7</a:ObjectID>\n<a:Name>ums_member_level</a:Name>\n<a:Code>ums_member_level</a:Code>\n<a:CreationDate>1522379808</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员等级表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o741\">\n<a:ObjectID>129583EA-DC62-4E57-AEF8-FCA2A4DD3BD4</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522379810</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o742\">\n<a:ObjectID>4D12F464-1BC3-4D75-9BF6-AB23F4899E9B</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522379831</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522379896</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o743\">\n<a:ObjectID>38041EA5-676A-4D2B-931F-8158FDA8CB48</a:ObjectID>\n<a:Name>growth_point</a:Name>\n<a:Code>growth_point</a:Code>\n<a:CreationDate>1522379831</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522379896</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o744\">\n<a:ObjectID>63E410FA-E2CC-41F9-9FE9-9272F61F19A1</a:ObjectID>\n<a:Name>default_status</a:Name>\n<a:Code>default_status</a:Code>\n<a:CreationDate>1522379896</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522379987</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否为默认等级：0-&gt;不是；1-&gt;是</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o745\">\n<a:ObjectID>4B60128E-FF93-4486-B758-081868324568</a:ObjectID>\n<a:Name>free_freight_point</a:Name>\n<a:Code>free_freight_point</a:Code>\n<a:CreationDate>1522379964</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380124</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>免运费标准</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o746\">\n<a:ObjectID>9A810F9D-3942-417E-9057-39A71284BEB1</a:ObjectID>\n<a:Name>comment_growth_point</a:Name>\n<a:Code>comment_growth_point</a:Code>\n<a:CreationDate>1522380184</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380212</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每次评价获取的成长值</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o747\">\n<a:ObjectID>437D93E8-BC05-48F4-9103-AAADEC2F18B3</a:ObjectID>\n<a:Name>priviledge_free_freight</a:Name>\n<a:Code>priviledge_free_freight</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380558</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有免邮特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o748\">\n<a:ObjectID>4ACB8B0D-322B-4240-994A-BF76A866C4C1</a:ObjectID>\n<a:Name>priviledge_sign_in</a:Name>\n<a:Code>priviledge_sign_in</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380566</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有签到特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o749\">\n<a:ObjectID>76160658-2A87-4D99-8A9E-9F2CA2752530</a:ObjectID>\n<a:Name>priviledge_comment</a:Name>\n<a:Code>priviledge_comment</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380592</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有评论获奖励特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o750\">\n<a:ObjectID>4BFAE1D1-5395-4502-BA29-FD53E5C998FF</a:ObjectID>\n<a:Name>priviledge_promotion</a:Name>\n<a:Code>priviledge_promotion</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380617</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有专享活动特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o751\">\n<a:ObjectID>4D408989-5456-40D8-AEEE-9E1E14564E6A</a:ObjectID>\n<a:Name>priviledge_member_price</a:Name>\n<a:Code>priviledge_member_price</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747697</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有会员价格特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o752\">\n<a:ObjectID>3C4297F8-BFE4-42AC-8967-1627A0EB62AE</a:ObjectID>\n<a:Name>priviledge_birthday</a:Name>\n<a:Code>priviledge_birthday</a:Code>\n<a:CreationDate>1522380199</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522380640</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否有生日特权</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o753\">\n<a:ObjectID>CD9D3466-6A59-4BD3-B7BC-8B3478EDA73B</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522386815</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522386830</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o754\">\n<a:ObjectID>E6F6D42A-97D4-4207-B966-0BBD47776D79</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522379810</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o741\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o754\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o281\">\n<a:ObjectID>31084C7B-4E3D-4630-A484-B457DFC84069</a:ObjectID>\n<a:Name>ums_member_product_category_relation</a:Name>\n<a:Code>ums_member_product_category_relation</a:Code>\n<a:CreationDate>1522387387</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387526</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员与产品分类关系表（用户喜欢的分类）</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o755\">\n<a:ObjectID>9F3E472B-AE33-4C2A-BC75-F7EF6CD3F295</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522387388</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387447</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o756\">\n<a:ObjectID>CF33591F-94A0-4ECB-A19E-1FCDECAEFB2B</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522387461</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391508</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o757\">\n<a:ObjectID>26A81B95-6339-4F97-9FD9-7A9343D8FC3C</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1522387526</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387541</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o758\">\n<a:ObjectID>319FB1F7-17E2-404B-8A53-1D83019DBED4</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522387388</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387444</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o755\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o758\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o282\">\n<a:ObjectID>94C05B4D-0F20-4449-8EC4-52604C753834</a:ObjectID>\n<a:Name>ums_member_statistics_info</a:Name>\n<a:Code>ums_member_statistics_info</a:Code>\n<a:CreationDate>1522387906</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390765</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员统计信息</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o759\">\n<a:ObjectID>6B92C176-B80A-42DF-913D-4B9F276C8DEE</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522387936</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391425</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o760\">\n<a:ObjectID>D357658D-303B-4EF3-AC8E-E97A22EB9F28</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522389232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391425</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o761\">\n<a:ObjectID>854439C2-AEFC-4DBE-B9F0-26F768FACD07</a:ObjectID>\n<a:Name>consume_amount</a:Name>\n<a:Code>consume_amount</a:Code>\n<a:CreationDate>1522387970</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388137</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>累计消费金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o762\">\n<a:ObjectID>6F0A7AA7-4899-4BD7-B041-449A73F83B50</a:ObjectID>\n<a:Name>order_count</a:Name>\n<a:Code>order_count</a:Code>\n<a:CreationDate>1522388177</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388194</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o763\">\n<a:ObjectID>03C07BA1-E675-412B-AE21-FC427A919156</a:ObjectID>\n<a:Name>coupon_count</a:Name>\n<a:Code>coupon_count</a:Code>\n<a:CreationDate>1522388366</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388384</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o764\">\n<a:ObjectID>40B971A2-E3E9-4987-9B21-2455EF702FA4</a:ObjectID>\n<a:Name>comment_count</a:Name>\n<a:Code>comment_count</a:Code>\n<a:CreationDate>1522388395</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388414</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评价数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o765\">\n<a:ObjectID>285C0BDD-D3D2-4715-969F-3F04972A9216</a:ObjectID>\n<a:Name>return_order_count</a:Name>\n<a:Code>return_order_count</a:Code>\n<a:CreationDate>1522388791</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388810</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o766\">\n<a:ObjectID>D44D9C8E-834B-49C2-A487-19243A6B75C7</a:ObjectID>\n<a:Name>login_count</a:Name>\n<a:Code>login_count</a:Code>\n<a:CreationDate>1522388804</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388842</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>登录次数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o767\">\n<a:ObjectID>A6954A96-3E39-412D-8648-6420D1DE69A8</a:ObjectID>\n<a:Name>attend_count</a:Name>\n<a:Code>attend_count</a:Code>\n<a:CreationDate>1522388885</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>关注数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o768\">\n<a:ObjectID>801A9777-A84E-455D-87DB-CB5F223BEC40</a:ObjectID>\n<a:Name>fans_count</a:Name>\n<a:Code>fans_count</a:Code>\n<a:CreationDate>1522388904</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522388949</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>粉丝数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o769\">\n<a:ObjectID>E7A5B7B0-3561-4149-A49A-F8130558ABBD</a:ObjectID>\n<a:Name>collect_product_count</a:Name>\n<a:Code>collect_product_count</a:Code>\n<a:CreationDate>1522388944</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o770\">\n<a:ObjectID>5E257B18-EF0C-4C89-941D-78783C0D17DF</a:ObjectID>\n<a:Name>collect_subject_count</a:Name>\n<a:Code>collect_subject_count</a:Code>\n<a:CreationDate>1522388944</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o771\">\n<a:ObjectID>37323B30-236A-4CAE-B7E5-AE3A5F527ABA</a:ObjectID>\n<a:Name>collect_topic_count</a:Name>\n<a:Code>collect_topic_count</a:Code>\n<a:CreationDate>1522388944</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o772\">\n<a:ObjectID>186B8DCF-6580-4D89-AA2B-89333527FCD6</a:ObjectID>\n<a:Name>collect_comment_count</a:Name>\n<a:Code>collect_comment_count</a:Code>\n<a:CreationDate>1522388944</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389176</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o773\">\n<a:ObjectID>29465239-85D6-4029-B631-809C1AC7F1FB</a:ObjectID>\n<a:Name>invite_friend_count</a:Name>\n<a:Code>invite_friend_count</a:Code>\n<a:CreationDate>1522388944</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389309</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o774\">\n<a:ObjectID>C133A420-C28D-4442-B747-9CFEA1E2FA2A</a:ObjectID>\n<a:Name>recent_order_time</a:Name>\n<a:Code>recent_order_time</a:Code>\n<a:CreationDate>1522390747</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390773</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>最后一次下订单时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o775\">\n<a:ObjectID>920005AF-C54B-4D67-9D61-7A15D96EC34D</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522387936</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387970</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o759\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o775\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o283\">\n<a:ObjectID>C1C1114F-DE94-4DF6-80DD-7A8210AC0D1B</a:ObjectID>\n<a:Name>ums_member_receive_address</a:Name>\n<a:Code>ums_member_receive_address</a:Code>\n<a:CreationDate>1522390106</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535437101</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员收货地址表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o776\">\n<a:ObjectID>98B61DFE-761A-4910-A45C-89DE44A801BD</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522390108</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390428</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o777\">\n<a:ObjectID>817400C5-8063-4373-9F89-F52F0AA9E815</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522390434</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391455</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o778\">\n<a:ObjectID>AFF04439-EC58-4338-8228-623D8193B384</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522390108</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390245</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o779\">\n<a:ObjectID>0CDFE5D1-E06C-466F-B066-F6FFC0FC0873</a:ObjectID>\n<a:Name>phone_number</a:Name>\n<a:Code>phone_number</a:Code>\n<a:CreationDate>1522390108</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390221</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o780\">\n<a:ObjectID>2D383AAE-D002-480B-B081-4ABB9A0FE45F</a:ObjectID>\n<a:Name>default_status</a:Name>\n<a:Code>default_status</a:Code>\n<a:CreationDate>1522390286</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390346</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否为默认</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o781\">\n<a:ObjectID>013038D3-3265-4B47-AA73-C893A6006BD8</a:ObjectID>\n<a:Name>post_code</a:Name>\n<a:Code>post_code</a:Code>\n<a:CreationDate>1522390221</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390293</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>邮政编码</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o782\">\n<a:ObjectID>214E7869-4680-4DDC-A4AF-611BDB9DB594</a:ObjectID>\n<a:Name>province</a:Name>\n<a:Code>province</a:Code>\n<a:CreationDate>1535436971</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535437029</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>省份/直辖市</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o783\">\n<a:ObjectID>B014298F-01AD-4171-9D9F-916D27574AB6</a:ObjectID>\n<a:Name>city</a:Name>\n<a:Code>city</a:Code>\n<a:CreationDate>1535436971</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535437115</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>城市</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o784\">\n<a:ObjectID>106C677E-A9B6-40ED-A992-CD0CADF4BFFF</a:ObjectID>\n<a:Name>region</a:Name>\n<a:Code>region</a:Code>\n<a:CreationDate>1535437026</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535437123</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>区</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o785\">\n<a:ObjectID>4EDEC710-4328-4BF8-BCCC-EA8EAAA48FF1</a:ObjectID>\n<a:Name>detail_address</a:Name>\n<a:Code>detail_address</a:Code>\n<a:CreationDate>1522390108</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535436990</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>详细地址(街道)</a:Comment>\n<a:DataType>varchar(128)</a:DataType>\n<a:Length>128</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o786\">\n<a:ObjectID>DF83812C-9AB1-43B1-9C66-06DDD339917E</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522390409</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390420</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o776\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o786\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o284\">\n<a:ObjectID>202E7837-16F9-471E-8D27-BADDF8ABC40F</a:ObjectID>\n<a:Name>ums_member_login_log</a:Name>\n<a:Code>ums_member_login_log</a:Code>\n<a:CreationDate>1522390511</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747822</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员登录记录</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o787\">\n<a:ObjectID>4B9B3F0B-970F-4BD2-ADA9-9B5AF12CB5AB</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522390513</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390660</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o788\">\n<a:ObjectID>96996021-E445-4698-B1A6-42E723CA01EF</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522390644</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391446</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o789\">\n<a:ObjectID>D5AD4C5C-E858-4BA3-8DB3-741A4D6D780C</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522390531</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747822</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o790\">\n<a:ObjectID>EA660841-B4C3-4D58-BA70-765F688BBFB9</a:ObjectID>\n<a:Name>ip</a:Name>\n<a:Code>ip</a:Code>\n<a:CreationDate>1522390531</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390603</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o791\">\n<a:ObjectID>4129F50F-3EB2-402A-8239-25FB68B06BE1</a:ObjectID>\n<a:Name>city</a:Name>\n<a:Code>city</a:Code>\n<a:CreationDate>1522390531</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390603</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o792\">\n<a:ObjectID>9C080457-2FBF-4EEA-B7DF-B465681C679C</a:ObjectID>\n<a:Name>login_type</a:Name>\n<a:Code>login_type</a:Code>\n<a:CreationDate>1522390531</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390637</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>登录类型：0-&gt;PC；1-&gt;android;2-&gt;ios;3-&gt;小程序</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o793\">\n<a:ObjectID>026D0B9F-44F5-4302-8766-551E0CBA48E2</a:ObjectID>\n<a:Name>province</a:Name>\n<a:Code>province</a:Code>\n<a:CreationDate>1522747786</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747822</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o794\">\n<a:ObjectID>EC511DBF-DA00-49B0-9DD3-AE6E4E18496A</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522390513</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390531</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o787\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o794\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o285\">\n<a:ObjectID>2A13105F-B4ED-4672-A401-CDDE4B9CE410</a:ObjectID>\n<a:Name>ums_member_tag</a:Name>\n<a:Code>ums_member_tag</a:Code>\n<a:CreationDate>1522390830</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391227</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户标签表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o795\">\n<a:ObjectID>438F1497-2B84-4368-AE85-9E1806F36FC9</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522390831</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390857</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o796\">\n<a:ObjectID>96FB084C-E214-4481-95FD-52FF9AF5C1FA</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522390831</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391227</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o797\">\n<a:ObjectID>C727F26A-5CFA-4C30-9EE3-A5F87998DE9E</a:ObjectID>\n<a:Name>finish_order_count</a:Name>\n<a:Code>finish_order_count</a:Code>\n<a:CreationDate>1522390854</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>自动打标签完成订单数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o798\">\n<a:ObjectID>148613FB-7BCE-4145-B955-B0077E630B6E</a:ObjectID>\n<a:Name>finish_order_amount</a:Name>\n<a:Code>finish_order_amount</a:Code>\n<a:CreationDate>1522390854</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391246</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>自动打标签完成订单金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o799\">\n<a:ObjectID>02E5405B-3466-42C6-B07B-090E17D190BA</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522390831</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390854</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o795\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o799\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o286\">\n<a:ObjectID>2D7B72D8-D25F-4A09-B4FA-16D2CEC9752A</a:ObjectID>\n<a:Name>ums_member_member_tag_relation</a:Name>\n<a:Code>ums_member_member_tag_relation</a:Code>\n<a:CreationDate>1522391304</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391380</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户和标签关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o800\">\n<a:ObjectID>BB1BD091-E5C8-4C12-8A9A-C2ADC962E7E5</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522391305</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391363</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o801\">\n<a:ObjectID>854EDA6D-D3FB-4AFF-92AD-1FDF1DC32E1E</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522391366</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391394</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o802\">\n<a:ObjectID>89D08954-C6F1-4B1F-8BAE-E19BDF39DE08</a:ObjectID>\n<a:Name>tag_id</a:Name>\n<a:Code>tag_id</a:Code>\n<a:CreationDate>1522391379</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391394</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o803\">\n<a:ObjectID>AEBACA14-2E96-4718-ACE9-C6F76721B8E8</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522391305</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391349</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o800\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o803\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o287\">\n<a:ObjectID>58F43871-0D7C-4478-9A1B-43102436A177</a:ObjectID>\n<a:Name>ums_integration_change_history</a:Name>\n<a:Code>ums_integration_change_history</a:Code>\n<a:CreationDate>1522396385</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396758</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分变化历史记录表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o804\">\n<a:ObjectID>457FA52E-BCCD-40B6-9595-2597CD6C75E2</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522396386</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396494</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o805\">\n<a:ObjectID>9964C6D5-F7BD-40FB-957B-7A66DFF172A4</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522396648</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396659</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o806\">\n<a:ObjectID>BCF4B5AF-DEA0-4D46-8A23-E5348BF281C8</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396534</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o807\">\n<a:ObjectID>52CE81B5-6BDF-40F0-97BA-2DC303583FF4</a:ObjectID>\n<a:Name>change_type</a:Name>\n<a:Code>change_type</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396606</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>改变类型：0-&gt;增加；1-&gt;减少</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o808\">\n<a:ObjectID>6D9BAE2A-F62A-4DA0-B9B4-AD3695E3ADEC</a:ObjectID>\n<a:Name>change_count</a:Name>\n<a:Code>change_count</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396606</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分改变数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o809\">\n<a:ObjectID>E63C6C7E-249C-4653-AF54-3DF677FF8B65</a:ObjectID>\n<a:Name>operate_man</a:Name>\n<a:Code>operate_man</a:Code>\n<a:CreationDate>1522396534</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396612</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作人员</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o810\">\n<a:ObjectID>079B7A28-0F20-4439-934B-AC8ABA31B76A</a:ObjectID>\n<a:Name>operate_note</a:Name>\n<a:Code>operate_note</a:Code>\n<a:CreationDate>1522396606</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396638</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作备注</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o811\">\n<a:ObjectID>A51DAFDF-D7E9-403D-A31F-7341E809448F</a:ObjectID>\n<a:Name>source_type</a:Name>\n<a:Code>source_type</a:Code>\n<a:CreationDate>1522396738</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396780</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分来源：0-&gt;购物；1-&gt;管理员修改</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o812\">\n<a:ObjectID>A0C0BBC3-CBCB-4FD0-A047-91D827AFA920</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522396386</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396491</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o804\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o812\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o288\">\n<a:ObjectID>DDBBBFBE-DCB3-4F92-A291-19A1F5767709</a:ObjectID>\n<a:Name>ums_growth_change_history</a:Name>\n<a:Code>ums_growth_change_history</a:Code>\n<a:CreationDate>1522396385</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396864</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>成长值变化历史记录表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o813\">\n<a:ObjectID>0161A828-441F-4CAB-90F0-2FC4EF6A6B3F</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522396386</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o814\">\n<a:ObjectID>B546E2F7-48AB-4A7C-A4A0-28A667D75391</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522396864</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396878</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o815\">\n<a:ObjectID>D33F598C-18B5-4DF4-8326-FF7328B10F00</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o816\">\n<a:ObjectID>A0377031-7298-442C-B4DF-94C554828629</a:ObjectID>\n<a:Name>change_type</a:Name>\n<a:Code>change_type</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>改变类型：0-&gt;增加；1-&gt;减少</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o817\">\n<a:ObjectID>0EF45C85-5160-4E92-A3A6-C4B546D93214</a:ObjectID>\n<a:Name>change_count</a:Name>\n<a:Code>change_count</a:Code>\n<a:CreationDate>1522396491</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分改变数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o818\">\n<a:ObjectID>4893755C-D937-4D36-9611-B9AD46A57BAA</a:ObjectID>\n<a:Name>operate_man</a:Name>\n<a:Code>operate_man</a:Code>\n<a:CreationDate>1522396534</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作人员</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o819\">\n<a:ObjectID>6CA349B8-491B-4E27-880E-D83491AB7849</a:ObjectID>\n<a:Name>operate_note</a:Name>\n<a:Code>operate_note</a:Code>\n<a:CreationDate>1522396606</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作备注</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o820\">\n<a:ObjectID>52268506-CE01-481B-ABD3-F84E4E9758C9</a:ObjectID>\n<a:Name>source_type</a:Name>\n<a:Code>source_type</a:Code>\n<a:CreationDate>1522396738</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分来源：0-&gt;购物；1-&gt;管理员修改</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o821\">\n<a:ObjectID>2BAA5513-B2CF-4B60-A990-6319EB2671C4</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522396386</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o813\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o821\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o290\">\n<a:ObjectID>D2D961A9-BB8B-41D8-A501-1AF511F65DF9</a:ObjectID>\n<a:Name>ums_member_task</a:Name>\n<a:Code>ums_member_task</a:Code>\n<a:CreationDate>1522397182</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397290</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员任务表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o822\">\n<a:ObjectID>56B17C0E-8FBA-4594-8C45-1FF6469A7159</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522397183</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397211</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o823\">\n<a:ObjectID>65D902D3-95D4-4540-BC18-F384B3710D83</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522397207</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397290</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o824\">\n<a:ObjectID>20EF2EF9-E621-4652-B334-862949676CA3</a:ObjectID>\n<a:Name>growth</a:Name>\n<a:Code>growth</a:Code>\n<a:CreationDate>1522397207</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397322</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>赠送成长值</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o825\">\n<a:ObjectID>55E587FF-CF0D-45D0-B63D-171E313D0FEB</a:ObjectID>\n<a:Name>intergration</a:Name>\n<a:Code>intergration</a:Code>\n<a:CreationDate>1522397207</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397329</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>赠送积分</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o826\">\n<a:ObjectID>6878B9A3-18D2-4405-97D4-B3BE49EBA993</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522397207</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397312</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>任务类型：0-&gt;新手任务；1-&gt;日常任务</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o827\">\n<a:ObjectID>EA426689-78F7-40C2-B520-83BA9FCC54D1</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522397183</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397207</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o822\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o827\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o292\">\n<a:ObjectID>9E564377-D9BE-4655-AC2E-13B0FD5CAF22</a:ObjectID>\n<a:Name>ums_member_rule_setting</a:Name>\n<a:Code>ums_member_rule_setting</a:Code>\n<a:CreationDate>1522397511</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397900</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员积分成长规则表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o828\">\n<a:ObjectID>125CFE60-6A33-4680-B726-FC5E68082C98</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522397511</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397554</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o829\">\n<a:ObjectID>38E3DC37-0559-41F6-84C0-3F5C43C48FF0</a:ObjectID>\n<a:Name>continue_sign_day</a:Name>\n<a:Code>continue_sign_day</a:Code>\n<a:CreationDate>1522397551</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397634</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>连续签到天数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o830\">\n<a:ObjectID>9508FDB7-6018-4E59-A007-49274C4627DC</a:ObjectID>\n<a:Name>continue_sign_point</a:Name>\n<a:Code>continue_sign_point</a:Code>\n<a:CreationDate>1522397620</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397799</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>连续签到赠送数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o831\">\n<a:ObjectID>2D67D7C4-242F-4287-AE03-819499C5EEE9</a:ObjectID>\n<a:Name>consume_per_point</a:Name>\n<a:Code>consume_per_point</a:Code>\n<a:CreationDate>1522397671</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397900</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每消费多少元获取1个点</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o832\">\n<a:ObjectID>3099A480-47E9-45F0-9183-7884D0C8B799</a:ObjectID>\n<a:Name>low_order_amount</a:Name>\n<a:Code>low_order_amount</a:Code>\n<a:CreationDate>1522397671</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397933</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>最低获取点数的订单金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o833\">\n<a:ObjectID>10ECB92A-03AE-4EC0-9F92-D4693B754400</a:ObjectID>\n<a:Name>max_point_per_order</a:Name>\n<a:Code>max_point_per_order</a:Code>\n<a:CreationDate>1522397799</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397949</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每笔订单最高获取点数</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o834\">\n<a:ObjectID>BBA261DE-035F-41ED-96F8-64CF61B19EB8</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1522397799</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397970</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>类型：0-&gt;积分规则；1-&gt;成长值规则</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o835\">\n<a:ObjectID>B72372E9-CEF8-4759-A874-B60E418F73DE</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522397511</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522397551</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o828\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o835\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o294\">\n<a:ObjectID>C1DCA2EA-AC28-420C-BFEF-FFE7F5644910</a:ObjectID>\n<a:Name>ums_integration_consume_setting</a:Name>\n<a:Code>ums_integration_consume_setting</a:Code>\n<a:CreationDate>1522398032</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535615091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分消费设置</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o836\">\n<a:ObjectID>5A65A4E0-C798-494B-89AA-899A5FE7ECC3</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522398033</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398074</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o837\">\n<a:ObjectID>E5B7DEEB-C659-43D6-A649-4A7AA6BA968A</a:ObjectID>\n<a:Name>deduction_per_amount</a:Name>\n<a:Code>deduction_per_amount</a:Code>\n<a:CreationDate>1522398071</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398169</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每一元需要抵扣的积分数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o838\">\n<a:ObjectID>3F3EBC7E-C661-4BF6-9748-A63740946E37</a:ObjectID>\n<a:Name>max_percent_per_order</a:Name>\n<a:Code>max_percent_per_order</a:Code>\n<a:CreationDate>1522398150</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398207</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每笔订单最高抵用百分比</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o839\">\n<a:ObjectID>A51ACE1C-D2CC-4935-AEEE-392472F47BA1</a:ObjectID>\n<a:Name>use_unit</a:Name>\n<a:Code>use_unit</a:Code>\n<a:CreationDate>1522398194</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398281</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每次使用积分最小单位100</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o840\">\n<a:ObjectID>381B38BC-D7D6-44F6-8E9A-7EC3ED2D96C3</a:ObjectID>\n<a:Name>coupon_status</a:Name>\n<a:Code>coupon_status</a:Code>\n<a:CreationDate>1522398253</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398330</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否可以和优惠券同用；0-&gt;不可以；1-&gt;可以</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o841\">\n<a:ObjectID>E57C57B8-9833-47BB-905A-F54F0A5010DA</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522398033</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522398071</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o836\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o841\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o295\">\n<a:ObjectID>9FDE9178-BEB4-4D80-8DFE-245B7FA5954D</a:ObjectID>\n<a:Name>oms_order</a:Name>\n<a:Code>oms_order</a:Code>\n<a:CreationDate>1522658325</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o842\">\n<a:ObjectID>3563269E-6EED-49DE-AC40-20CDE76A70F7</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522658326</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单id</a:Comment>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o843\">\n<a:ObjectID>1BFDD362-9A3F-4A39-A46A-988EFE0700F4</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1522659209</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535612363</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o844\">\n<a:ObjectID>7A1BB5A1-6ACE-4259-9D2F-A11D74465729</a:ObjectID>\n<a:Name>coupon_id</a:Name>\n<a:Code>coupon_id</a:Code>\n<a:CreationDate>1522724329</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724373</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o845\">\n<a:ObjectID>190337D5-DBCF-44C7-8E8F-60BA716C7D73</a:ObjectID>\n<a:Name>order_sn</a:Name>\n<a:Code>order_sn</a:Code>\n<a:CreationDate>1522658365</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522658432</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单编号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o846\">\n<a:ObjectID>42DE6A32-DB28-4441-9D31-43954E2B32F8</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522658421</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522658633</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>提交时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o847\">\n<a:ObjectID>B66D00FB-2706-4456-9C8D-5BE63900E843</a:ObjectID>\n<a:Name>member_username</a:Name>\n<a:Code>member_username</a:Code>\n<a:CreationDate>1522658628</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522658689</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>用户帐号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o848\">\n<a:ObjectID>93AF6B00-CE9F-4E65-852A-21DF3E8E38D3</a:ObjectID>\n<a:Name>total_amount</a:Name>\n<a:Code>total_amount</a:Code>\n<a:CreationDate>1522658628</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522723559</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单总金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o849\">\n<a:ObjectID>AA07B22F-DFD0-4443-B124-4E7A948B8F1A</a:ObjectID>\n<a:Name>pay_amount</a:Name>\n<a:Code>pay_amount</a:Code>\n<a:CreationDate>1535611784</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535611836</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>应付金额（实际支付金额）</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o850\">\n<a:ObjectID>93484605-04CB-4451-BA1C-1D43843E1FE8</a:ObjectID>\n<a:Name>freight_amount</a:Name>\n<a:Code>freight_amount</a:Code>\n<a:CreationDate>1522723575</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522723610</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>运费金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o851\">\n<a:ObjectID>31D4C71F-D7FF-4C00-88F3-D1A8B195D948</a:ObjectID>\n<a:Name>promotion_amount</a:Name>\n<a:Code>promotion_amount</a:Code>\n<a:CreationDate>1522723762</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522723859</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>促销优化金额（促销价、满减、阶梯价）</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o852\">\n<a:ObjectID>2AC97908-B95C-4C45-AD78-5AEBD42D415E</a:ObjectID>\n<a:Name>integration_amount</a:Name>\n<a:Code>integration_amount</a:Code>\n<a:CreationDate>1522723873</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522723942</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分抵扣金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o853\">\n<a:ObjectID>BDECF3D8-B85D-459A-9336-D298B11A129C</a:ObjectID>\n<a:Name>coupon_amount</a:Name>\n<a:Code>coupon_amount</a:Code>\n<a:CreationDate>1522724126</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724255</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券抵扣金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o854\">\n<a:ObjectID>570A30CB-E74E-4D54-A2F5-354511EEAD73</a:ObjectID>\n<a:Name>discount_amount</a:Name>\n<a:Code>discount_amount</a:Code>\n<a:CreationDate>1522724794</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724828</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>管理员后台调整订单使用的折扣金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o855\">\n<a:ObjectID>2506F5AD-C896-45DA-B1A9-47A3F09F32A7</a:ObjectID>\n<a:Name>pay_type</a:Name>\n<a:Code>pay_type</a:Code>\n<a:CreationDate>1522658684</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522747151</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>支付方式：0-&gt;未支付；1-&gt;支付宝；2-&gt;微信</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o856\">\n<a:ObjectID>1E796BD6-898E-4EDA-8ADE-A86D6305ED56</a:ObjectID>\n<a:Name>source_type</a:Name>\n<a:Code>source_type</a:Code>\n<a:CreationDate>1522658832</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522658869</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单来源：0-&gt;PC订单；1-&gt;app订单</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o857\">\n<a:ObjectID>EBDE3354-1D7D-43AF-ADC1-D73233AF9967</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522658850</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659024</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单状态：0-&gt;待付款；1-&gt;待发货；2-&gt;已发货；3-&gt;已完成；4-&gt;已关闭；5-&gt;无效订单</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o858\">\n<a:ObjectID>17C117FA-5488-480A-98AD-35E18E6B084D</a:ObjectID>\n<a:Name>order_type</a:Name>\n<a:Code>order_type</a:Code>\n<a:CreationDate>1522658951</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659122</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单类型：0-&gt;正常订单；1-&gt;秒杀订单</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o859\">\n<a:ObjectID>61822C95-27AC-4143-8C5F-CDE6DFE15B2C</a:ObjectID>\n<a:Name>delivery_company</a:Name>\n<a:Code>delivery_company</a:Code>\n<a:CreationDate>1522659709</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725481</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>物流公司(配送方式)</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o860\">\n<a:ObjectID>91DA7F9F-8F28-4D16-8A89-1379C5141304</a:ObjectID>\n<a:Name>delivery_sn</a:Name>\n<a:Code>delivery_sn</a:Code>\n<a:CreationDate>1522659876</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659902</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>物流单号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o861\">\n<a:ObjectID>ACB792D2-4ED5-47EE-BAFD-C389DAAA07E3</a:ObjectID>\n<a:Name>auto_confirm_day</a:Name>\n<a:Code>auto_confirm_day</a:Code>\n<a:CreationDate>1522659893</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659955</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>自动确认时间（天）</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o862\">\n<a:ObjectID>C142CF56-1ED7-4D71-95DF-9F114248A7BC</a:ObjectID>\n<a:Name>integration</a:Name>\n<a:Code>integration</a:Code>\n<a:CreationDate>1522660001</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660021</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>可以获得的积分</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o863\">\n<a:ObjectID>EA968274-2B27-4C3C-9565-619251E927BA</a:ObjectID>\n<a:Name>growth</a:Name>\n<a:Code>growth</a:Code>\n<a:CreationDate>1522660001</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660081</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>可以活动的成长值</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o864\">\n<a:ObjectID>B8CC6F72-DB4E-4A81-9D94-16B7AE9470A1</a:ObjectID>\n<a:Name>promotion_info</a:Name>\n<a:Code>promotion_info</a:Code>\n<a:CreationDate>1522660053</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660086</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>活动信息</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o865\">\n<a:ObjectID>BBE7BE20-0F91-48B2-96EA-7852ACCE40D1</a:ObjectID>\n<a:Name>bill_type</a:Name>\n<a:Code>bill_type</a:Code>\n<a:CreationDate>1522660081</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660200</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发票类型：0-&gt;不开发票；1-&gt;电子发票；2-&gt;纸质发票</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o866\">\n<a:ObjectID>5A0811A5-51AF-47C2-A7F8-A2909F856961</a:ObjectID>\n<a:Name>bill_header</a:Name>\n<a:Code>bill_header</a:Code>\n<a:CreationDate>1522660171</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660226</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发票抬头</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o867\">\n<a:ObjectID>B0E18290-D990-4622-B718-71A7113E9480</a:ObjectID>\n<a:Name>bill_content</a:Name>\n<a:Code>bill_content</a:Code>\n<a:CreationDate>1522660220</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660256</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发票内容</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o868\">\n<a:ObjectID>CE69C28B-C4BC-44AA-B3F2-30B6AD8390F8</a:ObjectID>\n<a:Name>bill_receiver_phone</a:Name>\n<a:Code>bill_receiver_phone</a:Code>\n<a:CreationDate>1522660252</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660326</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收票人电话</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n</o:Column>\n<o:Column Id=\"o869\">\n<a:ObjectID>DB7AE7E6-2321-4C2C-8580-7AEB802EBE2C</a:ObjectID>\n<a:Name>bill_receiver_email</a:Name>\n<a:Code>bill_receiver_email</a:Code>\n<a:CreationDate>1522660252</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660344</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收票人邮箱</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o870\">\n<a:ObjectID>98B312FD-4E06-4D2B-AC6F-970B84E6C73F</a:ObjectID>\n<a:Name>receiver_name</a:Name>\n<a:Code>receiver_name</a:Code>\n<a:CreationDate>1522660318</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535612363</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人姓名</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o871\">\n<a:ObjectID>1174D5FE-B8AE-49E7-A4D2-F947BFE08091</a:ObjectID>\n<a:Name>receiver_phone</a:Name>\n<a:Code>receiver_phone</a:Code>\n<a:CreationDate>1522660394</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535612363</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人电话</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o872\">\n<a:ObjectID>AA0D5272-63FA-45D9-8816-9D547B177F10</a:ObjectID>\n<a:Name>receiver_post_code</a:Name>\n<a:Code>receiver_post_code</a:Code>\n<a:CreationDate>1522660418</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660472</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人邮编</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n</o:Column>\n<o:Column Id=\"o873\">\n<a:ObjectID>7E47519A-F397-40EF-A70D-4B26E116BD67</a:ObjectID>\n<a:Name>receiver_province</a:Name>\n<a:Code>receiver_province</a:Code>\n<a:CreationDate>1522660464</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660527</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>省份/直辖市</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n</o:Column>\n<o:Column Id=\"o874\">\n<a:ObjectID>3218F635-7F7D-4A36-9BF2-E1C822053456</a:ObjectID>\n<a:Name>receiver_city</a:Name>\n<a:Code>receiver_city</a:Code>\n<a:CreationDate>1522660515</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660549</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>城市</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n</o:Column>\n<o:Column Id=\"o875\">\n<a:ObjectID>8C3E74BC-0BCA-4E3F-A1F8-4C06D7192D4E</a:ObjectID>\n<a:Name>receiver_region</a:Name>\n<a:Code>receiver_region</a:Code>\n<a:CreationDate>1522660544</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660590</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>区</a:Comment>\n<a:DataType>varchar(32)</a:DataType>\n<a:Length>32</a:Length>\n</o:Column>\n<o:Column Id=\"o876\">\n<a:ObjectID>661DB749-D0D5-43E2-B96E-2444DA4DBA06</a:ObjectID>\n<a:Name>receiver_detail_address</a:Name>\n<a:Code>receiver_detail_address</a:Code>\n<a:CreationDate>1522660585</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>详细地址</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o877\">\n<a:ObjectID>F0169A36-508E-4CDA-8BD0-6077437C30DA</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522724892</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724915</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单备注</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o878\">\n<a:ObjectID>735D23D8-B7B2-4474-A113-1ED7AAA6C9B8</a:ObjectID>\n<a:Name>confirm_status</a:Name>\n<a:Code>confirm_status</a:Code>\n<a:CreationDate>1522725950</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725999</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>确认收货状态：0-&gt;未确认；1-&gt;已确认</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o879\">\n<a:ObjectID>1D7E85F6-2738-40D2-A69D-1B55994F607A</a:ObjectID>\n<a:Name>delete_status</a:Name>\n<a:Code>delete_status</a:Code>\n<a:CreationDate>1535611815</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535612418</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>删除状态：0-&gt;未删除；1-&gt;已删除</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,102={9480E6AA-83DD-4AA7-9C91-E48F709C29D9},CharSet,0=\n{B314652C-DD43-4F81-8524-6F97A1BAACBA},Collate,0=\n\n</a:ExtendedAttributesText>\n</o:Column>\n<o:Column Id=\"o880\">\n<a:ObjectID>F556C92B-2EE8-48AB-B431-CABDBE189320</a:ObjectID>\n<a:Name>use_integration</a:Name>\n<a:Code>use_integration</a:Code>\n<a:CreationDate>1536136197</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1536136230</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>下单时使用的积分</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o881\">\n<a:ObjectID>1D5BDFFC-6D63-44EA-8B7D-751C599A2A3A</a:ObjectID>\n<a:Name>payment_time</a:Name>\n<a:Code>payment_time</a:Code>\n<a:CreationDate>1539236189</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539236349</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>支付时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o882\">\n<a:ObjectID>D2094CD3-0C14-476E-9267-60186CD40813</a:ObjectID>\n<a:Name>delivery_time</a:Name>\n<a:Code>delivery_time</a:Code>\n<a:CreationDate>1539236207</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539236252</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发货时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o883\">\n<a:ObjectID>70755468-D317-4803-9B06-3975443F82C3</a:ObjectID>\n<a:Name>receive_time</a:Name>\n<a:Code>receive_time</a:Code>\n<a:CreationDate>1539236247</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539236359</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>确认收货时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o884\">\n<a:ObjectID>C9857D65-CC11-42E6-BE7C-03A1B181DCB4</a:ObjectID>\n<a:Name>comment_time</a:Name>\n<a:Code>comment_time</a:Code>\n<a:CreationDate>1539236349</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539236415</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>评价时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o885\">\n<a:ObjectID>E2934ED3-7C35-4E4C-85C8-4554D6FED072</a:ObjectID>\n<a:Name>modify_time</a:Name>\n<a:Code>modify_time</a:Code>\n<a:CreationDate>1539236409</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539236440</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>修改时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o886\">\n<a:ObjectID>F98BE405-9DED-4054-ABBF-40BD4672B58B</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522658326</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o842\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o886\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o296\">\n<a:ObjectID>FDAAF085-F146-4ADE-919D-85D1DB4E61EE</a:ObjectID>\n<a:Name>oms_order_item</a:Name>\n<a:Code>oms_order_item</a:Code>\n<a:CreationDate>1522660695</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1582621151</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单中所包含的商品</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o887\">\n<a:ObjectID>C2ABF8A4-2DE7-4C17-8053-440A60BD8EE7</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522660696</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660748</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o888\">\n<a:ObjectID>B1934126-97B4-461B-B2A8-D53CCF81245C</a:ObjectID>\n<a:Name>order_id</a:Name>\n<a:Code>order_id</a:Code>\n<a:CreationDate>1522660753</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660776</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o889\">\n<a:ObjectID>EA411763-23EA-4E27-97CD-1C0D5925157C</a:ObjectID>\n<a:Name>order_sn</a:Name>\n<a:Code>order_sn</a:Code>\n<a:CreationDate>1522660755</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660781</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单编号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o890\">\n<a:ObjectID>DCF7D58B-AD64-48B0-9A65-4FDAE9A32DFB</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1522660820</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660829</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o891\">\n<a:ObjectID>7BDD65C2-224E-413D-AD83-437754569B1C</a:ObjectID>\n<a:Name>product_pic</a:Name>\n<a:Code>product_pic</a:Code>\n<a:CreationDate>1522719518</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535696089</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o892\">\n<a:ObjectID>DFFC50EA-1E9A-4867-9EE8-B1A1B84E51E7</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522719518</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522719560</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o893\">\n<a:ObjectID>68478EE9-703A-4DFD-A085-7B109BBF650D</a:ObjectID>\n<a:Name>product_brand</a:Name>\n<a:Code>product_brand</a:Code>\n<a:CreationDate>1522719571</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522719666</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o894\">\n<a:ObjectID>27623FBE-2491-4310-AA4E-D93F4AD59154</a:ObjectID>\n<a:Name>product_sn</a:Name>\n<a:Code>product_sn</a:Code>\n<a:CreationDate>1522719571</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522719666</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o895\">\n<a:ObjectID>A9EF8281-439D-4D05-BB45-E933E648D979</a:ObjectID>\n<a:Name>product_price</a:Name>\n<a:Code>product_price</a:Code>\n<a:CreationDate>1522719571</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694206</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>销售价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o896\">\n<a:ObjectID>015E8942-52BF-4342-9C4C-1230A266C1C9</a:ObjectID>\n<a:Name>product_quantity</a:Name>\n<a:Code>product_quantity</a:Code>\n<a:CreationDate>1522723168</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694166</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>购买数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o897\">\n<a:ObjectID>EE8FDF66-7853-4BCE-98D9-40ADC13CC78F</a:ObjectID>\n<a:Name>product_sku_id</a:Name>\n<a:Code>product_sku_id</a:Code>\n<a:CreationDate>1535693972</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694126</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品sku编号</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o898\">\n<a:ObjectID>B13B6661-62F2-461A-B375-7556D6DBE56D</a:ObjectID>\n<a:Name>product_sku_code</a:Name>\n<a:Code>product_sku_code</a:Code>\n<a:CreationDate>1535693972</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品sku条码</a:Comment>\n<a:DataType>varchar(50)</a:DataType>\n<a:Length>50</a:Length>\n</o:Column>\n<o:Column Id=\"o899\">\n<a:ObjectID>6B11B4F4-2F88-4DA2-A6C6-B5563F8AB67F</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1535938231</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535938276</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品分类id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o900\">\n<a:ObjectID>00A626D1-90DA-4262-8FFB-874691D67C3E</a:ObjectID>\n<a:Name>promotion_name</a:Name>\n<a:Code>promotion_name</a:Code>\n<a:CreationDate>1535694274</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694390</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品促销名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o901\">\n<a:ObjectID>FCD8E9C9-7C56-47F0-8FBB-5534EB9B8FDE</a:ObjectID>\n<a:Name>promotion_amount</a:Name>\n<a:Code>promotion_amount</a:Code>\n<a:CreationDate>1535694166</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694826</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品促销分解金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o902\">\n<a:ObjectID>073E4D15-F6EB-405D-9429-3A2FD362E949</a:ObjectID>\n<a:Name>coupon_amount</a:Name>\n<a:Code>coupon_amount</a:Code>\n<a:CreationDate>1535694274</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694877</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>优惠券优惠分解金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o903\">\n<a:ObjectID>B4781397-191A-42B9-AAF7-D96E7BC3449D</a:ObjectID>\n<a:Name>integration_amount</a:Name>\n<a:Code>integration_amount</a:Code>\n<a:CreationDate>1535694826</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694927</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>积分优惠分解金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o904\">\n<a:ObjectID>AD7CAE73-04BF-4BB8-BEFA-E0A7B94BF373</a:ObjectID>\n<a:Name>real_amount</a:Name>\n<a:Code>real_amount</a:Code>\n<a:CreationDate>1522724652</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535694701</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>该商品经过优惠后的分解金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o905\">\n<a:ObjectID>3FBC2AE3-3000-41C7-B78C-DB7AC7ABDC16</a:ObjectID>\n<a:Name>gift_integration</a:Name>\n<a:Code>gift_integration</a:Code>\n<a:CreationDate>1535964164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535964238</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品赠送积分</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o906\">\n<a:ObjectID>C7705A4E-64E8-44A3-B3BE-7A8762E73CFD</a:ObjectID>\n<a:Name>gift_growth</a:Name>\n<a:Code>gift_growth</a:Code>\n<a:CreationDate>1535964164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535964251</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品赠送成长值</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o907\">\n<a:ObjectID>07F49796-6B7C-4A44-BF17-6EF191BE819A</a:ObjectID>\n<a:Name>product_attr</a:Name>\n<a:Code>product_attr</a:Code>\n<a:CreationDate>1540542610</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1540542637</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品销售属性:[{&quot;key&quot;:&quot;颜色&quot;,&quot;value&quot;:&quot;颜色&quot;},{&quot;key&quot;:&quot;容量&quot;,&quot;value&quot;:&quot;4G&quot;}]</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o908\">\n<a:ObjectID>8B728C73-2ED3-4C44-8C64-95692A16EA10</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522660696</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660745</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o887\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o908\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o297\">\n<a:ObjectID>E184F9AC-F126-46D6-A8FF-5F95FBA2F74D</a:ObjectID>\n<a:Name>oms_order_operate_history</a:Name>\n<a:Code>oms_order_operate_history</a:Code>\n<a:CreationDate>1522724973</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725331</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单操作历史记录</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o909\">\n<a:ObjectID>46247D13-9B17-44EB-9300-7BA49AC214FB</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522724975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725013</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o910\">\n<a:ObjectID>CBAA2797-F782-492E-89D8-B87830B4FD86</a:ObjectID>\n<a:Name>order_id</a:Name>\n<a:Code>order_id</a:Code>\n<a:CreationDate>1522725331</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725342</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o911\">\n<a:ObjectID>B26D3031-3438-4CAB-BC93-2277F41D2F64</a:ObjectID>\n<a:Name>operate_man</a:Name>\n<a:Code>operate_man</a:Code>\n<a:CreationDate>1522725011</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725056</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作人：用户；系统；后台管理员</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o912\">\n<a:ObjectID>14B87125-FC24-4D09-982E-F43F618B6C3A</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522725037</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725076</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>操作时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o913\">\n<a:ObjectID>296A8CF6-1BC8-46E1-846F-25114FF35EEB</a:ObjectID>\n<a:Name>order_status</a:Name>\n<a:Code>order_status</a:Code>\n<a:CreationDate>1522725072</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725298</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单状态：0-&gt;待付款；1-&gt;待发货；2-&gt;已发货；3-&gt;已完成；4-&gt;已关闭；5-&gt;无效订单</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o914\">\n<a:ObjectID>9F651D4E-088F-4735-ACAD-12ED16C49FDE</a:ObjectID>\n<a:Name>note</a:Name>\n<a:Code>note</a:Code>\n<a:CreationDate>1522725292</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725326</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>备注</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o915\">\n<a:ObjectID>50772925-29B2-4E77-A02B-5AB8C229953C</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522724975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725011</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o909\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o915\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o299\">\n<a:ObjectID>A3448BD2-42B4-44EC-9BD2-9837B4DF8523</a:ObjectID>\n<a:Name>oms_order_setting</a:Name>\n<a:Code>oms_order_setting</a:Code>\n<a:CreationDate>1522726076</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522731991</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单设置表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o916\">\n<a:ObjectID>03B16432-ECCE-4698-B24A-05554E64C35C</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522726077</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522726104</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o917\">\n<a:ObjectID>AC98E6B7-ADDF-43AD-B2F0-6CFE7715E9F1</a:ObjectID>\n<a:Name>flash_order_overtime</a:Name>\n<a:Code>flash_order_overtime</a:Code>\n<a:CreationDate>1522726101</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522726218</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>秒杀订单超时关闭时间(分)</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o918\">\n<a:ObjectID>C4E474C5-194A-4B54-8DF1-F37B681DE42B</a:ObjectID>\n<a:Name>normal_order_overtime</a:Name>\n<a:Code>normal_order_overtime</a:Code>\n<a:CreationDate>1522726150</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522726226</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>正常订单超时时间(分)</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o919\">\n<a:ObjectID>773FEFCD-F4A3-4D9E-B061-10C12CA1B397</a:ObjectID>\n<a:Name>confirm_overtime</a:Name>\n<a:Code>confirm_overtime</a:Code>\n<a:CreationDate>1522726177</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522726257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>发货后自动确认收货时间（天）</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o920\">\n<a:ObjectID>DD5B89B8-5DC6-4EB1-B916-D76BD75CB0F5</a:ObjectID>\n<a:Name>finish_overtime</a:Name>\n<a:Code>finish_overtime</a:Code>\n<a:CreationDate>1522731908</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522732014</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>自动完成交易时间，不能申请售后（天）</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o921\">\n<a:ObjectID>D090D0ED-6A45-445C-ADE3-F1E18734F159</a:ObjectID>\n<a:Name>comment_overtime</a:Name>\n<a:Code>comment_overtime</a:Code>\n<a:CreationDate>1522731929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522732004</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单完成后自动好评时间（天）</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o922\">\n<a:ObjectID>7C2ADDA9-1584-4310-A3FE-7F1E18447823</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522726077</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522726101</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o916\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o922\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o300\">\n<a:ObjectID>5006E5DC-16F9-4C44-ABAA-2812B50757BB</a:ObjectID>\n<a:Name>oms_order_return_apply</a:Name>\n<a:Code>oms_order_return_apply</a:Code>\n<a:CreationDate>1522732897</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746524</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单退货申请</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o923\">\n<a:ObjectID>CF99B61C-D0E5-4EB4-BFC6-111A9F3D44E8</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522732898</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522732943</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o924\">\n<a:ObjectID>A6E68B83-006A-468C-A461-C647705E038C</a:ObjectID>\n<a:Name>order_id</a:Name>\n<a:Code>order_id</a:Code>\n<a:CreationDate>1522733188</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733198</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o925\">\n<a:ObjectID>8D1F23F9-09FD-416B-8E38-CFDE67721417</a:ObjectID>\n<a:Name>company_address_id</a:Name>\n<a:Code>company_address_id</a:Code>\n<a:CreationDate>1522745521</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745624</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货地址表id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o926\">\n<a:ObjectID>A6898418-67C2-4E9F-9093-6FF8782BD12F</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1539746524</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746553</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货商品id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o927\">\n<a:ObjectID>56ACAE3C-5533-44A1-BA57-602058B6CEF2</a:ObjectID>\n<a:Name>order_sn</a:Name>\n<a:Code>order_sn</a:Code>\n<a:CreationDate>1522733452</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>订单编号</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o928\">\n<a:ObjectID>F2C78E24-CDB0-4AA7-B6CD-21E55B380E95</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1522732939</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746482</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>申请时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o929\">\n<a:ObjectID>70FBE2CF-BE0D-44DD-8679-39DAA782E1A3</a:ObjectID>\n<a:Name>member_username</a:Name>\n<a:Code>member_username</a:Code>\n<a:CreationDate>1522732939</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745698</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员用户名</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o930\">\n<a:ObjectID>7B8A70B3-9FC9-4136-BEC9-D2DF393DB988</a:ObjectID>\n<a:Name>return_amount</a:Name>\n<a:Code>return_amount</a:Code>\n<a:CreationDate>1522732939</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733013</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退款金额</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o931\">\n<a:ObjectID>4FB9898E-63E4-4B21-B577-504320D3D4F9</a:ObjectID>\n<a:Name>return_name</a:Name>\n<a:Code>return_name</a:Code>\n<a:CreationDate>1522733003</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745642</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货人姓名</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o932\">\n<a:ObjectID>8ADCC57B-6CA5-4A89-8B5A-6283FE7B3DDF</a:ObjectID>\n<a:Name>return_phone</a:Name>\n<a:Code>return_phone</a:Code>\n<a:CreationDate>1522733468</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733653</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货人电话</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o933\">\n<a:ObjectID>F01CC8D2-508C-424D-BF17-AE42ABE28223</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522733003</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733137</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>申请状态：0-&gt;待处理；1-&gt;退货中；2-&gt;已完成；3-&gt;已拒绝</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o934\">\n<a:ObjectID>65402A2F-A01C-4B4D-9F19-9ACD48637159</a:ObjectID>\n<a:Name>handle_time</a:Name>\n<a:Code>handle_time</a:Code>\n<a:CreationDate>1522733003</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733179</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>处理时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o935\">\n<a:ObjectID>AADBD0C8-E8CD-45D6-BDF4-13840EEFA26C</a:ObjectID>\n<a:Name>product_pic</a:Name>\n<a:Code>product_pic</a:Code>\n<a:CreationDate>1522733217</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745750</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品图片</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o936\">\n<a:ObjectID>B4BB6015-3948-411C-9558-6CAF55CEF04C</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1522733217</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745756</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o937\">\n<a:ObjectID>D30E609F-3F5C-401C-8690-EEA47B0E6694</a:ObjectID>\n<a:Name>product_brand</a:Name>\n<a:Code>product_brand</a:Code>\n<a:CreationDate>1522733217</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745719</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品品牌</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o938\">\n<a:ObjectID>86B4B2F7-9A36-47AC-A3DA-7F45FFF21639</a:ObjectID>\n<a:Name>product_attr</a:Name>\n<a:Code>product_attr</a:Code>\n<a:CreationDate>1522733217</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733369</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品销售属性：颜色：红色；尺码：xl;</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o939\">\n<a:ObjectID>DE661909-8CDC-4C09-A0C1-5587F969523A</a:ObjectID>\n<a:Name>product_count</a:Name>\n<a:Code>product_count</a:Code>\n<a:CreationDate>1522733332</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733395</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o940\">\n<a:ObjectID>B16F9E1E-749A-477B-B8E1-70B635CC8F00</a:ObjectID>\n<a:Name>product_price</a:Name>\n<a:Code>product_price</a:Code>\n<a:CreationDate>1539746095</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746212</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品单价</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o941\">\n<a:ObjectID>442BB5FC-951A-43B5-94AD-B3C2E1C8F28F</a:ObjectID>\n<a:Name>product_real_price</a:Name>\n<a:Code>product_real_price</a:Code>\n<a:CreationDate>1539746095</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746225</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品实际支付单价</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o942\">\n<a:ObjectID>B4DB3A15-7B0F-4C6D-B961-AF2C4CF14D50</a:ObjectID>\n<a:Name>reason</a:Name>\n<a:Code>reason</a:Code>\n<a:CreationDate>1522733512</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733657</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>原因</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o943\">\n<a:ObjectID>ECE8A578-4D6B-47EB-BB72-207D9BC93324</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1522733512</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733663</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>描述</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o944\">\n<a:ObjectID>E3C2C9CF-D72D-44AA-B1A3-5B5AC1950B63</a:ObjectID>\n<a:Name>proof_pics</a:Name>\n<a:Code>proof_pics</a:Code>\n<a:CreationDate>1522733653</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733740</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>凭证图片，以逗号隔开</a:Comment>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o945\">\n<a:ObjectID>B16F27C1-DFFA-40F1-83B5-F9DA3BB86FE6</a:ObjectID>\n<a:Name>handle_note</a:Name>\n<a:Code>handle_note</a:Code>\n<a:CreationDate>1522745027</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745078</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>处理备注</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o946\">\n<a:ObjectID>B8982C29-EB0D-4F63-A047-DDEDC91A78C3</a:ObjectID>\n<a:Name>handle_man</a:Name>\n<a:Code>handle_man</a:Code>\n<a:CreationDate>1522745592</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745618</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>处理人员</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o947\">\n<a:ObjectID>49E217E2-31BF-4F23-8125-62D5920E0B60</a:ObjectID>\n<a:Name>receive_man</a:Name>\n<a:Code>receive_man</a:Code>\n<a:CreationDate>1522745613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745658</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o948\">\n<a:ObjectID>8111E4F5-B8EA-4DCB-B899-A2E4921E6BC2</a:ObjectID>\n<a:Name>receive_time</a:Name>\n<a:Code>receive_time</a:Code>\n<a:CreationDate>1522745652</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745779</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o949\">\n<a:ObjectID>4C802C73-FB19-4C09-84C3-37E152CA8299</a:ObjectID>\n<a:Name>receive_note</a:Name>\n<a:Code>receive_note</a:Code>\n<a:CreationDate>1522745652</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745787</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货备注</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o950\">\n<a:ObjectID>D06B934B-B63D-4DCC-B1C1-62F79744A8AC</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522732898</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522732939</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o923\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o950\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o301\">\n<a:ObjectID>594B7799-023B-4DAF-840D-B224931CBA6C</a:ObjectID>\n<a:Name>oms_company_address</a:Name>\n<a:Code>oms_company_address</a:Code>\n<a:CreationDate>1522745162</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745228</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>公司收发货地址表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o951\">\n<a:ObjectID>F5A62BE4-F0B9-46C3-8591-5864BB83220D</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522745164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745194</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o952\">\n<a:ObjectID>359C7F83-8810-4F75-935C-8099B75676C6</a:ObjectID>\n<a:Name>address_name</a:Name>\n<a:Code>address_name</a:Code>\n<a:CreationDate>1522745192</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745253</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>地址名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o953\">\n<a:ObjectID>5AA8AC8B-9617-4A6F-B898-4206F7CE8169</a:ObjectID>\n<a:Name>send_status</a:Name>\n<a:Code>send_status</a:Code>\n<a:CreationDate>1522745248</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745302</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>默认发货地址：0-&gt;否；1-&gt;是</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o954\">\n<a:ObjectID>CDF1655B-32CC-4E54-BBE7-5F00549B7722</a:ObjectID>\n<a:Name>receive_status</a:Name>\n<a:Code>receive_status</a:Code>\n<a:CreationDate>1522745248</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745328</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否默认收货地址：0-&gt;否；1-&gt;是</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o955\">\n<a:ObjectID>F5195500-8663-482B-B587-27789546188C</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522745285</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745228</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收发货人姓名</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o956\">\n<a:ObjectID>D51012F2-BECB-4E6B-A7E9-5B6AC06D9087</a:ObjectID>\n<a:Name>phone</a:Name>\n<a:Code>phone</a:Code>\n<a:CreationDate>1522745285</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745508</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>收货人电话</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o957\">\n<a:ObjectID>3D2DC8D4-9D56-4E95-8266-052132761CDE</a:ObjectID>\n<a:Name>province</a:Name>\n<a:Code>province</a:Code>\n<a:CreationDate>1522745363</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745209</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>省/直辖市</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o958\">\n<a:ObjectID>57267BF2-434D-4AEC-8E6B-DDCAA85233F7</a:ObjectID>\n<a:Name>city</a:Name>\n<a:Code>city</a:Code>\n<a:CreationDate>1522745363</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745217</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>市</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o959\">\n<a:ObjectID>F1F15023-139B-4048-8D0C-C9C46884C6E9</a:ObjectID>\n<a:Name>region</a:Name>\n<a:Code>region</a:Code>\n<a:CreationDate>1522745363</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745223</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>区</a:Comment>\n<a:DataType>varchar(64)</a:DataType>\n<a:Length>64</a:Length>\n</o:Column>\n<o:Column Id=\"o960\">\n<a:ObjectID>D3EA532D-AD33-45AF-BA17-1FE7D821EE64</a:ObjectID>\n<a:Name>detail_address</a:Name>\n<a:Code>detail_address</a:Code>\n<a:CreationDate>1539745108</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539745239</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>详细地址</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o961\">\n<a:ObjectID>9B8E57D5-D022-48D7-BA87-3214D2DAB1BD</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522745164</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745192</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o951\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o961\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o303\">\n<a:ObjectID>3FB6BF2A-C836-4B1F-AA9B-4219F4ECBC6D</a:ObjectID>\n<a:Name>oms_order_return_reason</a:Name>\n<a:Code>oms_order_return_reason</a:Code>\n<a:CreationDate>1522745726</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539238788</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货原因表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o962\">\n<a:ObjectID>8398CF1C-2327-4762-B370-7F7BB681FBE8</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1522745728</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o963\">\n<a:ObjectID>7C7CCC5E-FBE6-49A6-A428-95A8A078B4EA</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1522745760</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745845</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>退货类型</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o964\">\n<a:ObjectID>0C284FC4-E892-4BFF-B0AC-AD9BCB8E39D2</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1522745760</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745809</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o965\">\n<a:ObjectID>D0151FA2-84E3-4252-9565-766B748B7AD3</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1522745760</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745824</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>状态：0-&gt;不启用；1-&gt;启用</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o966\">\n<a:ObjectID>A3F8C1D7-A495-4E99-885D-FC8FB1E5747C</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1539238773</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539238794</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>添加时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o967\">\n<a:ObjectID>F0009D1F-CC14-45AA-BDB7-F25CFBBFE380</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1522745728</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o962\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o967\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o304\">\n<a:ObjectID>679BF191-40EF-4FC4-8140-D9DA8F283689</a:ObjectID>\n<a:Name>oms_cart_item</a:Name>\n<a:Code>oms_cart_item</a:Code>\n<a:CreationDate>1533108597</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1582621132</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>购物车表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o968\">\n<a:ObjectID>0496CCD8-F7CC-4DD4-AEE7-919D8EFCD676</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1533108649</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533108729</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o969\">\n<a:ObjectID>BC6AB2CA-354D-447A-A466-54980B87F57F</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1533109970</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533110009</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o970\">\n<a:ObjectID>48241AB2-A6B4-48E5-A792-FAB72D97FD42</a:ObjectID>\n<a:Name>product_sku_id</a:Name>\n<a:Code>product_sku_id</a:Code>\n<a:CreationDate>1533115829</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115861</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o971\">\n<a:ObjectID>70CEB9F6-7F7D-4AB1-BB9D-3667BA109C72</a:ObjectID>\n<a:Name>member_id</a:Name>\n<a:Code>member_id</a:Code>\n<a:CreationDate>1533115896</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115923</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o972\">\n<a:ObjectID>8B8B68C0-7987-4E2B-9BAD-FF4F3428E03A</a:ObjectID>\n<a:Name>quantity</a:Name>\n<a:Code>quantity</a:Code>\n<a:CreationDate>1533108721</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533108755</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>购买数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o973\">\n<a:ObjectID>E2A71768-48C5-46B2-82B8-635169BFE66D</a:ObjectID>\n<a:Name>price</a:Name>\n<a:Code>price</a:Code>\n<a:CreationDate>1533108747</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533108790</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>添加到购物车的价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o974\">\n<a:ObjectID>B5A53CF7-C87D-411B-89DF-41888E2722C7</a:ObjectID>\n<a:Name>product_pic</a:Name>\n<a:Code>product_pic</a:Code>\n<a:CreationDate>1533110160</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171242</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品主图</a:Comment>\n<a:DataType>varchar(1000)</a:DataType>\n<a:Length>1000</a:Length>\n</o:Column>\n<o:Column Id=\"o975\">\n<a:ObjectID>E1A4F06D-34AE-4B0C-BCC6-F82BA9D1A76F</a:ObjectID>\n<a:Name>product_name</a:Name>\n<a:Code>product_name</a:Code>\n<a:CreationDate>1533110160</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171249</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品名称</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o976\">\n<a:ObjectID>7BBD4FA7-9C75-4ECA-9E08-BBEAC572BCB1</a:ObjectID>\n<a:Name>product_brand</a:Name>\n<a:Code>product_brand</a:Code>\n<a:CreationDate>1535696251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535696298</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o977\">\n<a:ObjectID>11170A56-1C61-4372-9E46-A3C9C587340E</a:ObjectID>\n<a:Name>product_sn</a:Name>\n<a:Code>product_sn</a:Code>\n<a:CreationDate>1535696251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535696298</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o978\">\n<a:ObjectID>2D4BFCEF-83F1-4697-8EF7-DCC5D2A9491D</a:ObjectID>\n<a:Name>product_sub_title</a:Name>\n<a:Code>product_sub_title</a:Code>\n<a:CreationDate>1533110160</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171264</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品副标题（卖点）</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o979\">\n<a:ObjectID>8A7E5878-BB5E-49F3-BE20-E6986E172BB3</a:ObjectID>\n<a:Name>product_sku_code</a:Name>\n<a:Code>product_sku_code</a:Code>\n<a:CreationDate>1533115799</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171279</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品sku条码</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o980\">\n<a:ObjectID>23C68713-D38A-4915-96E3-A9762199D386</a:ObjectID>\n<a:Name>member_nickname</a:Name>\n<a:Code>member_nickname</a:Code>\n<a:CreationDate>1533115939</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171328</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>会员昵称</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o981\">\n<a:ObjectID>5675315C-7265-4AC3-88D4-BC1525AC73B7</a:ObjectID>\n<a:Name>create_date</a:Name>\n<a:Code>create_date</a:Code>\n<a:CreationDate>1533116034</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171335</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o982\">\n<a:ObjectID>1D877A06-39CD-4A3C-B4A8-059588D13838</a:ObjectID>\n<a:Name>modify_date</a:Name>\n<a:Code>modify_date</a:Code>\n<a:CreationDate>1533116034</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533171341</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>修改时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o983\">\n<a:ObjectID>20EF4C13-435F-4C03-B8A9-7E31F1432E21</a:ObjectID>\n<a:Name>delete_status</a:Name>\n<a:Code>delete_status</a:Code>\n<a:CreationDate>1533172423</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533172643</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>是否删除</a:Comment>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o984\">\n<a:ObjectID>9C9C2AC9-F58B-4D31-BEF4-1D1892931E51</a:ObjectID>\n<a:Name>product_category_id</a:Name>\n<a:Code>product_category_id</a:Code>\n<a:CreationDate>1535530934</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1535530961</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品的分类</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o985\">\n<a:ObjectID>B7274386-A224-491A-88E0-8FAADCA00C90</a:ObjectID>\n<a:Name>product_attr</a:Name>\n<a:Code>product_attr</a:Code>\n<a:CreationDate>1540542323</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1540542603</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品销售属性:[{&quot;key&quot;:&quot;颜色&quot;,&quot;value&quot;:&quot;银色&quot;},{&quot;key&quot;:&quot;容量&quot;,&quot;value&quot;:&quot;4G&quot;}]</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o986\">\n<a:ObjectID>29D735B7-E618-4C13-AF03-3858C68E6BA4</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1533108649</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533108680</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o968\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o986\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o305\">\n<a:ObjectID>76086A3D-70A2-4A7E-A4DA-9B79808A0A53</a:ObjectID>\n<a:Name>ums_role</a:Name>\n<a:Code>ums_role</a:Code>\n<a:CreationDate>1538200619</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201383</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户角色表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o987\">\n<a:ObjectID>2E853DB4-DEFD-42D5-A6BE-6226A3194CE4</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1538201005</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201117</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o988\">\n<a:ObjectID>A7C5F5AC-3D79-4BAB-A058-E801649746EB</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1538201019</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201122</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o989\">\n<a:ObjectID>013099EA-F84F-4262-9125-15DA3687C8CE</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1538201019</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201128</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>描述</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o990\">\n<a:ObjectID>F376357B-61CA-46D5-BED7-51C5322735A9</a:ObjectID>\n<a:Name>admin_count</a:Name>\n<a:Code>admin_count</a:Code>\n<a:CreationDate>1538201117</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201162</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o991\">\n<a:ObjectID>EAC9E6A6-7E67-44F0-B085-B7A2380828E9</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1538201155</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201198</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o992\">\n<a:ObjectID>8B4E2D43-F39C-46CD-B498-1CD02CDE1F81</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1538201193</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201235</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>启用状态：0-&gt;禁用；1-&gt;启用</a:Comment>\n<a:DefaultValue>1</a:DefaultValue>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o993\">\n<a:ObjectID>CDB0B35E-6C3A-4FE5-9D47-E7682E71302E</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1538201211</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201486</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DefaultValue>0</a:DefaultValue>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o994\">\n<a:ObjectID>14F5A838-542A-4B80-8627-B17FF80D3D0C</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1538201019</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201117</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o987\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o994\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o306\">\n<a:ObjectID>4E46B794-7D2F-434B-9096-2F7DB97537BA</a:ObjectID>\n<a:Name>ums_permission</a:Name>\n<a:Code>ums_permission</a:Code>\n<a:CreationDate>1538201545</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户权限表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o995\">\n<a:ObjectID>E945AB0D-430D-4564-A942-AFAF3D3C6106</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1538201548</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201942</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n<a:ExtendedAttributesText>{F4F16ECD-F2F1-4006-AF6F-638D5C65F35E},MYSQL50,102={9480E6AA-83DD-4AA7-9C91-E48F709C29D9},CharSet,0=\n{B314652C-DD43-4F81-8524-6F97A1BAACBA},Collate,0=\n\n</a:ExtendedAttributesText>\n</o:Column>\n<o:Column Id=\"o996\">\n<a:ObjectID>B073CBDF-527E-4961-BF55-9C5A1F643303</a:ObjectID>\n<a:Name>pid</a:Name>\n<a:Code>pid</a:Code>\n<a:CreationDate>1538202362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202389</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>父级权限id</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o997\">\n<a:ObjectID>E06DA657-9A51-42D9-A915-3D76B6D12AC7</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1538201932</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202068</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o998\">\n<a:ObjectID>C2345EAD-45D6-41E7-8EAA-9DB2FD0F6C48</a:ObjectID>\n<a:Name>value</a:Name>\n<a:Code>value</a:Code>\n<a:CreationDate>1538201932</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202074</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>权限值</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o999\">\n<a:ObjectID>471034FB-C5B6-49C2-A117-AE9FEE311F8C</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1538201932</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202080</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>图标</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n<o:Column Id=\"o1000\">\n<a:ObjectID>64C52B4C-E7C5-4A7E-AE70-CF628EFC67A7</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1538202064</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202174</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>权限类型：0-&gt;目录；1-&gt;菜单；2-&gt;按钮（接口绑定权限）</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o1001\">\n<a:ObjectID>8E492BD0-8033-4FE5-8B5B-C13F6977D9A9</a:ObjectID>\n<a:Name>uri</a:Name>\n<a:Code>uri</a:Code>\n<a:CreationDate>1538202208</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202264</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>前端资源路径</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1002\">\n<a:ObjectID>88B074E5-990C-4217-91F5-A88E56CC8142</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1538202092</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202228</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>启用状态；0-&gt;禁用；1-&gt;启用</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o1003\">\n<a:ObjectID>6A46B30B-44EC-4D13-BEBF-77C4D26113CA</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1538202257</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202303</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o1004\">\n<a:ObjectID>FE8DC496-D926-4C4C-94C0-59F19B98D411</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1538202257</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202334</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1005\">\n<a:ObjectID>1A1D360B-3856-4FE0-ABC3-9C9DD7180247</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1538201548</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538201932</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o995\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1005\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o307\">\n<a:ObjectID>0ACD514B-6AD8-4092-9503-BB7418271C5D</a:ObjectID>\n<a:Name>ums_admin_role_relation</a:Name>\n<a:Code>ums_admin_role_relation</a:Code>\n<a:CreationDate>1538202419</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202492</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户和角色关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1006\">\n<a:ObjectID>FD4417BB-10DA-489F-95B7-2538DA63FEB7</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1538202420</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202461</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1007\">\n<a:ObjectID>7E2D454E-E44B-490F-9E86-11CB1D02A55F</a:ObjectID>\n<a:Name>admin_id</a:Name>\n<a:Code>admin_id</a:Code>\n<a:CreationDate>1538202471</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202487</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1008\">\n<a:ObjectID>6408BE19-A7C6-4F9D-B9C0-921BD494570B</a:ObjectID>\n<a:Name>role_id</a:Name>\n<a:Code>role_id</a:Code>\n<a:CreationDate>1538202492</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202502</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1009\">\n<a:ObjectID>6D817E44-8C99-4CFE-A645-0E536256B9D2</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1538202420</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202458</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1006\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1009\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o308\">\n<a:ObjectID>DF1649B4-5B0F-43F0-8E49-DFB2050E1F76</a:ObjectID>\n<a:Name>ums_role_permission_relation</a:Name>\n<a:Code>ums_role_permission_relation</a:Code>\n<a:CreationDate>1538202537</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202588</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户角色和权限关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1010\">\n<a:ObjectID>1144AF4C-1426-47B7-8212-DA3B3E6C2A36</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1538202538</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202580</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1011\">\n<a:ObjectID>FE5CF0B5-65AA-4B6D-AE3C-04E4A57077D0</a:ObjectID>\n<a:Name>role_id</a:Name>\n<a:Code>role_id</a:Code>\n<a:CreationDate>1538202586</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202605</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1012\">\n<a:ObjectID>3E519CF4-C6F8-4D40-828A-F3AFFDA09699</a:ObjectID>\n<a:Name>permission_id</a:Name>\n<a:Code>permission_id</a:Code>\n<a:CreationDate>1538202588</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202605</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1013\">\n<a:ObjectID>7169397A-EC6D-422E-9575-7D580D618896</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1538202538</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202576</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1010\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1013\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o309\">\n<a:ObjectID>13CA705F-65DC-48AC-9563-A5650E15DCC0</a:ObjectID>\n<a:Name>ums_admin_permission_relation</a:Name>\n<a:Code>ums_admin_permission_relation</a:Code>\n<a:CreationDate>1538202617</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538203086</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台用户和权限关系表(除角色中定义的权限以外的加减权限)</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1014\">\n<a:ObjectID>BE753374-E9C7-4C53-AC9C-D71DCF50662D</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1538202860</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202918</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1015\">\n<a:ObjectID>12FF5B6B-8647-49E1-927C-D43F14BBB174</a:ObjectID>\n<a:Name>admin_id</a:Name>\n<a:Code>admin_id</a:Code>\n<a:CreationDate>1538202927</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202948</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1016\">\n<a:ObjectID>8BDB3D8B-FFEF-4031-8D7A-EF81BE9BE670</a:ObjectID>\n<a:Name>permission_id</a:Name>\n<a:Code>permission_id</a:Code>\n<a:CreationDate>1538202929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202948</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1017\">\n<a:ObjectID>D5D4EBC8-9FCD-4A79-8171-4BC6027FA23E</a:ObjectID>\n<a:Name>type</a:Name>\n<a:Code>type</a:Code>\n<a:CreationDate>1538203070</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538203086</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1018\">\n<a:ObjectID>DF246E9E-48BE-43A9-A0A8-282F0AC6E482</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1538202860</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202916</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1014\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1018\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o310\">\n<a:ObjectID>0DE260F1-B640-49EA-8FD8-73901DA3FC6A</a:ObjectID>\n<a:Name>sms_flash_promotion_session</a:Name>\n<a:Code>sms_flash_promotion_session</a:Code>\n<a:CreationDate>1542177985</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178475</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限时购场次表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1019\">\n<a:ObjectID>10DEE53F-C0A5-4C47-B567-5B9318C189F5</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1542178330</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178351</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>编号</a:Comment>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1020\">\n<a:ObjectID>70BA3EA1-6434-4AFF-A8B7-BCFD893EE7BF</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1542178344</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178375</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>场次名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1021\">\n<a:ObjectID>E0270862-71AD-474C-96FE-3EEA4134152D</a:ObjectID>\n<a:Name>start_time</a:Name>\n<a:Code>start_time</a:Code>\n<a:CreationDate>1542178368</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178404</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每日开始时间</a:Comment>\n<a:DataType>time</a:DataType>\n</o:Column>\n<o:Column Id=\"o1022\">\n<a:ObjectID>A180A2E0-0FA8-475C-8D71-729FD0617D20</a:ObjectID>\n<a:Name>end_time</a:Name>\n<a:Code>end_time</a:Code>\n<a:CreationDate>1542178396</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178421</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每日结束时间</a:Comment>\n<a:DataType>time</a:DataType>\n</o:Column>\n<o:Column Id=\"o1023\">\n<a:ObjectID>49630CAC-6129-4521-AD71-0A3AFD07583A</a:ObjectID>\n<a:Name>status</a:Name>\n<a:Code>status</a:Code>\n<a:CreationDate>1542178416</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178456</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>启用状态：0-&gt;不启用；1-&gt;启用</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n<o:Column Id=\"o1024\">\n<a:ObjectID>3E293EDE-0D9A-4933-8B3D-4293903D92D0</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1542178436</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178481</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1025\">\n<a:ObjectID>6F8C4687-C113-41B9-B674-6D8DE3D1E8D5</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1542178330</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542178344</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1019\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1025\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o311\">\n<a:ObjectID>99F64742-38F7-4DA9-B8A0-1FC4476C94D3</a:ObjectID>\n<a:Name>sms_flash_promotion_product_relation</a:Name>\n<a:Code>sms_flash_promotion_product_relation</a:Code>\n<a:CreationDate>1542179013</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>商品限时购与商品关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1026\">\n<a:ObjectID>CAE82E75-D12D-4AD6-9A17-68423BF7E4E0</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1542179066</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542349350</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>编号</a:Comment>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1027\">\n<a:ObjectID>CEAF14F7-5D5C-4FF9-B86B-CF943BE9EAC9</a:ObjectID>\n<a:Name>flash_promotion_id</a:Name>\n<a:Code>flash_promotion_id</a:Code>\n<a:CreationDate>1542179374</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179387</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1028\">\n<a:ObjectID>23D89E50-A620-478D-A305-369556A666D9</a:ObjectID>\n<a:Name>flash_promotion_session_id</a:Name>\n<a:Code>flash_promotion_session_id</a:Code>\n<a:CreationDate>1542179394</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179410</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>编号</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1029\">\n<a:ObjectID>016A43A1-CCDE-4553-A432-5F9195B3E630</a:ObjectID>\n<a:Name>product_id</a:Name>\n<a:Code>product_id</a:Code>\n<a:CreationDate>1542179440</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179497</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1030\">\n<a:ObjectID>A82B7A85-9A20-438A-B428-5252675D21E5</a:ObjectID>\n<a:Name>flash_promotion_price</a:Name>\n<a:Code>flash_promotion_price</a:Code>\n<a:CreationDate>1542179066</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179497</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限时购价格</a:Comment>\n<a:DataType>decimal(10,2)</a:DataType>\n<a:Length>10</a:Length>\n<a:Precision>2</a:Precision>\n</o:Column>\n<o:Column Id=\"o1031\">\n<a:ObjectID>608C7EEE-3CD9-452E-873C-AD3AFDF563A0</a:ObjectID>\n<a:Name>flash_promotion_count</a:Name>\n<a:Code>flash_promotion_count</a:Code>\n<a:CreationDate>1542179137</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179197</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>限时购数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o1032\">\n<a:ObjectID>8211380C-691E-47D2-B1D7-F37E83667A4C</a:ObjectID>\n<a:Name>flash_promotion_limit</a:Name>\n<a:Code>flash_promotion_limit</a:Code>\n<a:CreationDate>1542179190</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179235</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>每人限购数量</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n<o:Column Id=\"o1033\">\n<a:ObjectID>7DB32E90-BA97-46B7-B90B-655587BBE50E</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1542179226</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序</a:Comment>\n<a:DataType>int</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1034\">\n<a:ObjectID>A2983D35-1038-45A0-954A-5BC756B9FBF6</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1542179066</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179137</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1026\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1034\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o312\">\n<a:ObjectID>FA962271-FBB8-4D55-88C3-B0565D4B7E6B</a:ObjectID>\n<a:Name>ums_menu</a:Name>\n<a:Code>ums_menu</a:Code>\n<a:CreationDate>1580624574</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625146</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台菜单表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1035\">\n<a:ObjectID>6E8CAA92-2096-418D-A93D-E79F719BB927</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1580624717</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580624742</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1036\">\n<a:ObjectID>ED194F66-7660-463A-A991-C2A652AB7BDD</a:ObjectID>\n<a:Name>parent_id</a:Name>\n<a:Code>parent_id</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625129</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>父级ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1037\">\n<a:ObjectID>751DDAFB-E47E-4C1F-8861-98417ABE4003</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o1038\">\n<a:ObjectID>C19B0D2B-9E4E-4D92-B934-23A5A434367E</a:ObjectID>\n<a:Name>title</a:Name>\n<a:Code>title</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>菜单名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o1039\">\n<a:ObjectID>3991C198-C8BC-442F-B9C3-8C3E822BDF58</a:ObjectID>\n<a:Name>level</a:Name>\n<a:Code>level</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>菜单级数</a:Comment>\n<a:DataType>int(4)</a:DataType>\n<a:Length>4</a:Length>\n</o:Column>\n<o:Column Id=\"o1040\">\n<a:ObjectID>F021AF73-1074-429E-A756-7795EAC8D046</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>菜单排序</a:Comment>\n<a:DataType>int(4)</a:DataType>\n<a:Length>4</a:Length>\n</o:Column>\n<o:Column Id=\"o1041\">\n<a:ObjectID>4B420CCD-31CE-4F99-864B-2130DB065195</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>前端名称</a:Comment>\n<a:DataType>varchar(100)</a:DataType>\n<a:Length>100</a:Length>\n</o:Column>\n<o:Column Id=\"o1042\">\n<a:ObjectID>F77FA949-AD6E-4812-8523-B4B89D603A5E</a:ObjectID>\n<a:Name>icon</a:Name>\n<a:Code>icon</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>前端图标</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1043\">\n<a:ObjectID>BA0254CB-2942-4FA6-86A0-E90E43311099</a:ObjectID>\n<a:Name>hidden</a:Name>\n<a:Code>hidden</a:Code>\n<a:CreationDate>1580624809</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625091</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>前端隐藏</a:Comment>\n<a:DataType>int(1)</a:DataType>\n<a:Length>1</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1044\">\n<a:ObjectID>5B17DE1C-3EF2-41FE-8598-919EF33A2D85</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1580624717</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580624739</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1035\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1044\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o313\">\n<a:ObjectID>21CA6441-50AA-434C-B1B2-51C4DB93E292</a:ObjectID>\n<a:Name>ums_resource</a:Name>\n<a:Code>ums_resource</a:Code>\n<a:CreationDate>1580624625</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869150</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台资源表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1045\">\n<a:ObjectID>F6CBDD55-60A9-4F16-8426-166F661106CF</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1580625178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625202</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1046\">\n<a:ObjectID>83039C2E-46A3-43E5-9F44-0C2793617519</a:ObjectID>\n<a:Name>category_id</a:Name>\n<a:Code>category_id</a:Code>\n<a:CreationDate>1580869150</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869174</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>资源分类ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1047\">\n<a:ObjectID>A9E82014-27A7-49AF-9BF1-2F10A4ABC85D</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1580625197</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625272</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o1048\">\n<a:ObjectID>623196A3-33D6-4F77-909E-66A8F05CDD19</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1580625197</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625272</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>资源名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1049\">\n<a:ObjectID>01AB5B01-DA3F-4F28-A338-A916E623F2A0</a:ObjectID>\n<a:Name>url</a:Name>\n<a:Code>url</a:Code>\n<a:CreationDate>1580625197</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625272</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>资源URL</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1050\">\n<a:ObjectID>B3CFE91C-D059-421F-8D9C-17321C7F38E7</a:ObjectID>\n<a:Name>description</a:Name>\n<a:Code>description</a:Code>\n<a:CreationDate>1580805910</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580805939</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>描述</a:Comment>\n<a:DataType>varchar(500)</a:DataType>\n<a:Length>500</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1051\">\n<a:ObjectID>10E24F7A-0390-476B-BAAE-1882C0BBD062</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1580625178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625197</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1045\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1051\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o314\">\n<a:ObjectID>B66F7908-B143-4176-80A9-B2CF44529D08</a:ObjectID>\n<a:Name>ums_role_menu_relation</a:Name>\n<a:Code>ums_role_menu_relation</a:Code>\n<a:CreationDate>1580624663</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625352</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台角色菜单关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1052\">\n<a:ObjectID>0A34DDDB-B366-496A-AED8-416DE19149F5</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1580625308</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625325</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1053\">\n<a:ObjectID>2AE22924-4904-41FA-AFB7-B0CF7FCBFC56</a:ObjectID>\n<a:Name>role_id</a:Name>\n<a:Code>role_id</a:Code>\n<a:CreationDate>1580625333</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625372</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>角色ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1054\">\n<a:ObjectID>748FA33E-A269-4189-A357-21F5885427C4</a:ObjectID>\n<a:Name>menu_id</a:Name>\n<a:Code>menu_id</a:Code>\n<a:CreationDate>1580625352</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625372</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>菜单ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1055\">\n<a:ObjectID>882EFB9B-0F11-4AE1-995B-C15CEDF564FA</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1580625308</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625322</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1052\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1055\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o315\">\n<a:ObjectID>C19BEA79-6E19-4CAD-9E31-9415E802B9DE</a:ObjectID>\n<a:Name>ums_role_resource_relation</a:Name>\n<a:Code>ums_role_resource_relation</a:Code>\n<a:CreationDate>1580624686</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625435</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>后台角色资源关系表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1056\">\n<a:ObjectID>6DF052C6-67CA-4BAA-A125-9F03DEDA9012</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1580625392</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625411</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1057\">\n<a:ObjectID>83982BFF-3E3D-4E6F-A458-FF3075464342</a:ObjectID>\n<a:Name>role_id</a:Name>\n<a:Code>role_id</a:Code>\n<a:CreationDate>1580625421</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625454</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>角色ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n<o:Column Id=\"o1058\">\n<a:ObjectID>09F02FAF-844E-44FE-93C8-7B4623939F50</a:ObjectID>\n<a:Name>resource_id</a:Name>\n<a:Code>resource_id</a:Code>\n<a:CreationDate>1580625435</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625454</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>资源ID</a:Comment>\n<a:DataType>bigint</a:DataType>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1059\">\n<a:ObjectID>AB798EFF-998F-4E0E-B0A4-A20719A6AF79</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1580625392</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625408</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1056\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1059\"/>\n</c:PrimaryKey>\n</o:Table>\n<o:Table Id=\"o316\">\n<a:ObjectID>B0508AE4-FED1-47A1-A771-889573F7520B</a:ObjectID>\n<a:Name>ums_resource_category</a:Name>\n<a:Code>ums_resource_category</a:Code>\n<a:CreationDate>1580869056</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1581324455</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>资源分类表</a:Comment>\n<a:TotalSavingCurrency/>\n<c:Columns>\n<o:Column Id=\"o1060\">\n<a:ObjectID>F885A10E-E590-447C-8D5D-BC2BCD3DB671</a:ObjectID>\n<a:Name>id</a:Name>\n<a:Code>id</a:Code>\n<a:CreationDate>1580869083</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869099</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:DataType>bigint</a:DataType>\n<a:Identity>1</a:Identity>\n<a:Column.Mandatory>1</a:Column.Mandatory>\n</o:Column>\n<o:Column Id=\"o1061\">\n<a:ObjectID>D01B83FC-5268-4206-B92F-8F9BFE927112</a:ObjectID>\n<a:Name>create_time</a:Name>\n<a:Code>create_time</a:Code>\n<a:CreationDate>1580869095</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>创建时间</a:Comment>\n<a:DataType>datetime</a:DataType>\n</o:Column>\n<o:Column Id=\"o1062\">\n<a:ObjectID>B986AFDF-AFBB-4E49-93AA-5CAD7907153A</a:ObjectID>\n<a:Name>name</a:Name>\n<a:Code>name</a:Code>\n<a:CreationDate>1580869095</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869135</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>分类名称</a:Comment>\n<a:DataType>varchar(200)</a:DataType>\n<a:Length>200</a:Length>\n</o:Column>\n<o:Column Id=\"o1063\">\n<a:ObjectID>094290D5-34B8-4EE4-B629-670A4BAA7382</a:ObjectID>\n<a:Name>sort</a:Name>\n<a:Code>sort</a:Code>\n<a:CreationDate>1581324427</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1581324455</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Comment>排序</a:Comment>\n<a:DataType>int(4)</a:DataType>\n<a:Length>4</a:Length>\n</o:Column>\n</c:Columns>\n<c:Keys>\n<o:Key Id=\"o1064\">\n<a:ObjectID>70C39D60-14D7-4260-94E9-1F6025702EC5</a:ObjectID>\n<a:Name>Key_1</a:Name>\n<a:Code>Key_1</a:Code>\n<a:CreationDate>1580869083</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869095</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Key.Columns>\n<o:Column Ref=\"o1060\"/>\n</c:Key.Columns>\n</o:Key>\n</c:Keys>\n<c:PrimaryKey>\n<o:Key Ref=\"o1064\"/>\n</c:PrimaryKey>\n</o:Table>\n</c:Tables>\n<c:References>\n<o:Reference Id=\"o8\">\n<a:ObjectID>F8B50533-7F4C-4BE7-984B-4FC6A1156DC9</a:ObjectID>\n<a:Name>Reference_1</a:Name>\n<a:Code>Reference_1</a:Code>\n<a:CreationDate>1521706257</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o235\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o234\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o375\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1065\">\n<a:ObjectID>5236F74C-2761-4AC4-834A-BECC5D040393</a:ObjectID>\n<a:CreationDate>1521706257</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521706257</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o364\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o318\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o11\">\n<a:ObjectID>6B097280-D411-432F-9CA0-7FC52C306D0F</a:ObjectID>\n<a:Name>Reference_2</a:Name>\n<a:Code>Reference_2</a:Code>\n<a:CreationDate>1521710488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710488</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o236\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1066\">\n<a:ObjectID>6EE78803-E5F6-4090-B810-7BBF7814F60C</a:ObjectID>\n<a:CreationDate>1521710488</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521710488</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o377\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o14\">\n<a:ObjectID>3447013F-AE0F-4B19-9E82-DEC9658CF62C</a:ObjectID>\n<a:Name>Reference_3</a:Name>\n<a:Code>Reference_3</a:Code>\n<a:CreationDate>1521770349</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770349</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o237\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1067\">\n<a:ObjectID>84F722B4-DF57-4BC3-88FD-B249B70D21A7</a:ObjectID>\n<a:CreationDate>1521770349</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521770349</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o389\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o17\">\n<a:ObjectID>869F562E-B664-4E18-BB85-9F518C39050E</a:ObjectID>\n<a:Name>Reference_4</a:Name>\n<a:Code>Reference_4</a:Code>\n<a:CreationDate>1521771362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o238\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1068\">\n<a:ObjectID>0309D83E-51C3-4973-A636-9FEB27F4A6B6</a:ObjectID>\n<a:CreationDate>1521771362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521771362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o396\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o20\">\n<a:ObjectID>43D29FF3-315F-4770-9486-03345B3B66AA</a:ObjectID>\n<a:Name>Reference_5</a:Name>\n<a:Code>Reference_5</a:Code>\n<a:CreationDate>1521773101</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773101</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o239\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o234\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o420\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1069\">\n<a:ObjectID>7B820697-9FFD-4446-B6DF-F03F4F02FFE3</a:ObjectID>\n<a:CreationDate>1521773101</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521773101</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o408\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o319\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o23\">\n<a:ObjectID>2FA754C9-59E9-4BC2-9FBD-D1F329A2D40D</a:ObjectID>\n<a:Name>Reference_6</a:Name>\n<a:Code>Reference_6</a:Code>\n<a:CreationDate>1521783613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o240\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o234\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o429\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1070\">\n<a:ObjectID>13DDC5F6-372D-47FF-AAFA-8AEF349E7FA8</a:ObjectID>\n<a:CreationDate>1521783613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521783613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o421\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o320\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o26\">\n<a:ObjectID>FFC57989-A7DF-43DC-8E90-0875CEC112DD</a:ObjectID>\n<a:Name>Reference_9</a:Name>\n<a:Code>Reference_9</a:Code>\n<a:CreationDate>1521791466</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791466</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o241\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1071\">\n<a:ObjectID>31ADEBC6-F176-41A7-8EAA-9AC3B8A253AB</a:ObjectID>\n<a:CreationDate>1521791466</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521791466</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o431\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o29\">\n<a:ObjectID>77C4D61A-9FF5-4B2C-8C48-A2F7DB88ACA3</a:ObjectID>\n<a:Name>Reference_10</a:Name>\n<a:Code>Reference_10</a:Code>\n<a:CreationDate>1521792428</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792428</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o242\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1072\">\n<a:ObjectID>F2B169B3-7AC8-4FB1-822D-E1C91DFF6FFD</a:ObjectID>\n<a:CreationDate>1521792428</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792428</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o437\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o32\">\n<a:ObjectID>617A3E38-261B-48D9-B387-A4C69D4A702C</a:ObjectID>\n<a:Name>Reference_11</a:Name>\n<a:Code>Reference_11</a:Code>\n<a:CreationDate>1521792909</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792909</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o243\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1073\">\n<a:ObjectID>00AD7B43-F4CA-45D7-86BB-5756B4ED55BD</a:ObjectID>\n<a:CreationDate>1521792909</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521792909</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o443\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o36\">\n<a:ObjectID>085DA277-2667-4A8D-8E4D-2C4E6787357E</a:ObjectID>\n<a:Name>Reference_12</a:Name>\n<a:Code>Reference_12</a:Code>\n<a:CreationDate>1522045168</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045168</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o244\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o245\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o451\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1074\">\n<a:ObjectID>286E06C6-6FAD-4323-82D9-6FB781153C46</a:ObjectID>\n<a:CreationDate>1522045168</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522045168</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o447\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o453\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o38\">\n<a:ObjectID>DC5FEA31-5D2A-491B-A87A-BC45A53A0130</a:ObjectID>\n<a:Name>Reference_13</a:Name>\n<a:Code>Reference_13</a:Code>\n<a:CreationDate>1522046100</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046100</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o244\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o234\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o451\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1075\">\n<a:ObjectID>A2161167-D453-4661-9BF0-71D8908A6C42</a:ObjectID>\n<a:CreationDate>1522046100</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046100</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o447\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o321\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o41\">\n<a:ObjectID>09737ED1-34A7-4624-9B3D-F971732EC3C5</a:ObjectID>\n<a:Name>Reference_14</a:Name>\n<a:Code>Reference_14</a:Code>\n<a:CreationDate>1522046451</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046451</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o246\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1076\">\n<a:ObjectID>E25FF0B6-41E2-4801-8FE9-337EF9B991F7</a:ObjectID>\n<a:CreationDate>1522046451</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046451</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o466\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o43\">\n<a:ObjectID>1299128F-FAC5-44E2-86E2-29EF4E7A1638</a:ObjectID>\n<a:Name>Reference_15</a:Name>\n<a:Code>Reference_15</a:Code>\n<a:CreationDate>1522046456</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046456</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o245\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o246\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o464\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1077\">\n<a:ObjectID>1E64FE44-48BA-49B0-BDE1-66DA22B89EFF</a:ObjectID>\n<a:CreationDate>1522046456</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522046456</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o452\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o467\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o47\">\n<a:ObjectID>8C8A4C2F-CB98-46EE-A602-698B99A13C3C</a:ObjectID>\n<a:Name>Reference_18</a:Name>\n<a:Code>Reference_18</a:Code>\n<a:CreationDate>1522112691</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112691</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o248\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o249\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o489\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1078\">\n<a:ObjectID>DEE74089-6A6D-4D7E-BADD-76E4D08EFA2D</a:ObjectID>\n<a:CreationDate>1522112691</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112691</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o483\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o491\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o49\">\n<a:ObjectID>0326D95A-002E-4506-89DF-DC650D6B10F6</a:ObjectID>\n<a:Name>Reference_19</a:Name>\n<a:Code>Reference_19</a:Code>\n<a:CreationDate>1522112694</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112694</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o249\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1079\">\n<a:ObjectID>5D44A212-AD69-4958-BAAF-9E16ED63FC67</a:ObjectID>\n<a:CreationDate>1522112694</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522112694</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o492\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o51\">\n<a:ObjectID>62935DB0-A2C4-4D4E-B949-5DE296753EC6</a:ObjectID>\n<a:Name>Reference_20</a:Name>\n<a:Code>Reference_20</a:Code>\n<a:CreationDate>1522114406</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522114406</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o239\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o239\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o420\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1080\">\n<a:ObjectID>ECA8F78C-7015-44EB-9CD2-F72634D7F4BD</a:ObjectID>\n<a:CreationDate>1522114406</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522114406</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o408\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o409\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o54\">\n<a:ObjectID>0054659D-2257-491E-BEFD-4E934EF1326A</a:ObjectID>\n<a:Name>Reference_21</a:Name>\n<a:Code>Reference_21</a:Code>\n<a:CreationDate>1522115961</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115961</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o239\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o250\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o420\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1081\">\n<a:ObjectID>32BD37D4-4436-4069-9BD1-90CF0B1867E0</a:ObjectID>\n<a:CreationDate>1522115961</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115961</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o408\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o495\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o56\">\n<a:ObjectID>7FB8F1DE-EB1D-4B05-BC25-7F9A9C34DAC1</a:ObjectID>\n<a:Name>Reference_22</a:Name>\n<a:Code>Reference_22</a:Code>\n<a:CreationDate>1522115983</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115983</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o245\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o250\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o464\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1082\">\n<a:ObjectID>1A23B754-71EE-4496-B70F-0A3268C6F651</a:ObjectID>\n<a:CreationDate>1522115983</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522115983</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o452\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o496\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o59\">\n<a:ObjectID>C8AEC8AC-5477-406C-9A47-85CAC6E9156F</a:ObjectID>\n<a:Name>Reference_23</a:Name>\n<a:Code>Reference_23</a:Code>\n<a:CreationDate>1522118676</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118676</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o251\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1083\">\n<a:ObjectID>1C883E67-84F9-4CD0-A4F5-D7CA2BE15DC5</a:ObjectID>\n<a:CreationDate>1522118676</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522118676</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o499\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o62\">\n<a:ObjectID>6877F189-A5DC-4EC1-A805-D6DF43A175A8</a:ObjectID>\n<a:Name>Reference_24</a:Name>\n<a:Code>Reference_24</a:Code>\n<a:CreationDate>1522119056</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119056</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o251\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o252\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o513\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1084\">\n<a:ObjectID>1CE2FCCB-DF37-4C88-99DD-FA8C3EE7A09C</a:ObjectID>\n<a:CreationDate>1522119056</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522119056</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o498\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o515\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o66\">\n<a:ObjectID>9F3EABD4-B8AD-4807-800A-EBB309C50C27</a:ObjectID>\n<a:Name>Reference_25</a:Name>\n<a:Code>Reference_25</a:Code>\n<a:CreationDate>1522120295</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120295</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o253\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o254\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o528\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1085\">\n<a:ObjectID>7D8DC4F2-D0A4-4CE9-B03E-44AE166786C0</a:ObjectID>\n<a:CreationDate>1522120295</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522120295</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o522\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o530\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o70\">\n<a:ObjectID>4D22CD29-D84A-4780-A3CD-E8951913B139</a:ObjectID>\n<a:Name>Reference_26</a:Name>\n<a:Code>Reference_26</a:Code>\n<a:CreationDate>1522138613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o255\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o256\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o549\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1086\">\n<a:ObjectID>7CB99F50-753B-4347-B896-1F18D8FE6691</a:ObjectID>\n<a:CreationDate>1522138613</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138613</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o533\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o551\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o72\">\n<a:ObjectID>FDD92660-6932-4BCE-8F83-2E7A223145EB</a:ObjectID>\n<a:Name>Reference_27</a:Name>\n<a:Code>Reference_27</a:Code>\n<a:CreationDate>1522138618</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138618</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o256\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1087\">\n<a:ObjectID>EC89DA87-A575-4940-973B-665854268261</a:ObjectID>\n<a:CreationDate>1522138618</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138618</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o552\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o75\">\n<a:ObjectID>BF5F391A-A0AC-4940-B493-B42F4DEBFE59</a:ObjectID>\n<a:Name>Reference_28</a:Name>\n<a:Code>Reference_28</a:Code>\n<a:CreationDate>1522138705</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138705</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o257\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o255\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o560\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1088\">\n<a:ObjectID>8E1A22EC-2246-48C4-A499-3D8A4D264C09</a:ObjectID>\n<a:CreationDate>1522138705</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522138705</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o554\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o534\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o79\">\n<a:ObjectID>E84C4311-62F4-47BD-A024-62877B7D0ED5</a:ObjectID>\n<a:Name>Reference_30</a:Name>\n<a:Code>Reference_30</a:Code>\n<a:CreationDate>1522141157</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141157</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o247\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o259\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o482\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1089\">\n<a:ObjectID>2EA7348D-C8E8-4FCC-8215-01FE3AD58DFB</a:ObjectID>\n<a:CreationDate>1522141157</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141157</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o470\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o571\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o82\">\n<a:ObjectID>C0A04A49-9B21-4470-8507-D61981F41EF2</a:ObjectID>\n<a:Name>Reference_29</a:Name>\n<a:Code>Reference_29</a:Code>\n<a:CreationDate>1522141232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141232</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o255\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o258\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o549\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1090\">\n<a:ObjectID>8B858AAC-D00A-42FE-BEDC-73536876C045</a:ObjectID>\n<a:CreationDate>1522141232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141232</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o533\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o562\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o85\">\n<a:ObjectID>E8C1A0E5-7AB4-48DD-96D0-BFC0F9081B35</a:ObjectID>\n<a:Name>Reference_31</a:Name>\n<a:Code>Reference_31</a:Code>\n<a:CreationDate>1522141316</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141317</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o260\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o247\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o583\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1091\">\n<a:ObjectID>FC3A22FE-FD24-4DF0-BAC8-22659D3C8987</a:ObjectID>\n<a:CreationDate>1522141317</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522141317</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o577\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o471\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o89\">\n<a:ObjectID>99192031-40EE-41ED-A43C-B27CC1039A2B</a:ObjectID>\n<a:Name>Reference_32</a:Name>\n<a:Code>Reference_32</a:Code>\n<a:CreationDate>1522142006</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142006</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o262\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o261\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o599\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1092\">\n<a:ObjectID>14DB9C0C-F9F0-4D4A-B44E-592028F6E75A</a:ObjectID>\n<a:CreationDate>1522142006</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522142006</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o593\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o585\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o93\">\n<a:ObjectID>C562CD4F-BAD5-44CE-B507-727743B42808</a:ObjectID>\n<a:Name>Reference_33</a:Name>\n<a:Code>Reference_33</a:Code>\n<a:CreationDate>1522215975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215975</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o265\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o266\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o626\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1093\">\n<a:ObjectID>15304E84-71AA-40B1-84CB-904384B34B25</a:ObjectID>\n<a:CreationDate>1522215975</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522215975</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o608\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o628\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o95\">\n<a:ObjectID>049BB766-61EB-47C0-B95D-D25AFDB59734</a:ObjectID>\n<a:Name>Reference_34</a:Name>\n<a:Code>Reference_34</a:Code>\n<a:CreationDate>1522216015</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216015</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o266\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1094\">\n<a:ObjectID>457237AD-87EB-4A09-BA9F-36198B10D2FF</a:ObjectID>\n<a:CreationDate>1522216015</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216015</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o629\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o98\">\n<a:ObjectID>5D590043-1882-4A9B-8FC1-D9DC8580E02C</a:ObjectID>\n<a:Name>Reference_35</a:Name>\n<a:Code>Reference_35</a:Code>\n<a:CreationDate>1522216251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216251</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o265\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o267\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o626\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1095\">\n<a:ObjectID>3C2E5F27-A07C-4D88-9357-089D36122A25</a:ObjectID>\n<a:CreationDate>1522216251</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216251</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o608\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o634\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o100\">\n<a:ObjectID>B5428618-7278-427D-A8BC-5CCB75A2547F</a:ObjectID>\n<a:Name>Reference_36</a:Name>\n<a:Code>Reference_36</a:Code>\n<a:CreationDate>1522216380</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216380</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o239\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o267\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o420\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1096\">\n<a:ObjectID>A8FA4798-0F1E-4D96-A254-77F5D71F6BBD</a:ObjectID>\n<a:CreationDate>1522216380</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522216380</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o408\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o635\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o103\">\n<a:ObjectID>849E47A7-94DA-40C1-879A-F1C6E0C5CD19</a:ObjectID>\n<a:Name>Reference_37</a:Name>\n<a:Code>Reference_37</a:Code>\n<a:CreationDate>1522220508</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220508</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o265\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o268\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o626\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1097\">\n<a:ObjectID>5026171A-4B51-4B83-A113-4051F1E4F415</a:ObjectID>\n<a:CreationDate>1522220508</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220508</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o608\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o640\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o106\">\n<a:ObjectID>C3B9AA1D-7C7C-4CAD-885D-1542021D30E7</a:ObjectID>\n<a:Name>Reference_38</a:Name>\n<a:Code>Reference_38</a:Code>\n<a:CreationDate>1522220546</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220546</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o268\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1098\">\n<a:ObjectID>462222B9-A203-4D60-A353-A168356E3140</a:ObjectID>\n<a:CreationDate>1522220546</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522220546</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o641\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o109\">\n<a:ObjectID>AF0E4AD5-A4B3-4095-8D2E-FF466A7FFBDC</a:ObjectID>\n<a:Name>Reference_39</a:Name>\n<a:Code>Reference_39</a:Code>\n<a:CreationDate>1522224364</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224364</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o235\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o270\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o375\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1099\">\n<a:ObjectID>BD28F911-4F98-4C9D-9171-E99F60476E2A</a:ObjectID>\n<a:CreationDate>1522224364</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522224364</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o364\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o672\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o112\">\n<a:ObjectID>2E5F5354-7D3D-4CBE-9D6E-F7BF6EE3BB1E</a:ObjectID>\n<a:Name>Reference_40</a:Name>\n<a:Code>Reference_40</a:Code>\n<a:CreationDate>1522225874</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225874</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o271\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1100\">\n<a:ObjectID>8D1675C9-7749-4831-A5E6-ACD971AACF57</a:ObjectID>\n<a:CreationDate>1522225874</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522225874</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o678\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o115\">\n<a:ObjectID>C7DCAECF-68BD-47D9-8C52-36A6B50C90C6</a:ObjectID>\n<a:Name>Reference_41</a:Name>\n<a:Code>Reference_41</a:Code>\n<a:CreationDate>1522226077</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226077</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o272\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1101\">\n<a:ObjectID>B30347B3-4138-4EA8-A0F5-EF0D9A34E01F</a:ObjectID>\n<a:CreationDate>1522226077</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226077</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o684\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o118\">\n<a:ObjectID>C11B5AAF-045B-4A2E-930C-71B38674EDCB</a:ObjectID>\n<a:Name>Reference_42</a:Name>\n<a:Code>Reference_42</a:Code>\n<a:CreationDate>1522226272</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226272</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o255\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o273\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o549\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1102\">\n<a:ObjectID>7D29D8DF-7EF1-4F43-928F-DDAC96A23858</a:ObjectID>\n<a:CreationDate>1522226272</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522226272</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o533\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o690\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o121\">\n<a:ObjectID>B7417B7A-09B8-43CE-A17E-01ACFEC78BF6</a:ObjectID>\n<a:Name>Reference_44</a:Name>\n<a:Code>Reference_44</a:Code>\n<a:CreationDate>1522303390</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303390</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o277\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1103\">\n<a:ObjectID>942BBD31-85B8-46EA-893C-CB327C86F5BA</a:ObjectID>\n<a:CreationDate>1522303390</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303390</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o716\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o123\">\n<a:ObjectID>EF622572-2304-4875-8869-C1821D4BAA12</a:ObjectID>\n<a:Name>Reference_45</a:Name>\n<a:Code>Reference_45</a:Code>\n<a:CreationDate>1522303410</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303410</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o277\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1104\">\n<a:ObjectID>1E5174EE-C0B0-4144-98D5-679634DCCAEE</a:ObjectID>\n<a:CreationDate>1522303410</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522303410</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o717\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o127\">\n<a:ObjectID>F7E27FB8-7156-4A4D-BC61-18CCE2DD98AA</a:ObjectID>\n<a:Name>Reference_46</a:Name>\n<a:Code>Reference_46</a:Code>\n<a:CreationDate>1522304178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304178</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o278\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o279\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o733\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1105\">\n<a:ObjectID>BD55704C-3F36-44CC-90E1-143F097FA894</a:ObjectID>\n<a:CreationDate>1522304178</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522304178</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o723\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o735\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o130\">\n<a:ObjectID>4D49B5C2-72FC-4407-9705-D42C0F203767</a:ObjectID>\n<a:Name>Reference_47</a:Name>\n<a:Code>Reference_47</a:Code>\n<a:CreationDate>1522386868</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522386868</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o280\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o269\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o754\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1106\">\n<a:ObjectID>17EC5CAA-580C-493D-9C2D-2EA3E9732A78</a:ObjectID>\n<a:CreationDate>1522386868</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522386868</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o741\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o652\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o133\">\n<a:ObjectID>C55C7A99-C315-4D03-AEDF-B5F8BCBCD8A4</a:ObjectID>\n<a:Name>Reference_48</a:Name>\n<a:Code>Reference_48</a:Code>\n<a:CreationDate>1522387461</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387461</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o281\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1107\">\n<a:ObjectID>F469B162-D88C-42A3-B64C-7B2751A4FCE1</a:ObjectID>\n<a:CreationDate>1522387461</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387461</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o756\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o135\">\n<a:ObjectID>CC1956B2-80D6-420D-9596-2ADE9F622A89</a:ObjectID>\n<a:Name>Reference_49</a:Name>\n<a:Code>Reference_49</a:Code>\n<a:CreationDate>1522387526</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387526</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o239\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o281\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o420\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1108\">\n<a:ObjectID>1D18BF30-4375-4618-A1C9-6DC998F248E4</a:ObjectID>\n<a:CreationDate>1522387526</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522387526</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o408\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o757\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o138\">\n<a:ObjectID>74DB905B-E0F5-48AE-81CF-EF09159E2FF7</a:ObjectID>\n<a:Name>Reference_50</a:Name>\n<a:Code>Reference_50</a:Code>\n<a:CreationDate>1522389232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389232</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o282\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1109\">\n<a:ObjectID>183F9969-663E-4842-ABC2-C938F02C05E4</a:ObjectID>\n<a:CreationDate>1522389232</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522389232</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o760\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o141\">\n<a:ObjectID>7E2E910E-DFB4-4EB6-901A-B90812F54A87</a:ObjectID>\n<a:Name>Reference_51</a:Name>\n<a:Code>Reference_51</a:Code>\n<a:CreationDate>1522390434</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390434</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o283\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1110\">\n<a:ObjectID>AC355266-228D-4333-8E95-D13F2D176DB4</a:ObjectID>\n<a:CreationDate>1522390434</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390434</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o777\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o144\">\n<a:ObjectID>1BDEC7E5-B286-4BE4-8433-B6BD7A1C975A</a:ObjectID>\n<a:Name>Reference_52</a:Name>\n<a:Code>Reference_52</a:Code>\n<a:CreationDate>1522390644</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390644</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o284\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1111\">\n<a:ObjectID>3A358827-AE90-4AC6-80E6-CA340D69F7F2</a:ObjectID>\n<a:CreationDate>1522390644</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522390644</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o788\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o147\">\n<a:ObjectID>AD855909-C83E-4375-8C80-7C2D7AC7075C</a:ObjectID>\n<a:Name>Reference_53</a:Name>\n<a:Code>Reference_53</a:Code>\n<a:CreationDate>1522391366</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391366</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o286\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1112\">\n<a:ObjectID>B0F12E0B-F2E6-40A6-AD2B-9FE858AAA8BE</a:ObjectID>\n<a:CreationDate>1522391366</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391366</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o801\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o150\">\n<a:ObjectID>E0AA6F91-B6EB-44AB-A3FB-B63A84A5DF06</a:ObjectID>\n<a:Name>Reference_54</a:Name>\n<a:Code>Reference_54</a:Code>\n<a:CreationDate>1522391379</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391380</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o285\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o286\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o799\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1113\">\n<a:ObjectID>F46C48A9-78A1-4C9A-BD75-DE0ED230A76D</a:ObjectID>\n<a:CreationDate>1522391379</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522391380</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o795\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o802\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o153\">\n<a:ObjectID>BDACC991-AA2F-4A86-A7A7-BE7FD95D68F2</a:ObjectID>\n<a:Name>Reference_55</a:Name>\n<a:Code>Reference_55</a:Code>\n<a:CreationDate>1522396648</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396648</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o287\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1114\">\n<a:ObjectID>711AD4D5-212E-4E3B-BB26-DB79C4BE4E52</a:ObjectID>\n<a:CreationDate>1522396648</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396648</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o805\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o156\">\n<a:ObjectID>953F316F-943C-409D-87E2-A580F91F41DF</a:ObjectID>\n<a:Name>Reference_56</a:Name>\n<a:Code>Reference_56</a:Code>\n<a:CreationDate>1522396864</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396864</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o288\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1115\">\n<a:ObjectID>094B7BE5-D0AB-4987-8D74-508A27D3117F</a:ObjectID>\n<a:CreationDate>1522396864</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522396864</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o814\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o159\">\n<a:ObjectID>EBD78B02-B47D-4132-A641-E9C384074F6F</a:ObjectID>\n<a:Name>Reference_57</a:Name>\n<a:Code>Reference_57</a:Code>\n<a:CreationDate>1522659209</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659209</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o295\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1116\">\n<a:ObjectID>8C15D427-62A0-40E7-9B02-84063CC6EB94</a:ObjectID>\n<a:CreationDate>1522659209</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522659209</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o843\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o162\">\n<a:ObjectID>8A0714E1-3D0A-4983-AFD9-0AF0F17B0D22</a:ObjectID>\n<a:Name>Reference_58</a:Name>\n<a:Code>Reference_58</a:Code>\n<a:CreationDate>1522660753</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660753</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o295\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o296\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o886\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1117\">\n<a:ObjectID>043B7E7F-6688-42FD-BECE-3A4CE5A560F2</a:ObjectID>\n<a:CreationDate>1522660753</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660753</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o842\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o888\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o164\">\n<a:ObjectID>3BFC406B-AABB-48D0-BA77-69DB4EE17B0D</a:ObjectID>\n<a:Name>Reference_59</a:Name>\n<a:Code>Reference_59</a:Code>\n<a:CreationDate>1522660820</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660820</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o296\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1118\">\n<a:ObjectID>3592DAA0-2C95-48CF-9359-C157A0E27DC3</a:ObjectID>\n<a:CreationDate>1522660820</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522660820</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o890\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o166\">\n<a:ObjectID>E36F0963-FA3D-49E2-99B0-1818EF60077C</a:ObjectID>\n<a:Name>Reference_60</a:Name>\n<a:Code>Reference_60</a:Code>\n<a:CreationDate>1522721755</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721755</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o280\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o241\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o754\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1119\">\n<a:ObjectID>BEE8D279-8DBF-40B3-899D-5B07570D0AD9</a:ObjectID>\n<a:CreationDate>1522721755</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522721755</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o741\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o432\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o168\">\n<a:ObjectID>31949834-0CD4-4F67-A0A6-FA63B62C6B04</a:ObjectID>\n<a:Name>Reference_61</a:Name>\n<a:Code>Reference_61</a:Code>\n<a:CreationDate>1522724329</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724329</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o265\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o295\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o626\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1120\">\n<a:ObjectID>F5D0566A-35C3-4451-9C7D-782BC776C53E</a:ObjectID>\n<a:CreationDate>1522724329</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522724329</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o608\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o844\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o171\">\n<a:ObjectID>AD47F573-29CC-4DB6-AFE1-BA511E55D40F</a:ObjectID>\n<a:Name>Reference_62</a:Name>\n<a:Code>Reference_62</a:Code>\n<a:CreationDate>1522725331</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725331</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o295\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o297\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o886\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1121\">\n<a:ObjectID>3AA8813B-9363-406A-91DF-4AD16E9C3CCA</a:ObjectID>\n<a:CreationDate>1522725331</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522725331</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o842\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o910\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o174\">\n<a:ObjectID>16852476-7A1F-4AF5-81A5-D4C089766A13</a:ObjectID>\n<a:Name>Reference_63</a:Name>\n<a:Code>Reference_63</a:Code>\n<a:CreationDate>1522733188</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733188</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o295\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o300\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o886\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1122\">\n<a:ObjectID>DD05624A-7E08-4273-9758-C5EDA1A03134</a:ObjectID>\n<a:CreationDate>1522733188</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522733188</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o842\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o924\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o177\">\n<a:ObjectID>5BC95764-C216-4A1C-8602-16F14615F674</a:ObjectID>\n<a:Name>Reference_64</a:Name>\n<a:Code>Reference_64</a:Code>\n<a:CreationDate>1522745521</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745521</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o301\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o300\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o961\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1123\">\n<a:ObjectID>EBF8A4B9-24B3-4D18-82FD-D12F847328C6</a:ObjectID>\n<a:CreationDate>1522745521</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1522745521</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o951\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o925\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o180\">\n<a:ObjectID>98A2D313-20A0-4AD2-B2BE-F85A6867D79D</a:ObjectID>\n<a:Name>Reference_65</a:Name>\n<a:Code>Reference_65</a:Code>\n<a:CreationDate>1533109967</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533109995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o304\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1124\">\n<a:ObjectID>BA7665F0-D173-45C6-AFE8-3C93CF330D79</a:ObjectID>\n<a:CreationDate>1533109970</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533109995</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o969\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o182\">\n<a:ObjectID>814C49F7-4720-47CE-A38D-88721D01BA84</a:ObjectID>\n<a:Name>Reference_66</a:Name>\n<a:Code>Reference_66</a:Code>\n<a:CreationDate>1533115827</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115846</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o236\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o304\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o387\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1125\">\n<a:ObjectID>521484A5-B9C4-477D-8D45-97F7B15D7854</a:ObjectID>\n<a:CreationDate>1533115829</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115846</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o376\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o970\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o184\">\n<a:ObjectID>3B60C0B9-CC92-447D-838C-B9BA857608AE</a:ObjectID>\n<a:Name>Reference_67</a:Name>\n<a:Code>Reference_67</a:Code>\n<a:CreationDate>1533115888</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o269\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o304\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o670\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1126\">\n<a:ObjectID>FCADB7B3-0636-44C7-8AB4-067148971867</a:ObjectID>\n<a:CreationDate>1533115896</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1533115911</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o651\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o971\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o187\">\n<a:ObjectID>46FBCD47-38FC-487C-B390-7FE833196F94</a:ObjectID>\n<a:Name>Reference_68</a:Name>\n<a:Code>Reference_68</a:Code>\n<a:CreationDate>1538202362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o306\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o306\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1005\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1127\">\n<a:ObjectID>D2F8A3AD-54BE-4AE4-A988-128511B938A4</a:ObjectID>\n<a:CreationDate>1538202362</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202362</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o995\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o996\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o190\">\n<a:ObjectID>C76888E3-16C6-4761-8136-511A526B6512</a:ObjectID>\n<a:Name>Reference_69</a:Name>\n<a:Code>Reference_69</a:Code>\n<a:CreationDate>1538202471</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202471</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o278\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o307\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o733\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1128\">\n<a:ObjectID>993B6DB6-8CE7-4A56-9273-AA66FB16F4A0</a:ObjectID>\n<a:CreationDate>1538202471</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202471</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o723\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1007\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o193\">\n<a:ObjectID>7D3662ED-D661-4086-BA3C-C9927BAEA31B</a:ObjectID>\n<a:Name>Reference_70</a:Name>\n<a:Code>Reference_70</a:Code>\n<a:CreationDate>1538202492</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202492</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o305\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o307\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o994\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1129\">\n<a:ObjectID>E47EA734-EA83-4289-8295-068CBD82C878</a:ObjectID>\n<a:CreationDate>1538202492</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202492</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o987\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1008\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o196\">\n<a:ObjectID>C27AC470-B6D5-4DEB-8985-4436775FF6EC</a:ObjectID>\n<a:Name>Reference_71</a:Name>\n<a:Code>Reference_71</a:Code>\n<a:CreationDate>1538202586</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o305\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o308\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o994\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1130\">\n<a:ObjectID>C3D164FC-7971-4ECF-B2F0-6B384C75DB8A</a:ObjectID>\n<a:CreationDate>1538202586</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o987\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1011\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o198\">\n<a:ObjectID>6C1E998D-3BE1-473B-A219-C12E87F599FC</a:ObjectID>\n<a:Name>Reference_72</a:Name>\n<a:Code>Reference_72</a:Code>\n<a:CreationDate>1538202588</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202588</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o306\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o308\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1005\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1131\">\n<a:ObjectID>5D69B943-755C-4D8A-90CC-525B02C3D50C</a:ObjectID>\n<a:CreationDate>1538202588</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202588</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o995\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1012\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o201\">\n<a:ObjectID>3A33B8D1-62CE-4DF3-9EAE-8F419CAA8AA8</a:ObjectID>\n<a:Name>Reference_73</a:Name>\n<a:Code>Reference_73</a:Code>\n<a:CreationDate>1538202927</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202927</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o278\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o309\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o733\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1132\">\n<a:ObjectID>C4F1E261-E196-4270-8809-851FB823B079</a:ObjectID>\n<a:CreationDate>1538202927</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202927</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o723\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1015\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o203\">\n<a:ObjectID>409CA456-66FD-4551-9709-9B58BAD20CBC</a:ObjectID>\n<a:Name>Reference_74</a:Name>\n<a:Code>Reference_74</a:Code>\n<a:CreationDate>1538202929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202929</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o306\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o309\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1005\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1133\">\n<a:ObjectID>9040B9D2-76A5-43F5-8889-3E21C379E806</a:ObjectID>\n<a:CreationDate>1538202929</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1538202929</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o995\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1016\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o205\">\n<a:ObjectID>D8C09BAD-5666-4751-B992-C48035FB286A</a:ObjectID>\n<a:Name>Reference_75</a:Name>\n<a:Code>Reference_75</a:Code>\n<a:CreationDate>1539746524</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746524</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o300\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1134\">\n<a:ObjectID>6D41CF48-9B5F-47F1-8391-F0BC65998A26</a:ObjectID>\n<a:CreationDate>1539746524</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1539746524</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o926\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o207\">\n<a:ObjectID>E104E0D2-AE63-4FC2-8695-C31D32B33047</a:ObjectID>\n<a:Name>Reference_76</a:Name>\n<a:Code>Reference_76</a:Code>\n<a:CreationDate>1541490540</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o295\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o268\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o886\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1135\">\n<a:ObjectID>933A26A1-5D64-4E1E-A05E-F70A9A4571A1</a:ObjectID>\n<a:CreationDate>1541490552</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1541490586</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o842\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o642\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o211\">\n<a:ObjectID>490FFEDD-0E16-49CD-83FA-07FE29AB81E1</a:ObjectID>\n<a:Name>Reference_77</a:Name>\n<a:Code>Reference_77</a:Code>\n<a:CreationDate>1542179374</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179374</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o276\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o311\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o714\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1136\">\n<a:ObjectID>CF2A4EB2-4046-4B11-A333-E288CA091AFF</a:ObjectID>\n<a:CreationDate>1542179374</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179374</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o708\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1027\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o214\">\n<a:ObjectID>C932213B-EF31-4E19-9C72-6C17A0AFDB6D</a:ObjectID>\n<a:Name>Reference_78</a:Name>\n<a:Code>Reference_78</a:Code>\n<a:CreationDate>1542179394</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179394</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o310\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o311\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1025\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1137\">\n<a:ObjectID>F03E2D7F-4760-4BDE-AB11-2394F26DB466</a:ObjectID>\n<a:CreationDate>1542179394</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179394</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o1019\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1028\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o216\">\n<a:ObjectID>17B2ADB4-4810-47D6-B703-99E62E4AFA4D</a:ObjectID>\n<a:Name>Reference_79</a:Name>\n<a:Code>Reference_79</a:Code>\n<a:CreationDate>1542179438</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o234\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o311\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o359\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1138\">\n<a:ObjectID>389ADFA5-E125-4583-ADBE-95053D3F0C72</a:ObjectID>\n<a:CreationDate>1542179440</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1542179474</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o317\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1029\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o219\">\n<a:ObjectID>4E8DE47E-16C3-4F6B-B284-06B30C3CB07D</a:ObjectID>\n<a:Name>Reference_80</a:Name>\n<a:Code>Reference_80</a:Code>\n<a:CreationDate>1580625109</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625129</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o312\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o312\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1044\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1139\">\n<a:ObjectID>9085DD5C-8F83-493E-9CFE-628DA54C8B96</a:ObjectID>\n<a:CreationDate>1580625109</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625129</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o1035\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1036\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o222\">\n<a:ObjectID>46BCEBF1-E21B-4EB3-A8DE-A5A2BAFFFBB6</a:ObjectID>\n<a:Name>Reference_81</a:Name>\n<a:Code>Reference_81</a:Code>\n<a:CreationDate>1580625333</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625333</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o305\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o314\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o994\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1140\">\n<a:ObjectID>A48E310F-1E8C-4B06-AF1B-4D070613C9E4</a:ObjectID>\n<a:CreationDate>1580625333</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625333</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o987\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1053\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o224\">\n<a:ObjectID>D4BF3C8D-A91A-4E49-82E9-CB738227C8C8</a:ObjectID>\n<a:Name>Reference_82</a:Name>\n<a:Code>Reference_82</a:Code>\n<a:CreationDate>1580625352</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625352</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o312\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o314\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1044\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1141\">\n<a:ObjectID>BF0FFD9A-62E7-47E9-84FB-9F2E08021926</a:ObjectID>\n<a:CreationDate>1580625352</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625352</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o1035\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1054\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o227\">\n<a:ObjectID>2E6DA228-0727-43B1-8814-D25233A0BCC6</a:ObjectID>\n<a:Name>Reference_83</a:Name>\n<a:Code>Reference_83</a:Code>\n<a:CreationDate>1580625421</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625421</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o305\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o315\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o994\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1142\">\n<a:ObjectID>6F492BCB-5604-4D5C-9DFE-B622A7D5FC91</a:ObjectID>\n<a:CreationDate>1580625421</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625421</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o987\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1057\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o230\">\n<a:ObjectID>CB1FAF78-7706-4745-8F2F-A9B2BDCFA7D2</a:ObjectID>\n<a:Name>Reference_84</a:Name>\n<a:Code>Reference_84</a:Code>\n<a:CreationDate>1580625435</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625435</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o313\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o315\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1051\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1143\">\n<a:ObjectID>B77FA1D0-9DDC-4FD9-B5FA-24CF8FE39B40</a:ObjectID>\n<a:CreationDate>1580625435</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580625435</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o1045\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1058\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n<o:Reference Id=\"o233\">\n<a:ObjectID>F00FBAAE-944C-4129-B221-009502135923</a:ObjectID>\n<a:Name>Reference_85</a:Name>\n<a:Code>Reference_85</a:Code>\n<a:CreationDate>1580869150</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869150</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:Cardinality>0..*</a:Cardinality>\n<a:UpdateConstraint>1</a:UpdateConstraint>\n<a:DeleteConstraint>1</a:DeleteConstraint>\n<c:ParentTable>\n<o:Table Ref=\"o316\"/>\n</c:ParentTable>\n<c:ChildTable>\n<o:Table Ref=\"o313\"/>\n</c:ChildTable>\n<c:ParentKey>\n<o:Key Ref=\"o1064\"/>\n</c:ParentKey>\n<c:Joins>\n<o:ReferenceJoin Id=\"o1144\">\n<a:ObjectID>6D8367E1-F1BA-4FAF-A735-B63D8A8D5D7A</a:ObjectID>\n<a:CreationDate>1580869150</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1580869150</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<c:Object1>\n<o:Column Ref=\"o1060\"/>\n</c:Object1>\n<c:Object2>\n<o:Column Ref=\"o1046\"/>\n</c:Object2>\n</o:ReferenceJoin>\n</c:Joins>\n</o:Reference>\n</c:References>\n<c:DefaultGroups>\n<o:Group Id=\"o1145\">\n<a:ObjectID>48492A0F-63AD-4453-B46B-89915CC87545</a:ObjectID>\n<a:Name>PUBLIC</a:Name>\n<a:Code>PUBLIC</a:Code>\n<a:CreationDate>1521705583</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521705583</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n</o:Group>\n</c:DefaultGroups>\n<c:TargetModels>\n<o:TargetModel Id=\"o1146\">\n<a:ObjectID>232AA7B8-E743-48F3-9530-102684B229BE</a:ObjectID>\n<a:Name>MySQL 5.0</a:Name>\n<a:Code>MYSQL50</a:Code>\n<a:CreationDate>1521705583</a:CreationDate>\n<a:Creator>zhenghong</a:Creator>\n<a:ModificationDate>1521705583</a:ModificationDate>\n<a:Modifier>zhenghong</a:Modifier>\n<a:TargetModelURL>file:///%_DBMS%/mysql50.xdb</a:TargetModelURL>\n<a:TargetModelID>F4F16ECD-F2F1-4006-AF6F-638D5C65F35E</a:TargetModelID>\n<a:TargetModelClassID>4BA9F647-DAB1-11D1-9944-006097355D9B</a:TargetModelClassID>\n<a:TargetModelLastModificationDate>1276524678</a:TargetModelLastModificationDate>\n<c:SessionShortcuts>\n<o:Shortcut Ref=\"o3\"/>\n</c:SessionShortcuts>\n</o:TargetModel>\n</c:TargetModels>\n</o:Model>\n</c:Children>\n</o:RootObject>\n\n</Model>"
  },
  {
    "path": "document/pos/业务架构图.pos",
    "content": "{\"diagram\":{\"image\":{\"height\":623,\"pngdata\":\"iVBORw0KGgoAAAANSUhEUgAAAlkAAAJvCAYAAABI28T3AAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4nOzdd3RU1d7G8Wdm0guhd/AKKhCNIAEEBSkC0qSDooioCL56QbwK0hRREbCCKBoEpUkJGKRc4QIXRFCkKh2VKr0mpGcymXn/SHJuhiSQQA5JyPezFmvNnNnnzJ78SOaZvfc5IwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJvNkt8duFFNmz38W0x0ZJ387gcAAMhaYLESv6//8b/35Xc/bjaP/O7AjYqJjqwzddn2/O4GAADIRv9HQ4vkYIg1vzsAAABwKyJkAQAAmICQBQAAYAJCFgAAgAkIWQAAACYgZAEAAJiAkAUAAGACQhYAAIAJCFkAAAAmIGQBAACYgJAFAABgAkIWAACACQhZAAAAJiBkAQAAmICQBQAAYAJCFgAAgAk88rsDBcHEEf20b/dv+d0NAAAKpOCQ+zT4vWn53Y1Ch5Alad/u37R9+dT87gYAAAVSaIf++d2FQonpQgAAABMQsgAAAExAyAIAADABIQsAAMAEhCwAAAATELIAAABMQMgCAAAwASELAADABIQsAAAAExCyAAAATEDIAgAAMAEhCwAAwASELAAAABMQsgAAAExAyAIAADABIQtAoXDo2Ek5Xa787gYA5BghC8BN8/O2Pfroq3C3bXOXrNH8ZWuvut/+g8f0zJAJ2vvHETO7BwB5ipAF4KYJqVlNP23ZqWVrfpEkXYqK1rffr1G9kBrZ7vP3qXMa/PZnGvFib4XUrCZJOnvhkrbv/uOm9BkArpdHfncAwK3th3W/avKMCON+XEKiPp/1vabM/l6SFBuXoIGjJ7nts2Lm+5KkYyfP6sVRn+ilPp3VplkD4/Goy7Ea8cE0vTnoaT1Y756b8CoAIPcIWQBM1a55Q7Vr3jDX++3Y85dGfvCVXn3+MbVsHGpsd7lcqlqpnEb+s7deHx+m94e/oAdC787LLgNAniBkATBdjxdHy57scNtms9kU8eXbevXdKfpo1IuSpF4D39a8yW9q49bdeuXtz+Tn56PPZi7WR18tUKI9WY5kh6w2q3y9veXn662qlcpp2IQwTX5rkGoH35EfLw0AskXIAmC6E6fPa9PiKW7bGnVJDVabf99vbDt47JQk6Z4at2vUoD666/bKCvT3k5+vj/z9fOTt5Znp2F/MWaI5368hZAEocAhZAG6KTs+PdLuf4nRm27Z4sQB1avVgjo7b7/H2stsd124IADcZIQvATbHkq7Fu99NHsrJjtyerUdeXFODvm22b2LgEbYr4XP5+PnnSRwDIS4QsAAXa2rmfyGbLfLWZlBSnGnR6IR96BAA5Q8gCcFN0feFNt/tXmy4EgFsBIQvATRHx5dtu99OnCzcumpwf3QEA0xGyANw0TqdT9mSHnE6nLBaLJOnQ36dktVh04dLlLM8ebPP00JvdTQDIE4QsADdNsiNFT7z8ruRyqUe7ZpKkjVt3a8nqn+Xt6aFBfbsabS1Wi2oH36Fp41+T1Zp5TZbT6VS/YR/KYrXcrO4DQK4U+r9OdevWdU1dtv2GjtH/0VBtXz41j3oEAMCtJbRDf93Ie23/R0O1Y8eOQp85cosviAYAADABIQsAAMAEhCwAAAATELIAAABMQMgCAAAwASELAADABIQsAAAAExCyAAAATEDIAgAAMAEhCwAAwASELAAAABMQsgAAAExAyAIAADABIQsAAMAEhCwAAAATELIAAABM4JHfHShs+o6cqN079+V3N5AmpHawZowdfM121K1gyWndJGpX0FC7wis3tUPeIGTl0u6d+zRg+/b87gbShIWG5qgddStYclo3idoVNNSu8MpN7ZA3mC4EAAAwASELAADABIQsAAAAExCyAAAATEDIAgAAMAEhCwAAwASELAAAABMQsgAAAExAyAIAADABIQsAAMAEhCwAAAATELKAIibFbs/RNhRcl48fl1yu/O4GgGsgZBVgp7Zt04b33nP/Y+pyad2bb+rcnj03fPzII0e0euhQ2WNjr/sYjsRE/fvFFxVz6tQN9+dW40hM1Nldu0w59l8rVrjdP7V9u5zJyTn6fzGjRYtM275p2jTP+nYrMLN2O6ZNM267nE7FX7woSdo8eXKOjzG/c2elJCfned9uBWbWDsgtj/zuALJX9p57tHHCBB1avVrV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\",\"width\":601,\"y\":9,\"x\":137},\"elements\":{\"page\":{\"gridSize\":15,\"showGrid\":true,\"orientation\":\"portrait\",\"height\":1000,\"backgroundColor\":\"transparent\",\"width\":1050,\"padding\":20},\"elements\":{\"1674f431014e94\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"统计报表\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f43155502a\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f4315554b9\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f4315557c3\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f431555482\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f4315550ea\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f431014e94\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f4537a3211\",\"props\":{\"w\":100,\"y\":420.59999084472656,\"h\":40,\"angle\":0,\"x\":425.93332417805993,\"zindex\":17}},\"1674f3f0ed328f\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"客户服务\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f3f161b70d\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f3f161b2d9\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3f161b7d9\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3f161bde7\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f3f161b59c\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f3f0ed328f\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f42f0c4c5e\",\"props\":{\"w\":100,\"y\":174.59999084472656,\"h\":40,\"angle\":0,\"x\":536.5999908447266,\"zindex\":8}},\"1674f3ff8e6a54\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\\n前台\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{\"vAlign\":\"top\"},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f3ff8e6e57\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f3ff8e6b2e\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3ff8e619e\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3ff8e65d\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f3ff8e6018\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f3ff8e6a54\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"255,230,204\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f42f0c4c5e\",\"props\":{\"w\":458,\"y\":67.5999984741211,\"h\":228,\"angle\":0,\"x\":193.59999084472656,\"zindex\":0}},\"1674f3f0ed33d2\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"订单流程\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f3f161bd7b\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f3f161b357\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3f161b35d\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3f161b4a4\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f3f161bb92\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f3f0ed33d2\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f42f0c4c5e\",\"props\":{\"w\":100,\"y\":174.59999084472656,\"h\":40,\"angle\":0,\"x\":315.26665751139325,\"zindex\":6}},\"1674f4310140eb\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"订单管理\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f43155588e\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f43155591c\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f431555569\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f431555cad\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f4315558b5\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f4310140eb\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f4537a3211\",\"props\":{\"w\":100,\"y\":361.59999084472656,\"h\":40,\"angle\":0,\"x\":315.26665751139325,\"zindex\":12}},\"1674f431014378\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\\n后台\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{\"vAlign\":\"top\"},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f43155403\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f431554ac3\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f4315548c8\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f431554cc6\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f431554dc7\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f431014378\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"255,230,204\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f4537a3211\",\"props\":{\"w\":458,\"y\":313.5999984741211,\"h\":228,\"angle\":0,\"x\":193.59999084472656,\"zindex\":10}},\"1674f431014835\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"权限管理\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f431555d1e\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f431555314\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f43155567e\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f43155571b\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f4315555b2\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f431014835\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f4537a3211\",\"props\":{\"w\":100,\"y\":475.5999984741211,\"h\":40,\"angle\":0,\"x\":204.59999084472656,\"zindex\":19}},\"1674f3fbc93b34\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"帮助中心\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f3fc393be6\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f3fc393f43\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3fc39305c\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3fc39364\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f3fc393b9a\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f3fbc93b34\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f42f0c4c5e\",\"props\":{\"w\":100,\"y\":229.5999984741211,\"h\":40,\"angle\":0,\"x\":204.59999084472656,\"zindex\":9}},\"1674f39ff86cda\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"首页门户\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f39ff86497\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f39ff86e3f\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f39ff86a8e\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f39ff864f2\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f39ff8611f\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f39ff86cda\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f42f0c4c5e\",\"props\":{\"w\":100,\"y\":115.59999084472656,\"h\":40,\"angle\":0,\"x\":204.59999084472656,\"zindex\":1}},\"1674f45617cab6\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f45617cb51\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f45617c65f\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f45617cd0c\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f45617c629\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f45617cb7a\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f45617cab6\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"204,229,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":491,\"y\":49.599998474121094,\"h\":513,\"angle\":0,\"x\":177.09999084472656,\"zindex\":-1}},\"1674f431014f52\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"运营管理\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f431555c16\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f43155541\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f4315555e5\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f431555566\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f431555d6c\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f431014f52\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f4537a3211\",\"props\":{\"w\":100,\"y\":420.59999084472656,\"h\":40,\"angle\":0,\"x\":204.59999084472656,\"zindex\":15}},\"1674f3f0ed338d\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"购物车\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f3f161bac8\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f3f161bc75\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3f161b512\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3f161ba9\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f3f161b70a\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f3f0ed338d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f42f0c4c5e\",\"props\":{\"w\":100,\"y\":174.59999084472656,\"h\":40,\"angle\":0,\"x\":204.59999084472656,\"zindex\":5}},\"1674f447dfc405\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"设置\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f4483ab04d\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f4483abd29\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f4483ababc\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f4483abdc3\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f4483ab252\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f447dfc405\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f4537a3211\",\"props\":{\"w\":100,\"y\":475.5999984741211,\"h\":40,\"angle\":0,\"x\":315.26665751139325,\"zindex\":20}},\"1674f431014028\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"促销管理\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f4315551f5\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f431555114\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f43155544a\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f431555922\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f431555394\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f431014028\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f4537a3211\",\"props\":{\"w\":100,\"y\":361.59999084472656,\"h\":40,\"angle\":0,\"x\":536.5999908447266,\"zindex\":14}},\"1674f431014abc\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"内容管理\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f431555053\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f431555def\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f43155526f\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f4315554fc\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f431555dc4\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f431014abc\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f4537a3211\",\"props\":{\"w\":100,\"y\":420.59999084472656,\"h\":40,\"angle\":0,\"x\":315.26665751139325,\"zindex\":16}},\"1674f3e36f333\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"商品推荐\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f3e3d65f8e\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f3e3d65b6a\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3e3d65853\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3e3d65736\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f3e3d656e\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f3e36f333\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f42f0c4c5e\",\"props\":{\"w\":100,\"y\":115.59999084472656,\"h\":40,\"angle\":0,\"x\":315.26665751139325,\"zindex\":2}},\"1674f3f0ed3f8d\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"商品搜索\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f3f161bb2a\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f3f161bf07\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3f161bad8\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3f161bc1a\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f3f161bdd6\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f3f0ed3f8d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f42f0c4c5e\",\"props\":{\"w\":100,\"y\":174.59999084472656,\"h\":40,\"angle\":0,\"x\":425.93332417805993,\"zindex\":7}},\"1674f43101447f\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"商品管理\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f431554c1f\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f431554e36\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f4315541ed\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f431554412\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f4315547e1\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f43101447f\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f4537a3211\",\"props\":{\"w\":100,\"y\":361.59999084472656,\"h\":40,\"angle\":0,\"x\":204.59999084472656,\"zindex\":11}},\"1674f3e3d6a73b\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"商品搜索\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f3e432ba0f\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f3e432b048\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3e432beb7\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3e432b7e6\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f3e432be21\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f3e3d6a73b\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f42f0c4c5e\",\"props\":{\"w\":100,\"y\":115.59999084472656,\"h\":40,\"angle\":0,\"x\":425.93332417805993,\"zindex\":3}},\"1674f4310149e9\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"财务管理\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f431555ba7\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f431555786\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f431555407\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f431555dec\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f431555735\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f4310149e9\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f4537a3211\",\"props\":{\"w\":100,\"y\":420.59999084472656,\"h\":40,\"angle\":0,\"x\":536.5999908447266,\"zindex\":18}},\"1674f3e4330bd9\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"商品展示\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f3e4a230c1\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f3e4a23e97\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3e4a23992\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f3e4a23f4d\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f3e4a231d4\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f3e4330bd9\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f42f0c4c5e\",\"props\":{\"w\":100,\"y\":115.59999084472656,\"h\":40,\"angle\":0,\"x\":536.5999908447266,\"zindex\":4}},\"1674f431014f18\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"会员管理\"}],\"lineStyle\":{\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f431555f07\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f431555677\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f4315554f5\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f431555665\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f4315553cd\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f431014f18\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"153,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f4537a3211\",\"props\":{\"w\":100,\"y\":361.59999084472656,\"h\":40,\"angle\":0,\"x\":425.93332417805993,\"zindex\":13}}}}},\"meta\":{\"id\":\"5bfbb4a8e4b0f012f2324fbe\",\"member\":\"5a210b2ee4b04f355d337104\",\"exportTime\":\"2019-08-03 09:49:07\",\"diagramInfo\":{\"category\":\"flow\",\"title\":\"业务架构图\",\"created\":\"2018-11-26 16:54:00\",\"creator\":\"5a210b2ee4b04f355d337104\",\"modified\":\"2018-11-26 17:07:39\"},\"type\":\"ProcessOn Schema File\",\"version\":\"1.0\"}}"
  },
  {
    "path": "document/pos/微服务系统架构图.pos",
    "content": "{\"diagram\":{\"image\":{\"height\":1225,\"pngdata\":\"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t2tgzGMvi9hV5SHpBADzicVkjDnDaTxeq0nvWe+XJN17sG/S9+sbLGBqFICCpdPpJzffeUjt764tdijAvBdxmkXSCcBCN7kKqwAAQNLQqM3tbclih7EomA3p25eWaeU8WNJoXdimb10SVQH17DEJL1xXI3OmpLzYcQA4PV281KktdR5ZCuzcy10luvn80CxHBQAAACxe/KwCAMAUBL++OyOJUZszKCNp/4kBtfaduvTdXChzmVXttfDhaJYYhsFLi9MCy0kBhWM5qdMHn52ByeGzM4CFjqX2AADAvGBIWu6zaHme4sgAMN+xnBRQOJaTAoBTNd6xX8Hbdh/r2FpXVuxYAGCqWGoPAAAAAAAAAOaBtnhKMhQtdhwAMB0kngAAADCrsqM2ix0HAAAAAACYfSSeAAAAMKsYtQkAGAsDEwAAABYnEk8AAAAAAGDOMTABAABgcSLxBAAAAAAAAAAAgBlB4gkAAAAAAACzadu6sK3YMQAAgDlSUuwAAAAAAAAAsHh13FC34f5MJlPsOAAAwNxgxhMAAFPDqE0AAAAAAABgFBJPAABMQccNdRvu37K02GFghh05cqTYIQBY+BiYAAAAAOC0RuIJAADMur179+qss8465e+5sH//fm3cuHHCdkeOHNGWLVvmICIAixkDEwDgVKHb927Y3pYsdhjAgvDCdTUyZ0rKix0HAEwHiScAALCo1dTU6OGHH56wXSKRUH9//xxEBAAAcHpJp9NPbr7zULHDABaEiNOstq01x4odBwBMB4knAACm4HQYtbl3715deeWVuu2227Rp0yZdcskluvfee/XVr351ZPu+++4baX/48GF94AMf0KZNm3Teeedpy5Yt+sMf/jDle1966aX66Ec/qle84hW6//771d3drY997GO64IILdOmll+qOO+4Yad/T06O/+7u/04UXXqhXv/rVuv3223X22WePXCt3htUPf/hDXXbZZfr/7N15eJTlvf/xzyxJZhKSQEgIAVkiaxXLkqAQwk7AALbHiriC7REFERGUinJE/YmKxwVbQKWttHAwtnU7R0WLIEERpBZB6s4SIptJCJnsezLP7w9MTCDLJCQzk8z7dV1cV2bmee77Oxkykzyfe4mPj9e8efOUlpYmSZo1a5YkKT4+XseOHau3v3NrmzdvnlasWFHdvtPpVEJCgr7++utmPff2iFGbAAAAAAD4DoInAACawVdGbaalpcnpdGr79u369a9/rWXLlslut2v79u269dZb9dxzz1Uf++CDDyo6Olpbt27Vrl27lJiYqMcff7zZfWdlZenyyy/Xjh07FB8fr0ceeUROp1Nbt27Vpk2b9NZbb2nbtm2SVN3Pli1btHHjxnoDr6ysLL3xxht67bXXtGPHDoWHh1cHSps2bZIk7dq1S7169Wqwv5q1zZ49Wzt27FBlZaUk6dNPP1VQUJAuvfTSZj/39oZRm/AlvjAwAWgpDEwA2jf2TwUA30XwBAAAGnTzzTfLbDZr+PDhcjqdmj17tsxms2JiYpSZmVl93MqVKzVv3jyZTCalp6crODhYDofjgvqePHmy/P39VVpaqp07d2rBggWy2WyKjIzUddddp3fffVdFRUVKTk7WokWLZLfbFR4erttvv73O9vz8/JSTk6PNmzcrLS1Njz76qB544IHzjsvPz6+3v3NrGzFihAICAvTpp59KOht+JSYmXtDzBtB2+crABKAlMDABaD5P7qFan5p7q7J/avMN3JCqsOcP894IoE2zeroAAADg3Tp27ChJslgsMpvN8vf3lySZzWYZhlF9XEpKipYsWaK0tDT16NFDUVFRtR6vT9Ufp1Vq7scUEhIiSXI4HDIMo3o5POnsknbR0dHKzMxUZWWlIiMjqx/r2rVrnX2FhIToscce08aNG7V69Wp169ZNixcv1ujRo2sd11B/59ZmNps1ZcoUbd26VbGxsdqxY4defvnlRp83AAAA0J7U3FuV/VObL7O4UjIpsvEjAcB7ETwBAIAGmUymRo/Jy8vTkiVL9Nxzz2nkyJGSpP3792v79u2NnlszaKpPVfi1efNmBQcHS5Jyc3NVUVEhf39/mc1mZWRkKCrq7Go9NWdi1ZSfn6+goCC9+OKLKioqUlJSkh5++GElJye73F9OTs557SYmJmru3LmKj49X79691bNnz0afky+pGrXpuLNf3YkgADRRSkqKZs6cqX379tX62p3Ky8u1ePFi7d+/X7Gxsdq/f79Ln2kAfFdKSoruvvtuJSYm6vXXX5fVatV9992n7777Tm+++aasVquWLl2qSZMmSTq7h+qzzz6rAwcOqKSkRN27d9fdd9993qCp1ug7JydHK1eu1J49e+Tn56dp06Zp4cKFOnbsmBYsWKCpU6fqjTfekN1u17JlyzR69Oha78c1909NSkpSaGhove3dcccdGjJkiHbv3q0VK1ZowoQJLfdNBwB4BEvtAQCAC1ZWVqaKigpZrWfHtBw/flxr166V0+mU0+m84PZDQ0M1YsQIrV27VmVlZcrNzdXixYuVlJSk4OBgjR07VmvXrlVJSYmys7O1fv36Ots5ffq05s+fr4MHDyowMFDBwcHVM5eqai8qKmqwv7oMGDBAXbp00R//+EeW2asDozYBtEcnT57Unj17tGXLFq1evZrQqRlYTgq+yJN7qDal7+XLl8tsNuv999/Xa6+9pgMHDmjdunWSzv5ObbfblZycrBkzZujpp58+r69z909tqL1z93YFALR9GZB5RgAAIABJREFUBE8AAOCChYeH695779WyZcsUHx+v5cuXa86cObLZbDp27FiL9LFixQo5HA5NmjRJV111lXr16qV58+ZJkh566CGVlJQoISFBs2bNUv/+/WWxWM5ro0+fPrrjjju0cOFCxcXF6Z133qn+47179+4aOnSoEhIS9OWXXzbYX12mTp2q1NRUTZkypUWeLwC0NykpKZo+fbqef/55jR8/XgkJCdq2bZvWrFlTffuDDz6oPv7kyZNavHixxo8fr5EjR2rGjBn6+OOPm91/dna27r//fo0bN07jx4/XmjVrqpeEzcnJ0dKlSzVmzBhNnDhRq1atUkVFhVJSUpSYmKg1a9Zo3LhxSkxM1Mcff6zU1FTddNNNks6+/7/66qu19lfJz8/X0qVLNXbsWE2bNk3r1q3T8OHDm117e8XABPgqT+6h6krfeXl52rNnjxYuXCi73a6wsDDddttteu+996rbueGGG2Q2mxUfH6+MjIwG+3Slvar9U6uW9QYAtG0stQcAAOrUp0+fWssW9enTR3v37q339g033KAbbrihVhu7d++u/rqqrXPbdaVvSQoLC6tzNGVRUZEOHTqkp59+Wmbz2TE1W7du1UcffVRnWzfeeKNuvPHG89qxWq166aWXat1XV3/11R8ZGanLL79cYWFhDT43APBlNUfb//Wvf9WyZcs0d+5cbd++Xa+++qqee+656mWeHnzwQQ0bNkxPPfWUzGazNmzYoMcff1xbtmxpVt+PPPKIQkJCtGXLFuXm5mrOnDm6+OKLNW3aNC1fvlwdOnTQ+++/r+LiYi1atEjr1q1TYmJirZH9f/nLX/T000/r7bff1qZNmzRz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dDqNM2fOGLNnzzYef/xxt/Sfn59vHDlyxLjppptq/eHeFJ7+mQXcpb6BCS2h6sKXw+EwDMMwDh48aAwbNqx6QMGhQ4eM4cOHVx//ww8/GKWlpUZ5eblx8uRJ4+9//3v14029sJefn2/ExsYa6enp1fd9//33xpkzZ4zc3FwjJibG+OGHH6of27lzp5GYmFjddkFBgWEYhvHdd98Zl19+eYM1FBYWGsOHD6/V3ocfftgmgidPXnw1DMNwOBzG0qVLjbFjxxrjxo0zVq9ebTidTsMwmn6x9ejRo7UusP7973+vVUNeXp5x3333GWPGjDGmTp1qvPjii01+jRiY4DsuJHjyVODe1L5bOoBvrL3XXnvNKC0trf4M8CRep5Z/nTz9MwsAF4ql9gAA8FGLFi3Su+++K8MwlJWVpaSkJI0ZM8YtfRcUFCglJUVJSUm6+uqr3dJnWxYYGKinnnpKSUlJGjVqlK6//noNGjRI99xzj1v6//7773XzzTerV69emjhxolv6BNoqdywnVbWnnsVikdlslr+/vyTJbDar5rWqlJQU/eY3v9HkyZO1bNky7d+/X65cy4qPj6/1T5KysrLkdDoVERFRfVyvXr3UuXNnZWdnyzAMRUZGVj/WpUsXZWdnV98OCgqSdHaJ1saWk83MzFRlZWWt9rp2bTvZRFpampxOp7Zv365f//rXWrZsmex2u7Zv365bb7211t6HDz74oKKjo7V161bt2rVLiYmJ1cujNscjjzwiPz8/bdmyRX/729+0detWvffee5Kk5cuXy2w26/3339drr72mAwcOaN26dZLOLqtrt9uVnJysGTNm6Omnn1Z0dLQ2bdok6ezekucu9VdV55YtW7Rx48ZmLePIclJw1c033yyz2azhw4fL6XRq9uzZMpvNiomJqbVP6cqVKzVv3jyZTCalp6crODhYDoej1fvOy8vTnj17tHDhQtntdoWFhem2226r/vmTpBtuuEFms1nx8fG19lmtiyvtTZ48Wf7+/tWfAd6A16llXqeBG1IV9vxh3hsBtGlWTxcAAADcryrIWL16tVauXKmgoCBNnjxZd911l1v6//7773XbbbdpwoQJBBkuiouLU1xcnEf6HjRokPbs2eORvgGcz2QyNXpMXl6elixZoueee04jR46UJO3fv1/bt29v9NyqfSxqqgq7MjMzqwOhnTt3qry8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bm7u3wGgUChcCiAbDAavrFQqY/l8/nYA6OnpuaVQKOw3ncrtdDoTuq5bGu1vnJubuxFYzvE0ODi4e5WxOQA8LsgkimJE07SDf91HJSIiIiIiIqL1wKX2iIiIiGhFLpdrV7FYvK+5XBAEC4Cyw+HYXC6X963SPANAdLvd5+Tz+TuNQpvN5gNQNPYdDkdnd3f3/ysUCk/oZy1ut/u5hULhTnOZKIq9T0VeDSIiIiIiIiI6dgw8EREREdGKXC7Xi+fn57+vKMoOl8u1zVjaThAEayAQuCyVSr21paXllT09Pbd4vd7zAVhNzZVwOPzJ2dnZ9wOwN75cAARzH9VqdaBSqYwsLi6OrjUWp9P5HKfTebppbOfOzMx8VZKkHlmWz6jX67rL5XpeJpO5HVheDnB9rgIRERERERERPRlcao+IiIiInkCW5c5isbgXQLZUKi329PTcnE6nvwUAgiDY0un0LwDMHz58+B1er/cCTdMexnLuJavH43m5w+HoTqVS1wLIA5BCodC72tra3p1Kpd7b3JckSfGlpSWtvb39Oo/Hc64gCBUA0HVdM3I8AYCqqoPJZPJPiqLszOVyPwFQ0jRN3bBhw2XZbPY/6/V6BsBSR0fH9Xa7vfOpvkZERERERERERERERPQs1tfXp/f19enHexwngbVeXgoCcK5yrHWlQlmWOwFIT6L/llXOYbDJshx+Eucjome5vr6+VF9fn75jxw7+bCAiaujr67u7r69P37Vr19nHeyxERPTswhlPRERERPRkLa1xbG6NY/MrFaqqOvEk+88d5RxLqqqmnuQ5iYiIiIiIiGgdMMcTERERERERERERERERrQsGnoiIiIiIiIiIiIiIiGhdMPBERERERERERERERERE64KBJyIiIiIiIiIiIiIiIloXDDwRERERERERERERERHRumDgiYiIiIiIiIiIiIiIiNYFA09ERERERERERERERES0Lhh4IiIiIiIiIiIiIiIionXBwBMRERERERERERERERGtCwaeiIiIiIiIiIiIiIiIaF0w8ERERERERERERERERETrwna8B0BERES03nbv3i0d7zEQEdGJYW5urn68x0BEREREdDJh4ImIiIiedfL5vHq8x0BERCcGURSPbNtstkN9fX3HcTRERCcU6/EeABERPTsx8ERERETPJr8E8OLjPQgiIjphiE37fMhKRPR407qujxzvQRAR0bOLcLwHQERERERERPRU6OvruwzAtwFA1/Uhp9N5ut1u56xYIqKGvXv31gFwSVIiIlpXnPFEREREREREz3oPPfRQLwD9eI+DiIiIiOjZznK8B0BERERERET0NGDQiYiIiIjoacDAExEREREREREREREREa0LBp6IiIiIiIiIiIiIiIhoXTDwREREREREREREREREROuCgSciIiIiIiIiIiIiIiJaFww8ERERERERERERERER0bpg4ImIiIiIiIiIiIiIiIjWBQNPREREREREREREREREtC4YeCIiIiIiIiIiIiIiIqJ1wcATERERERERERERERERrQsGnoiIiIiIiIiIiIiIiGhdMPBERERERERERERERERE64KBJyIiIiIiIiIiIiIiIloXDDwRERERERERERERERHRumDgiYiIiIiIiIiIiIiIiNYFA09ERERERERERERERES0Lhh4IiIiIiIiIiIiIiIionXBwBMRERERnejs4N+tRERERERERM8IvIEnIiIiImzYsOEDsiyHAaCtre0aSZJ6jrGp3+l0PudolWRZ7ja2jXOby0RRjK7agd9/UVdX1w1Nxe5jHF8QgMe079i8efPPAThWqW8Nh8OfXuM4ERERERHR08a4T1vJsdy3tbW1vdvpdHYcrV44HP60JEmbACAQCLy+ra3tn4/WRpKkTeFw+FMAEAqFrgIQOFqbFdicTudzOjo6rlcUZftKFTo6Oj4B0z2gLMvP8/l8r/wr+qKnie14D4CIiIiIjr+Wlpbzp6amPt7YPm9mZuaTAOD3+9+0sLBwC4CKLMudXV1d35MkqbdSqTwKAKIobi8UCneNjY29FkB9tfPHYrE/VyqVfl3XBUmStu7fv787Fos9VKlUHgEASZJOTSaTV2Yyme81t21tbd1jsVhciURiLwAIgiDpul4fHBw8y9xnd3f3l2RZ7jW3tdvtm/L5/K+SyeSbGkWLdru9FUB1laHWXC7Xi83HfT7f6zKZzH8DKK55EYmIiIiIiNZZLBZ72LhvMmvcW23Zv39/BEB5tfYej+f8mZmZG4/Wj6Ioz0mlUu9tbL8sk8l8+WhtgsHgVZlM5lYA0DTt0WAweOnc3NyNjXPsLJVK+0zVvS6Xa5fNZnMLguCRJClitVpD9Xo9s7i4mC6VSgcAWFcY105JkiIACkaZqqq/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+/LLL+H3+w97bP369cOchhRis1gsUyVJqne5XKtbWlr+6PF43kHPjBYAiHm93g+dTueZPp8vXqqRMUmS1gJAIBDYpdfrcx0Ox/ri4uJNBoPh5P57EuXl5f1Dp9OVKB04DngOfF3QEDGZTNPRs1QhACQnJSVdqWQeGjotLS0H/fL5fLBarTj99NOxcuVKhEIhuN1uPPfcc7jwwgthsVgwc+bMvmMej+egZe5aW1txww03wOl0wmg0wmKxwGrtKdJpND0LqAWDQUQiEXR3d/e11dXVYeXKlYjFYojFYkc9z2hTsroaSasqmlKerE4fuPfYwMITERGNGO4bipLLf5Gn2PUrKyvxox/9CE8++STOOecczJ49Gx999BH+8pe/9D1ft25dX/+GhgbceuutOOecc3DGGWdg3rx5B23Ieax8Ph/uuusuzJw5ExdddBGefvppTJs2bVDXW7hwIQBgxowZqK2thdfrxa9+9SucffbZOP/88/s28Lz88svxwQcfAAAkScIPfvADvPHGGwB67kA+66yz0NjYeNRr3X///XjwwQf7csViMcyePRt79uz5zq/9+4pEZciAqFgAIiIiGpSjFZc+//xzBAKBYUxDx8POtjDu2dI+OXll+eQjdPH4fL5PATQNcCoZgG9o0x03YkFBwZa0tLT7MzMzH1er1QVOp3N6e3v7H6LRaN9r6O7u7iwtLT0jEomUKhk2DglKB4hDSf0Lng6HY5Moiif2e/6GzWb7bwBJSgel7+/CCy886NdTTz0FAHjwwQcRDocxe/ZsXH755ZgyZQquv/56AMBvfvMbhEIhzJ49GwsXLkRxcTHU6p4bgQsKCrB48WLcdNNNmD59Ot555x08/PDDAIDMzExMmjQJs2fPRlNTE26//XbcfffdmDFjBu69915cc8010Ov1qK2tPep5aPTjHk9ERET9NDU1IRaLYf369Xj11Vdx99134/rrr8f69euxZs0aPPHEE/jhD38IAPj1r3+NyZMnY8WKFVCpVFi9ejUefvjhvsLOser9AeyDDz5AIBDAzTfffNDxo13vpZdewmWXXYbNmzcDAG677TZoNBqsXbsWnZ2dWLRoETIzMzFjxgx8/vnnmDNnDr766iuo1Wps374d8+bNw9dff42MjAxkZmbiqquuOuK15s6di1/96le4++67oVar8fnnn8NkMmHChAnf40+e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f/0g3/gn7qZXX31Vr776ql555RW9+OKLmjFjhm655ZY9fp2RpO43kboPRVJy4/pUI21c39DQoPPOO0+lpaV64okn9Prrr+u+++5TW1ubvvrVryoUCk3uCwEmwSmnnKK//vWvqqur09q1a0f8Tf8FCxZoxYoVevnll1VeXq7S0lJJ0qJFi3TxxRcPnWez2XTYYYfpyiuvVF1dnSQpEAjIYrFo69atQ+eNViTZn5188sk66qijdPvtt6u/v18+n09HHHGE7r33XiUSCXV2durKK6/UkiVL5Ha7ddJJJ+knP/mJIpGI2trahjp4hmtubtbll1+uuro6uVwuZWVlDXVV7UvG+5zm5ORIkpqamobGtm/fLr9/7P9f9vv9slgsO8W1tLR8pHnffPNNzZkzZ8xrLly4UM8///yYue1JL7300i7/jNT5u3btWn3ta1/TZz7zGV1//fX6xz/+MbQkXbJ77pVXXtFZZ521yzJ8I0kWnvPy8obGysrKlJubO+Z8qR1/8+bN07x587R48eKh4tJYeSYlP+dj5ZDk8XgkDRQle3t7J/y+Ath9FJ6ANOFmPPYbhm5e9BafdQAAppr2y6uuWHRM3vgnfgQ2m02f/exntWbNmqGx8faVkKT7779fxx9/vE444QTdeeed6unpmdDxtWvXDi3NmboPRfJGeHLj+lTJjetTLVq0SOecc44uvPDCod9mLykp0W233abp06frl7/85Ud9a4C9Lj8/X3PmzNGNN96ok08+WVardZdzgsGg8vPz9cADD+y0vNiJJ56ot99+W/fdd586OzslDdygf/jhh/XpT39a0kCXyYIFC3TPPfeou7tbHR0dfFdGce2112r9+vV64oknJEm33Xab2tradOKJJ+r0009XWVmZLr30UknSDTfcII/Ho1NPPVULFy7U0UcfPeKcM2fO1GWXXaZvfetbOvLII/XUU08N7Wm0Lxnvc+r1eocKdbFYTG1tbXrwwQd32QdquKysLM2bN28orr29faeOl92Zt7+/Xy+//LKeeOIJffWrozc4RiIR/f73v9fs2bN3812YXKFQSFdddZWuuOIKLVu2TL/61a901llnDR1P7Z5btmyZFixYoJtvHnsBhmTnXmox7+WXX9aLL7445nypHX/JQtnTTz+te+65Z9w8dycHAHsfhScgXbgZDwAAgI+5cDis3/72tzr00EOHxm688UZVVFRo6dKlevXVV7VgwYJdbo6uWbNGTz31lH7729/qvffe2+Xm9XjHJemRRx6RNNCBNW3aNEkT27g+FArpH//4h04//fQRX9OZZ56p5cuXf4h3A/uD3MX15//v6qnbEXf66adr3bp1+uxnPzvqOaeccorWr1+vk046aWjs0EMP1X333af33ntPZ5xxho455hhddNFFqqio0A033DB03vXXXy+/36/TTjtNZ511loLB4KS+nqlu5syZIy4Nmp+fr5dffnnoJrrf79edd96pl19+WS+//LJuvvlm2Ww2SZLT6dRNN92k5cuXa+nSpbrooouGlgUdPv8555yj5557Tq+//rqWLFmi2travfAq97zxPqe33Xab4vG45s+fry996Us67LDDdMkll4w77/e//33FYjHNnz9fX/nKV1RdXb1TYWu8eY8++mgdffTRmjdvnh566CHdcccdQ3sHDT/nmGOO0emnn66urq691vU7UYlEQr29vcrIGNiBZdOmTbr33nvV39+v/v7+MbvnkjGRSGSnOX0+nz75yU/q/vvvVyKRUFNTk+6++25Fo9Ex5xur42+8PIcbK4fJsnJHXLf9pfUQ309XV0zaRYB9FHs8AQAATGHJDlmW2wOwr5g3b55M01QikZDT6dT8+fOHNv2Wxt5XIuk73/mO3G633G63LrzwQi1atEiXXXbZhI+PZiIb1yeX/QkEAiPOUVhYOOnLhwVcVj33heKW+U9uOnVSL4Q9zjSMh65Y3qyza6bGEmfDCxMLFizYqZNp5syZO+1tJkkFBQU6/PDDd1li7LDDDhvqKByNw+HQDTfcMFSMWrt2rX73u9+NmAuQtLufU7/fr7vuumvceVLjIpGI6uvrdeeddw7tL7R06dKd9mSa6LwTeQ3pMlJH3FFHHbXTUpmBQEDf/e53df311ysajWrmzJm65JJLdPXVV2vjxo07dc+Fw2FVVFQM/YLI9OnTNWfOHM2fP1833njjTte5/fbb9YMf/EAnnniiMjMz9aUvfUmnnXaaJI06nzRQ8PvhD3+oE088UZJ0wgkn6NJLL5XNZhszz5GMlsPatWs/2hs7ioffD+nhVZ2XWqyWdyTdPykXAfZRFJ4AAMCIgjk2FbkzPtge6WtOdy77tcEOWQpPAPa03Psarvjle526cA/v85S8iffPf/5T3/3udzV79uyd9hlZ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\",\"width\":1694,\"y\":-30,\"x\":-30},\"elements\":{\"page\":{\"showGrid\":true,\"gridSize\":15,\"orientation\":\"portrait\",\"height\":1154,\"backgroundColor\":\"transparent\",\"width\":1656,\"padding\":20},\"theme\":{\"linker\":{\"lineStyle\":{\"lineColor\":\"50,50,50\",\"lineWidth\":2},\"fontStyle\":{\"bold\":false,\"color\":\"50,50,50\",\"fontFamily\":\"Arial\",\"italic\":false,\"size\":13}},\"name\":\"normal\",\"shape\":{\"lineStyle\":{\"lineColor\":\"50,50,50\",\"lineWidth\":2},\"fillStyle\":{\"color\":\"255,255,255\",\"type\":\"solid\"},\"fontStyle\":{\"bold\":false,\"color\":\"50,50,50\",\"fontFamily\":\"Arial\",\"italic\":false,\"size\":13}}},\"elements\":{\"16e63c77c26192\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"OSS\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63c7840cb7a\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63c7840c92b\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c7840c05f\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c7840cea4\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63c7840cbff\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c77c26192\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"angle\":0,\"h\":28.749990463256836,\"y\":1006.0228639941449,\"zindex\":99,\"x\":591.4492437713772}},\"16e63ca7d8c222\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"电脑\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63ca824d1db\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63ca824d7e2\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ca824df8d\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ca824de58\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63ca824d1eb\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63ca7d8c222\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"angle\":0,\"h\":28.749990463256836,\"y\":493.8465358804207,\"zindex\":106,\"x\":115.75164153271604}},\"16e63bb3924bfa\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"Logstash\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63bb3924367\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63bb3924d9f\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63bb3924c1f\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63bb3924293\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63bb3924f31\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63bb3924bfa\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":675.6431801044045,\"h\":40,\"angle\":0,\"x\":1434.5748253395864,\"zindex\":74}},\"16e63dbd07c005\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"异步通信\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63dbd6bd199\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63dbd6bd7e9\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dbd6bd13b\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dbd6bd9d6\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63dbd6bd3f1\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63dbd07c005\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":22.500000000000227,\"angle\":0,\"h\":108.59949803886639,\"y\":839.2857121058872,\"zindex\":126,\"x\":767.8398361206052}},\"16e63b48a2ffba\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b48a2ffba\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb2eae4b04c4c38244552?e=1573634298&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:n-877LxCxm9RfuI3GScQEHcDtWs=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":616.7112562158545,\"zindex\":66,\"x\":1005.5065427449383}},\"16e638c4c2a301\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e638c4c2a301\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcba878e4b04c4c38241b9c?e=1573631625&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:TBR7yli2kgdtq1e-3XD-AbigAm4=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":45.025001525878906,\"angle\":0,\"h\":50.12499809265137,\"y\":214.23341117239673,\"zindex\":27,\"x\":565.8857794592561}},\"16e63c3b438aec\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63c3b438094\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63c3b438628\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c3b4380b5\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c3b438d9\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63c3b43893f\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c3b438aec\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"圆角矩形\",\"category\":\"basic\",\"name\":\"roundRectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"y1\":\"0\",\"action\":\"quadraticCurve\",\"y\":\"0\",\"x\":\"4\",\"x1\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"y1\":\"0\",\"action\":\"quadraticCurve\",\"y\":\"4\",\"x\":\"w\",\"x1\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"y1\":\"h\",\"action\":\"quadraticCurve\",\"y\":\"h\",\"x\":\"w-4\",\"x1\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"y1\":\"h\",\"action\":\"quadraticCurve\",\"y\":\"h-4\",\"x\":\"0\",\"x1\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":103.88922113155456,\"angle\":0,\"h\":114.5,\"y\":942.2159837534418,\"zindex\":92,\"x\":861.949769628325}},\"16e63b98cae49a\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b98cae49a\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb4a0e4b0e3a6348d4fea?e=1573634736&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:OUliLefPbC_V-yZXLym1OSOu0vA=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":0,\"imageH\":0},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"y\":546.0999984741211,\"h\":0,\"angle\":0,\"x\":852.1000001430511,\"zindex\":69}},\"16e63bc6ad2eed\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63bc6ad2eed\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbab0ee4b0a602173633d9?e=1573632286&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:xCZUfiNj_5c_wBHBIFENS5dvBkY=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":461.1957767200808,\"zindex\":77,\"x\":1488.399423532755}},\"16e63c7e19b17c\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"对象存储\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63c7e7cc657\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63c7e7cc508\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c7e7ccfa9\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c7e7cc6e6\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63c7e7cc7ce\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c7e19b17c\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"angle\":0,\"h\":28.749990463256836,\"y\":1080.6690947289574,\"zindex\":100,\"x\":587.4739368426617}},\"16e63942c5b4f\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63942c5b4f\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbab0ee4b0a602173633d9?e=1573632286&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:xCZUfiNj_5c_wBHBIFENS5dvBkY=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":246.74999361736292,\"zindex\":40,\"x\":842.0944881670624}},\"16e63782196ee1\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"网关服务集群<div>（Spring Cloud Gateway）</div>\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e6378219680b\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e637821968ef\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637821963b\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637821964b2\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63782196302\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63782196ee1\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":259,\"angle\":0,\"h\":27,\"y\":413.60446194240023,\"zindex\":2,\"x\":325.19761086544054}},\"16e637d71b9141\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e637d7a91b3\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e637d7a91ac\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637d7a916fc\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637d7a919a7\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e637d7a91258\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e637d71b9141\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"圆角矩形\",\"name\":\"roundRectangle\",\"fillStyle\":{},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"0\",\"x1\":\"0\",\"x\":\"4\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"4\",\"x1\":\"w\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h\",\"x1\":\"w\",\"x\":\"w-4\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h-4\",\"x1\":\"0\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":204,\"y\":118.27460031930084,\"h\":188,\"angle\":0,\"x\":1146.340569232288,\"zindex\":9}},\"16e63ebad5c415\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"全局事务控制\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63ebad5c684\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63ebad5c435\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ebad5cf7b\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ebad5c96d\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63ebad5c3ff\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63ebad5c415\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":774.8259004865374,\"h\":40,\"angle\":0,\"x\":444.3679212264856,\"zindex\":148}},\"16e63b349f2345\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b349f2345\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb2eae4b04c4c38244552?e=1573634298&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:n-877LxCxm9RfuI3GScQEHcDtWs=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":200,\"imageH\":100},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"y\":614.2315294896939,\"h\":40,\"angle\":0,\"x\":781.3398361206055,\"zindex\":61}},\"16e63f29c835c7\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63f2a8e09c8\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63f2a8e0996\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63f2a8e0568\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63f2a8e0a37\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63f2a8e0bfb\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63f29c835c7\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"圆角矩形\",\"category\":\"basic\",\"name\":\"roundRectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"y1\":\"0\",\"action\":\"quadraticCurve\",\"y\":\"0\",\"x\":\"4\",\"x1\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"y1\":\"0\",\"action\":\"quadraticCurve\",\"y\":\"4\",\"x\":\"w\",\"x1\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"y1\":\"h\",\"action\":\"quadraticCurve\",\"y\":\"h\",\"x\":\"w-4\",\"x1\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"y1\":\"h\",\"action\":\"quadraticCurve\",\"y\":\"h-4\",\"x\":\"0\",\"x1\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":111.35000991821289,\"angle\":0,\"h\":114.5,\"y\":938.230242145132,\"zindex\":151,\"x\":186.34575710210373}},\"16e63943f5e03e\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63943f5e03e\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbab0ee4b0a602173633d9?e=1573632286&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:xCZUfiNj_5c_wBHBIFENS5dvBkY=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":200,\"imageH\":100},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"y\":137.95407445510926,\"h\":40,\"angle\":0,\"x\":1227.4902290105822,\"zindex\":42}},\"16e63c309bba7d\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c309bba7d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb70de4b0fc314a101c70?e=1573635357&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:UT9KmMN3Pg7M81GVVOLSCHN_U1c=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":0,\"imageH\":0},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"y\":758.2500076293945,\"h\":0,\"angle\":0,\"x\":899.1250038146973,\"zindex\":89}},\"16e63989e7c31\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"mall-gateway\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e6398b20c5bc\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e6398b20c1ed\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6398b20c6b1\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6398b20c161\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e6398b20cd42\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63989e7c31\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":122.2017849513461,\"angle\":0,\"h\":28.98580350057074,\"y\":687.5300179626362,\"zindex\":54,\"x\":394.779010908944}},\"16e638a341b371\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e638a341b371\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcba878e4b04c4c38241b9c?e=1573631625&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:TBR7yli2kgdtq1e-3XD-AbigAm4=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":45.025001525878906,\"angle\":0,\"h\":50.12499809265137,\"y\":134.24949407230767,\"zindex\":25,\"x\":504.9804215534596}},\"16e63e05fb2fcb\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"Elasticsearch\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63e06522bd1\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63e065226df\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63e06522291\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63e06522e7\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63e065227d3\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63e05fb2fcb\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":116.73125553131104,\"angle\":0,\"h\":36.89479150985812,\"y\":1007.6449292639215,\"zindex\":135,\"x\":1344.4369382569566}},\"16e63c0f2d39ad\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c0f2d39ad\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb680e4b0bd68d814ff68?e=1573635216&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:EFWWu7IypG1ll1y47eQEoUrwD_Y=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":952.8788029623947,\"zindex\":87,\"x\":1290.8027794045722}},\"16e63c9db3a99b\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c9db3a99b\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb8cce4b0754822a3fcd6?e=1573635804&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:vsBdSB9aQgAxFYAyUX7nG_XwxYA=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":658.2499980926514,\"zindex\":103,\"x\":899.1250038146973}},\"16e63c98116389\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63c98b4693f\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63c98b46b69\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c98b462cb\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c98b460fc\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63c98b464d8\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c98116389\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"圆角矩形\",\"name\":\"roundRectangle\",\"fillStyle\":{},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"0\",\"x1\":\"0\",\"x\":\"4\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"4\",\"x1\":\"w\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h\",\"x1\":\"w\",\"x\":\"w-4\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h-4\",\"x1\":\"0\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":111.35000991821289,\"y\":420.6871920973484,\"h\":114.5,\"angle\":0,\"x\":108.9022633264041,\"zindex\":101}},\"16e63c074e96d\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"Redis\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63c07d92cbf\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63c07d922f5\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c07d92b4c\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c07d92d1d\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63c07d92c6a\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c074e96d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"y\":1009.7754472343049,\"h\":28.749990463256836,\"angle\":0,\"x\":1174.8841348735218,\"zindex\":85}},\"16e63b48a2fa2d\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b48a2fa2d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb2eae4b04c4c38244552?e=1573634298&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:n-877LxCxm9RfuI3GScQEHcDtWs=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":503.97452433953447,\"zindex\":64,\"x\":1006.5416989949383}},\"16e637d71ba11b\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"监控中心集群<div>（Spring Boot Admin）</div>\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e637d7a91a3c\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e637d7a91a24\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637d7a911f5\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637d7a9105f\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e637d7a91424\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e637d71ba11b\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"angle\":0,\"h\":40,\"y\":66.14959525784614,\"zindex\":10,\"x\":1159.8999938964846}},\"16e63b29e3e54d\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b29e3e54d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb2d9e4b0bd68d814f129?e=1573634281&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:yBh26Ng-mS_OoZQZr16wAfkB-j8=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":658.2499980926514,\"zindex\":56,\"x\":751.1249923706055}},\"16e637cabf9879\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e637cb18b5ce\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e637cb18bcad\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637cb18bafd\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637cb18b897\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e637cb18b8ec\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e637cabf9879\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"圆角矩形\",\"name\":\"roundRectangle\",\"fillStyle\":{},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"0\",\"x1\":\"0\",\"x\":\"4\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"4\",\"x1\":\"w\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h\",\"x1\":\"w\",\"x\":\"w-4\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h-4\",\"x1\":\"0\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":204,\"y\":120.8500035355758,\"h\":188,\"angle\":0,\"x\":819.3194866411835,\"zindex\":7}},\"16e6379fb84547\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"应用服务集群\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e6379fb85d33\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e6379fb85e01\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6379fb85b27\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6379fb85823\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e6379fb854ca\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6379fb84547\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"angle\":0,\"h\":40,\"y\":392.8214263916015,\"zindex\":149,\"x\":887.0345649317272}},\"16e63d416c1dca\":{\"id\":\"16e63d416c1dca\",\"to\":{\"id\":\"16e637e5388816\",\"angle\":0,\"y\":582.2571683015591,\"x\":1440.2508342644282},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[{\"y\":582.07508336786,\"x\":1291.2683014137351},{\"y\":582.2571683015591,\"x\":1291.2683014137351}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"16e63793ab0ab6\",\"y\":582.07508336786,\"angle\":3.141592653589793,\"x\":1142.285768563042},\"group\":\"\",\"props\":{\"zindex\":117}},\"16e63eafe1fadc\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63eafe1fadc\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbc148e4b0fc314a1046b0?e=1573637976&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:JDKEOFL96LaH7kjKNqoirTK5eJY=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":0,\"imageH\":0},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"y\":752.2857121058872,\"h\":0,\"angle\":0,\"x\":965.8571297781807,\"zindex\":145}},\"16e63915889b2e\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"mall-config\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63915dbf2fc\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63915dbf79f\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63915dbf83b\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63915dbfd18\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63915dbfa2c\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63915889b2e\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":122.2017849513461,\"y\":276.3458427706839,\"h\":28.98580350057074,\"angle\":0,\"x\":813.4288038446078,\"zindex\":35}},\"16e63e307a1c\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"搜索数据存储\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63e327ef783\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63e327ef9fb\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63e327ef3df\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63e327ef615\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63e327ef64b\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63e307a1c\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":22.500000000000227,\"angle\":0,\"h\":108.59949803886639,\"y\":673.8813757430269,\"zindex\":139,\"x\":1361.1665290509754}},\"16e63be2bc3d7d\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63be2bc3d7d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb5cee4b0e3a6348d549e?e=1573635038&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:MgQCvcHhtI2mWv4MWo3uMoUNAXY=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":758.2500076293945,\"zindex\":79,\"x\":899.1250038146973}},\"16e63e05fb2cd8\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63e05fb2cd8\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb4d5e4b022abb632cc27?e=1573634789&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:H9HIw4e0cEmInoy1jR72UnAd7x0=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":200,\"imageH\":100},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"y\":953.3903874175296,\"h\":40,\"angle\":0,\"x\":1373.681482882239,\"zindex\":134}},\"16e63cc207746a\":{\"to\":{\"id\":\"16e6371f9451f4\",\"angle\":0,\"y\":592.0999984741211,\"x\":384.34999084472656},\"id\":\"16e63cc207746a\",\"linkerType\":\"broken\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"16e63c9a17c3fd\",\"angle\":3.141592653589793,\"y\":689.0762400152388,\"x\":222.26512542208204},\"dataAttributes\":[],\"locked\":false,\"points\":[{\"y\":689.0762400152388,\"x\":303.3075581334043},{\"y\":592.0999984741211,\"x\":303.3075581334043}],\"group\":\"\",\"props\":{\"zindex\":110}},\"16e6382ad78b31\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e6382ad78988\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e6382ad78ac3\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6382ad78ba9\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6382ad78f3d\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e6382ad7866a\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6382ad78b31\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"圆角矩形\",\"category\":\"basic\",\"name\":\"roundRectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"y1\":\"0\",\"action\":\"quadraticCurve\",\"y\":\"0\",\"x\":\"4\",\"x1\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"y1\":\"0\",\"action\":\"quadraticCurve\",\"y\":\"4\",\"x\":\"w\",\"x1\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"y1\":\"h\",\"action\":\"quadraticCurve\",\"y\":\"h\",\"x\":\"w-4\",\"x1\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"y1\":\"h\",\"action\":\"quadraticCurve\",\"y\":\"h-4\",\"x\":\"0\",\"x1\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":111.35000991821289,\"angle\":0,\"h\":114.5,\"y\":940.143913292002,\"zindex\":17,\"x\":581.8259173206883}},\"16e63e43b2f4a7\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"日志收集\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63e43b2f2fd\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63e43b2f089\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63e43b2fec5\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63e43b2f94c\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63e43b2ff44\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63e43b2f4a7\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":532.4187408261266,\"h\":40,\"angle\":0,\"x\":1190.1260225025699,\"zindex\":140}},\"16e6391df6f7ee\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"mall-config\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e6391e520831\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e6391e520012\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6391e5209ae\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6391e520fcf\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e6391e52011c\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6391df6f7ee\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":122.2017849513461,\"y\":185.58068315945832,\"h\":28.98580350057074,\"angle\":0,\"x\":860.6713349130092,\"zindex\":37}},\"16e63c033fa0a3\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c033fa0a3\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb64fe4b04c4c382452b4?e=1573635167&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:kxtQaIXkGpk5f1GLsaDgri2qz1E=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":952.7340268937669,\"zindex\":84,\"x\":1202.4156400335974}},\"16e638a145f24b\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e638a145f24b\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcba878e4b04c4c38241b9c?e=1573631625&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:TBR7yli2kgdtq1e-3XD-AbigAm4=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":246.74999361736292,\"zindex\":23,\"x\":842.0944881670624}},\"16e63dc34d3b43\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"异步通信\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63dc39728ba\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63dc39724a5\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dc3972444\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dc3972b29\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63dc3972fde\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63dc34d3b43\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":22.500000000000227,\"angle\":0,\"h\":108.59949803886639,\"y\":839.2857121058872,\"zindex\":127,\"x\":1033.144523501396}},\"16e63eecd727b2\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63eecd727b2\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbc241e4b059bcd1936504?e=1573638226&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:UZYAGJUNZeSx_-SWyKkZIWud5yE=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":523.7142835344587,\"zindex\":150,\"x\":965.8571297781807}},\"16e63b502ee605\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"A2服务集群\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63b50a96b7a\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63b50a96751\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63b50a96328\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63b50a96a1e\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63b50a9671b\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b502ee605\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":22.500000000000227,\"y\":512.9232493483835,\"h\":108.59949803886639,\"angle\":0,\"x\":1096.2581808153582,\"zindex\":67}},\"16e6380cad2cb6\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"数据存储\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e6380cad215e\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e6380cad224e\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6380cad2a0e\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6380cad2758\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e6380cad2536\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6380cad2cb6\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":1085.219925872516,\"h\":40,\"angle\":0,\"x\":1209.319705613661,\"zindex\":14}},\"16e63c31d68973\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c31d68973\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb70de4b0fc314a101c70?e=1573635357&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:UT9KmMN3Pg7M81GVVOLSCHN_U1c=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":200,\"imageH\":100},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"y\":960.9515466581788,\"h\":40,\"angle\":0,\"x\":892.4024915422168,\"zindex\":93}},\"16e63b2efc8804\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b2efc8804\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb2eae4b04c4c38244552?e=1573634298&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:n-877LxCxm9RfuI3GScQEHcDtWs=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":200,\"imageH\":100},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"y\":501.49479761337375,\"h\":40,\"angle\":0,\"x\":782.3749923706055,\"zindex\":59}},\"16e63bf00e2efa\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63bf00e2efa\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb5cee4b0e3a6348d549e?e=1573635038&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:MgQCvcHhtI2mWv4MWo3uMoUNAXY=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":953.1445726679719,\"zindex\":81,\"x\":1109.9673844407112}},\"16e63c0e13be6c\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c0e13be6c\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb680e4b0bd68d814ff68?e=1573635216&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:EFWWu7IypG1ll1y47eQEoUrwD_Y=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":758.2500076293945,\"zindex\":86,\"x\":899.1250038146973}},\"16e63cdb9cb86f\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"复载均衡<div>（Ribbon）</div>\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63cdb9cbd37\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63cdb9cbac3\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63cdb9cba3b\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63cdb9cb6d3\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63cdb9cbe3c\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63cdb9cb86f\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":616.7112562158545,\"h\":40,\"angle\":0,\"x\":536.8571472167969,\"zindex\":113}},\"16e63b48a2f7c3\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b48a2f7c3\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb2eae4b04c4c38244552?e=1573634298&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:n-877LxCxm9RfuI3GScQEHcDtWs=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":562.0734948321715,\"zindex\":65,\"x\":1006.4635739949383}},\"16e63977ced56\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63977ced56\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbabe3e4b0fc314a0ff0b1?e=1573632499&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:pH1P4uL2LvyJXYqI6KA_4p7Ov2M=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":200,\"imageH\":100},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"y\":477.00000286102295,\"h\":40,\"angle\":0,\"x\":434.29686818804066,\"zindex\":49}},\"16e637c53dd75e\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"注册中心集群<div>（Eureka/Consul/Nacos）</div>\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e637c53ddf13\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e637c53ddf99\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637c53dd261\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637c53ddb27\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e637c53dd9c8\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e637c53dd75e\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":62.34949445377741,\"h\":40,\"angle\":0,\"x\":451.5928762613632,\"zindex\":6}},\"16e63d2ff939da\":{\"id\":\"16e63d2ff939da\",\"to\":{\"id\":\"16e638d1a8cc63\",\"y\":305.1428549630301,\"angle\":4.71238898038469,\"x\":529.4285583496094},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[{\"y\":375.7189945445898,\"x\":920.0750875108096},{\"y\":375.7189945445898,\"x\":529.4285583496094}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"16e63793ab0ab6\",\"y\":446.2951341261495,\"angle\":1.5707963267948968,\"x\":920.0750875108096},\"group\":\"\",\"props\":{\"zindex\":114}},\"16e63c022ff8dd\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c022ff8dd\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb64fe4b04c4c382452b4?e=1573635167&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:kxtQaIXkGpk5f1GLsaDgri2qz1E=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":0,\"imageH\":0},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"y\":758.2500076293945,\"h\":0,\"angle\":0,\"x\":899.1250038146973,\"zindex\":83}},\"16e63dc9400859\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"文件存储\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63dc94009aa\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63dc94008d9\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dc94002d6\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dc94004c7\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63dc9400d67\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63dc9400859\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":782.8259004865374,\"h\":40,\"angle\":0,\"x\":611.5928762613632,\"zindex\":128}},\"16e63ea499d96d\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"Seata\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63ea4f15678\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63ea4f15b75\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ea4f153f4\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ea4f15b8f\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63ea4f15d1d\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63ea499d96d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"y\":1003.1453520060161,\"h\":28.749990463256836,\"angle\":0,\"x\":382.3294274731615,\"zindex\":143}},\"16e637cabf9acd\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"配置中心集群<div>（Config/Consul/Nacos）<br></div>\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e637cb18b3d3\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e637cb18bf8\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637cb18ba8c\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637cb18b41d\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e637cb18b15e\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e637cabf9acd\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":65.84942028167629,\"h\":40,\"angle\":0,\"x\":831.3923563604002,\"zindex\":8}},\"16e63c7351f3b8\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c7351f3b8\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb804e4b059bcd1933b55?e=1573635604&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:wFb2po3OWQ-mHCT5mSrB_-AtUYw=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":957.6019665699239,\"zindex\":98,\"x\":617.5509272389012}},\"16e63e11c781c9\":{\"to\":{\"id\":\"16e63e05fb2cd8\",\"angle\":1.5707963267948968,\"y\":953.3903874175296,\"x\":1393.681482882239},\"id\":\"16e63e11c781c9\",\"linkerType\":\"broken\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"16e63793ab0ab6\",\"angle\":3.141592653589793,\"y\":582.07508336786,\"x\":1142.285768563042},\"dataAttributes\":[],\"locked\":false,\"points\":[{\"y\":582.07508336786,\"x\":1393.681482882239}],\"group\":\"\",\"props\":{\"zindex\":136}},\"16e63b91c7dde4\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b91c7dde4\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb483e4b0e3a6348d4f76?e=1573634707&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:svCZWOnfCwgLSxWg7yjQxTacWIo=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":526.5999984741211,\"zindex\":68,\"x\":852.1000001430511}},\"16e63793ab0ab6\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63793ab141\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63793ab14d3\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63793ab1319\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63793ab11d8\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63793ab1fcc\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63793ab0ab6\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"圆角矩形\",\"name\":\"roundRectangle\",\"fillStyle\":{},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"0\",\"x1\":\"0\",\"x\":\"4\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"4\",\"x1\":\"w\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h\",\"x1\":\"w\",\"x\":\"w-4\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h-4\",\"x1\":\"0\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":445.4929144893374,\"y\":446.3216097209571,\"h\":271.53342288861336,\"angle\":0,\"x\":696.2570778812681,\"zindex\":3}},\"16e63d817dbf2b\":{\"id\":\"16e63d817dbf2b\",\"to\":{\"id\":\"16e63c0f2d39ad\",\"y\":952.8788029623947,\"angle\":1.5707963267948968,\"x\":1310.8027794045722},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[{\"y\":582.07508336786,\"x\":1310.8027794045722}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"16e63793ab0ab6\",\"y\":582.07508336786,\"angle\":3.141592653589793,\"x\":1142.2857685630418},\"group\":\"\",\"props\":{\"zindex\":124}},\"16e63dd2c73f05\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"获取服务列表\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63dd2f7a4f9\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63dd2f7ab41\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dd2f7ad05\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dd2f7aefd\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63dd2f7a575\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63dd2c73f05\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":383.7661617482107,\"h\":40,\"angle\":0,\"x\":561.9754368918282,\"zindex\":130}},\"16e63976bc5eab\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63976bc5eab\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbabe3e4b0fc314a0ff0b1?e=1573632499&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:pH1P4uL2LvyJXYqI6KA_4p7Ov2M=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":558.250002861023,\"zindex\":48,\"x\":751.1249923706055}},\"16e63c6cc83b6c\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c6cc83b6c\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb804e4b059bcd1933b55?e=1573635604&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:wFb2po3OWQ-mHCT5mSrB_-AtUYw=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":782.6250076293945,\"zindex\":96,\"x\":899.1250038146973}},\"16e63c13d783b1\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"MongoDB\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63c14211f5b\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63c14211935\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c14211de8\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c1421116f\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63c14211a1a\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c13d783b1\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"angle\":0,\"h\":28.749990463256836,\"y\":1010.5774525774441,\"zindex\":88,\"x\":1260.9581979506286}},\"16e63d4a3dfa83\":{\"id\":\"16e63d4a3dfa83\",\"to\":{\"id\":\"16e63c3b438aec\",\"y\":999.4659837534418,\"angle\":0,\"x\":861.949769628325},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[{\"y\":999.4659837534418,\"x\":798.8863911547678}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"16e63b151109e4\",\"y\":687.2580126134578,\"angle\":4.71238898038469,\"x\":798.8863911547678},\"group\":\"\",\"props\":{\"zindex\":119}},\"16e63dfa5d9f81\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"主要业务数据存储\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63dfaed496e\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63dfaed4296\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dfaed4ee\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dfaed4136\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63dfaed4ab9\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63dfa5d9f81\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":22.500000000000227,\"angle\":0,\"h\":108.59949803886639,\"y\":678.4751221541695,\"zindex\":133,\"x\":1144.2379666393751}},\"16e63e298570c6\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"缓存数据存储\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63e29d0dba6\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63e29d0da49\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63e29d0dc6e\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63e29d0d0b3\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63e29d0d9c7\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63e298570c6\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":22.500000000000227,\"angle\":0,\"h\":108.59949803886639,\"y\":685.0771015958338,\"zindex\":137,\"x\":1196.9272199712298}},\"16e6390e6892e2\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6390e6892e2\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbaa37e4b0ffd2144848a1?e=1573632072&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:3meU1Zv00FOWqGqZicDFwFnKidg=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":437.2857121058872,\"zindex\":32,\"x\":858.4285627092634}},\"16e63eb1124311\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63eb1124311\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbc148e4b0fc314a1046b0?e=1573637976&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:JDKEOFL96LaH7kjKNqoirTK5eJY=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":200,\"imageH\":100},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"y\":954.2311218336647,\"h\":40,\"angle\":0,\"x\":413.14588159907,\"zindex\":146}},\"16e63b3462877d\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b3462877d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb2eae4b04c4c38244552?e=1573634298&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:n-877LxCxm9RfuI3GScQEHcDtWs=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":559.593768106011,\"zindex\":60,\"x\":782.2968673706055}},\"16e6391df6ffbc\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6391df6ffbc\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbaa37e4b0ffd2144848a1?e=1573632072&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:3meU1Zv00FOWqGqZicDFwFnKidg=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":231.69560051336305,\"zindex\":36,\"x\":845.2989254447758}},\"16e63f2e60d98d\":{\"to\":{\"id\":\"16e63f29c835c7\",\"angle\":1.5707963267948968,\"y\":938.230242145132,\"x\":242.02076206121018},\"id\":\"16e63f2e60d98d\",\"linkerType\":\"broken\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"16e63793ab0ab6\",\"angle\":4.71238898038469,\"y\":717.8550326095705,\"x\":919.0035351259368},\"dataAttributes\":[],\"locked\":false,\"points\":[{\"y\":828.0426373773512,\"x\":919.0035351259368},{\"y\":828.0426373773512,\"x\":242.02076206121018}],\"group\":\"\",\"props\":{\"zindex\":155}},\"16e639520520e5\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"mall-monitor\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63953215207\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63953215941\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e639532151ad\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e639532151e5\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e639532156a\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e639520520e5\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":122.2017849513461,\"angle\":0,\"h\":28.98580350057074,\"y\":277.4637958064391,\"zindex\":47,\"x\":1240.9518391165518}},\"16e63c4463769a\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"RabbitMQ\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63c44a90794\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63c44a90d\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c44a90c92\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c44a90144\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63c44a908b6\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c4463769a\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"angle\":0,\"h\":28.749990463256836,\"y\":1015.7500076293945,\"zindex\":94,\"x\":862.9531722764273}},\"16e638d1a8cc63\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"mall-registery\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e638d22e9daf\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e638d22e903\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e638d22e952\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e638d22e9b3a\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e638d22e9d71\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e638d1a8cc63\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":265.6709088563303,\"h\":40,\"angle\":0,\"x\":392.5411373650527,\"zindex\":30}},\"16e63f29c83197\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"容器\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63f2a8e0425\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63f2a8e0e6a\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63f2a8e0787\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63f2a8e0002\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63f2a8e0f35\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63f29c83197\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"angle\":0,\"h\":28.749990463256836,\"y\":1070.1302141658443,\"zindex\":153,\"x\":193.4345846477692}},\"16e63d34b00ba7\":{\"id\":\"16e63d34b00ba7\",\"to\":{\"id\":\"16e63928f272e3\",\"y\":307.0515400501765,\"angle\":5.061454830783555,\"x\":921.1796003277826},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[{\"y\":376.673337088163,\"x\":920.0750875108096},{\"y\":376.673337088163,\"x\":921.1796003277826}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"16e63793ab0ab6\",\"y\":446.2951341261495,\"angle\":1.5707963267948968,\"x\":920.0750875108096},\"group\":\"\",\"props\":{\"zindex\":115}},\"16e63ea499d6d\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63ea4f1472a\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63ea4f14993\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ea4f14b4d\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ea4f14c6b\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63ea4f1405\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63ea499d6d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"圆角矩形\",\"category\":\"basic\",\"name\":\"roundRectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"y1\":\"0\",\"action\":\"quadraticCurve\",\"y\":\"0\",\"x\":\"4\",\"x1\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"y1\":\"0\",\"action\":\"quadraticCurve\",\"y\":\"4\",\"x\":\"w\",\"x1\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"y1\":\"h\",\"action\":\"quadraticCurve\",\"y\":\"h\",\"x\":\"w-4\",\"x1\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"y1\":\"h\",\"action\":\"quadraticCurve\",\"y\":\"h-4\",\"x\":\"0\",\"x1\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":111.35000991821289,\"angle\":0,\"h\":114.5,\"y\":937.2664013038732,\"zindex\":141,\"x\":372.70610102247264}},\"16e63d6b1bf41\":{\"id\":\"16e63d6b1bf41\",\"to\":{\"id\":\"16e63c033fa0a3\",\"y\":952.7340268937669,\"angle\":1.5707963267948968,\"x\":1222.4156400335974},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[{\"y\":582.0618455704562,\"x\":1222.4156400335974}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"16e63793ab0ab6\",\"y\":582.0618455704562,\"angle\":3.141592653589793,\"x\":1142.8215447554783},\"group\":\"\",\"props\":{\"zindex\":123}},\"16e63c9f8c29c\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c9f8c29c\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb8d4e4b0e3a6348d604a?e=1573635812&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:3wKgKDsu7aXDSn6CegC2xH1iCng=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":0,\"imageH\":0},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"y\":658.2499980926514,\"h\":0,\"angle\":0,\"x\":899.1250038146973,\"zindex\":104}},\"16e63928f272e3\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"mall-config\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e6392959fc5b\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e6392959fc2e\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6392959f975\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6392959fda\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e6392959f598\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63928f272e3\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":122.2017849513461,\"angle\":0,\"h\":28.98580350057074,\"y\":278.7703555249837,\"zindex\":39,\"x\":917.6366377093412}},\"16e638e9409871\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e638e9409871\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcba99fe4b0fc314a0fe7eb?e=1573631919&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:oexWWBpjMW5L-w3-MByfl4SgDns=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":409.4285692487444,\"zindex\":31,\"x\":858.4285627092634}},\"16e63d4664f819\":{\"id\":\"16e63d4664f819\",\"to\":{\"id\":\"16e63b48a2fb08\",\"y\":578.9708711578523,\"angle\":0,\"x\":968.6298541020515},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[{\"y\":578.6567438545937,\"x\":910.9697444669341},{\"y\":578.9708711578523,\"x\":910.9697444669341}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"16e63b151109e4\",\"y\":578.6567438545937,\"angle\":3.141592653589793,\"x\":853.3096348318169},\"group\":\"\",\"props\":{\"zindex\":118}},\"16e63f2fd9f5ca\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"容器化部署\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63f2fda078b\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63f2fda05af\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63f2fda0bda\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63f2fda06a9\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63f2fda022f\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63f2fd9f5ca\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"angle\":0,\"h\":40,\"y\":779.8259004865374,\"zindex\":156,\"x\":253.14588159906998}},\"16e63d95738b68\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"远程调用<div>（Feign）</div>\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63d95738171\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63d9573882f\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63d95738c95\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63d95738add\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63d95738b86\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63d95738b68\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":525.0148455925009,\"h\":40,\"angle\":0,\"x\":829.7142900739397,\"zindex\":125}},\"16e63989e7cdb6\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63989e7cdb6\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbabe3e4b0fc314a0ff0b1?e=1573632499&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:pH1P4uL2LvyJXYqI6KA_4p7Ov2M=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":641.6841831144299,\"zindex\":53,\"x\":435.77342233864556}},\"16e63b48a2fb08\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63b48ed0289\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63b48ed0d0b\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63b48ed05b8\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63b48ed0fc8\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63b48ed064b\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b48a2fb08\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"圆角矩形\",\"name\":\"roundRectangle\",\"fillStyle\":{},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"0\",\"x1\":\"0\",\"x\":\"4\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"4\",\"x1\":\"w\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h\",\"x1\":\"w\",\"x\":\"w-4\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h-4\",\"x1\":\"0\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":108.84648735409826,\"y\":470.3696023989884,\"h\":217.20253751772816,\"angle\":0,\"x\":968.6298541020515,\"zindex\":63}},\"16e63cb4f33b0b\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"手机\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63cb59e4e9f\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63cb59e4845\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63cb59e4c03\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63cb59e4431\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63cb59e4742\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63cb4f33b0b\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"angle\":0,\"h\":28.749990463256836,\"y\":704.3354499491251,\"zindex\":108,\"x\":115.19314495964748}},\"16e63cae33f1bd\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63cae33f1bd\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb8d4e4b0e3a6348d604a?e=1573635812&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:3wKgKDsu7aXDSn6CegC2xH1iCng=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":650.1601366709156,\"zindex\":107,\"x\":151.76789318400233}},\"16e63c48976367\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"消息代理\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63c48dbd1b9\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63c48dbda22\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c48dbdea7\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c48dbdce1\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63c48dbd0be\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c48976367\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"angle\":0,\"h\":28.749990463256836,\"y\":1081.6499054332962,\"zindex\":95,\"x\":867.0250089917182}},\"16e637e5388d9d\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"ELK日志收集系统\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e637e5a10153\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e637e5a10be\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637e5a10243\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637e5a1008d\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e637e5a10337\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e637e5388d9d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":383.7661617482107,\"h\":40,\"angle\":0,\"x\":1428.399423532755,\"zindex\":12}},\"16e638c70ec8ea\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"mall-registery\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e638c70ec272\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e638c70ec3b6\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e638c70ec53a\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e638c70ec4e8\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e638c70ec7fb\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e638c70ec8ea\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"angle\":0,\"h\":40,\"y\":174.23341117239673,\"zindex\":28,\"x\":444.3679212264856}},\"16e63bb77bd24b\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63bb77bd24b\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb4d5e4b022abb632cc27?e=1573634789&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:H9HIw4e0cEmInoy1jR72UnAd7x0=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":200,\"imageH\":100},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"y\":547.5379716142626,\"h\":40,\"angle\":0,\"x\":1492.5279450943776,\"zindex\":75}},\"16e63decb48cd9\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"获取应用监控信息\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63decb48ea7\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63decb4820d\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63decb481e4\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63decb481ea\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63decb48e32\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63decb48cd9\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"angle\":0,\"h\":40,\"y\":328.24999809265137,\"zindex\":132,\"x\":1030.1260225025699}},\"16e63eb7f7a0c\":{\"to\":{\"id\":\"16e63ea499d6d\",\"angle\":1.5707963267948968,\"y\":937.2664013038732,\"x\":428.3811059815791},\"id\":\"16e63eb7f7a0c\",\"linkerType\":\"broken\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"16e63793ab0ab6\",\"angle\":4.71238898038469,\"y\":717.8550326095705,\"x\":919.0035351259368},\"dataAttributes\":[],\"locked\":false,\"points\":[{\"y\":827.5607169567218,\"x\":919.0035351259368},{\"y\":827.5607169567218,\"x\":428.3811059815791}],\"group\":\"\",\"props\":{\"zindex\":147}},\"16e63f29c83e32\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"Docker\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63f2a8e0163\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63f2a8e089b\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63f2a8e0724\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63f2a8e06c8\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63f2a8e0e98\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63f29c83e32\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"angle\":0,\"h\":28.749990463256836,\"y\":1002.6773612810784,\"zindex\":152,\"x\":199.10529253664816}},\"16e638c305d814\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e638c305d814\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcba878e4b04c4c38241b9c?e=1573631625&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:TBR7yli2kgdtq1e-3XD-AbigAm4=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":45.025001525878906,\"angle\":0,\"h\":50.12499809265137,\"y\":214.66198260096812,\"zindex\":26,\"x\":444.3679212264856}},\"16e63bc1a2b3c4\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"Elasticsearch\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63bc1ed4771\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63bc1ed481f\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63bc1ed414e\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63bc1ed4fa6\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63bc1ed4cb8\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63bc1a2b3c4\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":116.73125553131104,\"y\":587.5379716142626,\"h\":36.89479150985812,\"angle\":0,\"x\":1456.2091975739309,\"zindex\":76}},\"16e63ea8c7471f\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"分布式事务管理\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63ea900646f\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63ea9006f2b\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ea9006122\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ea9006b52\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63ea9006607\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63ea8c7471f\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"y\":1072.0976661575287,\"h\":28.749990463256836,\"angle\":0,\"x\":375.0341579348407,\"zindex\":144}},\"16e63bab64448f\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63bab64448f\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb4e1e4b0e3a6348d50d0?e=1573634801&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:ZC8oSHzHDnpdNDXoh36WrEQFq-k=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":200,\"imageH\":100},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"y\":635.6431801044045,\"h\":40,\"angle\":0,\"x\":1494.5748253395864,\"zindex\":73}},\"16e63d5973b018\":{\"id\":\"16e63d5973b018\",\"to\":{\"id\":\"16e6382ad78b31\",\"y\":940.143913292002,\"angle\":1.5707963267948968,\"x\":637.5009222797947},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[{\"y\":828.9862351533825,\"x\":920.0750875108096},{\"y\":828.9862351533825,\"x\":637.5009222797947}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"16e63793ab0ab6\",\"y\":717.8285570147629,\"angle\":4.71238898038469,\"x\":920.0750875108096},\"group\":\"\",\"props\":{\"zindex\":121}},\"16e63e29d17031\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"用户行为分析数据存储\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63e3078a5b6\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63e3078abef\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63e3078a50b\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63e3078a417\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63e3078a00c\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63e29d17031\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":22.500000000000227,\"angle\":0,\"h\":108.59949803886639,\"y\":682.8812181319947,\"zindex\":138,\"x\":1281.6363929720926}},\"16e63986fc427a\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63986fc427a\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbabe3e4b0fc314a0ff0b1?e=1573632499&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:pH1P4uL2LvyJXYqI6KA_4p7Ov2M=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":558.250002861023,\"zindex\":51,\"x\":438.70458766145384}},\"16e6395062d8c1\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"mall-monitor\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63950bbdd3a\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63950bbd9df\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63950bbdef1\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63950bbd032\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63950bbdb27\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6395062d8c1\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":122.2017849513461,\"angle\":0,\"h\":28.98580350057074,\"y\":183.88027488172867,\"zindex\":45,\"x\":1187.2531192788285}},\"16e6394c0dfb0a\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6394c0dfb0a\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbab0ee4b0a602173633d9?e=1573632286&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:xCZUfiNj_5c_wBHBIFENS5dvBkY=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":233.75924876168023,\"zindex\":43,\"x\":1285.7890534400942}},\"16e63de54e2373\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"获取配置信息\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63de59232d1\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63de5923bad\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63de59232e5\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63de592381e\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63de5923474\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63de54e2373\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":320.0161617482107,\"h\":40,\"angle\":0,\"x\":777.0796911956677,\"zindex\":131}},\"16e638065237f3\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63806524756\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e6380652480b\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63806524d57\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e638065244bd\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e638065247d3\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e638065237f3\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"圆角矩形\",\"name\":\"roundRectangle\",\"fillStyle\":{},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"0\",\"x1\":\"0\",\"x\":\"4\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"4\",\"x1\":\"w\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h\",\"x1\":\"w\",\"x\":\"w-4\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h-4\",\"x1\":\"0\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":381.4120867817028,\"y\":920.7500076293945,\"h\":147.5,\"angle\":0,\"x\":1075.9569357031826,\"zindex\":13}},\"16e63b3bab9cea\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"A1服务集群\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63b3bab985b\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63b3bab9373\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63b3bab9391\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63b3bab9613\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63b3bab902\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b3bab9cea\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":22.500000000000227,\"angle\":0,\"h\":108.59949803886639,\"y\":513.3656747242817,\"zindex\":62,\"x\":709.9999904632566}},\"16e637e5388816\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e637e5a10abf\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e637e5a10311\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637e5a10674\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637e5a104b8\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e637e5a105f1\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e637e5388816\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"圆角矩形\",\"name\":\"roundRectangle\",\"fillStyle\":{},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"0\",\"x1\":\"0\",\"x\":\"4\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"4\",\"x1\":\"w\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h\",\"x1\":\"w\",\"x\":\"w-4\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h-4\",\"x1\":\"0\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":148.09295442700386,\"y\":441.40896099585154,\"h\":281.6964146114152,\"angle\":0,\"x\":1440.2508342644282,\"zindex\":11}},\"16e63986fc4b0c\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"mall-gateway\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e639873e4667\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e639873e4b96\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e639873e459\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e639873e4eba\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e639873e48e8\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63986fc4b0c\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":122.2017849513461,\"angle\":0,\"h\":28.98580350057074,\"y\":604.0958377092293,\"zindex\":52,\"x\":397.17777100189505}},\"16e6390fd3f558\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6390fd3f558\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbaa37e4b0ffd2144848a1?e=1573632072&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:3meU1Zv00FOWqGqZicDFwFnKidg=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":137.50709729198246,\"zindex\":34,\"x\":893.3761836743791}},\"16e6371f9451f4\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e6371f946327\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e6371f94644f\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6371f946cc\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6371f946a59\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e6371f94607d\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6371f9451f4\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"圆角矩形\",\"name\":\"roundRectangle\",\"fillStyle\":{},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"0\",\"x1\":\"0\",\"x\":\"4\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"4\",\"x1\":\"w\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h\",\"x1\":\"w\",\"x\":\"w-4\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h-4\",\"x1\":\"0\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":143.05982507978092,\"y\":464.3499984741211,\"h\":255.5,\"angle\":0,\"x\":384.34999084472656,\"zindex\":1}},\"16e63bf7ef2ade\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"MySql\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63bf7ef300e\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63bf7ef3da2\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63bf7ef31ed\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63bf7ef3b61\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63bf7ef3e9d\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63bf7ef2ade\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":98.8309870978187,\"angle\":0,\"h\":28.749990463256836,\"y\":1010.8531728628375,\"zindex\":82,\"x\":1080.5585389128255}},\"16e638d11898ad\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"mall-registery\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e638d1a82525\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e638d1a82707\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e638d1a8277c\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e638d1a82bb6\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e638d1a82dbf\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e638d11898ad\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"angle\":0,\"h\":40,\"y\":264.8852087394916,\"zindex\":29,\"x\":501.3402431455177}},\"16e6392513fc44\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6392513fc44\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbaa37e4b0ffd2144848a1?e=1573632072&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:3meU1Zv00FOWqGqZicDFwFnKidg=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":200,\"imageH\":100},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"y\":233.23413479964267,\"h\":40,\"angle\":0,\"x\":954.7280105130654,\"zindex\":38}},\"16e63d4c197371\":{\"to\":{\"id\":\"16e63b48a2fb08\",\"angle\":4.71238898038469,\"y\":687.5721399167165,\"x\":1023.0530977791007},\"id\":\"16e63d4c197371\",\"linkerType\":\"broken\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"16e63c3b438aec\",\"angle\":3.141592653589793,\"y\":999.4659837534418,\"x\":965.8389907598796},\"dataAttributes\":[],\"locked\":false,\"points\":[{\"y\":999.4659837534418,\"x\":1023.0530977791007}],\"group\":\"\",\"props\":{\"zindex\":120}},\"16e63b151109e4\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63b15110fab\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63b151103d6\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63b151109fe\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63b1511048f\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63b1511067d\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b151109e4\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"圆角矩形\",\"name\":\"roundRectangle\",\"fillStyle\":{},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"0\",\"x1\":\"0\",\"x\":\"4\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"4\",\"x1\":\"w\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h\",\"x1\":\"w\",\"x\":\"w-4\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h-4\",\"x1\":\"0\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":108.84648735409826,\"y\":470.05547509572966,\"h\":217.20253751772816,\"angle\":0,\"x\":744.4631474777186,\"zindex\":55}},\"16e63982a6d111\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"mall-gateway\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63982edd855\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63982edd1e1\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63982edddbf\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63982eddf67\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63982edd31f\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63982a6d111\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":122.2017849513461,\"y\":522.8458377092293,\"h\":28.98580350057074,\"angle\":0,\"x\":392.7700515284819,\"zindex\":50}},\"16e63ccc5f7f9e\":{\"id\":\"16e63ccc5f7f9e\",\"to\":{\"id\":\"16e63793ab0ab6\",\"y\":592.2857121058872,\"angle\":0,\"x\":696.8571472167968},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[{\"y\":592.0999984741211,\"x\":612.1334815706521},{\"y\":592.2857121058872,\"x\":612.1334815706521}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"16e6371f9451f4\",\"y\":592.0999984741211,\"angle\":3.141592653589793,\"x\":527.4098159245075},\"group\":\"\",\"props\":{\"zindex\":111}},\"16e63ba8bcbcc9\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63ba8bcbcc9\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb4e1e4b0e3a6348d50d0?e=1573634801&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:ZC8oSHzHDnpdNDXoh36WrEQFq-k=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":0,\"imageH\":0},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"y\":526.5999984741211,\"h\":0,\"angle\":0,\"x\":852.1000001430511,\"zindex\":71}},\"16e63f29c83be8\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63f29c83be8\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbc241e4b059bcd1936504?e=1573638226&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:UZYAGJUNZeSx_-SWyKkZIWud5yE=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":955.991883911282,\"zindex\":154,\"x\":224.62975199215413}},\"16e63d69e6bf31\":{\"id\":\"16e63d69e6bf31\",\"to\":{\"id\":\"16e63bf00e2efa\",\"y\":953.1445726679719,\"angle\":1.5707963267948968,\"x\":1129.9673844407112},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[{\"y\":582.0618455704562,\"x\":1172.8215447554783},{\"y\":923.1445726679719,\"x\":1172.8215447554783},{\"y\":923.1445726679719,\"x\":1129.9673844407112}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"16e63793ab0ab6\",\"y\":582.0618455704562,\"angle\":3.141592653589793,\"x\":1142.8215447554783},\"group\":\"\",\"props\":{\"zindex\":122}},\"16e63dcf265101\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"h\":\"h\",\"y\":0,\"x\":0},\"text\":\"服务注册\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63dcf265eb4\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63dcf265eda\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dcf265674\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63dcf265195\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63dcf265011\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63dcf265101\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"文本\",\"category\":\"basic\",\"name\":\"text\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"angle\":0,\"h\":40,\"y\":335.9729063830627,\"zindex\":129,\"x\":556.734898924517}},\"16e63cc13aaed4\":{\"to\":{\"id\":\"16e6371f9451f4\",\"angle\":0,\"y\":592.0999984741211,\"x\":384.34999084472656},\"id\":\"16e63cc13aaed4\",\"linkerType\":\"broken\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"16e63c98116389\",\"angle\":3.141592653589793,\"y\":477.9371920973484,\"x\":220.252273244617},\"dataAttributes\":[],\"locked\":false,\"points\":[{\"y\":477.9371920973484,\"x\":302.30113204467176},{\"y\":592.0999984741211,\"x\":302.30113204467176}],\"group\":\"\",\"props\":{\"zindex\":109}},\"16e637b97b9b69\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e637b97b9d88\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e637b97b9aec\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637b97b9651\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e637b97b998b\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e637b97b91d1\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e637b97b9b69\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"圆角矩形\",\"category\":\"basic\",\"name\":\"roundRectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"y1\":\"0\",\"action\":\"quadraticCurve\",\"y\":\"0\",\"x\":\"4\",\"x1\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"y1\":\"0\",\"action\":\"quadraticCurve\",\"y\":\"4\",\"x\":\"w\",\"x1\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"y1\":\"h\",\"action\":\"quadraticCurve\",\"y\":\"h\",\"x\":\"w-4\",\"x1\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"y1\":\"h\",\"action\":\"quadraticCurve\",\"y\":\"h-4\",\"x\":\"0\",\"x1\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":204,\"angle\":0,\"h\":188,\"y\":120.34949445377738,\"zindex\":5,\"x\":427.0054230793385}},\"16e63ccf853573\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"服务熔断限流<div>（Hystrix/Setinel）</div>\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63ccf853d57\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63ccf8535e9\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ccf8535d8\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63ccf8531f1\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63ccf85379f\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63ccf853573\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":160,\"y\":530.4542979296368,\"h\":40,\"angle\":0,\"x\":532.5714329310825,\"zindex\":112}},\"16e63d3ddbe6d\":{\"to\":{\"id\":\"16e63793ab0ab6\",\"angle\":1.5707963267948968,\"y\":446.2951341261495,\"x\":920.0750875108096},\"id\":\"16e63d3ddbe6d\",\"linkerType\":\"broken\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"16e637d71b9141\",\"angle\":4.71238898038469,\"y\":306.27460031930076,\"x\":1248.340569232288},\"dataAttributes\":[],\"locked\":false,\"points\":[{\"y\":376.2848672227251,\"x\":1248.340569232288},{\"y\":376.2848672227251,\"x\":920.0750875108096}],\"group\":\"\",\"props\":{\"zindex\":116}},\"16e63950bc437f\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"mall-monitor\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63952045d59\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63952045e5b\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63952045a13\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e6395204510b\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63952045b4c\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63950bc437f\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":122.2017849513461,\"y\":277.63027488172867,\"h\":28.98580350057074,\"angle\":0,\"x\":1134.7018391165523,\"zindex\":46}},\"16e63ba5d3e895\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63ba5d3e895\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb4d5e4b022abb632cc27?e=1573634789&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:H9HIw4e0cEmInoy1jR72UnAd7x0=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":0,\"imageW\":0},\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"angle\":0,\"h\":0,\"y\":526.5999984741211,\"zindex\":70,\"x\":852.1000001430511}},\"16e63c9a17c3fd\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"18,150,219\",\"lineStyle\":\"dashed\"},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63c9a5f4cb1\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63c9a5f4e9e\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c9a5f402d\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63c9a5f449b\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63c9a5f43bf\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63c9a17c3fd\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"圆角矩形\",\"name\":\"roundRectangle\",\"fillStyle\":{},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"4\",\"x\":\"0\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"0\",\"x1\":\"0\",\"x\":\"4\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w-4\"},{\"action\":\"quadraticCurve\",\"y1\":\"0\",\"y\":\"4\",\"x1\":\"w\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h-4\",\"x\":\"w\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h\",\"x1\":\"w\",\"x\":\"w-4\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"4\"},{\"action\":\"quadraticCurve\",\"y1\":\"h\",\"y\":\"h-4\",\"x1\":\"0\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":111.35000991821289,\"y\":631.8262400152388,\"h\":114.5,\"angle\":0,\"x\":110.91511550386916,\"zindex\":102}},\"16e6394c568f69\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e6394c568f69\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbab0ee4b0a602173633d9?e=1573632286&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:xCZUfiNj_5c_wBHBIFENS5dvBkY=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":200,\"imageH\":100},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"y\":231.74709162149702,\"h\":40,\"angle\":0,\"x\":1172.5937557220461,\"zindex\":44}},\"16e63bc90cb10a\":{\"textBlock\":[{\"position\":{\"w\":\"w\",\"y\":0,\"h\":\"h\",\"x\":0},\"text\":\"Kibana\"}],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"16e63bc9a62e35\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"16e63bc9a623de\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63bc9a620ec\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"16e63bc9a625ec\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"16e63bc9a62e07\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63bc90cb10a\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"文本\",\"name\":\"text\",\"fillStyle\":{},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"fillStyle\":{\"type\":\"none\"},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":116.73125553131104,\"y\":501.74838096515174,\"h\":36.89479150985812,\"angle\":0,\"x\":1450.0337957670995,\"zindex\":78}},\"16e63ca1a3d1b7\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63ca1a3d1b7\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"\",\"category\":\"standard\",\"name\":\"standardImage\",\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb8cce4b0754822a3fcd6?e=1573635804&token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:vsBdSB9aQgAxFYAyUX7nG_XwxYA=\",\"display\":\"stretch\",\"type\":\"image\",\"imageH\":100,\"imageW\":200},\"locked\":false,\"group\":\"\",\"props\":{\"w\":40,\"angle\":0,\"h\":40,\"y\":449.3047106093509,\"zindex\":105,\"x\":146.26612302596345}},\"16e63b2deb1896\":{\"textBlock\":[],\"lineStyle\":{},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":false,\"visible\":false,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[],\"shapeStyle\":{\"alpha\":1},\"id\":\"16e63b2deb1896\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"standard\",\"title\":\"\",\"name\":\"standardImage\",\"fillStyle\":{\"fileId\":\"http://cdn.processon.com/5dcbb2eae4b04c4c38244552?e=1573634298&amp;token=trhI0BY8QfVrIGn9nENop6JAc6l5nZuxhjQ62UfM:n-877LxCxm9RfuI3GScQEHcDtWs=\",\"display\":\"stretch\",\"type\":\"image\",\"imageW\":0,\"imageH\":0},\"path\":[{\"lineStyle\":{\"lineWidth\":0},\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":0,\"y\":658.2499980926514,\"h\":0,\"angle\":0,\"x\":751.1249923706055,\"zindex\":57}}}}},\"meta\":{\"id\":\"5dcba1f0e4b022abb6328340\",\"member\":\"5a210b2ee4b04f355d337104\",\"exportTime\":\"2019-11-13 17:10:01\",\"diagramInfo\":{\"category\":\"flow\",\"title\":\"微服务系统架构图\",\"created\":\"2019-11-13 14:25:52\",\"creator\":\"5a210b2ee4b04f355d337104\",\"modified\":\"2019-11-13 17:07:47\"},\"type\":\"ProcessOn Schema File\",\"version\":\"1.0\"}}"
  },
  {
    "path": "document/pos/系统架构图.pos",
    "content": "{\"diagram\":{\"image\":{\"height\":983,\"pngdata\":\"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SfKOd7yjdop0AAC2yZrpAABAXZo0aVJe//rXP6vnfOADH8jFF1+8WQF++OGHZ+7cuXnVq171rM534oknPqvjAQDYdSnTAQCAuvXe9753uyfDzznnnLz73e/e6v7m5uZ85StfyZvf/ObtOt9RRx2VSZMmbdex8JxMn726mLXoqmrHAIB6p0wHAKB2tS6cXe0I7Nr233//TJkyZZvHFEWR8847L+985zv7PF9jY2M++clP5j3veU+fxzY3N2f16tXbnRUAgF2bMh0AAKhL11xzTaZPn5677757q8c0NDRk9uzZeetb37rd5y2KIu9///vz4Q9/eJvH/fSnP80xxxyTc889t3cNdegXC9rGlHNaZlY7BgDUO2U6AAC1q31aW7UjsGspyzLt7e058sgj8+Uvfzlr1qxJURTZfffdNzu2sbExF198cd7whjfs0GudcMIJueiii9LU1LTZvhe+8IVpaGhId3d3brzxxvzt3/5t3vve9+Z//ud/dui1AACoPmU6AABQ87q7u3P55ZfniCOOyJw5c7J27doURZFXv/rVueGGG3LFFVc84/ghQ4bkC1/4Qo455pjn9LrHHXdcvvzlL2f48OG92yZOnJhvf/vbuf766/PmN785Q4YMSZL893//d97znvfkLW95S2688cZUKpXn9NoAAAwsZToAAFCzNm7cmC984Qs54ogj8q//+q/p7OxMQ0NDpk+fnptuuilXXHFFxo0blxe96EV51ate1fu8Sy+9NK997Wt3SobDDjssc+bM6X38rne9Kw0NDdlzzz1z/vnnZ/78+Xnf+96XUaNGJUmWLVuWc889NzNmzMg111yTzs7OnZIDAID+pUwHAABqTldXVz796U/niCOOyHe+8510dXWlsbExf/M3f5P58+fnS1/6UsaOHfuM55x++ukZPnx42tvbc/jhh+/UPIccckiuu+66TJ48OX/7t3/7jH3Dhw/PzJkzM3/+/Fx44YXZZ599kiSrV6/Ol7/85Rx11FH5zGc+k1WrVu3UTAAA7FxFtQMAAMCOKue0lGldWO0YDKC1a9fm4osvzs9+9rNs3LgxSdLU1JTjjjsuH/vYx9Lc3LzN599///3Zb7/9+i3fxo0bt7iG+l/6zW9+k0svvTR33nln77aiKPKa17wmZ511Vg488MB+y0hd6iiKYkK1QwBAvVOmAwBQs8qyvCCJm5AOAqtXr85FF12U+fPnp7u7O0kydOjQvOlNb8o555zTuy55rVm2bFkuv/zy/PznP++9riSZPHlyzj777GcsTQPboEwHgAGgTAcAoGYp0+vfqlWr8qlPfSq/+MUvem/YOXTo0Lz97W/P2WefncbGxion3Dkef/zxXH311fn+97//jDXUx48fn1mzZuVNb3pT3Vwr/WBB27rc+5MPFrMWXVXtKABQz5TpAADULMu81K8VK1bkggsuyK9//eveEr25uTnvete7csYZZ6Qo6vNXma6urlx33XW5+uqrn7GG+siRI/POd74zp5xySkaOHFnFhOySlOkAMCDq8ydQAAAGBWV6/XnwwQcze/bs3H777b3bRo4cmVNOOSWnnnpqFZMNrLIsc/PNN+eKK67IH/7wh97tTU1NOfbYY3PmmWdmwgSrevAkZToADIi+74wDAADQz5YuXZpPfepT+d3vfpeyLJMkY8aMycyZM3PiiSdWOd3AK4oir33ta/Pa174299xzTy677LIsXLgwGzduzPXXX5+f/vSnmTp1as4+++y8+MUvrnZcAIBBQZkOAABUzT333JMLL7wwixcv7i3Rx44dmzPOOCNve9vbqpxu1zBlypRceeWVWbFiRf75n/85N9xwQzZs2JBFixblpJNOyn777ZcPfOADmT59et0ufwMAsCvwkxYAADXLMi+167//+79z0UUXZcmSJb3bxo0blw9+8IN5wxveUMVku761a9fm2muvzbe+9a38+c9/7t0+duzYvPe978073vGODB06tIoJqYKOoiis+wMA/UyZDgBAzSrL8oIkbdXOwfa77bbbcvHFF+eBBx7o3TZhwoT84z/+Y2bMmFHFZLWnUqnkJz/5Sa688so88sgjvdubm5vzlre8JaeddlrGjh1bxYQMIGU6AAwAZToAADVLmV47brnllnz+85/PQw891Ltt4sSJOeecc3LkkUdWMVl9WLRoUS677LLcfffdvcvlNDY25ogjjshZZ52V/fbbr8oJ6VduQAoAA0KZDgBAzbLMy67vpptuyiWXXJKOjo7ebfvtt18+9rGP5ZWvfGUVk9Wn+++/P5dffnluvvnmVCqVJD03M50yZUo+9KEPpaWlpcoJ6RfKdAAYEG5ACgAA7HQ//vGPc/nll2flypVJegrdgw46KOedd14OPfTQKqerX/vtt1++9KUv5bHHHsvXvva1/OAHP8j69etz9913p7W1NRMmTMj73ve+HH/88WloaKh2XACAmmIyHQCAmmUyfdfzH//xH7nyyivz2GOP9W6bMmVKzj///EyePLmKyQanrq6ufO9738u//Mu/5NFHH+3dPmrUqJx44on5h3/4h4wYMaKKCdkpTKYDwIBQpgMAULOU6buOb37zm7n66quzZs2aJD2T6C95yUtywQUXZP/9969uOFKWZX7+85/niiuuyH333de7fciQITnuuONyxhlnZPz48dULyHOjTAeAAaFMBwCgZinTq+9rX/tarrnmmqxduzZJT4k+derUtLW1ZeLEiVVOx5bcfffdufTSS3P77bf33qy0oaEh06ZNy1lnnZUpU6ZUOSE7oKMoignVDgEA9U6ZDgBAzSrL8oIkbdXOMdiUZZmvfOUr+c53vpPOzs4kPSX6YYcdlvPPP9+Ec43o6OjIV77ylfzsZz/Lxo0be7cfeOCB+cAHPpAjjzwyReFXxhqhTAeAAeAnIwAAapYyfWB1d3fn0ksvzXXXXZf169cn6SnRjzzyyJx//vnZfffdq5yQHfHEE0/kmmuuyb/927/liSee6N2+xx575LTTTstb3vKWDB06tIoJ6ZNlXgBgQCjTAQCoWZZ5GRhdXV354he/mB/96EfZsGFDkqSxsTFHH310zjvvvIwePbrKCdkZuru78+Mf/zhz5sxJR0dH7/bm5ua8/e1vz6mnnpoxY8ZUMSFbpUwHgAHRUO0AAADAwFuzZk3mzZu3zWPWrl2b888/P0ceeWS+//3vZ8OGDWlqasrxxx+fBQsW5LOf/awivY40NjbmzW9+c66//vpceeWVmTJlSoqiSGdnZ6699tocc8wxOeecc/Lggw/2ea5Vq1b1rscOAFAvmqodAAAAGFiPP/54zjzzzCxfvjyHHXZYRowY8Yz9a9asyac//enMnz8/3d3dSZIhQ4bkjW98Yz7ykY9Y8mMQeOUrX5lvfetbue+++/LlL385t956a7q7uzNv3rzMnz8/hxxySM4+++y84hWv2OLzL7rooowbNy4f/ehH09BghgsAqA/KdAAAGERWrVqV008/PUuWLEmSfP/7389JJ52UJHn00UfzqU99KrfeemsqlUqSZNiwYfm7v/u7fOhDH0pTk18fBpv9998/l156aVatWpWvfe1r+eEPf5j169fnd7/7XWbOnJl99tknZ5xxRl73utf1lub3339/FixYkKTn83bRRRf5BxgAoC5YMx0AgJplzfRnZ8WKFTn99NNz//33927bY4898o1vfCOf+cxn8qtf/ap3aY7hw4fn7//+73PmmWemsbGxWpHZxaxfvz7//u//nm984xt5/PHHe7ePHj06J598ck444YRcdtll+d73vte7r6WlJZdccklGjRpVjciDRUdRFBOqHQIA6p0yHQCAmlWW5QVJ2qqdoxY8/PDDmTVrVpYvX77N40aMGJGTTjopp512WorCrwtsWVmWmTt3br761a/mgQce6N3e1NSU7u7uzdZLP/jgg3PFFVdk3LhxAx11sFCmA8AA8NMxAAA1S5m+fZYtW5ZZs2alo6Njq8eMGjUqp556ak4++eQBTEY9+N3vfpfLLrssv/3tb7d509GJEyfmq1/9aiZNmjSA6QaJBW3rcu9PPljMWnRVtaMAQD1zJxgAAGpX+zRFeh+WLl2amTNnbrNIT5Kzzz5bkc4OeclLXpKrrroq3//+9zNkyJCtHrd8+fK85z3vyd133z2A6QAAdh5lOgAA1Kl77703p512Wv70pz/1eezXv/71bNy4cQBSUa8WLlyYDRs2bPOYRx99NK2trfnVr341QKkAAHYeZToAANShO++8M6eeemoee+yx7Tp++fLlueGGG/o5FfWqUqlkzpw523Xs2rVrc+aZZ+ZHP/pRP6cCANi5lOkAAFBnrrnmmpx88slZu3bts3reTTfd1E+JqHe33HJLVq5cud3Hl2WZ2bNn5x3veEceeuihfkwGALDzuAEpAAA1q5zTUqZ1YbVj7DIeeuihXHjhhbntttu2uH/o0KGZNGlSJk2alH333bf3+0mTJmXChAlpaDBrw465++67c8cdd+SPf/xjOjo60tHRkRUrVqSjoyPr16/f5nOLosgxxxyTU045JS960YsGKHHd6SiKYkK1QwBAvWuqdgAAANhhrQtnJ3ET0ictWrQot912W4qiyLBhw3LUUUdl2rRpvYX5uHHjFOb0ixe96EVbLMLLssyaNWueUa53dHRk2bJl+c///M+MGDEia9euzY033pgDDjhAmQ4A7NJMpgMAULPKsrwg2yrT169Jho0esDzVtmbNmtxyyy1paWnJXnvtVe04/W8w/P0OgmtcuXJlrr322pxwwgkZP358teMMrJ3197ugbV3u/ckH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\",\"width\":1491,\"y\":-30,\"x\":-30},\"elements\":{\"page\":{\"gridSize\":15,\"showGrid\":true,\"orientation\":\"portrait\",\"height\":2100,\"backgroundColor\":\"transparent\",\"width\":1500,\"padding\":20},\"theme\":{\"linker\":{\"lineStyle\":{\"lineColor\":\"50,50,50\",\"lineWidth\":2},\"fontStyle\":{\"bold\":false,\"color\":\"50,50,50\",\"fontFamily\":\"Arial\",\"italic\":false,\"size\":13}},\"name\":\"colorful_green\",\"shape\":{\"lineStyle\":{\"lineColor\":\"50,50,50\",\"lineWidth\":2},\"fillStyle\":{\"color\":\"110,212,100\",\"type\":\"solid\"},\"fontStyle\":{\"bold\":false,\"color\":\"50,50,50\",\"fontFamily\":\"Arial\",\"italic\":false,\"size\":13}}},\"elements\":{\"1674f16afdf82c\":{\"to\":{\"id\":\"1674f114e4defb\",\"angle\":4.71238898038469,\"y\":244.5999984741211,\"x\":791.600004196167},\"id\":\"1674f16afdf82c\",\"linkerType\":\"normal\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"1674efd65474c\",\"y\":386.6628255394741,\"angle\":1.5707963267948966,\"x\":795.7555018423593},\"dataAttributes\":[],\"locked\":false,\"points\":[],\"group\":\"\",\"props\":{\"zindex\":-3}},\"1674ecde48f6cf\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"mall-zuul-a\"}],\"lineStyle\":{\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674ecde48ff9b\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ecde48feed\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecde48f732\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecde48f506\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674ecde48ffc6\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674ecde48f6cf\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"255,179,102\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f23f09c32d\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":469.1249990463257,\"zindex\":2,\"x\":483.5}},\"1674ece74e4cba\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"mall-eureka-a\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674ece74e4709\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ece74e44c8\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ece74e487b\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ece74e4f75\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674ece74e48f4\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674ece74e4cba\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"255,153,51\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f1e148c302\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":75,\"zindex\":4,\"x\":746.0000057220459}},\"1674f0d671ce9d\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"服务间异步通信\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f0d6dec033\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f0d6dec5a9\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f0d6dec9c2\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f0d6dec965\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f0d6dec87e\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f0d671ce9d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"255,255,255\",\"type\":\"solid\"},\"locked\":false,\"group\":\"\",\"props\":{\"w\":34.5,\"angle\":0,\"h\":56.19999885559082,\"y\":722.4999990463257,\"zindex\":25,\"x\":808}},\"1674eccd695798\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"nginx\"}],\"lineStyle\":{\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674eccd695bac\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674eccd695b5e\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674eccd695cd2\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674eccd69579d\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674eccd6957b9\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674eccd695798\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":501.9499988555908,\"zindex\":1,\"x\":287}},\"1674f0d236ab76\":{\"to\":{\"id\":\"1674efd65474c\",\"angle\":4.71238898038469,\"y\":656.6000061035156,\"x\":852.2000007629395},\"id\":\"1674f0d236ab76\",\"linkerType\":\"broken\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"1674f061c6694b\",\"y\":843.5999984741211,\"angle\":1.5707963267948966,\"x\":851.6090164982775},\"dataAttributes\":[],\"locked\":false,\"points\":[{\"y\":750.1000022888184,\"x\":851.6090164982775},{\"y\":750.1000022888184,\"x\":852.2000007629395}],\"group\":\"\",\"props\":{\"zindex\":24}},\"1674f147706488\":{\"id\":\"1674f147706488\",\"to\":{\"id\":\"1674f111ef4a69\",\"y\":156.30000019073486,\"angle\":1.5707963267948966,\"x\":721.1499996185303},\"text\":\"\",\"linkerType\":\"normal\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"1674ece74e4cba\",\"y\":115,\"angle\":4.71238898038469,\"x\":806.0000057220459},\"props\":{\"zindex\":29}},\"1674ed19c6a0e5\":{\"id\":\"1674ed19c6a0e5\",\"to\":{\"id\":\"1674eccd695798\",\"y\":521.9499988555908,\"angle\":0,\"x\":287},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{\"lineWidth\":1},\"points\":[{\"y\":463.6499996185303,\"x\":234.5},{\"y\":521.9499988555908,\"x\":234.5}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"1674ece2d36772\",\"y\":463.6499996185303,\"angle\":3.141592653589793,\"x\":182},\"group\":\"\",\"props\":{\"zindex\":12}},\"1674f22e040d98\":{\"id\":\"1674f22e040d98\",\"to\":{\"id\":\"1674f219f713c7\",\"y\":521.9499988555908,\"angle\":0,\"x\":475.35000228881836},\"text\":\"\",\"linkerType\":\"normal\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"1674eccd695798\",\"y\":521.9499988555908,\"angle\":3.141592653589793,\"x\":407},\"group\":\"\",\"props\":{\"zindex\":42}},\"1674f0c56568c9\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"获取服务列表\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f0c5d8d2cf\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f0c5d8da64\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f0c5d8d709\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f0c5d8de1d\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f0c5d8d2df\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f0c56568c9\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"255,255,255\",\"type\":\"solid\"},\"locked\":false,\"group\":\"\",\"props\":{\"w\":34.5,\"angle\":0,\"h\":56.19999885559082,\"y\":278.30000019073486,\"zindex\":22,\"x\":842.5}},\"1674f1a3744be\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"mall-search-b\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f1a409ca28\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f1a409ce34\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f1a409cfe5\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f1a409ca95\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f1a409cbe\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f1a3744be\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"102,255,255\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f1d192dda3\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":596.6000022888184,\"zindex\":40,\"x\":760.0909613764784}},\"1674f0bc1e7ef6\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"注册\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f0bc1e734d\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f0bc1e7d04\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f0bc1e742b\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f0bc1e7a5b\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f0bc1e7f11\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f0bc1e7ef6\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"255,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":51,\"y\":304.4000072479248,\"h\":24.39999771118164,\"angle\":0,\"x\":760.0909613764784,\"zindex\":21}},\"1674f061c6694b\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"RabbitMq\"}],\"lineStyle\":{\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f0624ae4df\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f0624ae9e5\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f0624aedce\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f0624ae73a\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f0624aeade\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f061c6694b\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":843.5999984741211,\"zindex\":18,\"x\":773.2090226017931}},\"1674f114e4defb\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"255,153,51\",\"lineStyle\":\"dashed\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f114e4db1a\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f114e4d99a\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f114e4d078\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f114e4dfd6\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f114e4d5c2\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f114e4defb\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"255,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f1e148c302\",\"props\":{\"w\":323.3999938964844,\"y\":58.59999084472656,\"h\":186.60000705718994,\"angle\":0,\"x\":653.0000057220459,\"zindex\":-2}},\"1674ece2d36772\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"APP\"}],\"lineStyle\":{\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674ece2d36e86\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ece2d36fa2\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ece2d365a8\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ece2d36224\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674ece2d36ea2\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674ece2d36772\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"\",\"props\":{\"w\":120,\"y\":443.6499996185303,\"h\":40,\"angle\":0,\"x\":62,\"zindex\":3}},\"1674f0049cfbdf\":{\"to\":{\"id\":\"1674efef5a71ff\",\"angle\":0,\"y\":521.9499988555908,\"x\":1205.1999969482422},\"id\":\"1674f0049cfbdf\",\"linkerType\":\"broken\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"1674efd65474c\",\"angle\":3.141592653589793,\"y\":521.9499988555908,\"x\":991.5499877929688},\"dataAttributes\":[],\"locked\":false,\"points\":[{\"y\":521.9499988555908,\"x\":1098.3749923706055},{\"y\":521.9499988555908,\"x\":1098.3749923706055}],\"group\":\"\",\"props\":{\"zindex\":17}},\"1674f1a208426c\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"mall-admin-b\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f1a28950f\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f1a2895a16\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f1a2896d2b\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f1a2896dc4\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f1a2896a0f\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f1a208426c\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"102,255,255\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f1d192dda3\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":476.60000228881836,\"zindex\":39,\"x\":856.3999996185303}},\"1674ecec8e0d5d\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"mall-portal-a\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674ecec8e0125\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ecec8e09f1\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecec8e0573\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecec8e090b\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674ecec8e02ee\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674ecec8e0d5d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"102,255,255\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f1d192dda3\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":417.51666704813636,\"zindex\":5,\"x\":674.1000003814697}},\"1674ecfb6f2482\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"Mysql\"}],\"lineStyle\":{\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674ecfb6f2bcc\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ecfb6f2d6e\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecfb6f28e2\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecfb6f24d6\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674ecfb6f2c51\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674ecfb6f2482\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"0,255,128\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f213f1452f\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":375.8500003814697,\"zindex\":8,\"x\":1238.1999969482422}},\"1674f154057b6\":{\"id\":\"1674f154057b6\",\"to\":{\"id\":\"1674ece74e4cba\",\"y\":115,\"angle\":4.71238898038469,\"x\":806.0000057220459},\"text\":\"\",\"linkerType\":\"normal\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"1674f111ef4a69\",\"y\":156.30000019073486,\"angle\":1.5707963267948966,\"x\":721.1499996185303},\"props\":{\"zindex\":30}},\"1674f225096968\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"mall-zuul-b\"}],\"lineStyle\":{\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f22577d76f\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f22577ddbd\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f22577d5c3\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f22577d705\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f22577d9cd\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f225096968\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"255,179,102\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f23f09c32d\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":534.774998664856,\"zindex\":41,\"x\":483.5}},\"1674f194a22f19\":{\"to\":{\"id\":\"1674f061c6694b\",\"angle\":1.5707963267948966,\"y\":843.6000061035156,\"x\":803.2000007629395},\"id\":\"1674f194a22f19\",\"linkerType\":\"normal\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"1674efd65474c\",\"y\":656.6000061035156,\"angle\":4.71238898038469,\"x\":804.2000007629395},\"dataAttributes\":[],\"locked\":false,\"points\":[],\"group\":\"\",\"props\":{\"zindex\":37}},\"1674ecfecebf6f\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"Redis\"}],\"lineStyle\":{\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674ecfeceb442\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ecfecebbe8\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecfeceb55b\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecfecebd04\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674ecfeceb065\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674ecfecebf6f\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"0,255,128\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f213f1452f\",\"props\":{\"w\":120,\"y\":457.51666704813636,\"h\":40,\"angle\":0,\"x\":1238.1999969482422,\"zindex\":9}},\"1674f19ed44a9f\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"mall-portal-b\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f19f5d46e3\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f19f5d45e9\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f19f5d46ee\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f19f5d4fa7\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f19f5d4b05\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f19ed44a9f\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"102,255,255\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f1d192dda3\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":476.60000228881836,\"zindex\":38,\"x\":678.1000003814697}},\"1674f0e0cb450c\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"数据存储\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f0e12fc169\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f0e12fcfc8\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f0e12fc21f\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f0e12fcec7\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f0e12fc828\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f0e0cb450c\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"255,255,255\",\"type\":\"solid\"},\"locked\":false,\"group\":\"\",\"props\":{\"w\":73.5,\"angle\":0,\"h\":22.19999885559082,\"y\":490.5999984741211,\"zindex\":26,\"x\":1054.8999938964844}},\"1674efd65474c\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"0,255,255\",\"lineStyle\":\"dashed\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674efd654755c\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674efd6547adc\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674efd6547bb6\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674efd6547249\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674efd6547023\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674efd65474c\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"255,255,255\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f1d192dda3\",\"props\":{\"w\":329.799991607666,\"angle\":0,\"h\":271,\"y\":386.4499988555908,\"zindex\":0,\"x\":661.7499961853027}},\"1674ed1d77f1cc\":{\"id\":\"1674ed1d77f1cc\",\"to\":{\"id\":\"1674eccd695798\",\"y\":521.9499988555908,\"angle\":0,\"x\":287},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{\"lineWidth\":1},\"points\":[{\"y\":576.6000022888184,\"x\":234.5},{\"y\":521.9499988555908,\"x\":234.5}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"1674ed1c0498f\",\"y\":576.6000022888184,\"angle\":3.141592653589793,\"x\":182},\"group\":\"\",\"props\":{\"zindex\":14}},\"1674f154d44457\":{\"id\":\"1674f154d44457\",\"to\":{\"id\":\"1674ece74e4cba\",\"y\":115,\"angle\":4.71238898038469,\"x\":806.0000057220459},\"text\":\"\",\"linkerType\":\"normal\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"1674f11267bec5\",\"y\":156.30000019073486,\"angle\":1.5707963267948966,\"x\":897.6499996185303},\"props\":{\"zindex\":31}},\"1674ecf0675037\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"mall-search-a\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674ecf0675d4\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ecf0675f59\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecf06754c2\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecf0675c83\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674ecf0675aba\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674ecf0675037\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"102,255,255\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f1d192dda3\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":539.8203326087139,\"zindex\":6,\"x\":761.9909609950087}},\"1674f16bf3dcba\":{\"to\":{\"id\":\"1674efd65474c\",\"angle\":1.5707963267948966,\"y\":386.6628255394741,\"x\":852.330677863118},\"id\":\"1674f16bf3dcba\",\"linkerType\":\"normal\",\"text\":\"\",\"lineStyle\":{},\"name\":\"linker\",\"from\":{\"id\":\"1674f114e4defb\",\"y\":244.5999984741211,\"angle\":4.71238898038469,\"x\":847.600004196167},\"dataAttributes\":[],\"locked\":false,\"points\":[],\"group\":\"\",\"props\":{\"zindex\":36}},\"1674f219f713c7\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"255,179,102\",\"lineStyle\":\"dashed\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f219f716d7\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f219f71a24\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f219f713ac\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f219f71ae\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f219f71bcb\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f219f713c7\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"basic\",\"title\":\"矩形\",\"name\":\"rectangle\",\"fillStyle\":{\"color\":\"255,255,255\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f23f09c32d\",\"props\":{\"w\":136.29999542236328,\"y\":445.8124985694885,\"h\":152.2750005722046,\"angle\":0,\"x\":475.35000228881836,\"zindex\":-4}},\"1674f156e5bdf7\":{\"id\":\"1674f156e5bdf7\",\"to\":{\"id\":\"1674f11267bec5\",\"y\":176.30000019073486,\"angle\":0,\"x\":837.6499996185303},\"text\":\"\",\"linkerType\":\"normal\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"1674f111ef4a69\",\"y\":176.30000019073486,\"angle\":3.141592653589793,\"x\":781.1499996185303},\"props\":{\"zindex\":34}},\"1674efecac0351\":{\"id\":\"1674efecac0351\",\"to\":{\"id\":\"1674efd65474c\",\"y\":521.9499988555908,\"angle\":0,\"x\":661.7499961853027},\"text\":\"\",\"linkerType\":\"broken\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[{\"y\":521.9499988555908,\"x\":636.6999969482422},{\"y\":521.9499988555908,\"x\":636.6999969482422}],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"1674f219f713c7\",\"y\":521.9499988555908,\"angle\":3.141592653589793,\"x\":611.6499977111816},\"group\":\"\",\"props\":{\"zindex\":16}},\"1674ed048d7a2f\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"ElasticSearch\"}],\"lineStyle\":{\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674ed048d704c\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ed048d72c\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ed048d7ace\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ed048d7737\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674ed048d7f8f\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674ed048d7a2f\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"0,255,128\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f213f1452f\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":542.183333714803,\"zindex\":10,\"x\":1238.1999969482422}},\"1674ed1c0498f\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"PC\"}],\"lineStyle\":{\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674ed1c0499ca\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ed1c0498d\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ed1c04958f\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ed1c04907d\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674ed1c0493e6\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674ed1c0498f\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{},\"locked\":false,\"group\":\"\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":556.6000022888184,\"zindex\":13,\"x\":62}},\"1674efef5a71ff\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"\"}],\"lineStyle\":{\"lineColor\":\"0,255,128\",\"lineStyle\":\"dashed\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674efef5a7dc3\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674efef5a7f4f\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674efef5a7852\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674efef5a7dc9\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674efef5a7ff7\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674efef5a71ff\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"255,255,255\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f213f1452f\",\"props\":{\"w\":186,\"angle\":0,\"h\":325,\"y\":359.4499988555908,\"zindex\":-1,\"x\":1205.1999969482422}},\"1674f156793ae6\":{\"id\":\"1674f156793ae6\",\"to\":{\"id\":\"1674f111ef4a69\",\"y\":176.30000019073486,\"angle\":3.141592653589793,\"x\":781.1499996185303},\"text\":\"\",\"linkerType\":\"normal\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"1674f11267bec5\",\"y\":176.30000019073486,\"angle\":0,\"x\":837.6499996185303},\"props\":{\"zindex\":33}},\"1674ed110a4f7d\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"y\":0,\"h\":\"h\",\"x\":10},\"text\":\"Mongo\"}],\"lineStyle\":{\"lineWidth\":0},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674ed110a4d8d\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ed110a4268\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ed110a41e6\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ed110a40e1\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674ed110a44f9\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ed110a42a\",\"category\":\"default\",\"name\":\"成本\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ed110a4003\",\"category\":\"default\",\"name\":\"时间\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ed110a4f41\",\"category\":\"default\",\"name\":\"部门\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ed110a4446\",\"category\":\"default\",\"name\":\"输入\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ed110a4e63\",\"category\":\"default\",\"name\":\"输出\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ed110a44b5\",\"category\":\"default\",\"name\":\"风险\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ed110a452f\",\"category\":\"default\",\"name\":\"备注\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674ed110a4f7d\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"category\":\"flow\",\"title\":\"流程\",\"name\":\"process\",\"fillStyle\":{\"color\":\"0,255,128\",\"type\":\"solid\"},\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"locked\":false,\"group\":\"1674f213f1452f\",\"props\":{\"w\":120,\"y\":624.8500003814697,\"h\":40,\"angle\":0,\"x\":1238.1999969482422,\"zindex\":11}},\"1674f111ef4a69\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"mall-eureka-b\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f112675f2a\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f112675f48\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f1126751e9\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f112675c28\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f112675b19\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f111ef4a69\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"255,153,51\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f1e148c302\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":156.30000019073486,\"zindex\":27,\"x\":661.1499996185303}},\"1674f11267bec5\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"mall-eureka-c\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674f112eed2f7\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674f112eed489\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f112eed2c6\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674f112eed7d3\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674f112eed788\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674f11267bec5\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"255,153,51\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f1e148c302\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":156.30000019073486,\"zindex\":28,\"x\":837.6499996185303}},\"1674ecf413e047\":{\"textBlock\":[{\"position\":{\"w\":\"w-20\",\"h\":\"h\",\"y\":0,\"x\":10},\"text\":\"mall-admin-a\"}],\"lineStyle\":{\"lineColor\":\"255,255,255\",\"lineWidth\":1},\"link\":\"\",\"children\":[],\"parent\":\"\",\"attribute\":{\"linkable\":true,\"visible\":true,\"container\":false,\"rotatable\":true,\"markerOffset\":5,\"collapsable\":false,\"collapsed\":false},\"fontStyle\":{},\"resizeDir\":[\"tl\",\"tr\",\"br\",\"bl\"],\"dataAttributes\":[{\"id\":\"1674ecf4140c6\",\"category\":\"default\",\"name\":\"序号\",\"value\":\"\",\"type\":\"number\"},{\"id\":\"1674ecf4140058\",\"category\":\"default\",\"name\":\"名称\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecf414046b\",\"category\":\"default\",\"name\":\"所有者\",\"value\":\"\",\"type\":\"string\"},{\"id\":\"1674ecf414023c\",\"category\":\"default\",\"name\":\"连接\",\"value\":\"\",\"type\":\"link\"},{\"id\":\"1674ecf414098d\",\"category\":\"default\",\"name\":\"便笺\",\"value\":\"\",\"type\":\"string\"}],\"shapeStyle\":{\"alpha\":1},\"id\":\"1674ecf413e047\",\"anchors\":[{\"y\":\"0\",\"x\":\"w/2\"},{\"y\":\"h\",\"x\":\"w/2\"},{\"y\":\"h/2\",\"x\":\"0\"},{\"y\":\"h/2\",\"x\":\"w\"}],\"title\":\"矩形\",\"category\":\"basic\",\"name\":\"rectangle\",\"path\":[{\"actions\":[{\"action\":\"move\",\"y\":\"0\",\"x\":\"0\"},{\"action\":\"line\",\"y\":\"0\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"w\"},{\"action\":\"line\",\"y\":\"h\",\"x\":\"0\"},{\"action\":\"close\"}]}],\"fillStyle\":{\"color\":\"102,255,255\",\"type\":\"solid\"},\"locked\":false,\"group\":\"1674f1d192dda3\",\"props\":{\"w\":120,\"angle\":0,\"h\":40,\"y\":415.8500003814697,\"zindex\":7,\"x\":856.3999996185303}},\"1674f155d475d2\":{\"id\":\"1674f155d475d2\",\"to\":{\"id\":\"1674f11267bec5\",\"y\":156.30000019073486,\"angle\":1.5707963267948966,\"x\":897.6499996185303},\"text\":\"\",\"linkerType\":\"normal\",\"name\":\"linker\",\"lineStyle\":{},\"points\":[],\"locked\":false,\"dataAttributes\":[],\"from\":{\"id\":\"1674ece74e4cba\",\"y\":115,\"angle\":4.71238898038469,\"x\":806.0000057220459},\"props\":{\"zindex\":32}}}}},\"meta\":{\"id\":\"5bfb97fce4b0ef094cbcfd34\",\"member\":\"5a210b2ee4b04f355d337104\",\"exportTime\":\"2019-08-03 09:49:14\",\"diagramInfo\":{\"category\":\"flow\",\"title\":\"系统架构图\",\"created\":\"2018-11-26 14:51:40\",\"creator\":\"5a210b2ee4b04f355d337104\",\"modified\":\"2018-11-26 16:33:24\"},\"type\":\"ProcessOn Schema File\",\"version\":\"1.0\"}}"
  },
  {
    "path": "document/pos/项目开发进度图.pos",
    "content": "{\"diagram\":{\"image\":{\"height\":200,\"pngdata\":\"iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAsUlEQVR4nO3BAQEAAACCIP+vbkhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8GXHmAAFMgHIEAAAAAElFTkSuQmCC\",\"width\":200,\"y\":0,\"x\":0},\"elements\":{\"id\":\"root\",\"structure\":\"mind_free\",\"leftChildren\":[{\"id\":\"9f28d62a5672\",\"title\":\"前台\",\"parent\":\"root\",\"children\":[{\"id\":\"c68327c7119f\",\"title\":\"首页门户\",\"task\":{\"completion\":\"10\"},\"children\":[],\"parent\":\"9f28d62a5672\",\"icons\":[{\"index\":\"17\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"03d7217100d9\",\"title\":\"商品推荐\",\"task\":{\"completion\":\"35\"},\"children\":[],\"parent\":\"9f28d62a5672\",\"icons\":[{\"index\":\"19\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"f1fe1fc552ab\",\"title\":\"商品搜索\",\"task\":{\"completion\":\"50\"},\"children\":[],\"parent\":\"9f28d62a5672\",\"icons\":[{\"index\":\"20\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"f6df7fb9d389\",\"title\":\"商品展示\",\"task\":{\"completion\":\"50\"},\"children\":[],\"parent\":\"9f28d62a5672\",\"icons\":[{\"index\":\"20\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"ef9a76e89256\",\"title\":\"购物车\",\"task\":{\"completion\":\"50\"},\"children\":[],\"parent\":\"9f28d62a5672\",\"icons\":[{\"index\":\"20\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"b172bea6db59\",\"title\":\"订单流程\",\"task\":{\"completion\":\"50\"},\"children\":[],\"parent\":\"9f28d62a5672\",\"icons\":[{\"index\":\"20\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"5099daff583b\",\"title\":\"会员中心\",\"task\":{\"completion\":\"10\"},\"children\":[],\"parent\":\"9f28d62a5672\",\"icons\":[{\"index\":\"17\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"d8485d715f62\",\"title\":\"客户服务\",\"task\":{\"completion\":\"10\"},\"children\":[],\"parent\":\"9f28d62a5672\",\"icons\":[{\"index\":\"17\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"1766943525e6\",\"title\":\"帮助中心\",\"task\":{\"completion\":\"10\"},\"children\":[],\"parent\":\"9f28d62a5672\",\"icons\":[{\"index\":\"17\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]}]}],\"title\":\"mall\",\"root\":true,\"theme\":\"default\",\"children\":[{\"id\":\"90e923d09398\",\"title\":\"后台\",\"parent\":\"root\",\"children\":[{\"id\":\"dff7f75a0ed4\",\"title\":\"商品管理\",\"task\":{\"completion\":\"100\"},\"parent\":\"90e923d09398\",\"children\":[],\"icons\":[{\"text\":\"&#xe697;\",\"index\":\"24\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"6e33db4f10c9\",\"title\":\"订单管理\",\"task\":{\"completion\":\"100\"},\"parent\":\"90e923d09398\",\"children\":[],\"icons\":[{\"text\":\"&#xe697;\",\"index\":\"24\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"27cc62ad6c28\",\"title\":\"会员管理\",\"task\":{\"completion\":\"10\"},\"children\":[],\"parent\":\"90e923d09398\",\"icons\":[{\"text\":\"&#xe697;\",\"index\":\"17\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"6e37938e8956\",\"title\":\"促销管理\",\"task\":{\"completion\":\"100\"},\"children\":[],\"parent\":\"90e923d09398\",\"icons\":[{\"text\":\"&#xe697;\",\"index\":\"24\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"efe9e584bd7f\",\"title\":\"运营管理\",\"task\":{\"completion\":\"100\"},\"children\":[],\"parent\":\"90e923d09398\",\"icons\":[{\"text\":\"&#xe697;\",\"index\":\"24\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"30b686fb8384\",\"title\":\"内容管理\",\"task\":{\"completion\":\"10\"},\"children\":[],\"parent\":\"90e923d09398\",\"icons\":[{\"text\":\"&#xe697;\",\"index\":\"17\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"885c0538496d\",\"title\":\"统计报表\",\"task\":{\"completion\":\"10\"},\"children\":[],\"parent\":\"90e923d09398\",\"icons\":[{\"text\":\"&#xe697;\",\"index\":\"17\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"e20400573fac\",\"title\":\"财务管理\",\"task\":{\"completion\":\"10\"},\"children\":[],\"parent\":\"90e923d09398\",\"icons\":[{\"text\":\"&#xe697;\",\"index\":\"17\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"1c2047f6a380\",\"title\":\"权限管理\",\"task\":{\"completion\":\"50\"},\"children\":[],\"parent\":\"90e923d09398\",\"icons\":[{\"text\":\"&#xe697;\",\"index\":\"20\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]},{\"id\":\"75c14d3c2f50\",\"title\":\"设置\",\"task\":{\"completion\":\"10\"},\"children\":[],\"parent\":\"90e923d09398\",\"icons\":[{\"text\":\"&#xe697;\",\"index\":\"17\",\"color\":\"rgb(0, 166, 80)\",\"name\":\"completion\"}]}]}]}},\"meta\":{\"id\":\"5bfcade2e4b0ef094cbe3658\",\"member\":\"5a210b2ee4b04f355d337104\",\"exportTime\":\"2019-08-03 09:48:53\",\"diagramInfo\":{\"category\":\"mind_free\",\"title\":\"项目开发进度图\",\"created\":\"2018-11-27 10:37:22\",\"creator\":\"5a210b2ee4b04f355d337104\",\"modified\":\"2018-11-27 10:54:56\"},\"type\":\"ProcessOn Schema File\",\"version\":\"1.0\"}}"
  },
  {
    "path": "document/reference/deploy_windows.md",
    "content": "# mall-swarm 在Windows环境下的部署\n\n## 开发环境搭建\n\n> `mall-swarm`中使用到的环境和`mall`项目中大致相同，具体可以查看[mall在Windows环境下的部署](https://github.com/macrozheng/mall-learning/blob/master/docs/deploy/mall_deploy_windows.md)。\n\n简易环境搭建流程：\n\n- 安装IDEA并导入项目源码；\n- 安装MySql，创建一个`mall`数据库，并导入`/document/sql/mall.sql`文件；\n- 安装Redis、Elasticsearch、MongoDB、RabbitMQ等环境。\n\n## 项目部署\n\n> `mall-swarm`项目启动有先后顺序，大家要按照以下顺序启动。\n\n### 启动注册中心`mall-registory`\n\n- 直接运行com.macro.mall.MallRegistryApplication的main函数即可；\n- 运行完成后可以通过注册中心控制台查看：http://localhost:8001\n\n### 启动配置中心`mall-config`\n\n- 直接运行com.macro.mall.MallConfigApplication的main函数即可；\n- 访问以下接口获取mall-admin在dev环境下的配置信息：http://localhost:8301/master/admin-dev.yml\n\n### 启动监控中心`mall-monitor`\n\n- 直接运行com.macro.mall.MallMonitorApplication的main函数即可；\n- 运行完成后可以通过监控中心控制台查看：http://localhost:8101\n- 输入账号密码`macro:123456`可以登录查看。\n\n### 启动网关服务`mall-gateway`\n\n- 直接运行com.macro.mall.MallGatewayApplication的main函数即可；\n- 访问以下接口获取动态路由规则：http://localhost:8201/actuator/gateway/routes\n\n### 启动后台管理服务`mall-admin`\n\n- 直接运行com.macro.mall.MallAdminApplication的main函数即可；\n- 通过`mall-gateway`网关服务访问接口文档：http://localhost:8201/mall-admin/swagger-ui.html\n\n![](../resource/mall_swarm_windows_06.png)\n\n- 登录接口地址：http://localhost:8201/mall-admin/admin/login\n- 访问登录接口获取到token后放入认证的头信息即可正常访问其他需要登录的接口：\n\n![](../resource/mall_swarm_windows_09.png)\n\n### 启动前台服务`mall-portal`\n\n- 直接运行com.macro.mall.portal.MallPortalApplication的main函数即可；\n- 通过`mall-gateway`网关服务访问接口文档：http://localhost:8201/mall-portal/swagger-ui.html\n\n![](../resource/mall_swarm_windows_07.png)\n\n- 登录接口地址：http://localhost:8201/mall-portal/sso/login\n- 调用需要登录的接口方式同`mall-admin`。\n\n### 启动搜索服务`mall-search`\n\n- 直接运行com.macro.mall.search.MallSearchApplication的main函数即可；\n- 通过`mall-gateway`网关服务访问接口文档：http://localhost:8201/mall-search/swagger-ui.html\n\n![](../resource/mall_swarm_windows_10.png)\n\n### 启动测试服务`mall-demo`\n\n- 直接运行com.macro.mall.MallAdminApplication的main函数即可；\n- 通过`mall-gateway`网关服务访问接口文档：http://localhost:8201/mall-demo/swagger-ui.html\n\n![](../resource/mall_swarm_windows_08.png)\n\n- 可以通过调用FeignAdminController、FeignPortalController、FeignSearchController来测试使用Feign的远程调用功能。\n\n## 效果展示\n\n- 注册中心服务信息：\n\n![](../resource/mall_swarm_windows_01.png)\n\n- 监控中心服务概览信息：\n\n![](../resource/mall_swarm_windows_02.png)\n\n![](../resource/mall_swarm_windows_03.png)\n\n- 监控中心单应用详情信息：\n\n![](../resource/mall_swarm_windows_04.png)\n\n![](../resource/mall_swarm_windows_05.png)\n\n\n"
  },
  {
    "path": "document/reference/dev_flow.md",
    "content": "# mall\n\n## 技术选型\n\n### 后端技术\n\n技术 | 名称 \n----|----\nSpring Boot | 容器+MVC框架\nSpring Security | 认证和授权框架\nMyBatis | ORM框架  \nMyBatisGenerator | 数据层代码生成  \nPageHelper | MyBatis物理分页插件  \nSwagger-UI | 文档生产工具\nHibernator-Validator | 验证框架\nElasticsearch | 搜索引擎\nRabbitMq | 消息队列\nRedis | 分布式缓存\nMongoDb | NoSql数据库\nDocker | 应用容器引擎\nDruid | 数据库连接池\n\n### 前端技术\n\n技术 | 名称 \n----|----\nVue | 前端框架\nVue-router | 路由框架\nVuex | 全局状态管理框架\nElement | 前端UI框架\nAxios | 前端HTTP框架\nJs-cookie | cookie管理工具\n\n### 框架搭建\n\n功能 | 完成 \n----|----\n集成MyBatis | ✔\n集成MyBatisGenerator | ✔\n集成SpringSecurity | ✔\n集成Swagger-UI | ✔\n集成Hibernator-Validator | ✔\n集成日志功能 | ✔\n集成监控功能 | ✔\ncrud操作demo | ✔\n合理规划包结构 | ✔\nSpringAOP通用日志处理 | ✔\nSpringAOP通用验证失败结果返回 | ✔\nCommonResult对通用返回结果进行封装 | ✔\nSpringSecurity登录改为Restful形式 | ✔\nJWT登录、注册、获取token | ✔\nJTA事务处理 | ✔\n集成单元测试 | ✔\nOSS上传功能 | ✔\nElasticsearch搜索功能 | ✔\nHTTPS支持 | ✔\nRedis数字型ID生成 | ✔\nSpringTask定时任务支持 | ✔\ndocker容器化部署 | ✔\n配置区分生产和测试环境 | ✔\nELK日志收集功能 | ✔\nRabbitMq异步通信 | ✔\nRestTemplate服务间调用 | ✔\nSpringSecurity权限管理功能 | ✔\n集成SpringCloud |\n\n### 使用工具\n\n工具 | 下载地址 \n----|----\n开发工具idea | https://www.jetbrains.com/idea/download\nredis客户端连接工具 | https://redisdesktop.com/download\nmongo客户端连接工具 | https://robomongo.org/download\n本地host管理 | https://oldj.github.io/SwitchHosts/\nLinux远程连接工具 | http://www.netsarang.com/download/software.html\n数据库连接工具 | http://www.formysql.com/xiazai.html\n数据库设计工具 | http://powerdesigner.de/\n原型设计工具 | https://www.axure.com/\n思维导图设计工具 | http://www.edrawsoft.cn/mindmaster\ngif录制工具 | https://www.screentogif.com/\n\n### 后台功能\n\n#### 后台登录功能 ✔\n\n- 后台用户注册功能\n- 后台用户登录后获取token\n- 刷新token功能\n\n#### 商品管理 ✔\n\n> **商品分类管理**\n\n- 按父分类编号分页查看分类列表\n- 添加、编辑、删除分类\n- 转移分类商品\n\n> **商品品牌管理**\n\n- 按品牌名称搜索分页查看品牌列表\n- 添加、编辑、删除品牌\n- 查看当前品牌的所有产品\n\n> **商品属性分类管理**\n\n- 添加商品属性分类（名称）\n- 分页查询全部商品属性分类\n- 删除单个商品属性分类\n- 修改单个属性分类名称\n- 查询单个属性分类信息\n\n> **商品属性管理**\n\n- 根据分类查询属性列表或参数列表（分页，支持类型）\n- 添加商品属性\n- 查询单个商品属性\n- 编辑商品属性\n- 批量删除商品属性\n- 分页查询全部商品属性\n\n> **添加商品**\n\n- 选择商品分类：根据商品分类id查找分类\n- 选择品牌：查询全部品牌\n- 选择运费模版：查询全部运费模版\n- 设置会员价格：查询所有会员等级，传入List<PmsMemberPrice>\n- 添加阶梯价格: 参数传入List<PmsProductLadder>\n- 设置满减价格: 参数传入List<PmsProductFullReduction>\n- 选择商品属性类别:获取所有商品属性分类，根据商品属性分类的id获取规格和参数(type=0->规格；type=1->参数)\n- 选择规格并生成库存信息：前端实现\n- 添加sku库存信息：参数传入List<PmsSkuStock>\n- 设置属性图片：设置到pic和album_pics字段中去\n- 添加商品参数：参数传入List<PmsProductAttributeValue>\n- 添加自定义商品规格：参数传入List<PmsProductAttributeValue>\n- 关联专题:参数传入List<CmsSubjectProductRelation>关系\n- 关联优选:参数传入List<CmsPrefrenceAreaProductRelation>关系\n\n> **修改商品**\n\n- 根据商品id查询商品信息\n- 查询商品基本信息：商品分类名称、品牌名称、运费模版名称\n- 查询商品促销信息：商品的会员价格、阶梯价格、满减价格\n- 查询商品属性信息：商品属性类别名称、sku库存信息、属性分类对应规格和参数值\n- 查询商品关联信息：商品关联专题和关联优选\n- 修改商品信息：商品属性分类及规格不可修改，只支持单个sku的修改、删除、新增；商品属性分类及规格可以修改：修改后同时显示原sku库存及属性分类\n\n> **商品分页查询**\n\n- 商品的状态：全部商品、已上架、未上架、待审核、未通过 (publishStatus verifyStatus)\n- 商品名称(%name%)\n- 商品货号(productSn)\n- 商品分类id(productCategoryId)\n- 商品品牌id(brandId)\n- 批量操作：上下架、推荐、新品、转移分类、放入回收站、审核\n- 查看记录：审核记录，操作日志\n- sku:根据产品及sku编号获取sku信息，批量修改sku信息\n\n> **商品回收管理**\n\n- 分页展示回收商品列表\n- 回收商品还原功能\n\n#### 促销管理\n\n> **秒杀活动管理**\n\n- 活动列表展示\n- 活动上下线\n- 设置活动商品\n- 添加、编辑、删除活动\n\n> **优惠券管理**\n\n- 优惠券列表展示\n- 添加、编辑、删除优惠券\n- 查看优惠券领取记录\n\n> **活动管理**\n\n- 活动列表展示\n- 添加、编辑、删除活动\n- 活动上下线\n- 发布到广告\n\n> **首页推荐**\n\n- 品牌推荐：列表展示、是否推荐、排序、删除、多选加入品牌\n- 新鲜好物：商品列表展示、是否推荐、排序、删除、多选加入商品\n- 人气推荐：商品列表展示、是否推荐、排序、删除、多选加入商品\n- 专题精选：专题列表展示、是否推荐、排序、删除、多选加入专题\n- 广告管理：广告列表展示、是否上线、排序、删除、添加编辑广告\n\n#### 内容管理\n\n> **专题管理**\n\n- 专题列表：查看、删除、推荐专题\n- 添加、编辑专题：选择专题分类、添加、删除关联商品\n- 专题分类管理：控制显示、排序、编辑删除分类\n\n> **优选主题**\n\n- 优选列表：控制显示、排序、删除\n- 添加、编辑优选：关联和删除商品\n\n> **话题管理**\n\n- 专题列表：查看、删除、热门话题\n- 话题分类管理：控制显示、排序、编辑删除分类\n\n> **帮助管理**\n\n- 帮助列表：查看、删除、控制显示\n- 添加、编辑帮助：选择帮助分类\n- 帮助分类管理：控制显示、排序、编辑删除分类\n\n#### 用户管理\n\n> **用户管理**\n\n- 用户列表：帐号启用、删除、群发短信\n- 批量操作：群发短信、站内信、推送、设置标签、赠送优惠券\n- 查看、编辑用户信息：用户详情（统计信息、收货地址、订单记录）、编辑资料、登录日志\n- 购买力筛选：最近消费、消费次数、消费金额、订单均价、商品分类、会员等级、用户标签\n- 用户标签管理：标签列表、添加、编辑、删除\n- 会员等级设置：列表、添加、编辑、设置默认会员等级\n\n> **成才值及积分**\n\n- 成长值及积分查询：列表展示、积分明细、成长值明细、修改数值\n- 任务奖励设置：新手任务、日常任务\n- 更多规则设置：成长值规则、积分规则、积分消费设置\n\n#### 订单管理\n\n> **订单列表**\n\n- 订单搜索：订单编号、收货人姓名/号码、订单状态、订单分类、订单来源、提交时间\n- 订单操作：查看订单、关闭订单、订单发货、订单跟踪、删除订单\n- 批量操作：批量发货、关闭订单、删除订单\n\n> **查看订单**\n\n- 订单状态：提交订单、支付订单、平台发货、确认收货、完成评价\n- 订单详情操作：修改发票信息、修改收货人信息、修改商品信息、修改费用信息、发送站内信、关闭订单、备注订单、取消订单、订单跟踪、删除订单\n- 订单基本信息：订单信息、优惠信息、用户信息\n- 发票信息：类型、抬头、内容、收票人信息\n- 收货人信息：收货人、手机号、邮政编码、收货地址\n- 商品信息：包含商品基本信息\n- 费用信息：合计及优惠信息\n- 操作信息：订单状态改变记录\n\n> **订单设置**\n\n- 秒杀订单超时时间\n- 正常订单超时时间\n- 订单自动完成时间\n- 自动结束交易时间\n- 自动好评时间\n\n> **退货申请处理**\n\n- 退货申请搜索：服务单号、收货人姓名/号码、处理状态、申请时间、操作人员、处理时间\n- 批量操作：删除\n- 查看详情：退货商品、服务单信息、确认退货、拒绝退货、确认收货\n\n> **退货原因设置**\n\n- 原因列表：类型、排序、是否启用、添加时间\n- 添加、编辑原因：同上\n- 批量操作：删除\n\n#### 权限管理 ✔\n\n> **权限管理**\n\n- 权限管理：添加权限、删除权限、修改权限、以树形结构返回权限\n- 角色管理：添加角色、删除角色、更新角色、角色列表、获取相应角色权限、修改相应角色权限\n- 成员管理：添加、编辑、删除成员、成员列表、为成员分配角色、获取成员角色、分配+-权限、获取权限列表\n\n角色 | 菜单 \n----|----\n管理员 | 所有菜单权限\n运营 | 首页、用户、促销、运营、内容\n财务 | 首页、统计、财务\n美工 | 首页、商品\n客服 | 首页、商品、订单\n\n### 前台功能\n\n#### 商品搜索 ✔\n\n> **综合搜索功能**\n\n- 搜索：根据商品标题、副标题、关键字进行搜索；\n- 筛选：未选择分类时聚合搜索结果，选择出现次数最多的分类，选择分类以后可以根据选择分类的筛选字段进行筛选；\n- 排序：按新品、销量、价格进行排序\n- 搜索返回结果：商品ID、商品图片、名称、副标题、价格、商品销量、新品、商品的参数、品牌名称、分类名称\n- 接口：从数据库中查询相关数据并导入es,插入（修改）数据接口，删除数据接口\n- 品牌分类筛选：根据搜索结果聚合返回品牌、分类及属性\n\n> **商品推荐功能**\n\n- 推荐某商品的相关商品、根据该商品的品牌（10）、分类（6）、名称（8）、关键字（2）、副标题（2）\n- 根据用户一周浏览记录推荐商品，根据用户搜索记录推荐商品\n\n> **商品热搜功能**\n\n- 根据用户搜索记录聚合生成热搜词\n\n> **商品搜索联想功能** \n\n- 根据用户搜索记录聚合生成热搜词\n\n#### 购物流程 ✔\n\n> **购物车** \n\n- 添加商品到购物车\n- 购物车商品列表（商品主图、商品名称、商品数量、商品规格）\n- 修改购物车中商品数量\n- 购物车中商品重选规格\n- 购物车中商品删除功能\n\n> **生成确认单** \n\n- 生成确认单信息：收货信息、商品信息、价格信息、发票信息、支付方式\n- 选择收货地址：默认收货地址\n- 选择优惠券及积分抵扣：展示可用优惠券和不可以优惠券\n- 计算商品价格：商品合计、运费、优惠券抵扣、积分抵扣、活动优惠\n- 选择支付方式：在线支付及货到付款\n- 计算应付金额：合计+运费-优惠券抵扣-积分抵扣-活动优惠\n\n> **提交订单** \n\n- 将确认单信息转化为订单\n- 删除购物车中相关商品\n- 添加订单到数据库并锁定库存\n- 在线支付选择支付方式：支付宝、微信、银联、ApplePay\n\n> **支付订单**\n\n- 支付完成后修改订单状态为已支付、扣除库存\n\n> **取消订单（未支付情况下）**\n\n- 订单超时后自动取消订单，解除商品库存锁定，返还优惠券，积分\n\n#### 会员模块（我的）✔\n\n> **我的关注**\n\n- 关注品牌列表：品牌logo、名称、地址、关注数量\n- 取消关注功能\n- 关注列表展示\n\n> **我的收藏**\n\n- 收藏的商品：商品主图、名称、卖点、价格、找相似\n- 收藏的专题：专题主图、标题、副标题、收藏数、浏览数、评论数\n- 收藏的话题：话题主图、标题、副标题、收藏数、浏览数、评论数\n\n> **我的足迹**\n\n- 浏览过的商品：商品主图、名称、卖点、价格、找相似\n- 删除记录功能\n- 浏览列表展示\n\n> **会员登录注册**\n\n- 登录功能：https登录\n- 注册功能：用户名、密码、手机号、手机验证码\n- 获取验证码：后台生成验证码，验证码绑定手机号\n- 忘记密码：手机号、短信验证码、新密码\n- 登出功能\n"
  },
  {
    "path": "document/reference/function.md",
    "content": "# mall功能结构说明\n\n## 后台管理系统\n\n### 商品管理\n\n![功能结构图-商品.jpg](https://github.com/macrozheng/mall/blob/master/document/resource/mind_product.jpg)\n\n### 订单管理\n\n![功能结构图-订单.jpg](https://github.com/macrozheng/mall/blob/master/document/resource/mind_order.jpg)\n\n### 促销管理\n\n![功能结构图-促销.jpg](https://github.com/macrozheng/mall/blob/master/document/resource/mind_sale.jpg)\n\n### 内容管理\n\n![功能结构图-内容.jpg](https://github.com/macrozheng/mall/blob/master/document/resource/mind_content.jpg)\n\n### 用户管理\n\n![功能结构图-用户.jpg](https://github.com/macrozheng/mall/blob/master/document/resource/mind_member.jpg)\n\n## 前台商城系统 \n\n![功能结构图-前台.jpg](https://github.com/macrozheng/mall/blob/master/document/resource/mind_portal.jpg)"
  },
  {
    "path": "document/sh/mall-admin.sh",
    "content": "#!/usr/bin/env bash\napp_name='mall-admin'\ndocker stop ${app_name}\necho '----stop container----'\ndocker rm ${app_name}\necho '----rm container----'\ndocker rmi `docker images | grep none | awk '{print $3}'`\necho '----rm none images----'\ndocker run -p 8080:8080 --name ${app_name} \\\n--link mysql:db \\\n--link nacos-registry:nacos-registry \\\n-e TZ=\"Asia/Shanghai\" \\\n-v /etc/localtime:/etc/localtime \\\n-v /mydata/app/${app_name}/logs:/var/logs \\\n-d mall/${app_name}:1.0-SNAPSHOT\necho '----start container----'"
  },
  {
    "path": "document/sh/mall-auth.sh",
    "content": "#!/usr/bin/env bash\napp_name='mall-auth'\ndocker stop ${app_name}\necho '----stop container----'\ndocker rm ${app_name}\necho '----rm container----'\ndocker rmi `docker images | grep none | awk '{print $3}'`\necho '----rm none images----'\ndocker run -p 8401:8401 --name ${app_name} \\\n--link nacos-registry:nacos-registry \\\n-e TZ=\"Asia/Shanghai\" \\\n-v /etc/localtime:/etc/localtime \\\n-v /mydata/app/${app_name}/logs:/var/logs \\\n-d mall/${app_name}:1.0-SNAPSHOT\necho '----start container----'"
  },
  {
    "path": "document/sh/mall-gateway.sh",
    "content": "#!/usr/bin/env bash\napp_name='mall-gateway'\ndocker stop ${app_name}\necho '----stop container----'\ndocker rm ${app_name}\necho '----rm container----'\ndocker rmi `docker images | grep none | awk '{print $3}'`\necho '----rm none images----'\ndocker run -p 8201:8201 --name ${app_name} \\\n--link redis:redis \\\n--link nacos-registry:nacos-registry \\\n-e TZ=\"Asia/Shanghai\" \\\n-v /etc/localtime:/etc/localtime \\\n-v /mydata/app/${app_name}/logs:/var/logs \\\n-d mall/${app_name}:1.0-SNAPSHOT\necho '----start container----'"
  },
  {
    "path": "document/sh/mall-monitor.sh",
    "content": "#!/usr/bin/env bash\napp_name='mall-monitor'\ndocker stop ${app_name}\necho '----stop container----'\ndocker rm ${app_name}\necho '----rm container----'\ndocker rmi `docker images | grep none | awk '{print $3}'`\necho '----rm none images----'\ndocker run -p 8101:8101 --name ${app_name} \\\n--link nacos-registry:nacos-registry \\\n-e TZ=\"Asia/Shanghai\" \\\n-v /etc/localtime:/etc/localtime \\\n-v /mydata/app/${app_name}/logs:/var/logs \\\n-d mall/${app_name}:1.0-SNAPSHOT\necho '----start container----'"
  },
  {
    "path": "document/sh/mall-portal.sh",
    "content": "#!/usr/bin/env bash\napp_name='mall-portal'\ndocker stop ${app_name}\necho '----stop container----'\ndocker rm ${app_name}\necho '----rm container----'\ndocker rmi `docker images | grep none | awk '{print $3}'`\necho '----rm none images----'\ndocker run -p 8085:8085 --name ${app_name} \\\n--link mysql:db \\\n--link redis:redis \\\n--link mongo:mongo \\\n--link rabbitmq:rabbit \\\n--link nacos-registry:nacos-registry \\\n-e TZ=\"Asia/Shanghai\" \\\n-v /etc/localtime:/etc/localtime \\\n-v /mydata/app/${app_name}/logs:/var/logs \\\n-d mall/${app_name}:1.0-SNAPSHOT\necho '----start container----'"
  },
  {
    "path": "document/sh/mall-search.sh",
    "content": "#!/usr/bin/env bash\napp_name='mall-search'\ndocker stop ${app_name}\necho '----stop container----'\ndocker rm ${app_name}\necho '----rm container----'\ndocker rmi `docker images | grep none | awk '{print $3}'`\necho '----rm none images----'\ndocker run -p 8081:8081 --name ${app_name} \\\n--link mysql:db \\\n--link elasticsearch:es \\\n--link nacos-registry:nacos-registry \\\n-e TZ=\"Asia/Shanghai\" \\\n-v /etc/localtime:/etc/localtime \\\n-v /mydata/app/${app_name}/logs:/var/logs \\\n-d mall/${app_name}:1.0-SNAPSHOT\necho '----start container----'"
  },
  {
    "path": "document/sql/mall.sql",
    "content": "/*\n Navicat Premium Data Transfer\n\n Source Server         : localhost\n Source Server Type    : MySQL\n Source Server Version : 50719\n Source Host           : localhost:3306\n Source Schema         : mall\n\n Target Server Type    : MySQL\n Target Server Version : 50719\n File Encoding         : 65001\n\n Date: 11/05/2023 15:48:15\n*/\n\nSET NAMES utf8mb4;\nSET FOREIGN_KEY_CHECKS = 0;\n\n-- ----------------------------\n-- Table structure for cms_help\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_help`;\nCREATE TABLE `cms_help`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `category_id` bigint(20) NULL DEFAULT NULL,\n  `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `show_status` int(1) NULL DEFAULT NULL,\n  `create_time` datetime NULL DEFAULT NULL,\n  `read_count` int(1) NULL DEFAULT NULL,\n  `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '帮助表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_help\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for cms_help_category\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_help_category`;\nCREATE TABLE `cms_help_category`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分类图标',\n  `help_count` int(11) NULL DEFAULT NULL COMMENT '专题数量',\n  `show_status` int(2) NULL DEFAULT NULL,\n  `sort` int(11) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '帮助分类表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_help_category\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for cms_member_report\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_member_report`;\nCREATE TABLE `cms_member_report`  (\n  `id` bigint(20) NULL DEFAULT NULL,\n  `report_type` int(1) NULL DEFAULT NULL COMMENT '举报类型：0->商品评价；1->话题内容；2->用户评论',\n  `report_member_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '举报人',\n  `create_time` datetime NULL DEFAULT NULL,\n  `report_object` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `report_status` int(1) NULL DEFAULT NULL COMMENT '举报状态：0->未处理；1->已处理',\n  `handle_status` int(1) NULL DEFAULT NULL COMMENT '处理结果：0->无效；1->有效；2->恶意',\n  `note` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL\n) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户举报表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_member_report\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for cms_prefrence_area\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_prefrence_area`;\nCREATE TABLE `cms_prefrence_area`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `sub_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `pic` varbinary(500) NULL DEFAULT NULL COMMENT '展示图片',\n  `sort` int(11) NULL DEFAULT NULL,\n  `show_status` int(1) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优选专区' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_prefrence_area\n-- ----------------------------\nINSERT INTO `cms_prefrence_area` VALUES (1, '让音质更出众', '音质不打折 完美现场感', NULL, NULL, 1);\nINSERT INTO `cms_prefrence_area` VALUES (2, '让音质更出众22', '让音质更出众22', NULL, NULL, NULL);\nINSERT INTO `cms_prefrence_area` VALUES (3, '让音质更出众33', NULL, NULL, NULL, NULL);\nINSERT INTO `cms_prefrence_area` VALUES (4, '让音质更出众44', NULL, NULL, NULL, NULL);\n\n-- ----------------------------\n-- Table structure for cms_prefrence_area_product_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_prefrence_area_product_relation`;\nCREATE TABLE `cms_prefrence_area_product_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `prefrence_area_id` bigint(20) NULL DEFAULT NULL,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 25 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优选专区和产品关系表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_prefrence_area_product_relation\n-- ----------------------------\nINSERT INTO `cms_prefrence_area_product_relation` VALUES (1, 1, 12);\nINSERT INTO `cms_prefrence_area_product_relation` VALUES (2, 1, 13);\nINSERT INTO `cms_prefrence_area_product_relation` VALUES (3, 1, 14);\nINSERT INTO `cms_prefrence_area_product_relation` VALUES (4, 1, 18);\nINSERT INTO `cms_prefrence_area_product_relation` VALUES (5, 1, 7);\nINSERT INTO `cms_prefrence_area_product_relation` VALUES (6, 2, 7);\nINSERT INTO `cms_prefrence_area_product_relation` VALUES (7, 1, 22);\nINSERT INTO `cms_prefrence_area_product_relation` VALUES (24, 1, 23);\n\n-- ----------------------------\n-- Table structure for cms_subject\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_subject`;\nCREATE TABLE `cms_subject`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `category_id` bigint(20) NULL DEFAULT NULL,\n  `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `pic` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专题主图',\n  `product_count` int(11) NULL DEFAULT NULL COMMENT '关联产品数量',\n  `recommend_status` int(1) NULL DEFAULT NULL,\n  `create_time` datetime NULL DEFAULT NULL,\n  `collect_count` int(11) NULL DEFAULT NULL,\n  `read_count` int(11) NULL DEFAULT NULL,\n  `comment_count` int(11) NULL DEFAULT NULL,\n  `album_pics` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '画册图片用逗号分割',\n  `description` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `show_status` int(1) NULL DEFAULT NULL COMMENT '显示状态：0->不显示；1->显示',\n  `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,\n  `forward_count` int(11) NULL DEFAULT NULL COMMENT '转发数',\n  `category_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专题分类名称',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '专题表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_subject\n-- ----------------------------\nINSERT INTO `cms_subject` VALUES (1, 1, 'polo衬衫的也时尚', NULL, NULL, NULL, '2018-11-11 13:26:55', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '服装专题');\nINSERT INTO `cms_subject` VALUES (2, 2, '大牌手机低价秒', NULL, NULL, NULL, '2018-11-12 13:27:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '手机专题');\nINSERT INTO `cms_subject` VALUES (3, 2, '晓龙845新品上市', NULL, NULL, NULL, '2018-11-13 13:27:05', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '手机专题');\nINSERT INTO `cms_subject` VALUES (4, 1, '夏天应该穿什么', NULL, NULL, NULL, '2018-11-01 13:27:09', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '服装专题');\nINSERT INTO `cms_subject` VALUES (5, 1, '夏季精选', NULL, NULL, NULL, '2018-11-06 13:27:18', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '服装专题');\nINSERT INTO `cms_subject` VALUES (6, 2, '品牌手机降价', NULL, NULL, NULL, '2018-11-07 13:27:21', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '手机专题');\n\n-- ----------------------------\n-- Table structure for cms_subject_category\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_subject_category`;\nCREATE TABLE `cms_subject_category`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分类图标',\n  `subject_count` int(11) NULL DEFAULT NULL COMMENT '专题数量',\n  `show_status` int(2) NULL DEFAULT NULL,\n  `sort` int(11) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '专题分类表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_subject_category\n-- ----------------------------\nINSERT INTO `cms_subject_category` VALUES (1, '服装专题', NULL, NULL, NULL, NULL);\nINSERT INTO `cms_subject_category` VALUES (2, '手机专题', NULL, NULL, NULL, NULL);\n\n-- ----------------------------\n-- Table structure for cms_subject_comment\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_subject_comment`;\nCREATE TABLE `cms_subject_comment`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `subject_id` bigint(20) NULL DEFAULT NULL,\n  `member_nick_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `member_icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `content` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `create_time` datetime NULL DEFAULT NULL,\n  `show_status` int(1) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '专题评论表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_subject_comment\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for cms_subject_product_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_subject_product_relation`;\nCREATE TABLE `cms_subject_product_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `subject_id` bigint(20) NULL DEFAULT NULL,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 71 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '专题商品关系表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_subject_product_relation\n-- ----------------------------\nINSERT INTO `cms_subject_product_relation` VALUES (1, 1, 12);\nINSERT INTO `cms_subject_product_relation` VALUES (2, 1, 13);\nINSERT INTO `cms_subject_product_relation` VALUES (3, 1, 14);\nINSERT INTO `cms_subject_product_relation` VALUES (4, 1, 18);\nINSERT INTO `cms_subject_product_relation` VALUES (5, 1, 7);\nINSERT INTO `cms_subject_product_relation` VALUES (6, 2, 7);\nINSERT INTO `cms_subject_product_relation` VALUES (7, 1, 22);\nINSERT INTO `cms_subject_product_relation` VALUES (29, 1, 23);\nINSERT INTO `cms_subject_product_relation` VALUES (30, 4, 23);\nINSERT INTO `cms_subject_product_relation` VALUES (31, 5, 23);\nINSERT INTO `cms_subject_product_relation` VALUES (68, 2, 26);\nINSERT INTO `cms_subject_product_relation` VALUES (69, 3, 26);\nINSERT INTO `cms_subject_product_relation` VALUES (70, 6, 26);\n\n-- ----------------------------\n-- Table structure for cms_topic\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_topic`;\nCREATE TABLE `cms_topic`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `category_id` bigint(20) NULL DEFAULT NULL,\n  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `create_time` datetime NULL DEFAULT NULL,\n  `start_time` datetime NULL DEFAULT NULL,\n  `end_time` datetime NULL DEFAULT NULL,\n  `attend_count` int(11) NULL DEFAULT NULL COMMENT '参与人数',\n  `attention_count` int(11) NULL DEFAULT NULL COMMENT '关注人数',\n  `read_count` int(11) NULL DEFAULT NULL,\n  `award_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '奖品名称',\n  `attend_type` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '参与方式',\n  `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '话题内容',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '话题表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_topic\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for cms_topic_category\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_topic_category`;\nCREATE TABLE `cms_topic_category`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分类图标',\n  `subject_count` int(11) NULL DEFAULT NULL COMMENT '专题数量',\n  `show_status` int(2) NULL DEFAULT NULL,\n  `sort` int(11) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '话题分类表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_topic_category\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for cms_topic_comment\n-- ----------------------------\nDROP TABLE IF EXISTS `cms_topic_comment`;\nCREATE TABLE `cms_topic_comment`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `member_nick_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `topic_id` bigint(20) NULL DEFAULT NULL,\n  `member_icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `content` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `create_time` datetime NULL DEFAULT NULL,\n  `show_status` int(1) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '专题评论表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of cms_topic_comment\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for oms_cart_item\n-- ----------------------------\nDROP TABLE IF EXISTS `oms_cart_item`;\nCREATE TABLE `oms_cart_item`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `product_sku_id` bigint(20) NULL DEFAULT NULL,\n  `member_id` bigint(20) NULL DEFAULT NULL,\n  `quantity` int(11) NULL DEFAULT NULL COMMENT '购买数量',\n  `price` decimal(10, 2) NULL DEFAULT NULL COMMENT '添加到购物车的价格',\n  `product_pic` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品主图',\n  `product_name` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称',\n  `product_sub_title` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品副标题（卖点）',\n  `product_sku_code` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品sku条码',\n  `member_nickname` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会员昵称',\n  `create_date` datetime NULL DEFAULT NULL COMMENT '创建时间',\n  `modify_date` datetime NULL DEFAULT NULL COMMENT '修改时间',\n  `delete_status` int(1) NULL DEFAULT 0 COMMENT '是否删除',\n  `product_category_id` bigint(20) NULL DEFAULT NULL COMMENT '商品分类',\n  `product_brand` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `product_sn` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `product_attr` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品销售属性:[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"颜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"4G\\\"}]',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 115 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '购物车表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of oms_cart_item\n-- ----------------------------\nINSERT INTO `oms_cart_item` VALUES (12, 26, 90, 1, 1, 3788.00, NULL, '华为 HUAWEI P20', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2018-08-27 16:53:44', NULL, 1, 19, NULL, NULL, NULL);\nINSERT INTO `oms_cart_item` VALUES (13, 27, 98, 1, 3, 2699.00, NULL, '小米8', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2018-08-27 17:11:53', NULL, 1, 19, NULL, NULL, NULL);\nINSERT INTO `oms_cart_item` VALUES (14, 28, 102, 1, 1, 649.00, NULL, '红米5A', '8天超长待机，137g轻巧机身，高通骁龙处理器小米6X低至1299，点击抢购', '201808270028001', 'windir', '2018-08-27 17:18:02', NULL, 1, 19, NULL, NULL, NULL);\nINSERT INTO `oms_cart_item` VALUES (15, 28, 103, 1, 1, 699.00, NULL, '红米5A', '8天超长待机，137g轻巧机身，高通骁龙处理器小米6X低至1299，点击抢购', '201808270028001', 'windir', '2018-08-28 10:22:45', NULL, 1, 19, NULL, NULL, NULL);\nINSERT INTO `oms_cart_item` VALUES (16, 29, 106, 1, 1, 5499.00, NULL, 'Apple iPhone 8 Plus', '【限时限量抢购】Apple产品年中狂欢节，好物尽享，美在智慧！速来 >> 勾选[保障服务][原厂保2年]，获得AppleCare+全方位服务计划，原厂延保售后无忧。', '201808270029001', 'windir', '2018-08-28 10:50:50', NULL, 1, 19, NULL, NULL, NULL);\nINSERT INTO `oms_cart_item` VALUES (19, 36, 163, 1, 3, 100.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '202002210036001', 'windir', '2020-02-25 15:51:59', NULL, 1, 29, 'NIKE', '6799345', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"秋季\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (20, 36, 164, 1, 2, 120.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '202002210036001', 'windir', '2020-02-25 15:54:23', NULL, 1, 29, 'NIKE', '6799345', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (21, 36, 164, 1, 2, 120.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '202002210036001', 'windir', '2020-02-25 16:49:53', NULL, 1, 29, 'NIKE', '6799345', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (22, 26, 110, 1, 3, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-04 15:34:24', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (23, 27, 98, 1, 7, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-04 15:35:43', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (24, 26, 110, 1, 4, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-04 16:58:17', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (25, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-04 16:58:23', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (26, 28, 102, 1, 4, 649.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', '8天超长待机，137g轻巧机身，高通骁龙处理器小米6X低至1299，点击抢购', '201808270028001', 'windir', '2020-05-04 16:58:26', NULL, 1, 19, '小米', '7437789', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (27, 29, 106, 1, 1, 4999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus 64GB 红色特别版 移动联通电信4G手机', '【限时限量抢购】Apple产品年中狂欢节，好物尽享，美在智慧！速来 >> 勾选[保障服务][原厂保2年]，获得AppleCare+全方位服务计划，原厂延保售后无忧。', '201808270029001', 'windir', '2020-05-04 16:58:29', NULL, 1, 19, '苹果', '7437799', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (28, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-04 17:07:20', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (29, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-04 17:07:23', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (30, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-04 17:08:14', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (31, 29, 106, 1, 1, 4999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus 64GB 红色特别版 移动联通电信4G手机', '【限时限量抢购】Apple产品年中狂欢节，好物尽享，美在智慧！速来 >> 勾选[保障服务][原厂保2年]，获得AppleCare+全方位服务计划，原厂延保售后无忧。', '201808270029001', 'windir', '2020-05-04 17:09:56', NULL, 1, 19, '苹果', '7437799', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (32, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-04 17:13:50', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (33, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-04 17:16:15', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (34, 36, 164, 1, 1, 120.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '202002210036002', 'windir', '2020-05-04 17:19:20', NULL, 1, 29, 'NIKE', '6799345', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (35, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-05 10:41:39', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (36, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-05 10:41:55', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (37, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-05 10:42:57', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (38, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-05 14:29:28', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (39, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-05 14:32:52', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (40, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-05 14:33:20', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (41, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-05 14:49:13', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (42, 26, 111, 1, 1, 3999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026002', 'windir', '2020-05-05 15:26:05', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (43, 28, 102, 1, 1, 649.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', '8天超长待机，137g轻巧机身，高通骁龙处理器小米6X低至1299，点击抢购', '201808270028001', 'windir', '2020-05-16 15:16:04', NULL, 1, 19, '小米', '7437789', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (44, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-16 15:18:00', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (45, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 15:00:16', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (46, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-17 15:00:22', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (47, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 15:14:14', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (48, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 15:20:03', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (49, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 15:21:54', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (50, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 16:07:22', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (51, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-17 16:07:26', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (52, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 19:33:36', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (53, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-17 19:33:39', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (54, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 19:39:07', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (55, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-17 19:41:26', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (56, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-18 16:50:00', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (57, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-18 20:22:04', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (58, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-18 20:22:08', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (59, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-23 16:21:13', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (60, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-05-23 17:01:28', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (61, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-24 09:36:50', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (62, 26, 110, 1, 2, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-05-24 09:44:39', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (63, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-06-07 17:01:48', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (64, 27, 98, 1, 2, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-06-14 15:24:40', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (65, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-06-21 14:27:13', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (66, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-06-21 15:12:14', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (67, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-06-21 15:12:53', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (68, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'windir', '2020-06-21 15:15:10', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (69, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2020-06-27 10:27:48', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (70, 27, 98, 1, 1, 2699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '201808270027001', 'windir', '2022-10-28 14:50:46', NULL, 1, 19, '小米', '7437788', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (71, 37, 201, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 紫色 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元！！！部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券！！！猛戳 ', '202210280037001', 'windir', '2022-10-28 15:27:32', NULL, 1, 19, '苹果', '100038005189', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (72, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'windir', '2022-11-09 15:14:46', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (73, 38, 213, 1, 1, 3599.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款（64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A ）', '【11.11大爱超大爱】iPad9代限量抢购，价格优惠，更享以旧换新至高补贴325元！！快来抢购吧！！ ', '202210280038001', 'windir', '2022-11-09 15:25:28', NULL, 1, 53, '苹果', '100044025833', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (74, 37, 201, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元！！！部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券！！！猛戳 ', '202210280037001', 'windir', '2022-11-09 15:26:04', NULL, 1, 19, '苹果', '100038005189', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (75, 45, 239, 1, 1, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_01.jpg', 'OPPO Reno8 8GB+128GB 鸢尾紫 新配色上市 80W超级闪充 5000万水光人像三摄 3200万前置索尼镜头 5G手机', '【11.11提前购机享价保，好货不用等，系统申请一键价保补差!】【Reno8Pro爆款优惠】 ', '202211080045001', 'windir', '2022-11-09 16:16:23', NULL, 1, 19, 'OPPO', '10052147850350', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"鸢尾紫\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (76, 45, 239, 1, 1, 2299.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_01.jpg', 'OPPO Reno8 8GB+128GB 鸢尾紫 新配色上市 80W超级闪充 5000万水光人像三摄 3200万前置索尼镜头 5G手机', '【11.11提前购机享价保，好货不用等，系统申请一键价保补差!】【Reno8Pro爆款优惠】 ', '202211080045001', 'windir', '2022-11-09 16:18:36', NULL, 1, 19, 'OPPO', '10052147850350', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"鸢尾紫\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (77, 41, 225, 1, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量 墨羽 12GB+256GB 5G智能手机 小米 红米', '【品质好物】天玑8100，2K直屏，5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'windir', '2022-11-10 15:19:36', NULL, 1, 19, '小米', '100035246702', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (78, 37, 201, 1, 2, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元！！！部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券！！！猛戳 ', '202210280037001', 'windir', '2022-11-10 15:19:44', NULL, 1, 19, '苹果', '100038005189', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (79, 38, 213, 1, 1, 3599.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款（64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A ）', '【11.11大爱超大爱】iPad9代限量抢购，价格优惠，更享以旧换新至高补贴325元！！快来抢购吧！！ ', '202210280038001', 'windir', '2022-11-11 15:37:40', NULL, 1, 53, '苹果', '100044025833', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (80, 38, 213, 1, 1, 3599.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款（64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A ）', '【11.11大爱超大爱】iPad9代限量抢购，价格优惠，更享以旧换新至高补贴325元！！快来抢购吧！！ ', '202210280038001', 'windir', '2022-11-11 15:38:12', NULL, 1, 53, '苹果', '100044025833', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (81, 38, 213, 1, 3, 3599.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款（64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A ）', '【11.11大爱超大爱】iPad9代限量抢购，价格优惠，更享以旧换新至高补贴325元！！快来抢购吧！！ ', '202210280038001', 'windir', '2022-11-11 15:38:22', NULL, 1, 53, '苹果', '100044025833', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (82, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'windir', '2022-11-11 16:07:23', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (83, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'windir', '2022-11-11 16:13:11', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (84, 37, 201, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元！！！部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券！！！猛戳 ', '202210280037001', 'windir', '2022-11-11 16:15:05', NULL, 1, 19, '苹果', '100038005189', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (85, 28, 102, 1, 1, 649.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', '8天超长待机，137g轻巧机身，高通骁龙处理器小米6X低至1299，点击抢购', '201808270028001', 'windir', '2022-11-11 16:21:05', NULL, 1, 19, '小米', '7437789', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (86, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'windir', '2022-11-16 10:22:47', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (87, 41, 225, 1, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100，2K直屏，5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'windir', '2022-11-16 10:22:51', NULL, 1, 19, '小米', '100035246702', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (88, 39, 217, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', '【双十一大促来袭】指定型号至高优惠1000，以旧换新至高补贴1000元，晒单赢好礼', '202210280039001', 'windir', '2022-11-16 10:22:54', NULL, 1, 54, '小米', '100023207945', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新小米Pro 14英寸 2.8K屏\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"R7 16G 512\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (89, 37, 201, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元！！！部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券！！！猛戳 ', '202210280037001', 'windir', '2022-11-16 10:23:16', NULL, 1, 19, '苹果', '100038005189', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (90, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'test', '2022-12-21 15:49:00', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (91, 37, 201, 1, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元！！！部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券！！！猛戳 ', '202210280037001', 'test', '2022-12-21 15:49:42', NULL, 1, 19, '苹果', '100038005189', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (92, 41, 225, 1, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100，2K直屏，5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'test', '2022-12-21 15:49:53', NULL, 1, 19, '小米', '100035246702', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (93, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'test', '2022-12-21 15:51:03', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (94, 41, 225, 1, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100，2K直屏，5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'test', '2022-12-21 15:51:28', NULL, 1, 19, '小米', '100035246702', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (95, 41, 225, 1, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100，2K直屏，5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'test', '2022-12-21 16:45:16', NULL, 1, 19, '小米', '100035246702', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (96, 40, 221, 1, 2, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'test', '2022-12-21 16:46:41', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (97, 40, 221, 1, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'test', '2022-12-21 16:50:10', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (98, 40, 221, 1, 2, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'test', '2022-12-23 09:55:11', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (99, 26, 110, 1, 1, 3788.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'test', '2023-01-10 15:39:03', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (100, 26, 111, 1, 1, 3899.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026002', 'test', '2023-01-10 16:58:08', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (101, 26, 110, 1, 1, 3699.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '201806070026001', 'test', '2023-01-10 17:10:26', NULL, 1, 19, '华为', '6946605', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (102, 40, 221, 11, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'member', '2023-05-11 15:24:33', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (103, 41, 225, 11, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100，2K直屏，5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'member', '2023-05-11 15:24:37', NULL, 1, 19, '小米', '100035246702', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (104, 38, 213, 11, 1, 3599.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款', '【11.11大爱超大爱】iPad9代限量抢购，价格优惠，更享以旧换新至高补贴325元！！快来抢购吧！！ ', '202210280038001', 'member', '2023-05-11 15:30:32', NULL, 1, 53, '苹果', '100044025833', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (105, 39, 217, 11, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', '【双十一大促来袭】指定型号至高优惠1000，以旧换新至高补贴1000元，晒单赢好礼', '202210280039001', 'member', '2023-05-11 15:31:38', NULL, 1, 54, '小米', '100023207945', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新小米Pro 14英寸 2.8K屏\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"R7 16G 512\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (106, 44, 235, 11, 1, 369.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_02.jpg', '三星（SAMSUNG）500GB SSD固态硬盘 M.2接口(NVMe协议)', '【满血无缓存！进店抽百元E卡，部分型号白条三期免息】兼具速度与可靠性！读速高达3500MB/s，全功率模式！点击 ', '202211080044001', 'member', '2023-05-11 15:32:16', NULL, 1, 55, '三星', '100018768480', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新品980｜NVMe PCIe3.0*4\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"512GB\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (107, 42, 229, 11, 1, 4999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_01.jpg', 'HUAWEI Mate 50 直屏旗舰 超光变XMAGE影像 北斗卫星消息', '【华为Mate50新品上市】内置66W华为充电套装，超光变XMAGE影像,北斗卫星消息，鸿蒙操作系统3.0！立即抢购！华为新品可持续计划，猛戳》 ', '202211040042001', 'member', '2023-05-11 15:32:44', NULL, 1, 19, '华为', '100035295081', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"曜金黑\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (108, 37, 201, 11, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元！！！部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券！！！猛戳 ', '202210280037001', 'member', '2023-05-11 15:34:32', NULL, 1, 19, '苹果', '100038005189', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (109, 40, 221, 11, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'member', '2023-05-11 15:35:02', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (110, 41, 225, 11, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100，2K直屏，5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'member', '2023-05-11 15:35:21', NULL, 1, 19, '小米', '100035246702', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (111, 40, 221, 11, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'member', '2023-05-11 15:36:57', NULL, 1, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (112, 39, 217, 11, 1, 5999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', '【双十一大促来袭】指定型号至高优惠1000，以旧换新至高补贴1000元，晒单赢好礼', '202210280039001', 'member', '2023-05-11 15:37:04', NULL, 1, 54, '小米', '100023207945', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新小米Pro 14英寸 2.8K屏\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"R7 16G 512\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (113, 40, 221, 11, 1, 2999.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '202211040040001', 'member', '2023-05-11 15:37:57', NULL, 0, 19, '小米', '100027789721', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_cart_item` VALUES (114, 41, 225, 11, 1, 2099.00, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '【品质好物】天玑8100，2K直屏，5500mAh大电量【Note12Pro火热抢购中】 ', '202211040041001', 'member', '2023-05-11 15:38:03', NULL, 0, 19, '小米', '100035246702', '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\n\n-- ----------------------------\n-- Table structure for oms_company_address\n-- ----------------------------\nDROP TABLE IF EXISTS `oms_company_address`;\nCREATE TABLE `oms_company_address`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `address_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址名称',\n  `send_status` int(1) NULL DEFAULT NULL COMMENT '默认发货地址：0->否；1->是',\n  `receive_status` int(1) NULL DEFAULT NULL COMMENT '是否默认收货地址：0->否；1->是',\n  `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收发货人姓名',\n  `phone` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货人电话',\n  `province` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '省/直辖市',\n  `city` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '市',\n  `region` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '区',\n  `detail_address` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详细地址',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '公司收发货地址表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of oms_company_address\n-- ----------------------------\nINSERT INTO `oms_company_address` VALUES (1, '深圳发货点', 1, 1, '大梨', '18000000000', '广东省', '深圳市', '南山区', '科兴科学园');\nINSERT INTO `oms_company_address` VALUES (2, '北京发货点', 0, 0, '大梨', '18000000000', '北京市', NULL, '南山区', '科兴科学园');\nINSERT INTO `oms_company_address` VALUES (3, '南京发货点', 0, 0, '大梨', '18000000000', '江苏省', '南京市', '南山区', '科兴科学园');\n\n-- ----------------------------\n-- Table structure for oms_order\n-- ----------------------------\nDROP TABLE IF EXISTS `oms_order`;\nCREATE TABLE `oms_order`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '订单id',\n  `member_id` bigint(20) NOT NULL,\n  `coupon_id` bigint(20) NULL DEFAULT NULL,\n  `order_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单编号',\n  `create_time` datetime NULL DEFAULT NULL COMMENT '提交时间',\n  `member_username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户帐号',\n  `total_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '订单总金额',\n  `pay_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '应付金额（实际支付金额）',\n  `freight_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '运费金额',\n  `promotion_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '促销优化金额（促销价、满减、阶梯价）',\n  `integration_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '积分抵扣金额',\n  `coupon_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '优惠券抵扣金额',\n  `discount_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '管理员后台调整订单使用的折扣金额',\n  `pay_type` int(1) NULL DEFAULT NULL COMMENT '支付方式：0->未支付；1->支付宝；2->微信',\n  `source_type` int(1) NULL DEFAULT NULL COMMENT '订单来源：0->PC订单；1->app订单',\n  `status` int(1) NULL DEFAULT NULL COMMENT '订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单',\n  `order_type` int(1) NULL DEFAULT NULL COMMENT '订单类型：0->正常订单；1->秒杀订单',\n  `delivery_company` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '物流公司(配送方式)',\n  `delivery_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '物流单号',\n  `auto_confirm_day` int(11) NULL DEFAULT NULL COMMENT '自动确认时间（天）',\n  `integration` int(11) NULL DEFAULT NULL COMMENT '可以获得的积分',\n  `growth` int(11) NULL DEFAULT NULL COMMENT '可以活动的成长值',\n  `promotion_info` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '活动信息',\n  `bill_type` int(1) NULL DEFAULT NULL COMMENT '发票类型：0->不开发票；1->电子发票；2->纸质发票',\n  `bill_header` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发票抬头',\n  `bill_content` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '发票内容',\n  `bill_receiver_phone` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收票人电话',\n  `bill_receiver_email` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收票人邮箱',\n  `receiver_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '收货人姓名',\n  `receiver_phone` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '收货人电话',\n  `receiver_post_code` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货人邮编',\n  `receiver_province` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '省份/直辖市',\n  `receiver_city` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '城市',\n  `receiver_region` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '区',\n  `receiver_detail_address` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详细地址',\n  `note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单备注',\n  `confirm_status` int(1) NULL DEFAULT NULL COMMENT '确认收货状态：0->未确认；1->已确认',\n  `delete_status` int(1) NOT NULL DEFAULT 0 COMMENT '删除状态：0->未删除；1->已删除',\n  `use_integration` int(11) NULL DEFAULT NULL COMMENT '下单时使用的积分',\n  `payment_time` datetime NULL DEFAULT NULL COMMENT '支付时间',\n  `delivery_time` datetime NULL DEFAULT NULL COMMENT '发货时间',\n  `receive_time` datetime NULL DEFAULT NULL COMMENT '确认收货时间',\n  `comment_time` datetime NULL DEFAULT NULL COMMENT '评价时间',\n  `modify_time` datetime NULL DEFAULT NULL COMMENT '修改时间',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 77 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of oms_order\n-- ----------------------------\nINSERT INTO `oms_order` VALUES (12, 1, 2, '201809150101000001', '2018-09-15 12:24:27', 'test', 18732.00, 16377.75, 20.00, 2344.25, 0.00, 10.00, 10.00, 0, 1, 4, 0, '', '', 15, 13284, 13284, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '江苏省', '常州市', '天宁区', '东晓街道', '111', 0, 0, NULL, NULL, NULL, NULL, NULL, '2019-11-09 16:50:28');\nINSERT INTO `oms_order` VALUES (13, 1, 2, '201809150102000002', '2018-09-15 14:24:29', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 1, 1, 1, 0, '', '', 15, 13284, 13284, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, 1000, '2018-10-11 14:04:19', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (14, 1, 2, '201809130101000001', '2018-09-13 16:57:40', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 3, 0, '顺丰快递', '201707196398345', 15, 13284, 13284, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2018-10-13 13:44:04', '2018-10-16 13:43:41', '2022-11-11 16:19:34', NULL, NULL);\nINSERT INTO `oms_order` VALUES (15, 1, 2, '201809130102000002', '2018-09-13 17:03:00', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 1, 1, 3, 0, '顺丰快递', '201707196398346', 15, 13284, 13284, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 1, NULL, '2018-10-13 13:44:54', '2018-10-16 13:45:01', '2018-10-18 14:05:31', NULL, NULL);\nINSERT INTO `oms_order` VALUES (16, 1, 2, '201809140101000001', '2018-09-14 16:16:16', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 4, 0, NULL, NULL, 15, 13284, 13284, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (17, 1, 2, '201809150101000003', '2018-09-15 12:24:27', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 0, 1, 4, 0, '顺丰快递', '201707196398345', 15, NULL, NULL, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, '2018-10-12 14:01:28', NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (18, 1, 2, '201809150102000004', '2018-09-15 14:24:29', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 1, 1, 1, 0, '圆通快递', 'xx', 15, NULL, NULL, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, 1000, NULL, '2018-10-16 14:42:17', NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (19, 1, 2, '201809130101000003', '2018-09-13 16:57:40', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 2, 0, NULL, NULL, 15, NULL, NULL, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (20, 1, 2, '201809130102000004', '2018-09-13 17:03:00', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 1, 1, 3, 0, NULL, NULL, 15, NULL, NULL, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (21, 1, 2, '201809140101000002', '2018-09-14 16:16:16', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 4, 0, NULL, NULL, 15, 18682, 18682, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (22, 1, 2, '201809150101000005', '2018-09-15 12:24:27', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 0, 1, 4, 0, '顺丰快递', '201707196398345', 15, 0, 0, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, '2018-10-12 14:01:28', NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (23, 1, 2, '201809150102000006', '2018-09-15 14:24:29', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 1, 1, 1, 0, '顺丰快递', 'xxx', 15, 0, 0, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, 1000, NULL, '2018-10-16 14:41:28', NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (24, 1, 2, '201809130101000005', '2018-09-13 16:57:40', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 2, 0, NULL, NULL, 15, 18682, 18682, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (25, 1, 2, '201809130102000006', '2018-09-13 17:03:00', 'test', 18732.00, 16377.75, 10.00, 2344.25, 0.00, 10.00, 5.00, 1, 1, 4, 0, NULL, NULL, 15, 18682, 18682, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨22', '18033441849', '518000', '北京市', '北京城区', '东城区', '东城街道', 'xxx', 0, 1, NULL, NULL, NULL, NULL, NULL, '2018-10-30 15:08:31');\nINSERT INTO `oms_order` VALUES (26, 1, 2, '201809140101000003', '2018-09-14 16:16:16', 'test', 18732.00, 16377.75, 0.00, 2344.25, 0.00, 10.00, 0.00, 2, 1, 4, 0, NULL, NULL, 15, 18682, 18682, '单品促销,打折优惠：满3件，打7.50折,满减优惠：满1000.00元，减120.00元,满减优惠：满1000.00元，减120.00元,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (27, 1, NULL, '202002250100000001', '2020-02-25 15:59:20', 'test', 540.00, 540.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, NULL, 0, 0, '无优惠,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '南山区', '科兴科学园', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (28, 1, NULL, '202002250100000002', '2020-02-25 16:05:47', 'test', 540.00, 540.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, NULL, 0, 0, '无优惠,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '南山区', '科兴科学园', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (29, 1, NULL, '202002250100000003', '2020-02-25 16:07:58', 'test', 540.00, 540.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, NULL, 0, 0, '无优惠,无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '南山区', '科兴科学园', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (30, 1, NULL, '202002250100000004', '2020-02-25 16:50:13', 'test', 240.00, 240.00, 20.00, 0.00, 0.00, 0.00, 10.00, 0, 1, 3, 0, '顺丰快递', '12333333', NULL, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '南山区', '科兴科学园', NULL, 1, 0, NULL, '2020-02-25 16:53:29', '2020-02-25 16:54:03', '2020-05-17 19:38:15', NULL, '2020-02-25 16:52:51');\nINSERT INTO `oms_order` VALUES (31, 1, 26, '202005160100000001', '2020-05-16 15:16:54', 'test', 13623.00, 11842.40, 0.00, 1629.60, 1.00, 150.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 13623, 13623, '满减优惠：满5000.00元，减500.00元;打折优惠：满2件，打8.00折;满减优惠：满500.00元，减50.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (32, 1, NULL, '202005170100000001', '2020-05-17 15:00:38', 'test', 6487.00, 6187.00, 0.00, 300.00, 0.00, 0.00, 0.00, 1, 1, 1, 0, NULL, NULL, 15, 6487, 6487, '满减优惠：满3000.00元，减300.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2020-05-17 15:33:28', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (33, 1, NULL, '202005170100000002', '2020-05-17 15:14:18', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 3788, 3788, '满减优惠：满3000.00元，减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (34, 1, NULL, '202005170100000003', '2020-05-17 15:20:10', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 3788, 3788, '满减优惠：满3000.00元，减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 1, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (35, 1, NULL, '202005170100000004', '2020-05-17 15:22:03', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 2, 1, 3, 0, '顺丰快递', '123', 15, 3788, 3788, '满减优惠：满3000.00元，减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2020-05-17 15:29:07', '2020-05-17 15:30:24', '2020-05-17 15:41:45', NULL, NULL);\nINSERT INTO `oms_order` VALUES (36, 1, NULL, '202005170100000005', '2020-05-17 16:59:26', 'test', 10275.00, 9775.00, 0.00, 500.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 10275, 10275, '满减优惠：满5000.00元，减500.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (37, 1, NULL, '202005170100000006', '2020-05-17 19:33:48', 'test', 6487.00, 6187.00, 0.00, 300.00, 0.00, 0.00, 0.00, 1, 1, 3, 0, '顺丰快递', 'aadd', 15, 6487, 6487, '满减优惠：满3000.00元，减300.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2020-05-17 19:33:59', '2020-05-17 19:34:59', '2020-05-17 19:35:50', NULL, NULL);\nINSERT INTO `oms_order` VALUES (38, 1, NULL, '202005170100000007', '2020-05-17 19:39:10', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 3788, 3788, '满减优惠：满3000.00元，减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (39, 1, NULL, '202005170100000008', '2020-05-17 19:41:30', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 1, 1, 3, 0, '顺丰快递', 'sdf', 15, 3788, 3788, '满减优惠：满3000.00元，减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 1, NULL, '2020-05-17 19:41:41', '2020-05-17 19:42:07', '2020-05-17 19:42:36', NULL, NULL);\nINSERT INTO `oms_order` VALUES (40, 1, NULL, '202005180100000001', '2020-05-18 16:50:03', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 3788, 3788, '满减优惠：满3000.00元，减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2020-05-18 16:50:29', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (41, 1, 26, '202005180100000002', '2020-05-18 20:22:24', 'test', 6487.00, 6037.00, 0.00, 300.00, 0.00, 150.00, 0.00, 1, 1, 3, 0, '顺丰快递', '12313', 15, 6487, 6487, '满减优惠：满3000.00元，减300.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 1, 0, NULL, '2020-05-18 20:22:29', '2020-05-18 20:23:03', '2020-05-18 20:23:20', NULL, NULL);\nINSERT INTO `oms_order` VALUES (42, 1, NULL, '202005230100000001', '2020-05-23 16:21:27', 'test', 5398.00, 4318.40, 0.00, 1079.60, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 5398, 5398, '打折优惠：满2件，打8.00折', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 0, 0, NULL, '2020-05-23 16:21:30', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (43, 1, NULL, '202005230100000002', '2020-05-23 17:01:33', 'test', 5398.00, 4318.40, 0.00, 1079.60, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 5398, 5398, '打折优惠：满2件，打8.00折', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (44, 1, NULL, '202005240100000001', '2020-05-24 09:37:07', 'test', 7576.00, 7076.00, 0.00, 500.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 7576, 7576, '满减优惠：满5000.00元，减500.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (45, 1, 25, '202006070100000001', '2020-06-07 17:02:04', 'test', 10275.00, 9674.90, 0.00, 500.00, 0.00, 100.10, 0.00, 1, 1, 1, 0, NULL, NULL, 15, 10275, 10275, '满减优惠：满5000.00元，减500.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 0, 0, NULL, '2020-06-07 17:02:17', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (46, 1, 24, '202006210100000001', '2020-06-21 14:27:34', 'test', 9186.00, 7796.40, 0.00, 1379.60, 0.00, 10.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 9186, 9186, '满减优惠：满3000.00元，减300.00元;打折优惠：满2件，打8.00折', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2020-06-21 14:27:38', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (47, 1, NULL, '202006210100000002', '2020-06-21 15:13:06', 'test', 6487.00, 6187.00, 0.00, 300.00, 0.00, 0.00, 0.00, 1, 1, 3, 0, '顺丰快递', '123131', 15, 6487, 6487, '满减优惠：满3000.00元，减300.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 1, 0, NULL, '2020-06-21 15:13:12', '2020-06-21 15:13:44', '2020-06-21 15:13:58', NULL, NULL);\nINSERT INTO `oms_order` VALUES (48, 1, 26, '202006210100000003', '2020-06-21 15:15:18', 'test', 3788.00, 3338.00, 0.00, 300.00, 0.00, 150.00, 0.00, 2, 1, 3, 0, '圆通快递', '12313', 15, 3788, 3788, '满减优惠：满3000.00元，减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2020-06-21 15:15:20', '2020-06-21 15:15:48', '2020-06-21 15:15:58', NULL, NULL);\nINSERT INTO `oms_order` VALUES (49, 1, NULL, '202006270100000001', '2020-06-27 10:27:56', 'test', 2699.00, 2699.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 2699, 2699, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 0, 0, NULL, '2020-06-27 10:27:58', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (50, 1, NULL, '202210280100000001', '2022-10-28 14:50:58', 'test', 2699.00, 2699.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 2699, 2699, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '清水河街道', NULL, 0, 0, NULL, '2022-10-28 14:51:02', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (51, 1, NULL, '202210280100000002', '2022-10-28 15:27:41', 'test', 5999.00, 5999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-10-28 15:27:44', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (52, 1, 30, '202211090100000001', '2022-11-09 15:14:58', 'test', 2999.00, 2799.00, 0.00, 0.00, 0.00, 200.00, 0.00, 2, 1, 3, 0, '顺丰快递', '1233', 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2022-11-09 15:15:00', '2022-11-09 15:16:12', '2022-11-09 15:16:31', NULL, NULL);\nINSERT INTO `oms_order` VALUES (53, 1, 27, '202211090100000002', '2022-11-09 15:25:38', 'test', 3599.00, 3589.00, 0.00, 0.00, 0.00, 10.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-11-09 15:25:41', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (54, 1, 29, '202211090100000003', '2022-11-09 15:26:11', 'test', 5999.00, 5399.00, 0.00, 0.00, 0.00, 600.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-11-09 15:26:13', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (55, 1, NULL, '202211100100000001', '2022-11-10 16:57:59', 'test', 11998.00, 11998.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (56, 1, 28, '202211110100000001', '2022-11-11 16:12:42', 'test', 2999.00, 2899.00, 0.00, 0.00, 0.00, 100.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-11-11 16:12:48', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (57, 1, NULL, '202211110100000002', '2022-11-11 16:13:14', 'test', 2999.00, 2999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-11-11 16:13:21', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (58, 1, NULL, '202211110100000003', '2022-11-11 16:15:08', 'test', 5999.00, 5999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-11-11 16:17:46', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (59, 1, NULL, '202211110100000004', '2022-11-11 16:21:12', 'test', 649.00, 599.00, 0.00, 50.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 649, 649, '满减优惠：满500.00元，减50.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (60, 1, NULL, '202211160100000001', '2022-11-16 10:36:08', 'test', 11097.00, 11097.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 3, 0, '顺丰快递', '1234555', 15, 0, 0, '无优惠;无优惠;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2022-11-16 10:37:25', '2022-11-16 10:42:50', '2022-11-16 10:44:40', NULL, NULL);\nINSERT INTO `oms_order` VALUES (61, 1, NULL, '202212210100000001', '2022-12-21 15:49:08', 'test', 2999.00, 2999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (62, 1, NULL, '202212210100000002', '2022-12-21 15:49:57', 'test', 8098.00, 8098.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 3, 0, '顺丰快递', 'SDFERR7845', 15, 0, 0, '无优惠;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2022-12-21 15:50:00', '2022-12-21 15:50:23', '2022-12-21 15:50:33', NULL, NULL);\nINSERT INTO `oms_order` VALUES (63, 1, NULL, '202212210100000003', '2022-12-21 15:51:09', 'test', 2999.00, 2999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 2, 0, '顺丰快递', '112', 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-12-21 15:51:11', '2023-01-10 10:14:12', NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (64, 1, NULL, '202212210100000004', '2022-12-21 15:51:35', 'test', 2099.00, 2099.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (65, 1, 28, '202212210100000005', '2022-12-21 16:53:07', 'test', 5098.00, 4788.00, 0.00, 200.00, 10.00, 100.00, 0.00, 2, 1, 2, 0, '圆通快递', '115', 15, 0, 0, '满减优惠：满2000.00元，减200.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2022-12-21 16:53:58', '2023-01-10 10:14:12', NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (66, 1, NULL, '202301100100000001', '2023-01-10 15:34:59', 'test', 5998.00, 5798.00, 0.00, 200.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 0, 0, '满减优惠：满2000.00元，减200.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (67, 1, NULL, '202301100100000002', '2023-01-10 15:39:07', 'test', 3788.00, 3488.00, 0.00, 300.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 3788, 3788, '满减优惠：满3000.00元，减300.00元', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2023-01-10 15:39:16', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (68, 1, NULL, '202301100100000003', '2023-01-10 16:58:19', 'test', 3999.00, 3899.00, 0.00, 100.00, 0.00, 0.00, 0.00, 2, 1, 1, 0, NULL, NULL, 15, 3788, 3788, '单品促销', NULL, NULL, NULL, NULL, NULL, '大梨', '18033441849', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2023-01-10 16:58:21', NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (69, 11, 30, '202305110100000001', '2023-05-11 15:28:56', 'member', 5098.00, 4698.00, 0.00, 200.00, 0.00, 200.00, 0.00, 2, 1, 3, 0, '顺丰快递', '1231313', 15, 0, 0, '满减优惠：满2000.00元，减200.00元;无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2023-05-11 15:28:59', '2023-05-11 15:30:08', '2023-05-11 15:30:16', NULL, NULL);\nINSERT INTO `oms_order` VALUES (70, 11, NULL, '202305110100000002', '2023-05-11 15:30:36', 'member', 3599.00, 3599.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 3, 0, '顺丰快递', '232342', 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2023-05-11 15:30:40', '2023-05-11 15:31:22', '2023-05-11 15:31:30', NULL, NULL);\nINSERT INTO `oms_order` VALUES (71, 11, NULL, '202305110100000003', '2023-05-11 15:31:55', 'member', 5999.00, 5999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 4, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (72, 11, NULL, '202305110100000004', '2023-05-11 15:33:13', 'member', 5368.00, 5368.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 2, 0, '圆通快递', '1231434', 15, 0, 0, '无优惠;无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2023-05-11 15:33:21', '2023-05-11 15:33:43', NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (73, 11, NULL, '202305110100000005', '2023-05-11 15:34:39', 'member', 5999.00, 5999.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0, 1, 0, 0, NULL, NULL, 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (74, 11, NULL, '202305110100000006', '2023-05-11 15:35:05', 'member', 2999.00, 2799.00, 0.00, 200.00, 0.00, 0.00, 0.00, 2, 1, 2, 0, '顺丰快递', '123131', 15, 0, 0, '满减优惠：满2000.00元，减200.00元', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 0, 0, NULL, '2023-05-11 15:35:08', '2023-05-11 15:36:00', NULL, NULL, NULL);\nINSERT INTO `oms_order` VALUES (75, 11, NULL, '202305110100000007', '2023-05-11 15:35:24', 'member', 2099.00, 2099.00, 0.00, 0.00, 0.00, 0.00, 0.00, 2, 1, 3, 0, '顺丰快递', '123131311', 15, 0, 0, '无优惠', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2023-05-11 15:35:26', '2023-05-11 15:36:11', '2023-05-11 15:36:34', NULL, NULL);\nINSERT INTO `oms_order` VALUES (76, 11, 28, '202305110100000008', '2023-05-11 15:37:16', 'member', 8998.00, 8698.00, 0.00, 200.00, 0.00, 100.00, 0.00, 2, 1, 3, 0, '顺丰快递', '1231313', 15, 0, 0, '无优惠;满减优惠：满2000.00元，减200.00元', NULL, NULL, NULL, NULL, NULL, '小李', '18961511111', '518000', '广东省', '深圳市', '福田区', '东晓街道', NULL, 1, 0, NULL, '2023-05-11 15:37:18', '2023-05-11 15:37:33', '2023-05-11 15:37:48', NULL, NULL);\n\n-- ----------------------------\n-- Table structure for oms_order_item\n-- ----------------------------\nDROP TABLE IF EXISTS `oms_order_item`;\nCREATE TABLE `oms_order_item`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单id',\n  `order_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单编号',\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `product_pic` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `product_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `product_brand` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `product_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `product_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '销售价格',\n  `product_quantity` int(11) NULL DEFAULT NULL COMMENT '购买数量',\n  `product_sku_id` bigint(20) NULL DEFAULT NULL COMMENT '商品sku编号',\n  `product_sku_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品sku条码',\n  `product_category_id` bigint(20) NULL DEFAULT NULL COMMENT '商品分类id',\n  `promotion_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品促销名称',\n  `promotion_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品促销分解金额',\n  `coupon_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '优惠券优惠分解金额',\n  `integration_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '积分优惠分解金额',\n  `real_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '该商品经过优惠后的分解金额',\n  `gift_integration` int(11) NULL DEFAULT 0,\n  `gift_growth` int(11) NULL DEFAULT 0,\n  `product_attr` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品销售属性:[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"颜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"4G\\\"}]',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 115 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单中所包含的商品' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of oms_order_item\n-- ----------------------------\nINSERT INTO `oms_order_item` VALUES (21, 12, '201809150101000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '6946605', 3788.00, 1, 90, '201806070026001', 19, '单品促销', 200.00, 2.02, 0.00, 3585.98, 3788, 3788, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (22, 12, '201809150101000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '7437788', 2699.00, 3, 98, '201808270027001', 19, '打折优惠：满3件，打7.50折', 674.75, 1.44, 0.00, 2022.81, 2699, 2699, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (23, 12, '201809150101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠：满1000.00元，减120.00元', 57.60, 0.35, 0.00, 591.05, 649, 649, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (24, 12, '201809150101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 699.00, 1, 103, '201808270028001', 19, '满减优惠：满1000.00元，减120.00元', 62.40, 0.37, 0.00, 636.23, 649, 649, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (25, 12, '201809150101000001', 29, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus', '苹果', '7437799', 5499.00, 1, 106, '201808270029001', 19, '无优惠', 0.00, 2.94, 0.00, 5496.06, 5499, 5499, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (26, 13, '201809150102000002', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '6946605', 3788.00, 1, 90, '201806070026001', 19, '单品促销', 200.00, 2.02, 0.00, 3585.98, 3788, 3788, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (27, 13, '201809150102000002', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '7437788', 2699.00, 3, 98, '201808270027001', 19, '打折优惠：满3件，打7.50折', 674.75, 1.44, 0.00, 2022.81, 2699, 2699, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (28, 13, '201809150102000002', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠：满1000.00元，减120.00元', 57.60, 0.35, 0.00, 591.05, 649, 649, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (29, 13, '201809150102000002', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 699.00, 1, 103, '201808270028001', 19, '满减优惠：满1000.00元，减120.00元', 62.40, 0.37, 0.00, 636.23, 649, 649, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (30, 13, '201809150102000002', 29, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus', '苹果', '7437799', 5499.00, 1, 106, '201808270029001', 19, '无优惠', 0.00, 2.94, 0.00, 5496.06, 5499, 5499, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (31, 14, '201809130101000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '6946605', 3788.00, 1, 90, '201806070026001', 19, '单品促销', 200.00, 2.02, 0.00, 3585.98, 3788, 3788, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (32, 14, '201809130101000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '7437788', 2699.00, 3, 98, '201808270027001', 19, '打折优惠：满3件，打7.50折', 674.75, 1.44, 0.00, 2022.81, 2699, 2699, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (33, 14, '201809130101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠：满1000.00元，减120.00元', 57.60, 0.35, 0.00, 591.05, 649, 649, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (34, 14, '201809130101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 699.00, 1, 103, '201808270028001', 19, '满减优惠：满1000.00元，减120.00元', 62.40, 0.37, 0.00, 636.23, 649, 649, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (35, 14, '201809130101000001', 29, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus', '苹果', '7437799', 5499.00, 1, 106, '201808270029001', 19, '无优惠', 0.00, 2.94, 0.00, 5496.06, 5499, 5499, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (36, 15, '201809130101000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '6946605', 3788.00, 1, 90, '201806070026001', 19, '单品促销', 200.00, 2.02, 0.00, 3585.98, 3788, 3788, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (37, 15, '201809130101000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '7437788', 2699.00, 3, 98, '201808270027001', 19, '打折优惠：满3件，打7.50折', 674.75, 1.44, 0.00, 2022.81, 2699, 2699, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (38, 15, '201809130101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠：满1000.00元，减120.00元', 57.60, 0.35, 0.00, 591.05, 649, 649, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (39, 15, '201809130101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 699.00, 1, 103, '201808270028001', 19, '满减优惠：满1000.00元，减120.00元', 62.40, 0.37, 0.00, 636.23, 649, 649, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (40, 15, '201809130101000001', 29, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus', '苹果', '7437799', 5499.00, 1, 106, '201808270029001', 19, '无优惠', 0.00, 2.94, 0.00, 5496.06, 5499, 5499, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (41, 16, '201809140101000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '6946605', 3788.00, 1, 90, '201806070026001', 19, '单品促销', 200.00, 2.02, 0.00, 3585.98, 3788, 3788, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (42, 16, '201809140101000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '7437788', 2699.00, 3, 98, '201808270027001', 19, '打折优惠：满3件，打7.50折', 674.75, 1.44, 0.00, 2022.81, 2699, 2699, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (43, 16, '201809140101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠：满1000.00元，减120.00元', 57.60, 0.35, 0.00, 591.05, 649, 649, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (44, 16, '201809140101000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '7437789', 699.00, 1, 103, '201808270028001', 19, '满减优惠：满1000.00元，减120.00元', 62.40, 0.37, 0.00, 636.23, 649, 649, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (45, 16, '201809140101000001', 29, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', 'Apple iPhone 8 Plus', '苹果', '7437799', 5499.00, 1, 106, '201808270029001', 19, '无优惠', 0.00, 2.94, 0.00, 5496.06, 5499, 5499, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (46, 27, '202002250100000001', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 100.00, 3, 163, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 100.00, 0, 0, NULL);\nINSERT INTO `oms_order_item` VALUES (47, 27, '202002250100000001', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 120.00, 2, 164, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 120.00, 0, 0, NULL);\nINSERT INTO `oms_order_item` VALUES (48, 28, '202002250100000002', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 100.00, 3, 163, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 100.00, 0, 0, NULL);\nINSERT INTO `oms_order_item` VALUES (49, 28, '202002250100000002', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 120.00, 2, 164, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 120.00, 0, 0, NULL);\nINSERT INTO `oms_order_item` VALUES (50, 29, '202002250100000003', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 100.00, 3, 163, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 100.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"秋季\\\"}]');\nINSERT INTO `oms_order_item` VALUES (51, 29, '202002250100000003', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 120.00, 2, 164, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 120.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `oms_order_item` VALUES (52, 30, '202002250100000004', 36, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'NIKE', '6799345', 120.00, 2, 164, '202002210036001', 29, '无优惠', 0.00, 0.00, 0.00, 120.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `oms_order_item` VALUES (53, 31, '202005160100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 2, 110, '201806070026001', 19, '满减优惠：满5000.00元，减500.00元', 250.00, 75.00, 0.28, 3462.72, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (54, 31, '202005160100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 2, 98, '201808270027001', 19, '打折优惠：满2件，打8.00折', 539.80, 0.00, 0.20, 2159.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (55, 31, '202005160100000001', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠：满500.00元，减50.00元', 50.00, 0.00, 0.05, 598.95, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (56, 32, '202005170100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (57, 32, '202005170100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (58, 33, '202005170100000002', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (59, 34, '202005170100000003', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (60, 35, '202005170100000004', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (61, 36, '202005170100000005', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 2, 110, '201806070026001', 19, '满减优惠：满5000.00元，减500.00元', 250.00, 0.00, 0.00, 3538.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (62, 36, '202005170100000005', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (63, 37, '202005170100000006', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (64, 37, '202005170100000006', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (65, 38, '202005170100000007', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (66, 39, '202005170100000008', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (67, 40, '202005180100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (68, 41, '202005180100000002', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 150.00, 0.00, 3338.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (69, 41, '202005180100000002', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (70, 42, '202005230100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 2, 98, '201808270027001', 19, '打折优惠：满2件，打8.00折', 539.80, 0.00, 0.00, 2159.20, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (71, 43, '202005230100000002', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 2, 98, '201808270027001', 19, '打折优惠：满2件，打8.00折', 539.80, 0.00, 0.00, 2159.20, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (72, 44, '202005240100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 2, 110, '201806070026001', 19, '满减优惠：满5000.00元，减500.00元', 250.00, 0.00, 0.00, 3538.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (73, 45, '202006070100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 2, 110, '201806070026001', 19, '满减优惠：满5000.00元，减500.00元', 250.00, 36.90, 0.00, 3501.10, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (74, 45, '202006070100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 26.30, 0.00, 2672.70, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (75, 46, '202006210100000001', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 4.12, 0.00, 3483.88, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (76, 46, '202006210100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 2, 98, '201808270027001', 19, '打折优惠：满2件，打8.00折', 539.80, 2.94, 0.00, 2156.26, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (77, 47, '202006210100000002', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (78, 47, '202006210100000002', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (79, 48, '202006210100000003', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 150.00, 0.00, 3338.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (80, 49, '202006270100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (81, 50, '202210280100000001', 27, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', '小米', '7437788', 2699.00, 1, 98, '201808270027001', 19, '无优惠', 0.00, 0.00, 0.00, 2699.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (82, 51, '202210280100000002', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 紫色 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (83, 52, '202211090100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 200.00, 0.00, 2799.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (84, 53, '202211090100000002', 38, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款（64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A ）', '苹果', '100044025833', 3599.00, 1, 213, '202210280038001', 53, '无优惠', 0.00, 10.00, 0.00, 3589.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (85, 54, '202211090100000003', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 600.00, 0.00, 5399.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (86, 55, '202211100100000001', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 2, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (87, 56, '202211110100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 100.00, 0.00, 2899.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (88, 57, '202211110100000002', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 0.00, 0.00, 2999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (89, 58, '202211110100000003', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (90, 59, '202211110100000004', 28, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', '小米', '7437789', 649.00, 1, 102, '201808270028001', 19, '满减优惠：满500.00元，减50.00元', 50.00, 0.00, 0.00, 599.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (91, 60, '202211160100000001', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (92, 60, '202211160100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 0.00, 0.00, 2999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (93, 60, '202211160100000001', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 0.00, 0.00, 2099.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (94, 61, '202212210100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 0.00, 0.00, 2999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (95, 62, '202212210100000002', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (96, 62, '202212210100000002', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 0.00, 0.00, 2099.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (97, 63, '202212210100000003', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '无优惠', 0.00, 0.00, 0.00, 2999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (98, 64, '202212210100000004', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 0.00, 0.00, 2099.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (99, 65, '202212210100000005', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '满减优惠：满2000.00元，减200.00元', 200.00, 58.80, 5.88, 2734.32, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (100, 65, '202212210100000005', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 41.20, 4.12, 2053.68, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (101, 66, '202301100100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 2, 221, '202211040040001', 19, '满减优惠：满2000.00元，减200.00元', 100.00, 0.00, 0.00, 2899.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (102, 67, '202301100100000002', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3788.00, 1, 110, '201806070026001', 19, '满减优惠：满3000.00元，减300.00元', 300.00, 0.00, 0.00, 3488.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (103, 68, '202301100100000003', 26, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20 ', '华为', '6946605', 3999.00, 1, 111, '201806070026002', 19, '单品促销', 100.00, 0.00, 0.00, 3899.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (104, 69, '202305110100000001', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '满减优惠：满2000.00元，减200.00元', 200.00, 117.60, 0.00, 2681.40, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (105, 69, '202305110100000001', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 82.40, 0.00, 2016.60, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (106, 70, '202305110100000002', 38, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', 'Apple iPad 10.9英寸平板电脑 2022年款', '苹果', '100044025833', 3599.00, 1, 213, '202210280038001', 53, '无优惠', 0.00, 0.00, 0.00, 3599.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (107, 71, '202305110100000003', 39, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', '小米', '100023207945', 5999.00, 1, 217, '202210280039001', 54, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新小米Pro 14英寸 2.8K屏\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"R7 16G 512\\\"}]');\nINSERT INTO `oms_order_item` VALUES (108, 72, '202305110100000004', 42, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_01.jpg', 'HUAWEI Mate 50 直屏旗舰 超光变XMAGE影像 北斗卫星消息', '华为', '100035295081', 4999.00, 1, 229, '202211040042001', 19, '无优惠', 0.00, 0.00, 0.00, 4999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"曜金黑\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (109, 72, '202305110100000004', 44, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_02.jpg', '三星（SAMSUNG）500GB SSD固态硬盘 M.2接口(NVMe协议)', '三星', '100018768480', 369.00, 1, 235, '202211080044001', 55, '无优惠', 0.00, 0.00, 0.00, 369.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新品980｜NVMe PCIe3.0*4\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"512GB\\\"}]');\nINSERT INTO `oms_order_item` VALUES (110, 73, '202305110100000005', 37, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '苹果', '100038005189', 5999.00, 1, 201, '202210280037001', 19, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (111, 74, '202305110100000006', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '满减优惠：满2000.00元，减200.00元', 200.00, 0.00, 0.00, 2799.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (112, 75, '202305110100000007', 41, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', '小米', '100035246702', 2099.00, 1, 225, '202211040041001', 19, '无优惠', 0.00, 0.00, 0.00, 2099.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `oms_order_item` VALUES (113, 76, '202305110100000008', 39, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', '小米', '100023207945', 5999.00, 1, 217, '202210280039001', 54, '无优惠', 0.00, 0.00, 0.00, 5999.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新小米Pro 14英寸 2.8K屏\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"R7 16G 512\\\"}]');\nINSERT INTO `oms_order_item` VALUES (114, 76, '202305110100000008', 40, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', '小米', '100027789721', 2999.00, 1, 221, '202211040040001', 19, '满减优惠：满2000.00元，减200.00元', 200.00, 100.00, 0.00, 2699.00, 0, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\n\n-- ----------------------------\n-- Table structure for oms_order_operate_history\n-- ----------------------------\nDROP TABLE IF EXISTS `oms_order_operate_history`;\nCREATE TABLE `oms_order_operate_history`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单id',\n  `operate_man` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人：用户；系统；后台管理员',\n  `create_time` datetime NULL DEFAULT NULL COMMENT '操作时间',\n  `order_status` int(1) NULL DEFAULT NULL COMMENT '订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单',\n  `note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 44 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单操作历史记录' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of oms_order_operate_history\n-- ----------------------------\nINSERT INTO `oms_order_operate_history` VALUES (5, 12, '后台管理员', '2018-10-12 14:01:29', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (6, 13, '后台管理员', '2018-10-12 14:01:29', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (7, 12, '后台管理员', '2018-10-12 14:13:10', 4, '订单关闭:买家退货');\nINSERT INTO `oms_order_operate_history` VALUES (8, 13, '后台管理员', '2018-10-12 14:13:10', 4, '订单关闭:买家退货');\nINSERT INTO `oms_order_operate_history` VALUES (9, 22, '后台管理员', '2018-10-15 16:31:48', 4, '订单关闭:xxx');\nINSERT INTO `oms_order_operate_history` VALUES (10, 22, '后台管理员', '2018-10-15 16:35:08', 4, '订单关闭:xxx');\nINSERT INTO `oms_order_operate_history` VALUES (11, 22, '后台管理员', '2018-10-15 16:35:59', 4, '订单关闭:xxx');\nINSERT INTO `oms_order_operate_history` VALUES (12, 17, '后台管理员', '2018-10-15 16:43:40', 4, '订单关闭:xxx');\nINSERT INTO `oms_order_operate_history` VALUES (13, 25, '后台管理员', '2018-10-15 16:52:14', 4, '订单关闭:xxx');\nINSERT INTO `oms_order_operate_history` VALUES (14, 26, '后台管理员', '2018-10-15 16:52:14', 4, '订单关闭:xxx');\nINSERT INTO `oms_order_operate_history` VALUES (15, 23, '后台管理员', '2018-10-16 14:41:28', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (16, 13, '后台管理员', '2018-10-16 14:42:17', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (17, 18, '后台管理员', '2018-10-16 14:42:17', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (18, 26, '后台管理员', '2018-10-30 14:37:44', 4, '订单关闭:关闭订单');\nINSERT INTO `oms_order_operate_history` VALUES (19, 25, '后台管理员', '2018-10-30 15:07:01', 0, '修改收货人信息');\nINSERT INTO `oms_order_operate_history` VALUES (20, 25, '后台管理员', '2018-10-30 15:08:13', 0, '修改费用信息');\nINSERT INTO `oms_order_operate_history` VALUES (21, 25, '后台管理员', '2018-10-30 15:08:31', 0, '修改备注信息：xxx');\nINSERT INTO `oms_order_operate_history` VALUES (22, 25, '后台管理员', '2018-10-30 15:08:39', 4, '订单关闭:2222');\nINSERT INTO `oms_order_operate_history` VALUES (23, 12, '后台管理员', '2019-11-09 16:50:28', 4, '修改备注信息：111');\nINSERT INTO `oms_order_operate_history` VALUES (24, 30, '后台管理员', '2020-02-25 16:52:37', 0, '修改费用信息');\nINSERT INTO `oms_order_operate_history` VALUES (25, 30, '后台管理员', '2020-02-25 16:52:51', 0, '修改费用信息');\nINSERT INTO `oms_order_operate_history` VALUES (26, 30, '后台管理员', '2020-02-25 16:54:03', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (27, 35, '后台管理员', '2020-05-17 15:30:24', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (28, 37, '后台管理员', '2020-05-17 19:35:00', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (29, 39, '后台管理员', '2020-05-17 19:42:08', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (30, 41, '后台管理员', '2020-05-18 20:23:04', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (31, 47, '后台管理员', '2020-06-21 15:13:44', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (32, 48, '后台管理员', '2020-06-21 15:15:49', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (33, 52, '后台管理员', '2022-11-09 15:16:13', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (34, 60, '后台管理员', '2022-11-16 10:42:50', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (35, 62, '后台管理员', '2022-12-21 15:50:24', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (36, 63, '后台管理员', '2023-01-10 10:08:34', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (37, 65, '后台管理员', '2023-01-10 10:08:34', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (38, 69, '后台管理员', '2023-05-11 15:30:08', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (39, 70, '后台管理员', '2023-05-11 15:31:22', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (40, 72, '后台管理员', '2023-05-11 15:33:43', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (41, 74, '后台管理员', '2023-05-11 15:36:00', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (42, 75, '后台管理员', '2023-05-11 15:36:11', 2, '完成发货');\nINSERT INTO `oms_order_operate_history` VALUES (43, 76, '后台管理员', '2023-05-11 15:37:34', 2, '完成发货');\n\n-- ----------------------------\n-- Table structure for oms_order_return_apply\n-- ----------------------------\nDROP TABLE IF EXISTS `oms_order_return_apply`;\nCREATE TABLE `oms_order_return_apply`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单id',\n  `company_address_id` bigint(20) NULL DEFAULT NULL COMMENT '收货地址表id',\n  `product_id` bigint(20) NULL DEFAULT NULL COMMENT '退货商品id',\n  `order_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单编号',\n  `create_time` datetime NULL DEFAULT NULL COMMENT '申请时间',\n  `member_username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '会员用户名',\n  `return_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '退款金额',\n  `return_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '退货人姓名',\n  `return_phone` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '退货人电话',\n  `status` int(1) NULL DEFAULT NULL COMMENT '申请状态：0->待处理；1->退货中；2->已完成；3->已拒绝',\n  `handle_time` datetime NULL DEFAULT NULL COMMENT '处理时间',\n  `product_pic` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品图片',\n  `product_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称',\n  `product_brand` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品品牌',\n  `product_attr` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品销售属性：颜色：红色；尺码：xl;',\n  `product_count` int(11) NULL DEFAULT NULL COMMENT '退货数量',\n  `product_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品单价',\n  `product_real_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品实际支付单价',\n  `reason` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '原因',\n  `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述',\n  `proof_pics` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '凭证图片，以逗号隔开',\n  `handle_note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '处理备注',\n  `handle_man` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '处理人员',\n  `receive_man` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货人',\n  `receive_time` datetime NULL DEFAULT NULL COMMENT '收货时间',\n  `receive_note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货备注',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 27 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单退货申请' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of oms_order_return_apply\n-- ----------------------------\nINSERT INTO `oms_order_return_apply` VALUES (3, 12, 1, 26, '201809150101000001', '2018-10-17 14:34:57', 'test', 0.00, '大梨', '18000000000', 2, '2022-11-11 10:16:18', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色：金色;内存：16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '111', 'admin', 'admin', '2022-11-11 10:16:26', NULL);\nINSERT INTO `oms_order_return_apply` VALUES (4, 12, 2, 27, '201809150101000001', '2018-10-17 14:40:21', 'test', 3585.98, '大梨', '18000000000', 1, '2018-10-18 13:54:10', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色：黑色;内存：32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', '已经处理了', 'admin', NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (5, 12, 3, 28, '201809150101000001', '2018-10-17 14:44:18', 'test', 3585.98, '大梨', '18000000000', 2, '2018-10-18 13:55:28', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色：金色;内存：16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', '已经处理了', 'admin', 'admin', '2018-10-18 13:55:58', '已经处理了');\nINSERT INTO `oms_order_return_apply` VALUES (8, 13, NULL, 28, '201809150102000002', '2018-10-17 14:44:18', 'test', NULL, '大梨', '18000000000', 3, '2018-10-18 13:57:12', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色：金色;内存：16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', '理由不够充分', 'admin', NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (9, 14, 2, 26, '201809130101000001', '2018-10-17 14:34:57', 'test', 3500.00, '大梨', '18000000000', 2, '2018-10-24 15:44:56', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色：金色;内存：16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', '呵呵', 'admin', 'admin', '2018-10-24 15:46:35', '收货了');\nINSERT INTO `oms_order_return_apply` VALUES (10, 14, NULL, 27, '201809130101000001', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 3, '2018-10-24 15:46:57', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色：黑色;内存：32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', '就是不退', 'admin', NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (11, 14, 2, 28, '201809130101000001', '2018-10-17 14:44:18', 'test', 591.05, '大梨', '18000000000', 1, '2018-10-24 17:09:04', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色：金色;内存：16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', '可以退款', 'admin', NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (12, 15, 3, 26, '201809130102000002', '2018-10-17 14:34:57', 'test', 3500.00, '大梨', '18000000000', 2, '2018-10-24 17:22:54', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色：金色;内存：16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', '退货了', 'admin', 'admin', '2018-10-24 17:23:06', '收货了');\nINSERT INTO `oms_order_return_apply` VALUES (13, 15, NULL, 27, '201809130102000002', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 3, '2018-10-24 17:23:30', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色：黑色;内存：32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', '无法退货', 'admin', NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (15, 16, NULL, 26, '201809140101000001', '2018-10-17 14:34:57', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色：金色;内存：16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (16, 16, NULL, 27, '201809140101000001', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色：黑色;内存：32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (17, 16, NULL, 28, '201809140101000001', '2018-10-17 14:44:18', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色：金色;内存：16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (18, 17, NULL, 26, '201809150101000003', '2018-10-17 14:34:57', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色：金色;内存：16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (19, 17, NULL, 27, '201809150101000003', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色：黑色;内存：32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (20, 17, NULL, 28, '201809150101000003', '2018-10-17 14:44:18', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色：金色;内存：16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (21, 18, NULL, 26, '201809150102000004', '2018-10-17 14:34:57', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色：金色;内存：16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (22, 18, NULL, 27, '201809150102000004', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色：黑色;内存：32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (23, 18, NULL, 28, '201809150102000004', '2018-10-17 14:44:18', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色：金色;内存：16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (24, 19, NULL, 26, '201809130101000003', '2018-10-17 14:34:57', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '华为 HUAWEI P20', '华为', '颜色：金色;内存：16G', 1, 3788.00, 3585.98, '质量问题', '老是卡', '', NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (25, 19, NULL, 27, '201809130101000003', '2018-10-17 14:40:21', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '小米8', '小米', '颜色：黑色;内存：32G', 1, 2699.00, 2022.81, '质量问题', '不够高端', '', NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `oms_order_return_apply` VALUES (26, 19, NULL, 28, '201809130101000003', '2018-10-17 14:44:18', 'test', NULL, '大梨', '18000000000', 0, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '红米5A', '小米', '颜色：金色;内存：16G', 1, 649.00, 591.05, '质量问题', '颜色太土', '', NULL, NULL, NULL, NULL, NULL);\n\n-- ----------------------------\n-- Table structure for oms_order_return_reason\n-- ----------------------------\nDROP TABLE IF EXISTS `oms_order_return_reason`;\nCREATE TABLE `oms_order_return_reason`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '退货类型',\n  `sort` int(11) NULL DEFAULT NULL,\n  `status` int(1) NULL DEFAULT NULL COMMENT '状态：0->不启用；1->启用',\n  `create_time` datetime NULL DEFAULT NULL COMMENT '添加时间',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '退货原因表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of oms_order_return_reason\n-- ----------------------------\nINSERT INTO `oms_order_return_reason` VALUES (1, '质量问题', 1, 1, '2018-10-17 10:00:45');\nINSERT INTO `oms_order_return_reason` VALUES (2, '尺码太大', 1, 1, '2018-10-17 10:01:03');\nINSERT INTO `oms_order_return_reason` VALUES (3, '颜色不喜欢', 1, 1, '2018-10-17 10:01:13');\nINSERT INTO `oms_order_return_reason` VALUES (4, '7天无理由退货', 1, 1, '2018-10-17 10:01:47');\nINSERT INTO `oms_order_return_reason` VALUES (5, '价格问题', 1, 0, '2018-10-17 10:01:57');\nINSERT INTO `oms_order_return_reason` VALUES (12, '发票问题', 0, 1, '2018-10-19 16:28:36');\nINSERT INTO `oms_order_return_reason` VALUES (13, '其他问题', 0, 1, '2018-10-19 16:28:51');\nINSERT INTO `oms_order_return_reason` VALUES (14, '物流问题', 0, 1, '2018-10-19 16:29:01');\nINSERT INTO `oms_order_return_reason` VALUES (15, '售后问题', 0, 1, '2018-10-19 16:29:11');\n\n-- ----------------------------\n-- Table structure for oms_order_setting\n-- ----------------------------\nDROP TABLE IF EXISTS `oms_order_setting`;\nCREATE TABLE `oms_order_setting`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `flash_order_overtime` int(11) NULL DEFAULT NULL COMMENT '秒杀订单超时关闭时间(分)',\n  `normal_order_overtime` int(11) NULL DEFAULT NULL COMMENT '正常订单超时时间(分)',\n  `confirm_overtime` int(11) NULL DEFAULT NULL COMMENT '发货后自动确认收货时间（天）',\n  `finish_overtime` int(11) NULL DEFAULT NULL COMMENT '自动完成交易时间，不能申请售后（天）',\n  `comment_overtime` int(11) NULL DEFAULT NULL COMMENT '订单完成后自动好评时间（天）',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '订单设置表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of oms_order_setting\n-- ----------------------------\nINSERT INTO `oms_order_setting` VALUES (1, 60, 120, 15, 7, 7);\n\n-- ----------------------------\n-- Table structure for pms_album\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_album`;\nCREATE TABLE `pms_album`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `cover_pic` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `pic_count` int(11) NULL DEFAULT NULL,\n  `sort` int(11) NULL DEFAULT NULL,\n  `description` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '相册表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_album\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for pms_album_pic\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_album_pic`;\nCREATE TABLE `pms_album_pic`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `album_id` bigint(20) NULL DEFAULT NULL,\n  `pic` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '画册图片表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_album_pic\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for pms_brand\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_brand`;\nCREATE TABLE `pms_brand`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `first_letter` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '首字母',\n  `sort` int(11) NULL DEFAULT NULL,\n  `factory_status` int(1) NULL DEFAULT NULL COMMENT '是否为品牌制造商：0->不是；1->是',\n  `show_status` int(1) NULL DEFAULT NULL,\n  `product_count` int(11) NULL DEFAULT NULL COMMENT '产品数量',\n  `product_comment_count` int(11) NULL DEFAULT NULL COMMENT '产品评论数量',\n  `logo` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '品牌logo',\n  `big_pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专区大图',\n  `brand_story` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '品牌故事',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 60 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '品牌表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_brand\n-- ----------------------------\nINSERT INTO `pms_brand` VALUES (1, '万和', 'W', 0, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5b07ca8aN4e127d2f.jpg', 'http://img13.360buyimg.com/cms/jfs/t1/121860/35/2430/187800/5ec4e294E22f3ffcc/1e233b65b94ba192.jpg', '万和成立于1993年8月，总部位于广东顺德国家级高新技术开发区内，是国内生产规模最大的燃气具专业制造企业，也是中国燃气具发展战略的首倡者和推动者、中国五金制品协会燃气用具分会第三届理事长单位。');\nINSERT INTO `pms_brand` VALUES (2, '三星', 'S', 100, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/57201b47N7bf15715.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_banner_01.png', '三星集团（英文：SAMSUNG、韩文：삼성）是韩国最大的跨国企业集团，三星集团包括众多的国际下属企业，旗下子公司有：三星电子、三星物产、三星人寿保险等，业务涉及电子、金融、机械、化学等众多领域。');\nINSERT INTO `pms_brand` VALUES (3, '华为', 'H', 100, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5abf6f26N31658aa2.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/huawei_banner_01.png', '荣耀品牌成立于2013年,是华为旗下手机双品牌之一。荣耀以“创新、品质、服务”为核心战略,为全球年轻人提供潮酷的全场景智能化体验,打造年轻人向往的先锋文化和潮流生活方式');\nINSERT INTO `pms_brand` VALUES (4, '格力', 'G', 30, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg (3).jpg', NULL, 'Victoria\\'s Secret的故事');\nINSERT INTO `pms_brand` VALUES (5, '方太', 'F', 20, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg (4).jpg', NULL, 'Victoria\\'s Secret的故事');\nINSERT INTO `pms_brand` VALUES (6, '小米', 'M', 500, 1, 1, 100, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5565f5a2N0b8169ae.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/xiaomi_banner_01.png', '小米公司正式成立于2010年4月，是一家专注于高端智能手机、互联网电视自主研发的创新型科技企业。主要由前谷歌、微软、摩托、金山等知名公司的顶尖人才组建。');\nINSERT INTO `pms_brand` VALUES (21, 'OPPO', 'O', 0, 1, 1, 88, 500, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/timg(6).jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_banner_01.png', 'OPPO于2008年推出第一款“笑脸手机”，由此开启探索和引领至美科技之旅。今天，OPPO凭借以Find和R系列手机为核心的智能终端产品，以及OPPO+等互联网服务，让全球消费者尽享至美科技。');\nINSERT INTO `pms_brand` VALUES (49, '七匹狼', 'S', 200, 1, 1, 77, 400, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190525/qipilang.png', NULL, 'BOOB的故事');\nINSERT INTO `pms_brand` VALUES (50, '海澜之家', 'H', 200, 1, 1, 66, 300, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a5c69b9N5d6c5696.jpg', 'http://img10.360buyimg.com/cms/jfs/t1/133148/4/1605/470028/5edaf5ccEd7a687a9/e0a007631361ff75.jpg', '“海澜之家”（英文缩写：HLA）是海澜之家股份有限公司旗下的服装品牌，总部位于中国江苏省无锡市江阴市，主要采用连锁零售的模式，销售男性服装、配饰与相关产品。');\nINSERT INTO `pms_brand` VALUES (51, '苹果', 'A', 200, 1, 1, 55, 200, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/49b30bb0377030d1.jpg', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/apple_banner_01.png', '苹果公司(Apple Inc. )是美国的一家高科技公司。 由史蒂夫·乔布斯、斯蒂夫·沃兹尼亚克和罗·韦恩(Ron Wayne)等人于1976年4月1日创立,并命名为美国苹果电脑公司(Apple Computer Inc. ),2007年1月9日更名为苹果公司,总部位于加利福尼亚州的...');\nINSERT INTO `pms_brand` VALUES (58, 'NIKE', 'N', 0, 1, 0, 33, 100, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/timg (51).jpg', '', 'NIKE的故事');\nINSERT INTO `pms_brand` VALUES (59, '测试品牌', 'C', 0, 0, 0, NULL, NULL, 'http://localhost:9000/mall/20220609/Snipaste_2022-06-08_14-35-53.png', 'http://localhost:9000/mall/20220609/biji_05.jpg', '12345');\n\n-- ----------------------------\n-- Table structure for pms_comment\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_comment`;\nCREATE TABLE `pms_comment`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `member_nick_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `product_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `star` int(3) NULL DEFAULT NULL COMMENT '评价星数：0->5',\n  `member_ip` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '评价的ip',\n  `create_time` datetime NULL DEFAULT NULL,\n  `show_status` int(1) NULL DEFAULT NULL,\n  `product_attribute` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '购买时的商品属性',\n  `collect_couont` int(11) NULL DEFAULT NULL,\n  `read_count` int(11) NULL DEFAULT NULL,\n  `content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,\n  `pics` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '上传图片地址，以逗号隔开',\n  `member_icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '评论用户头像',\n  `replay_count` int(11) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品评价表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_comment\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for pms_comment_replay\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_comment_replay`;\nCREATE TABLE `pms_comment_replay`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `comment_id` bigint(20) NULL DEFAULT NULL,\n  `member_nick_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `member_icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `content` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `create_time` datetime NULL DEFAULT NULL,\n  `type` int(1) NULL DEFAULT NULL COMMENT '评论人员类型；0->会员；1->管理员',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品评价回复表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_comment_replay\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for pms_feight_template\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_feight_template`;\nCREATE TABLE `pms_feight_template`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `charge_type` int(1) NULL DEFAULT NULL COMMENT '计费类型:0->按重量；1->按件数',\n  `first_weight` decimal(10, 2) NULL DEFAULT NULL COMMENT '首重kg',\n  `first_fee` decimal(10, 2) NULL DEFAULT NULL COMMENT '首费（元）',\n  `continue_weight` decimal(10, 2) NULL DEFAULT NULL,\n  `continme_fee` decimal(10, 2) NULL DEFAULT NULL,\n  `dest` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '目的地（省、市）',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '运费模版' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_feight_template\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for pms_member_price\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_member_price`;\nCREATE TABLE `pms_member_price`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `member_level_id` bigint(20) NULL DEFAULT NULL,\n  `member_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '会员价格',\n  `member_level_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 426 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品会员价格表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_member_price\n-- ----------------------------\nINSERT INTO `pms_member_price` VALUES (26, 7, 1, 500.00, NULL);\nINSERT INTO `pms_member_price` VALUES (27, 8, 1, 500.00, NULL);\nINSERT INTO `pms_member_price` VALUES (28, 9, 1, 500.00, NULL);\nINSERT INTO `pms_member_price` VALUES (29, 10, 1, 500.00, NULL);\nINSERT INTO `pms_member_price` VALUES (30, 11, 1, 500.00, NULL);\nINSERT INTO `pms_member_price` VALUES (31, 12, 1, 500.00, NULL);\nINSERT INTO `pms_member_price` VALUES (32, 13, 1, 500.00, NULL);\nINSERT INTO `pms_member_price` VALUES (33, 14, 1, 500.00, NULL);\nINSERT INTO `pms_member_price` VALUES (37, 18, 1, 500.00, NULL);\nINSERT INTO `pms_member_price` VALUES (44, 7, 2, 480.00, NULL);\nINSERT INTO `pms_member_price` VALUES (45, 7, 3, 450.00, NULL);\nINSERT INTO `pms_member_price` VALUES (52, 22, 1, NULL, NULL);\nINSERT INTO `pms_member_price` VALUES (53, 22, 2, NULL, NULL);\nINSERT INTO `pms_member_price` VALUES (54, 22, 3, NULL, NULL);\nINSERT INTO `pms_member_price` VALUES (58, 24, 1, NULL, NULL);\nINSERT INTO `pms_member_price` VALUES (59, 24, 2, NULL, NULL);\nINSERT INTO `pms_member_price` VALUES (60, 24, 3, NULL, NULL);\nINSERT INTO `pms_member_price` VALUES (112, 23, 1, 88.00, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (113, 23, 2, 88.00, '白金会员');\nINSERT INTO `pms_member_price` VALUES (114, 23, 3, 66.00, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (246, 36, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (247, 36, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (248, 36, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (249, 35, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (250, 35, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (251, 35, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (258, 30, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (259, 30, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (260, 30, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (261, 31, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (262, 31, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (263, 31, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (264, 32, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (265, 32, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (266, 32, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (270, 33, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (271, 33, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (272, 33, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (273, 34, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (274, 34, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (275, 34, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (285, 27, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (286, 27, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (287, 27, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (294, 28, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (295, 28, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (296, 28, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (297, 29, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (298, 29, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (299, 29, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (315, 37, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (316, 37, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (317, 37, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (381, 38, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (382, 38, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (383, 38, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (384, 39, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (385, 39, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (386, 39, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (387, 41, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (388, 41, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (389, 41, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (390, 42, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (391, 42, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (392, 42, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (393, 43, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (394, 43, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (395, 43, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (396, 44, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (397, 44, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (398, 44, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (399, 45, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (400, 45, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (401, 45, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (402, 40, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (403, 40, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (404, 40, 3, NULL, '钻石会员');\nINSERT INTO `pms_member_price` VALUES (423, 26, 1, NULL, '黄金会员');\nINSERT INTO `pms_member_price` VALUES (424, 26, 2, NULL, '白金会员');\nINSERT INTO `pms_member_price` VALUES (425, 26, 3, NULL, '钻石会员');\n\n-- ----------------------------\n-- Table structure for pms_product\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_product`;\nCREATE TABLE `pms_product`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `brand_id` bigint(20) NULL DEFAULT NULL,\n  `product_category_id` bigint(20) NULL DEFAULT NULL,\n  `feight_template_id` bigint(20) NULL DEFAULT NULL,\n  `product_attribute_category_id` bigint(20) NULL DEFAULT NULL,\n  `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,\n  `pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `product_sn` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '货号',\n  `delete_status` int(1) NULL DEFAULT NULL COMMENT '删除状态：0->未删除；1->已删除',\n  `publish_status` int(1) NULL DEFAULT NULL COMMENT '上架状态：0->下架；1->上架',\n  `new_status` int(1) NULL DEFAULT NULL COMMENT '新品状态:0->不是新品；1->新品',\n  `recommand_status` int(1) NULL DEFAULT NULL COMMENT '推荐状态；0->不推荐；1->推荐',\n  `verify_status` int(1) NULL DEFAULT NULL COMMENT '审核状态：0->未审核；1->审核通过',\n  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',\n  `sale` int(11) NULL DEFAULT NULL COMMENT '销量',\n  `price` decimal(10, 2) NULL DEFAULT NULL,\n  `promotion_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '促销价格',\n  `gift_growth` int(11) NULL DEFAULT 0 COMMENT '赠送的成长值',\n  `gift_point` int(11) NULL DEFAULT 0 COMMENT '赠送的积分',\n  `use_point_limit` int(11) NULL DEFAULT NULL COMMENT '限制使用的积分数',\n  `sub_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '副标题',\n  `description` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '商品描述',\n  `original_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '市场价',\n  `stock` int(11) NULL DEFAULT NULL COMMENT '库存',\n  `low_stock` int(11) NULL DEFAULT NULL COMMENT '库存预警值',\n  `unit` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '单位',\n  `weight` decimal(10, 2) NULL DEFAULT NULL COMMENT '商品重量，默认为克',\n  `preview_status` int(1) NULL DEFAULT NULL COMMENT '是否为预告商品：0->不是；1->是',\n  `service_ids` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '以逗号分割的产品服务：1->无忧退货；2->快速退款；3->免费包邮',\n  `keywords` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `note` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `album_pics` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '画册图片，连产品图片限制为5张，以逗号分割',\n  `detail_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `detail_desc` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL,\n  `detail_html` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '产品详情网页内容',\n  `detail_mobile_html` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '移动端网页详情',\n  `promotion_start_time` datetime NULL DEFAULT NULL COMMENT '促销开始时间',\n  `promotion_end_time` datetime NULL DEFAULT NULL COMMENT '促销结束时间',\n  `promotion_per_limit` int(11) NULL DEFAULT NULL COMMENT '活动限购数量',\n  `promotion_type` int(1) NULL DEFAULT NULL COMMENT '促销类型：0->没有促销使用原价;1->使用促销价；2->使用会员价；3->使用阶梯价格；4->使用满减价格；5->限时购',\n  `brand_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '品牌名称',\n  `product_category_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品分类名称',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 46 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品信息' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_product\n-- ----------------------------\nINSERT INTO `pms_product` VALUES (1, 49, 7, 0, 0, '银色星芒刺绣网纱底裤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 1, 1, 1, 100, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '七匹狼', '外套');\nINSERT INTO `pms_product` VALUES (2, 49, 7, 0, 0, '银色星芒刺绣网纱底裤2', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86578', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤2', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '<p>银色星芒刺绣网纱底裤</p>', '<p>银色星芒刺绣网纱底裤</p>', NULL, NULL, NULL, 0, '七匹狼', '外套');\nINSERT INTO `pms_product` VALUES (3, 1, 7, 0, 0, '银色星芒刺绣网纱底裤3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86579', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤3', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (4, 1, 7, 0, 0, '银色星芒刺绣网纱底裤4', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86580', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤4', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (5, 1, 7, 0, 0, '银色星芒刺绣网纱底裤5', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86581', 1, 0, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤5', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (6, 1, 7, 0, 0, '银色星芒刺绣网纱底裤6', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86582', 1, 1, 1, 1, 1, 1, 0, 100.00, NULL, 0, 100, NULL, '111', '111', 120.00, 100, 20, '件', 1000.00, 0, NULL, '银色星芒刺绣网纱底裤6', '银色星芒刺绣网纱底裤', NULL, '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', '银色星芒刺绣网纱底裤', NULL, NULL, NULL, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (7, 1, 7, 0, 1, '女式超柔软拉毛运动开衫', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁，垂感质地', '匠心剪裁，垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (8, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁，垂感质地', '匠心剪裁，垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (9, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁，垂感质地', '匠心剪裁，垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (10, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 0, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁，垂感质地', '匠心剪裁，垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (11, 1, 7, 0, 1, '女式超柔软拉毛运动开衫1', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁，垂感质地', '匠心剪裁，垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (12, 1, 7, 0, 1, '女式超柔软拉毛运动开衫2', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁，垂感质地', '匠心剪裁，垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (13, 1, 7, 0, 1, '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 1, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁，垂感质地', '匠心剪裁，垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (14, 1, 7, 0, 1, '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁，垂感质地', '匠心剪裁，垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (18, 1, 7, 0, 1, '女式超柔软拉毛运动开衫3', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180522/web.png', 'No86577', 1, 0, 0, 1, 0, 0, 0, 249.00, 0.00, 0, 100, 0, '匠心剪裁，垂感质地', '匠心剪裁，垂感质地', 299.00, 100, 0, '件', 0.00, 0, 'string', '女式超柔软拉毛运动开衫', 'string', 'string', 'string', 'string', 'string', 'string', '2018-04-26 10:41:03', '2018-04-26 10:41:03', 0, 0, '万和', '外套');\nINSERT INTO `pms_product` VALUES (22, 6, 7, 0, 1, 'test', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', '', 1, 1, 0, 0, 0, 0, 0, 0.00, NULL, 0, 0, 0, 'test', '', 0.00, 100, 0, '', 0.00, 1, '1,2', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '外套');\nINSERT INTO `pms_product` VALUES (23, 6, 19, 0, 1, '毛衫测试', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', 'NO.1098', 1, 1, 1, 1, 0, 0, 0, 99.00, NULL, 99, 99, 1000, '毛衫测试11', 'xxx', 109.00, 100, 0, '件', 1000.00, 1, '1,2,3', '毛衫测试', '毛衫测试', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/1522738681.jpg', '毛衫测试', '毛衫测试', '<p><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/155x54.bmp\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/APP登录bg1080.jpg\\\" width=\\\"500\\\" height=\\\"500\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180604/APP登录界面.jpg\\\" width=\\\"500\\\" height=\\\"500\\\" /></p>', '', NULL, NULL, 0, 2, '小米', '手机数码');\nINSERT INTO `pms_product` VALUES (24, 6, 7, 0, NULL, 'xxx', '', '', 1, 0, 0, 0, 0, 0, 0, 0.00, NULL, 0, 0, 0, 'xxx', '', 0.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '外套');\nINSERT INTO `pms_product` VALUES (26, 3, 19, 0, 3, '华为 HUAWEI P20 ', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf58Ndefaac16.jpg', '6946605', 0, 1, 1, 1, 0, 100, 100, 3788.00, 3659.00, 3788, 3788, 0, 'AI智慧全面屏 6GB +64GB 亮黑色 全网通版 移动联通电信4G手机 双卡双待手机 双卡双待', '', 4288.00, 1000, 0, '件', 0.00, 1, '2,3,1', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ab46a3cN616bdc41.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ac1bf5fN2522b9dc.jpg', '', '', '<p><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ad44f1cNf51f3bb0.jpg\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ad44fa8Nfcf71c10.jpg\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ad44fa9N40e78ee0.jpg\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ad457f4N1c94bdda.jpg\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5ad457f5Nd30de41d.jpg\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180607/5b10fb0eN0eb053fb.jpg\\\" /></p>', '<p><img src=\\\"//img20.360buyimg.com/vc/jfs/t1/81293/35/5822/369414/5d3fe77cE619c5487/6e775a52850feea5.jpg!q70.dpg.webp\\\" alt=\\\"\\\" width=\\\"750\\\" height=\\\"776\\\" /></p>\\n<p><img src=\\\"//img20.360buyimg.com/vc/jfs/t1/45300/25/11592/3658871/5d85ef66E92a8a911/083e47d8f662c582.jpg!q70.dpg.webp\\\" alt=\\\"\\\" width=\\\"596\\\" height=\\\"16383\\\" /></p>', '2023-01-10 15:49:38', '2023-01-31 00:00:00', 0, 1, '华为', '手机通讯');\nINSERT INTO `pms_product` VALUES (27, 6, 19, 0, 3, '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/xiaomi.jpg', '7437788', 0, 1, 1, 1, 0, 0, 99, 2699.00, NULL, 2699, 2699, 0, '骁龙845处理器，红外人脸解锁，AI变焦双摄，AI语音助手小米6X低至1299，点击抢购', '小米8 全面屏游戏智能手机 6GB+64GB 黑色 全网通4G 双卡双待', 2699.00, 100, 0, '', 0.00, 0, '1', '', '', '', '', '', '<p style=\\\"text-align: center;\\\"><img src=\\\"//img30.360buyimg.com/popWareDetail/jfs/t1/95935/9/19330/159477/5e9ecc13E5b8db8ae/8e954021a0835fb7.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWareDetail/jfs/t1/99224/22/19596/137593/5e9ecc13E34ef2113/2b362b90d8378ee1.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWareDetail/jfs/t1/93131/25/19321/107691/5e9ecc13E41e8addf/202a5f84d9129878.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWareDetail/jfs/t1/101843/19/19533/66831/5e9ecc13Ecb7f9d53/4fdd807266583c1e.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWareDetail/jfs/t1/99629/36/19016/59882/5e9ecc13E1f5beef5/1e5af3528f366e70.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/72343/29/8945/84548/5d6e5c67Ea07b1125/702791816b90eb3d.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/65403/35/9017/129532/5d6e5c68E3f2d0546/9ec771eb6e04a75a.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/58261/33/9380/106603/5d6e5c68E05a99177/2b5b9e29eed05b08.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/51968/40/9688/113552/5d6e5c68E5052b312/8969d83124cb78a4.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/75491/9/9101/146883/5d6e5c68E3db89775/c1aa57e78ded4e44.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/75063/11/9107/127874/5d6e5c68E0b1dfc61/10dd6000ce213375.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/47452/25/9579/108279/5d6e5c68Ea9002f3b/865b5d32ffd9da75.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/82146/26/9077/87075/5d6e5c68Ef63bccc8/556de5665a35a3f2.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/82804/21/9019/124404/5d6e5c69E06a8f575/0f861f8c4636c546.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/46044/10/9734/107686/5d6e5c69Edd5e66c7/a8c7b9324e271dbd.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/40729/32/13755/45997/5d6e5c69Eafee3664/6a3457a4efdb79c5.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/76254/34/9039/96195/5d6e5c69E3c71c809/49033c0b7024c208.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/79825/20/9065/90864/5d6e5c69E1e62ef89/a4d3ce383425a666.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/49939/21/9618/106207/5d6e5c6aEf7b1d4fd/0f5e963c66be3d0c.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/64035/7/9001/115159/5d6e5c6aE6919dfdf/39dfe4840157ad81.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/53389/3/9616/99637/5d6e5c6aEa33b9f35/b8f6aa26e72616a3.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/63219/6/9026/81576/5d6e5c6aEa9c74b49/b4fa364437531012.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/42146/27/13902/80437/5d6e5c6bE30c31ce9/475d4d54c7334313.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/45317/28/9596/78175/5d6e5c6bEce31e4b7/5675858b6933565c.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/60080/1/9112/138722/5d6e5c6bEefd9fc62/7ece7460a36d2fcc.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/51525/13/9549/36018/5d6e5c73Ebbccae6c/99bc2770dccc042b.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/61948/20/9088/72918/5d6e5c73Eab7aef5c/6f21e2f85cf478fa.jpg!q70.dpg.webp\\\" /></p>', '<p style=\\\"text-align: center;\\\"><img src=\\\"//img30.360buyimg.com/popWareDetail/jfs/t1/95935/9/19330/159477/5e9ecc13E5b8db8ae/8e954021a0835fb7.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWareDetail/jfs/t1/99224/22/19596/137593/5e9ecc13E34ef2113/2b362b90d8378ee1.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWareDetail/jfs/t1/93131/25/19321/107691/5e9ecc13E41e8addf/202a5f84d9129878.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWareDetail/jfs/t1/101843/19/19533/66831/5e9ecc13Ecb7f9d53/4fdd807266583c1e.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWareDetail/jfs/t1/99629/36/19016/59882/5e9ecc13E1f5beef5/1e5af3528f366e70.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/72343/29/8945/84548/5d6e5c67Ea07b1125/702791816b90eb3d.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/65403/35/9017/129532/5d6e5c68E3f2d0546/9ec771eb6e04a75a.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/58261/33/9380/106603/5d6e5c68E05a99177/2b5b9e29eed05b08.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/51968/40/9688/113552/5d6e5c68E5052b312/8969d83124cb78a4.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/75491/9/9101/146883/5d6e5c68E3db89775/c1aa57e78ded4e44.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/75063/11/9107/127874/5d6e5c68E0b1dfc61/10dd6000ce213375.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/47452/25/9579/108279/5d6e5c68Ea9002f3b/865b5d32ffd9da75.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/82146/26/9077/87075/5d6e5c68Ef63bccc8/556de5665a35a3f2.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/82804/21/9019/124404/5d6e5c69E06a8f575/0f861f8c4636c546.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/46044/10/9734/107686/5d6e5c69Edd5e66c7/a8c7b9324e271dbd.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/40729/32/13755/45997/5d6e5c69Eafee3664/6a3457a4efdb79c5.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/76254/34/9039/96195/5d6e5c69E3c71c809/49033c0b7024c208.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/79825/20/9065/90864/5d6e5c69E1e62ef89/a4d3ce383425a666.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/49939/21/9618/106207/5d6e5c6aEf7b1d4fd/0f5e963c66be3d0c.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/64035/7/9001/115159/5d6e5c6aE6919dfdf/39dfe4840157ad81.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/53389/3/9616/99637/5d6e5c6aEa33b9f35/b8f6aa26e72616a3.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/63219/6/9026/81576/5d6e5c6aEa9c74b49/b4fa364437531012.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/42146/27/13902/80437/5d6e5c6bE30c31ce9/475d4d54c7334313.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/45317/28/9596/78175/5d6e5c6bEce31e4b7/5675858b6933565c.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/60080/1/9112/138722/5d6e5c6bEefd9fc62/7ece7460a36d2fcc.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/51525/13/9549/36018/5d6e5c73Ebbccae6c/99bc2770dccc042b.jpg!q70.dpg.webp\\\" /><img src=\\\"//img30.360buyimg.com/popWaterMark/jfs/t1/61948/20/9088/72918/5d6e5c73Eab7aef5c/6f21e2f85cf478fa.jpg!q70.dpg.webp\\\" /></p>', NULL, NULL, 0, 3, '小米', '手机通讯');\nINSERT INTO `pms_product` VALUES (28, 6, 19, 0, 3, '小米 红米5A 全网通版 3GB+32GB 香槟金 移动联通电信4G手机 双卡双待', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a9d248cN071f4959.jpg', '7437789', 0, 1, 1, 1, 0, 0, 98, 649.00, NULL, 649, 649, 0, '8天超长待机，137g轻巧机身，高通骁龙处理器小米6X低至1299，点击抢购', '', 649.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '<div><img src=\\\"//img12.360buyimg.com/imgzone/jfs/t1/67362/12/14546/708984/5dc28512Eefdd817d/c82503af0da6c038.gif\\\" /><img src=\\\"//img13.360buyimg.com/imgzone/jfs/t1/61488/17/14551/995918/5dc28512E821c228d/41e52005ea5b1f36.gif\\\" /><img src=\\\"//img14.360buyimg.com/imgzone/jfs/t1/72961/36/14769/305883/5dc28512E65d77261/3df6be29e3d489d1.gif\\\" />\\n<p>&nbsp;</p>\\n</div>', NULL, NULL, 0, 4, '小米', '手机通讯');\nINSERT INTO `pms_product` VALUES (29, 51, 19, 0, 3, 'Apple iPhone 8 Plus 64GB 红色特别版 移动联通电信4G手机', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5acc5248N6a5f81cd.jpg', '7437799', 0, 1, 1, 1, 0, 0, 97, 5499.00, 4799.00, 5499, 5499, 0, '【限时限量抢购】Apple产品年中狂欢节，好物尽享，美在智慧！速来 >> 勾选[保障服务][原厂保2年]，获得AppleCare+全方位服务计划，原厂延保售后无忧。', '', 5499.00, 100, 0, '', 0.00, 0, '1,2,3', '', '', '', '', '', '', '<div><img src=\\\"//img10.360buyimg.com/cms/jfs/t1/20020/38/9725/228440/5c7f9208Eeaf4bf87/13a713066f71791d.jpg!q70.dpg.webp\\\" /> <img src=\\\"//img12.360buyimg.com/cms/jfs/t1/12128/39/9607/265349/5c7f9209Ecff29b88/08620ba570705634.jpg!q70.dpg.webp\\\" /> <img src=\\\"//img14.360buyimg.com/cms/jfs/t1/22731/40/9578/345163/5c7f9209E9ba056e5/a8a557060b84447e.jpg!q70.dpg.webp\\\" /> <img src=\\\"//img14.360buyimg.com/cms/jfs/t1/29506/38/9439/299492/5c7f9209E0e51eb29/15dedd95416f3c68.jpg!q70.dpg.webp\\\" /> <img src=\\\"//img14.360buyimg.com/cms/jfs/t1/26766/28/9574/257101/5c7f9209Eaca1b317/c7caa047b1566cf1.jpg!q70.dpg.webp\\\" /> <img src=\\\"//img13.360buyimg.com/cms/jfs/t1/11059/8/10473/286531/5c7f9208E05da0120/9034ad8799ad9553.jpg!q70.dpg.webp\\\" /> <img src=\\\"//img14.360buyimg.com/cms/jfs/t1/25641/2/9557/268826/5c7f9208Efbf0dc50/399580629e05e733.jpg!q70.dpg.webp\\\" /> <img src=\\\"//img13.360buyimg.com/cms/jfs/t1/28964/25/9527/305902/5c7f9208E275ffb9c/8464934d67e69b7a.jpg!q70.dpg.webp\\\" /></div>', '2020-05-04 15:12:54', '2020-05-30 00:00:00', 0, 1, '苹果', '手机通讯');\nINSERT INTO `pms_product` VALUES (30, 50, 8, 0, 1, 'HLA海澜之家简约动物印花短袖T恤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5ad83a4fN6ff67ecd.jpg!cc_350x449.jpg', 'HNTBJ2E042A', 0, 1, 1, 1, 0, 0, 0, 98.00, NULL, 0, 0, 0, '2018夏季新品微弹舒适新款短T男生 6月6日-6月20日，满300减30，参与互动赢百元礼券，立即分享赢大奖', '', 98.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '海澜之家', 'T恤');\nINSERT INTO `pms_product` VALUES (31, 50, 8, 0, 1, 'HLA海澜之家蓝灰花纹圆领针织布短袖T恤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5ac98b64N70acd82f.jpg!cc_350x449.jpg', 'HNTBJ2E080A', 0, 1, 0, 0, 0, 0, 0, 98.00, NULL, 0, 0, 0, '2018夏季新品短袖T恤男HNTBJ2E080A 蓝灰花纹80 175/92A/L80A 蓝灰花纹80 175/92A/L', '', 98.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '海澜之家', 'T恤');\nINSERT INTO `pms_product` VALUES (32, 50, 8, 0, 1, 'HLA海澜之家短袖T恤男基础款', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5a51eb88Na4797877.jpg', 'HNTBJ2E153A', 0, 1, 0, 0, 0, 0, 0, 68.00, NULL, 0, 0, 0, 'HLA海澜之家短袖T恤男基础款简约圆领HNTBJ2E153A藏青(F3)175/92A(50)', '', 68.00, 100, 0, '', 0.00, 0, '1,2', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '海澜之家', 'T恤');\nINSERT INTO `pms_product` VALUES (33, 6, 35, 0, 12, '小米（MI）小米电视4A ', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b02804dN66004d73.jpg', '4609652', 0, 1, 0, 0, 0, 0, 0, 2499.00, NULL, 0, 0, 0, '小米（MI）小米电视4A 55英寸 L55M5-AZ/L55M5-AD 2GB+8GB HDR 4K超高清 人工智能网络液晶平板电视', '', 2499.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '电视');\nINSERT INTO `pms_product` VALUES (34, 6, 35, 0, 12, '小米（MI）小米电视4A 65英寸', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b028530N51eee7d4.jpg', '4609660', 0, 1, 0, 0, 0, 0, 0, 3999.00, NULL, 0, 0, 0, ' L65M5-AZ/L65M5-AD 2GB+8GB HDR 4K超高清 人工智能网络液晶平板电视', '', 3999.00, 100, 0, '', 0.00, 0, '1,2', '', '', '', '', '', '', '', NULL, NULL, 0, 0, '小米', '电视');\nINSERT INTO `pms_product` VALUES (35, 58, 29, 0, 11, '耐克NIKE 男子 休闲鞋 ROSHE RUN 运动鞋 511881-010黑色41码', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b235bb9Nf606460b.jpg', '6799342', 0, 1, 0, 0, 0, 0, 0, 369.00, NULL, 0, 0, 0, '耐克NIKE 男子 休闲鞋 ROSHE RUN 运动鞋 511881-010黑色41码', '', 369.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, 'NIKE', '男鞋');\nINSERT INTO `pms_product` VALUES (36, 58, 29, 0, 11, '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20180615/5b19403eN9f0b3cb8.jpg', '6799345', 0, 1, 1, 1, 0, 0, 0, 499.00, NULL, 0, 0, 0, '耐克NIKE 男子 气垫 休闲鞋 AIR MAX 90 ESSENTIAL 运动鞋 AJ1285-101白色41码', '', 499.00, 100, 0, '', 0.00, 0, '', '', '', '', '', '', '', '', NULL, NULL, 0, 0, 'NIKE', '男鞋');\nINSERT INTO `pms_product` VALUES (37, 51, 19, 0, 3, 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', '100038005189', 0, 1, 0, 0, 0, 200, 0, 5999.00, NULL, 0, 0, 0, '【11.11大爱超大爱】指定iPhone14产品限时限量领券立减601元！！！部分iPhone产品现货抢购确认收货即送原厂手机壳10元优惠券！！！猛戳 ', '', 5999.00, 1000, 0, '', 208.00, 0, '1,2,3', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_002.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_003.jpg,http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_004.jpg', '', '', '', '<div style=\\\"margin: 0 auto;\\\"><img style=\\\"max-width: 390px;\\\" src=\\\"//img13.360buyimg.com/cms/jfs/t1/58071/39/19839/119559/63190110Edac0cea7/b62a84f1b8775fef.jpg!q70.dpg.webp\\\" /> <img style=\\\"max-width: 390px;\\\" src=\\\"//img20.360buyimg.com/cms/jfs/t1/138903/36/29400/86115/63190110E0a98c819/d2efbef39eeb2995.jpg!q70.dpg.webp\\\" /> <img style=\\\"max-width: 390px;\\\" src=\\\"//img30.360buyimg.com/cms/jfs/t1/176347/20/28995/115695/63190110Ef5d766f9/aee3d2d866522f66.jpg!q70.dpg.webp\\\" /> <img style=\\\"max-width: 390px;\\\" src=\\\"//img14.360buyimg.com/cms/jfs/t1/120515/39/28721/142961/63190110Eec31e31a/3486d6a065a18ddc.jpg!q70.dpg.webp\\\" /> <img style=\\\"max-width: 390px;\\\" src=\\\"//img13.360buyimg.com/cms/jfs/t1/30161/12/17674/81508/63190110E1385cf61/f05a2a43f4d304ff.jpg!q70.dpg.webp\\\" /> <img style=\\\"max-width: 390px;\\\" src=\\\"//img14.360buyimg.com/cms/jfs/t1/100037/16/31071/62177/6319010fE871efe01/b01a6f981c268e38.jpg!q70.dpg.webp\\\" /> <img style=\\\"max-width: 390px;\\\" src=\\\"//img14.360buyimg.com/cms/jfs/t1/90843/33/25852/74752/63190110E373559f4/74b6b52a3fb08c66.jpg!q70.dpg.webp\\\" /> <img style=\\\"max-width: 390px;\\\" src=\\\"//img14.360buyimg.com/cms/jfs/t1/181914/22/28400/126094/63190110Edefb838c/802a16e758be2b1d.jpg!q70.dpg.webp\\\" /></div>', NULL, NULL, 0, 0, '苹果', '手机通讯');\nINSERT INTO `pms_product` VALUES (38, 51, 53, 0, 3, 'Apple iPad 10.9英寸平板电脑 2022年款', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', '100044025833', 0, 1, 0, 0, 0, 0, 0, 3599.00, NULL, 0, 0, 0, '【11.11大爱超大爱】iPad9代限量抢购，价格优惠，更享以旧换新至高补贴325元！！快来抢购吧！！ ', '', 3599.00, 1000, 0, '', 0.00, 0, '1,2,3', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_002.jpg', '', '', '', '<div style=\\\"margin: 0 auto;\\\"><img style=\\\"max-width: 390px;\\\" src=\\\"//img12.360buyimg.com/cms/jfs/t1/75040/28/21026/295081/634ed154E981e4d10/2ceef91d6f2b2273.jpg!q70.dpg.webp\\\" /> <img style=\\\"max-width: 390px;\\\" src=\\\"//img13.360buyimg.com/cms/jfs/t1/191028/1/28802/401291/634ed15eEb234dc40/5ab89f83531e1023.jpg!q70.dpg.webp\\\" /> <img style=\\\"max-width: 390px;\\\" src=\\\"//img14.360buyimg.com/cms/jfs/t1/32758/24/18599/330590/634ed15eEc3db173c/c52953dc8008a576.jpg!q70.dpg.webp\\\" /></div>', NULL, NULL, 0, 0, '苹果', '平板电脑');\nINSERT INTO `pms_product` VALUES (39, 6, 54, 0, 13, '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', '100023207945', 0, 1, 0, 1, 0, 0, 0, 5599.00, NULL, 0, 0, 0, '【双十一大促来袭】指定型号至高优惠1000，以旧换新至高补贴1000元，晒单赢好礼', '', 5599.00, 500, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_002.jpg', '', '', '', '<div class=\\\"ssd-module-mobile-wrap\\\">\\n<div class=\\\"ssd-module M16667778180631\\\" data-id=\\\"M16667778180631\\\"><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_snipaste_01.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_snipaste_02.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_snipaste_03.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_snipaste_04.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_snipaste_05.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_snipaste_06.png\\\" /></div>\\n<div class=\\\"ssd-module M16667778180631\\\" data-id=\\\"M16667778180631\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M16534569204241\\\" data-id=\\\"M16534569204241\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M16667778416884\\\" data-id=\\\"M16667778416884\\\">\\n<div class=\\\"ssd-widget-text W16667778440496\\\">&nbsp;</div>\\n</div>\\n<div class=\\\"ssd-module M165303211067557\\\" data-id=\\\"M165303211067557\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M16530320459861\\\" data-id=\\\"M16530320459861\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M16530320460062\\\" data-id=\\\"M16530320460062\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M16530320460153\\\" data-id=\\\"M16530320460153\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M16530320460366\\\" data-id=\\\"M16530320460366\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M16530320460477\\\" data-id=\\\"M16530320460477\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M16530320460578\\\" data-id=\\\"M16530320460578\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M16530320460699\\\" data-id=\\\"M16530320460699\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204608110\\\" data-id=\\\"M165303204608110\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204609511\\\" data-id=\\\"M165303204609511\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204611213\\\" data-id=\\\"M165303204611213\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204612714\\\" data-id=\\\"M165303204612714\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204614115\\\" data-id=\\\"M165303204614115\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204615516\\\" data-id=\\\"M165303204615516\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204617417\\\" data-id=\\\"M165303204617417\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204618818\\\" data-id=\\\"M165303204618818\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204620219\\\" data-id=\\\"M165303204620219\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204621620\\\" data-id=\\\"M165303204621620\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204622921\\\" data-id=\\\"M165303204622921\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204624522\\\" data-id=\\\"M165303204624522\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204626024\\\" data-id=\\\"M165303204626024\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204627525\\\" data-id=\\\"M165303204627525\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204629127\\\" data-id=\\\"M165303204629127\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204632330\\\" data-id=\\\"M165303204632330\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204634031\\\" data-id=\\\"M165303204634031\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204635832\\\" data-id=\\\"M165303204635832\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204637533\\\" data-id=\\\"M165303204637533\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204639334\\\" data-id=\\\"M165303204639334\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204642235\\\" data-id=\\\"M165303204642235\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204647936\\\" data-id=\\\"M165303204647936\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204651037\\\" data-id=\\\"M165303204651037\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204653838\\\" data-id=\\\"M165303204653838\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204656239\\\" data-id=\\\"M165303204656239\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204659141\\\" data-id=\\\"M165303204659141\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204661943\\\" data-id=\\\"M165303204661943\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204665844\\\" data-id=\\\"M165303204665844\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204668045\\\" data-id=\\\"M165303204668045\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204670146\\\" data-id=\\\"M165303204670146\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204672147\\\" data-id=\\\"M165303204672147\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204674348\\\" data-id=\\\"M165303204674348\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204676749\\\" data-id=\\\"M165303204676749\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204681352\\\" data-id=\\\"M165303204681352\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204683553\\\" data-id=\\\"M165303204683553\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204685855\\\" data-id=\\\"M165303204685855\\\">&nbsp;</div>\\n<div class=\\\"ssd-module M165303204688356\\\" data-id=\\\"M165303204688356\\\">&nbsp;</div>\\n</div>', NULL, NULL, 0, 0, '小米', '笔记本');\nINSERT INTO `pms_product` VALUES (40, 6, 19, 0, 3, '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', '100027789721', 0, 1, 0, 1, 0, 0, 0, 2999.00, NULL, 0, 0, 0, '天玑9000+处理器、5160mAh大电量、2KAmoled超视感屏【点击购买小米11Ultra，戳】 ', '', 2999.00, 500, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_02.jpg', '', '', '', '<p><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_snipaste_01.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_snipaste_02.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_snipaste_03.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_snipaste_04.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_snipaste_05.png\\\" /></p>', NULL, NULL, 0, 4, '小米', '手机通讯');\nINSERT INTO `pms_product` VALUES (41, 6, 19, 0, 3, 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', '100035246702', 0, 1, 0, 0, 0, 0, 0, 2099.00, NULL, 0, 0, 0, '【品质好物】天玑8100，2K直屏，5500mAh大电量【Note12Pro火热抢购中】 ', '', 2099.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_02.jpg', '', '', '', '<p><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_snipaste_01.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_snipaste_02.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_snipaste_03.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_snipaste_04.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_snipaste_05.png\\\" /></p>', NULL, NULL, 0, 0, '小米', '手机通讯');\nINSERT INTO `pms_product` VALUES (42, 3, 19, 0, 3, 'HUAWEI Mate 50 直屏旗舰 超光变XMAGE影像 北斗卫星消息', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_01.jpg', '100035295081', 0, 1, 0, 0, 0, 0, 0, 4999.00, NULL, 0, 0, 0, '【华为Mate50新品上市】内置66W华为充电套装，超光变XMAGE影像,北斗卫星消息，鸿蒙操作系统3.0！立即抢购！华为新品可持续计划，猛戳》 ', '', 4999.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_02.jpg', '', '', '', '<p><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_snipaste_01.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_snipaste_02.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_snipaste_03.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_snipaste_04.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_snipaste_05.png\\\" /></p>', NULL, NULL, 0, 0, '华为', '手机通讯');\nINSERT INTO `pms_product` VALUES (43, 1, 39, 0, 14, '万和（Vanward)燃气热水器天然气家用四重防冻直流变频节能全新升级增压水伺服恒温高抗风', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_13L_01.png', '10044060351752', 0, 1, 0, 0, 0, 0, 0, 1799.00, NULL, 0, 0, 0, '【家电11.11享低价，抢到手价不高于1199】【发布种草秀享好礼！同价11.11买贵补差】爆款超一级能效零冷水】 ', '', 1799.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_16L_01.jpg', '', '', '', '<p><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_water_snipaste_01.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_water_snipaste_02.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_water_snipaste_03.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_water_snipaste_04.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_water_snipaste_05.png\\\" /></p>', NULL, NULL, 0, 0, '万和', '厨卫大电');\nINSERT INTO `pms_product` VALUES (44, 2, 55, 0, 15, '三星（SAMSUNG）500GB SSD固态硬盘 M.2接口(NVMe协议)', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_02.jpg', '100018768480', 0, 1, 0, 0, 0, 0, 0, 369.00, NULL, 0, 0, 0, '【满血无缓存！进店抽百元E卡，部分型号白条三期免息】兼具速度与可靠性！读速高达3500MB/s，全功率模式！点击 ', '', 369.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_01.jpg', '', '', '', '<p><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_snipaste_01.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_snipaste_02.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_snipaste_03.png\\\" /></p>', NULL, NULL, 0, 0, '三星', '硬盘');\nINSERT INTO `pms_product` VALUES (45, 21, 19, 0, 3, 'OPPO Reno8 8GB+128GB 鸢尾紫 新配色上市 80W超级闪充 5000万水光人像三摄', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_01.jpg', '10052147850350', 0, 1, 0, 0, 0, 0, 0, 2299.00, 999.00, 0, 0, 0, '【11.11提前购机享价保，好货不用等，系统申请一键价保补差!】【Reno8Pro爆款优惠】 ', '', 2299.00, 1000, 0, '', 0.00, 0, '', '', '', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_02.jpg', '', '', '', '<p><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_snipaste_01.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_snipaste_02.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_snipaste_03.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_snipaste_04.png\\\" /><img class=\\\"wscnph\\\" src=\\\"http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_snipaste_05.png\\\" /></p>', '2022-11-09 16:15:50', '2022-11-25 00:00:00', 0, 4, 'OPPO', '手机通讯');\n\n-- ----------------------------\n-- Table structure for pms_product_attribute\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_product_attribute`;\nCREATE TABLE `pms_product_attribute`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_attribute_category_id` bigint(20) NULL DEFAULT NULL,\n  `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `select_type` int(1) NULL DEFAULT NULL COMMENT '属性选择类型：0->唯一；1->单选；2->多选',\n  `input_type` int(1) NULL DEFAULT NULL COMMENT '属性录入方式：0->手工录入；1->从列表中选取',\n  `input_list` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '可选值列表，以逗号隔开',\n  `sort` int(11) NULL DEFAULT NULL COMMENT '排序字段：最高的可以单独上传图片',\n  `filter_type` int(1) NULL DEFAULT NULL COMMENT '分类筛选样式：1->普通；1->颜色',\n  `search_type` int(1) NULL DEFAULT NULL COMMENT '检索类型；0->不需要进行检索；1->关键字检索；2->范围检索',\n  `related_status` int(1) NULL DEFAULT NULL COMMENT '相同属性产品是否关联；0->不关联；1->关联',\n  `hand_add_status` int(1) NULL DEFAULT NULL COMMENT '是否支持手动新增；0->不支持；1->支持',\n  `type` int(1) NULL DEFAULT NULL COMMENT '属性的类型；0->规格；1->参数',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 74 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品属性参数表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_product_attribute\n-- ----------------------------\nINSERT INTO `pms_product_attribute` VALUES (1, 1, '尺寸', 2, 1, 'M,X,XL,2XL,3XL,4XL', 0, 0, 0, 0, 0, 0);\nINSERT INTO `pms_product_attribute` VALUES (7, 1, '颜色', 2, 1, '黑色,红色,白色,粉色', 100, 0, 0, 0, 1, 0);\nINSERT INTO `pms_product_attribute` VALUES (13, 0, '上市年份', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (14, 0, '上市年份1', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (15, 0, '上市年份2', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (16, 0, '上市年份3', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (17, 0, '上市年份4', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (18, 0, '上市年份5', 1, 1, '2013年,2014年,2015年,2016年,2017年', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (19, 0, '适用对象', 1, 1, '青年女性,中年女性', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (20, 0, '适用对象1', 2, 1, '青年女性,中年女性', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (21, 0, '适用对象3', 2, 1, '青年女性,中年女性', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (24, 1, '商品编号', 1, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (25, 1, '适用季节', 1, 1, '春季,夏季,秋季,冬季', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (32, 2, '适用人群', 0, 1, '老年,青年,中年', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (33, 2, '风格', 0, 1, '嘻哈风格,基础大众,商务正装', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (35, 2, '颜色', 0, 0, '', 100, 0, 0, 0, 1, 0);\nINSERT INTO `pms_product_attribute` VALUES (37, 1, '适用人群', 1, 1, '儿童,青年,中年,老年', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (38, 1, '上市时间', 1, 1, '2017年秋,2017年冬,2018年春,2018年夏', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (39, 1, '袖长', 1, 1, '短袖,长袖,中袖', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (40, 2, '尺码', 0, 1, '29,30,31,32,33,34', 0, 0, 0, 0, 0, 0);\nINSERT INTO `pms_product_attribute` VALUES (41, 2, '适用场景', 0, 1, '居家,运动,正装', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (42, 2, '上市时间', 0, 1, '2018年春,2018年夏', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (43, 3, '颜色', 0, 0, '', 100, 0, 0, 0, 1, 0);\nINSERT INTO `pms_product_attribute` VALUES (44, 3, '容量', 0, 1, '16G,32G,64G,128G,256G,512G', 0, 0, 0, 0, 0, 0);\nINSERT INTO `pms_product_attribute` VALUES (45, 3, '屏幕尺寸', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (46, 3, '网络', 0, 1, '3G,4G,5G,WLAN', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (47, 3, '系统', 0, 1, 'Android,IOS', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (48, 3, '电池容量', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (49, 11, '颜色', 0, 1, '红色,蓝色,绿色', 0, 1, 0, 0, 0, 0);\nINSERT INTO `pms_product_attribute` VALUES (50, 11, '尺寸', 0, 1, '38,39,40', 0, 0, 0, 0, 0, 0);\nINSERT INTO `pms_product_attribute` VALUES (51, 11, '风格', 0, 1, '夏季,秋季', 0, 0, 0, 0, 0, 0);\nINSERT INTO `pms_product_attribute` VALUES (52, 12, '尺寸', 0, 1, '50英寸,65英寸,70英寸', 0, 0, 0, 0, 0, 0);\nINSERT INTO `pms_product_attribute` VALUES (53, 12, '内存', 0, 1, '8G,16G,32G', 0, 0, 0, 0, 0, 0);\nINSERT INTO `pms_product_attribute` VALUES (54, 12, '商品编号', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (55, 12, '商品毛重', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (56, 12, '商品产地', 0, 1, '中国大陆,其他', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (57, 12, '电视类型', 0, 1, '大屏,教育电视,4K超清', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (58, 13, '颜色', 0, 0, '', 0, 0, 0, 0, 1, 0);\nINSERT INTO `pms_product_attribute` VALUES (59, 13, '版本', 0, 1, 'R7 16G 512,R5 16G 512,I5 16G 512,I7 16G 512', 0, 0, 0, 0, 0, 0);\nINSERT INTO `pms_product_attribute` VALUES (60, 13, '屏幕尺寸', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (61, 13, '屏幕分辨率', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (62, 13, 'CPU型号', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (63, 14, '系列', 0, 0, '', 0, 0, 0, 0, 1, 0);\nINSERT INTO `pms_product_attribute` VALUES (64, 14, '上市时间', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (65, 14, '毛重', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (66, 14, '额定功率', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (67, 15, '颜色', 0, 0, '', 0, 0, 0, 0, 1, 0);\nINSERT INTO `pms_product_attribute` VALUES (68, 15, '版本', 0, 1, '512GB,1TB', 0, 0, 0, 0, 0, 0);\nINSERT INTO `pms_product_attribute` VALUES (69, 15, '系列', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (70, 15, '型号', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (71, 15, '闪存类型', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (72, 15, '顺序读速', 0, 0, '', 0, 0, 0, 0, 0, 1);\nINSERT INTO `pms_product_attribute` VALUES (73, 15, '顺序写入', 0, 0, '', 0, 0, 0, 0, 0, 1);\n\n-- ----------------------------\n-- Table structure for pms_product_attribute_category\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_product_attribute_category`;\nCREATE TABLE `pms_product_attribute_category`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `attribute_count` int(11) NULL DEFAULT 0 COMMENT '属性数量',\n  `param_count` int(11) NULL DEFAULT 0 COMMENT '参数数量',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品属性分类表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_product_attribute_category\n-- ----------------------------\nINSERT INTO `pms_product_attribute_category` VALUES (1, '服装-T恤', 2, 5);\nINSERT INTO `pms_product_attribute_category` VALUES (2, '服装-裤装', 2, 4);\nINSERT INTO `pms_product_attribute_category` VALUES (3, '手机数码-手机通讯', 2, 4);\nINSERT INTO `pms_product_attribute_category` VALUES (4, '配件', 0, 0);\nINSERT INTO `pms_product_attribute_category` VALUES (5, '居家', 0, 0);\nINSERT INTO `pms_product_attribute_category` VALUES (6, '洗护', 0, 0);\nINSERT INTO `pms_product_attribute_category` VALUES (10, '测试分类', 0, 0);\nINSERT INTO `pms_product_attribute_category` VALUES (11, '服装-鞋帽', 3, 0);\nINSERT INTO `pms_product_attribute_category` VALUES (12, '家用电器-电视', 2, 4);\nINSERT INTO `pms_product_attribute_category` VALUES (13, '电脑办公-笔记本', 2, 3);\nINSERT INTO `pms_product_attribute_category` VALUES (14, '家用电器-厨卫大电', 1, 3);\nINSERT INTO `pms_product_attribute_category` VALUES (15, '电脑办公-硬盘', 2, 5);\n\n-- ----------------------------\n-- Table structure for pms_product_attribute_value\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_product_attribute_value`;\nCREATE TABLE `pms_product_attribute_value`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `product_attribute_id` bigint(20) NULL DEFAULT NULL,\n  `value` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手动添加规格或参数的值，参数单值，规格有多个时以逗号隔开',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 517 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '存储产品参数信息的表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_product_attribute_value\n-- ----------------------------\nINSERT INTO `pms_product_attribute_value` VALUES (1, 9, 1, 'X');\nINSERT INTO `pms_product_attribute_value` VALUES (2, 10, 1, 'X');\nINSERT INTO `pms_product_attribute_value` VALUES (3, 11, 1, 'X');\nINSERT INTO `pms_product_attribute_value` VALUES (4, 12, 1, 'X');\nINSERT INTO `pms_product_attribute_value` VALUES (5, 13, 1, 'X');\nINSERT INTO `pms_product_attribute_value` VALUES (6, 14, 1, 'X');\nINSERT INTO `pms_product_attribute_value` VALUES (7, 18, 1, 'X');\nINSERT INTO `pms_product_attribute_value` VALUES (8, 7, 1, 'X');\nINSERT INTO `pms_product_attribute_value` VALUES (9, 7, 1, 'XL');\nINSERT INTO `pms_product_attribute_value` VALUES (10, 7, 1, 'XXL');\nINSERT INTO `pms_product_attribute_value` VALUES (11, 22, 7, 'x,xx');\nINSERT INTO `pms_product_attribute_value` VALUES (12, 22, 24, 'no110');\nINSERT INTO `pms_product_attribute_value` VALUES (13, 22, 25, '春季');\nINSERT INTO `pms_product_attribute_value` VALUES (14, 22, 37, '青年');\nINSERT INTO `pms_product_attribute_value` VALUES (15, 22, 38, '2018年春');\nINSERT INTO `pms_product_attribute_value` VALUES (16, 22, 39, '长袖');\nINSERT INTO `pms_product_attribute_value` VALUES (124, 23, 7, '米白色,浅黄色');\nINSERT INTO `pms_product_attribute_value` VALUES (125, 23, 24, 'no1098');\nINSERT INTO `pms_product_attribute_value` VALUES (126, 23, 25, '春季');\nINSERT INTO `pms_product_attribute_value` VALUES (127, 23, 37, '青年');\nINSERT INTO `pms_product_attribute_value` VALUES (128, 23, 38, '2018年春');\nINSERT INTO `pms_product_attribute_value` VALUES (129, 23, 39, '长袖');\nINSERT INTO `pms_product_attribute_value` VALUES (130, 1, 13, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (131, 1, 14, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (132, 1, 15, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (133, 1, 16, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (134, 1, 17, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (135, 1, 18, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (136, 1, 19, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (137, 1, 20, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (138, 1, 21, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (139, 2, 13, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (140, 2, 14, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (141, 2, 15, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (142, 2, 16, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (143, 2, 17, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (144, 2, 18, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (145, 2, 19, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (146, 2, 20, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (147, 2, 21, NULL);\nINSERT INTO `pms_product_attribute_value` VALUES (243, 30, 7, '蓝色,白色');\nINSERT INTO `pms_product_attribute_value` VALUES (244, 30, 24, 'HNTBJ2E042A');\nINSERT INTO `pms_product_attribute_value` VALUES (245, 30, 25, '夏季');\nINSERT INTO `pms_product_attribute_value` VALUES (246, 30, 37, '青年');\nINSERT INTO `pms_product_attribute_value` VALUES (247, 30, 38, '2018年夏');\nINSERT INTO `pms_product_attribute_value` VALUES (248, 30, 39, '短袖');\nINSERT INTO `pms_product_attribute_value` VALUES (249, 31, 7, '浅灰色,深灰色');\nINSERT INTO `pms_product_attribute_value` VALUES (250, 31, 24, 'HNTBJ2E080A');\nINSERT INTO `pms_product_attribute_value` VALUES (251, 31, 25, '夏季');\nINSERT INTO `pms_product_attribute_value` VALUES (252, 31, 37, '青年');\nINSERT INTO `pms_product_attribute_value` VALUES (253, 31, 38, '2018年夏');\nINSERT INTO `pms_product_attribute_value` VALUES (254, 31, 39, '短袖');\nINSERT INTO `pms_product_attribute_value` VALUES (255, 32, 7, '黑色,白色');\nINSERT INTO `pms_product_attribute_value` VALUES (256, 32, 24, 'HNTBJ2E153A');\nINSERT INTO `pms_product_attribute_value` VALUES (257, 32, 25, '夏季');\nINSERT INTO `pms_product_attribute_value` VALUES (258, 32, 37, '青年');\nINSERT INTO `pms_product_attribute_value` VALUES (259, 32, 38, '2018年夏');\nINSERT INTO `pms_product_attribute_value` VALUES (260, 32, 39, '短袖');\nINSERT INTO `pms_product_attribute_value` VALUES (265, 33, 54, '4609652');\nINSERT INTO `pms_product_attribute_value` VALUES (266, 33, 55, '28.6kg');\nINSERT INTO `pms_product_attribute_value` VALUES (267, 33, 56, '中国大陆');\nINSERT INTO `pms_product_attribute_value` VALUES (268, 33, 57, '大屏');\nINSERT INTO `pms_product_attribute_value` VALUES (269, 34, 54, '4609660');\nINSERT INTO `pms_product_attribute_value` VALUES (270, 34, 55, '30.8kg');\nINSERT INTO `pms_product_attribute_value` VALUES (271, 34, 56, '中国大陆');\nINSERT INTO `pms_product_attribute_value` VALUES (272, 34, 57, '4K超清');\nINSERT INTO `pms_product_attribute_value` VALUES (288, 27, 43, '黑色,蓝色');\nINSERT INTO `pms_product_attribute_value` VALUES (289, 27, 45, '5.8');\nINSERT INTO `pms_product_attribute_value` VALUES (290, 27, 46, '4G');\nINSERT INTO `pms_product_attribute_value` VALUES (291, 27, 47, 'Android');\nINSERT INTO `pms_product_attribute_value` VALUES (292, 27, 48, '3000ml');\nINSERT INTO `pms_product_attribute_value` VALUES (303, 28, 43, '金色,银色');\nINSERT INTO `pms_product_attribute_value` VALUES (304, 28, 45, '5.0');\nINSERT INTO `pms_product_attribute_value` VALUES (305, 28, 46, '4G');\nINSERT INTO `pms_product_attribute_value` VALUES (306, 28, 47, 'Android');\nINSERT INTO `pms_product_attribute_value` VALUES (307, 28, 48, '2800ml');\nINSERT INTO `pms_product_attribute_value` VALUES (308, 29, 43, '金色,银色');\nINSERT INTO `pms_product_attribute_value` VALUES (309, 29, 45, '4.7');\nINSERT INTO `pms_product_attribute_value` VALUES (310, 29, 46, '4G');\nINSERT INTO `pms_product_attribute_value` VALUES (311, 29, 47, 'IOS');\nINSERT INTO `pms_product_attribute_value` VALUES (312, 29, 48, '1960ml');\nINSERT INTO `pms_product_attribute_value` VALUES (338, 37, 43, '午夜色,星光色,紫色,蓝色');\nINSERT INTO `pms_product_attribute_value` VALUES (339, 37, 45, '6.1英寸');\nINSERT INTO `pms_product_attribute_value` VALUES (340, 37, 46, '5G');\nINSERT INTO `pms_product_attribute_value` VALUES (341, 37, 47, 'IOS');\nINSERT INTO `pms_product_attribute_value` VALUES (342, 37, 48, '3000毫安');\nINSERT INTO `pms_product_attribute_value` VALUES (443, 38, 43, '银色,蓝色');\nINSERT INTO `pms_product_attribute_value` VALUES (444, 38, 45, '10.9英寸');\nINSERT INTO `pms_product_attribute_value` VALUES (445, 38, 46, 'WLAN');\nINSERT INTO `pms_product_attribute_value` VALUES (446, 38, 47, 'IOS');\nINSERT INTO `pms_product_attribute_value` VALUES (447, 38, 48, '6000毫安');\nINSERT INTO `pms_product_attribute_value` VALUES (448, 39, 58, '新小米Pro 14英寸 2.8K屏,新Redmi Pro 15英寸 3.2K屏');\nINSERT INTO `pms_product_attribute_value` VALUES (449, 39, 60, '15.6英寸');\nINSERT INTO `pms_product_attribute_value` VALUES (450, 39, 61, '3200*2000');\nINSERT INTO `pms_product_attribute_value` VALUES (451, 39, 62, 'R5 6600H');\nINSERT INTO `pms_product_attribute_value` VALUES (452, 41, 43, '墨羽,银迹');\nINSERT INTO `pms_product_attribute_value` VALUES (453, 41, 45, '6.67英寸');\nINSERT INTO `pms_product_attribute_value` VALUES (454, 41, 46, '5G');\nINSERT INTO `pms_product_attribute_value` VALUES (455, 41, 47, 'Android');\nINSERT INTO `pms_product_attribute_value` VALUES (456, 41, 48, '5500mAh');\nINSERT INTO `pms_product_attribute_value` VALUES (457, 42, 43, '曜金黑,冰霜银');\nINSERT INTO `pms_product_attribute_value` VALUES (458, 42, 45, '6.7英寸');\nINSERT INTO `pms_product_attribute_value` VALUES (459, 42, 46, '5G');\nINSERT INTO `pms_product_attribute_value` VALUES (460, 42, 47, 'Android');\nINSERT INTO `pms_product_attribute_value` VALUES (461, 42, 48, '4460mAh');\nINSERT INTO `pms_product_attribute_value` VALUES (462, 43, 63, 'JSQ25-565W13【13升】【恒温旗舰款】,JSQ30-565W16【16升】【恒温旗舰款】');\nINSERT INTO `pms_product_attribute_value` VALUES (463, 43, 64, '2021-05');\nINSERT INTO `pms_product_attribute_value` VALUES (464, 43, 65, '15.5kg');\nINSERT INTO `pms_product_attribute_value` VALUES (465, 43, 66, '30w');\nINSERT INTO `pms_product_attribute_value` VALUES (466, 44, 67, '新品980｜NVMe PCIe3.0*4,980 PRO｜NVMe PCIe 4.0');\nINSERT INTO `pms_product_attribute_value` VALUES (467, 44, 69, '980');\nINSERT INTO `pms_product_attribute_value` VALUES (468, 44, 70, 'MZ-V8V500BW');\nINSERT INTO `pms_product_attribute_value` VALUES (469, 44, 71, 'TLC');\nINSERT INTO `pms_product_attribute_value` VALUES (470, 44, 72, '3100MB/s');\nINSERT INTO `pms_product_attribute_value` VALUES (471, 44, 73, '2600MB/s');\nINSERT INTO `pms_product_attribute_value` VALUES (472, 45, 43, '鸢尾紫,晴空蓝');\nINSERT INTO `pms_product_attribute_value` VALUES (473, 45, 45, '6.43英寸');\nINSERT INTO `pms_product_attribute_value` VALUES (474, 45, 46, '5G');\nINSERT INTO `pms_product_attribute_value` VALUES (475, 45, 47, 'Android');\nINSERT INTO `pms_product_attribute_value` VALUES (476, 45, 48, '4500mAh');\nINSERT INTO `pms_product_attribute_value` VALUES (477, 40, 43, '黑色,蓝色');\nINSERT INTO `pms_product_attribute_value` VALUES (478, 40, 45, '6.73英寸');\nINSERT INTO `pms_product_attribute_value` VALUES (479, 40, 46, '5G');\nINSERT INTO `pms_product_attribute_value` VALUES (480, 40, 47, 'Android');\nINSERT INTO `pms_product_attribute_value` VALUES (481, 40, 48, '5160mAh');\nINSERT INTO `pms_product_attribute_value` VALUES (512, 26, 43, '金色,银色');\nINSERT INTO `pms_product_attribute_value` VALUES (513, 26, 45, '5.0');\nINSERT INTO `pms_product_attribute_value` VALUES (514, 26, 46, '4G');\nINSERT INTO `pms_product_attribute_value` VALUES (515, 26, 47, 'Android');\nINSERT INTO `pms_product_attribute_value` VALUES (516, 26, 48, '3000');\n\n-- ----------------------------\n-- Table structure for pms_product_category\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_product_category`;\nCREATE TABLE `pms_product_category`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '上机分类的编号：0表示一级分类',\n  `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `level` int(1) NULL DEFAULT NULL COMMENT '分类级别：0->1级；1->2级',\n  `product_count` int(11) NULL DEFAULT NULL,\n  `product_unit` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `nav_status` int(1) NULL DEFAULT NULL COMMENT '是否显示在导航栏：0->不显示；1->显示',\n  `show_status` int(1) NULL DEFAULT NULL COMMENT '显示状态：0->不显示；1->显示',\n  `sort` int(11) NULL DEFAULT NULL,\n  `icon` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标',\n  `keywords` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `description` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '描述',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 56 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品分类' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_product_category\n-- ----------------------------\nINSERT INTO `pms_product_category` VALUES (1, 0, '服装', 0, 100, '件', 1, 1, 1, NULL, '服装', '服装分类');\nINSERT INTO `pms_product_category` VALUES (2, 0, '手机数码', 0, 100, '件', 1, 1, 1, NULL, '手机数码', '手机数码');\nINSERT INTO `pms_product_category` VALUES (3, 0, '家用电器', 0, 100, '件', 1, 1, 1, NULL, '家用电器', '家用电器');\nINSERT INTO `pms_product_category` VALUES (4, 0, '家具家装', 0, 100, '件', 1, 1, 1, NULL, '家具家装', '家具家装');\nINSERT INTO `pms_product_category` VALUES (5, 0, '汽车用品', 0, 100, '件', 1, 1, 1, NULL, '汽车用品', '汽车用品');\nINSERT INTO `pms_product_category` VALUES (7, 1, '外套', 1, 100, '件', 1, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac4780cN6087feb5.jpg', '外套', '外套');\nINSERT INTO `pms_product_category` VALUES (8, 1, 'T恤', 1, 100, '件', 1, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac47ffaN8a7b2e14.png', 'T恤', 'T恤');\nINSERT INTO `pms_product_category` VALUES (9, 1, '休闲裤', 1, 100, '件', 1, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac47845N7374a31d.jpg', '休闲裤', '休闲裤');\nINSERT INTO `pms_product_category` VALUES (10, 1, '牛仔裤', 1, 100, '件', 1, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac47841Nff658599.jpg', '牛仔裤', '牛仔裤');\nINSERT INTO `pms_product_category` VALUES (11, 1, '衬衫', 1, 100, '件', 1, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac48007Nb30b2118.jpg', '衬衫', '衬衫分类');\nINSERT INTO `pms_product_category` VALUES (13, 12, '家电子分类1', 1, 1, 'string', 0, 1, 0, 'string', 'string', 'string');\nINSERT INTO `pms_product_category` VALUES (14, 12, '家电子分类2', 1, 1, 'string', 0, 1, 0, 'string', 'string', 'string');\nINSERT INTO `pms_product_category` VALUES (19, 2, '手机通讯', 1, 0, '件', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac48d27N3f5bb821.jpg', '手机通讯', '手机通讯');\nINSERT INTO `pms_product_category` VALUES (29, 1, '男鞋', 1, 0, '', 0, 0, 0, '', '', '');\nINSERT INTO `pms_product_category` VALUES (30, 2, '手机配件', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5ac48672N11cf61fe.jpg', '手机配件', '手机配件');\nINSERT INTO `pms_product_category` VALUES (31, 2, '摄影摄像', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5a1679f2Nc2f659b6.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (32, 2, '影音娱乐', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5a167859N01d8198b.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (33, 2, '数码配件', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190519/5a1676e9N1ba70a81.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (34, 2, '智能设备', 1, 0, '', 0, 0, 0, '', '', '');\nINSERT INTO `pms_product_category` VALUES (35, 3, '电视', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a17f71eN25360979.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (36, 3, '空调', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a17f6f6Ndfe746aa.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (37, 3, '洗衣机', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a17f6eaN9ec936de.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (38, 3, '冰箱', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a17f6c5Ne56d7e26.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (39, 3, '厨卫大电', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a17f369N6a55ff3f.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (40, 3, '厨房小电', 1, 0, '', 0, 0, 0, '', '', '');\nINSERT INTO `pms_product_category` VALUES (41, 3, '生活电器', 1, 0, '', 0, 0, 0, '', '', '');\nINSERT INTO `pms_product_category` VALUES (42, 3, '个护健康', 1, 0, '', 0, 0, 0, '', '', '');\nINSERT INTO `pms_product_category` VALUES (43, 4, '厨房卫浴', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1eb12cN5ab932bb.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (44, 4, '灯饰照明', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1eb115Na5705672.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (45, 4, '五金工具', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a28e743Nf6d99998.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (46, 4, '卧室家具', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1eb096N6326e0bd.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (47, 4, '客厅家具', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1eb080N38c2e7b7.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (48, 5, '全新整车', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/ebe31b9cc535e122.png', '', '');\nINSERT INTO `pms_product_category` VALUES (49, 5, '车载电器', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1fb8d2N53bbd2ba.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (50, 5, '维修保养', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a1fb8baNbe801af8.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (51, 5, '汽车装饰', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20200607/5a28ae20N34461e66.jpg', '', '');\nINSERT INTO `pms_product_category` VALUES (52, 0, '电脑办公', 0, 0, '件', 1, 1, 1, '', '电脑办公', '电脑办公');\nINSERT INTO `pms_product_category` VALUES (53, 52, '平板电脑', 1, 0, '件', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/pad_category_01.jpg', '平板电脑', '平板电脑');\nINSERT INTO `pms_product_category` VALUES (54, 52, '笔记本', 1, 0, '件', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/computer_category_01.jpg', '笔记本', '笔记本');\nINSERT INTO `pms_product_category` VALUES (55, 52, '硬盘', 1, 0, '', 0, 1, 0, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/ssd_category_01.jpg', '硬盘', '');\n\n-- ----------------------------\n-- Table structure for pms_product_category_attribute_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_product_category_attribute_relation`;\nCREATE TABLE `pms_product_category_attribute_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_category_id` bigint(20) NULL DEFAULT NULL,\n  `product_attribute_id` bigint(20) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品的分类和属性的关系表，用于设置分类筛选条件（只支持一级分类）' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_product_category_attribute_relation\n-- ----------------------------\nINSERT INTO `pms_product_category_attribute_relation` VALUES (1, 24, 24);\nINSERT INTO `pms_product_category_attribute_relation` VALUES (5, 26, 24);\nINSERT INTO `pms_product_category_attribute_relation` VALUES (7, 28, 24);\nINSERT INTO `pms_product_category_attribute_relation` VALUES (9, 25, 24);\nINSERT INTO `pms_product_category_attribute_relation` VALUES (10, 25, 25);\n\n-- ----------------------------\n-- Table structure for pms_product_full_reduction\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_product_full_reduction`;\nCREATE TABLE `pms_product_full_reduction`  (\n  `id` bigint(11) NOT NULL AUTO_INCREMENT,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `full_price` decimal(10, 2) NULL DEFAULT NULL,\n  `reduce_price` decimal(10, 2) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 148 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品满减表(只针对同商品)' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_product_full_reduction\n-- ----------------------------\nINSERT INTO `pms_product_full_reduction` VALUES (1, 7, 100.00, 20.00);\nINSERT INTO `pms_product_full_reduction` VALUES (2, 8, 100.00, 20.00);\nINSERT INTO `pms_product_full_reduction` VALUES (3, 9, 100.00, 20.00);\nINSERT INTO `pms_product_full_reduction` VALUES (4, 10, 100.00, 20.00);\nINSERT INTO `pms_product_full_reduction` VALUES (5, 11, 100.00, 20.00);\nINSERT INTO `pms_product_full_reduction` VALUES (6, 12, 100.00, 20.00);\nINSERT INTO `pms_product_full_reduction` VALUES (7, 13, 100.00, 20.00);\nINSERT INTO `pms_product_full_reduction` VALUES (8, 14, 100.00, 20.00);\nINSERT INTO `pms_product_full_reduction` VALUES (9, 18, 100.00, 20.00);\nINSERT INTO `pms_product_full_reduction` VALUES (10, 7, 200.00, 50.00);\nINSERT INTO `pms_product_full_reduction` VALUES (11, 7, 300.00, 100.00);\nINSERT INTO `pms_product_full_reduction` VALUES (14, 22, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (16, 24, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (34, 23, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (78, 36, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (79, 35, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (83, 30, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (84, 31, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (85, 32, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (87, 33, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (88, 34, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (93, 27, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (96, 28, 500.00, 50.00);\nINSERT INTO `pms_product_full_reduction` VALUES (97, 28, 1000.00, 120.00);\nINSERT INTO `pms_product_full_reduction` VALUES (98, 29, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (104, 37, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (126, 38, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (127, 39, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (128, 41, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (129, 42, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (130, 43, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (131, 44, 0.00, 0.00);\nINSERT INTO `pms_product_full_reduction` VALUES (132, 45, 2000.00, 100.00);\nINSERT INTO `pms_product_full_reduction` VALUES (133, 40, 2000.00, 200.00);\nINSERT INTO `pms_product_full_reduction` VALUES (146, 26, 3000.00, 300.00);\nINSERT INTO `pms_product_full_reduction` VALUES (147, 26, 5000.00, 500.00);\n\n-- ----------------------------\n-- Table structure for pms_product_ladder\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_product_ladder`;\nCREATE TABLE `pms_product_ladder`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `count` int(11) NULL DEFAULT NULL COMMENT '满足的商品数量',\n  `discount` decimal(10, 2) NULL DEFAULT NULL COMMENT '折扣',\n  `price` decimal(10, 2) NULL DEFAULT NULL COMMENT '折后价格',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 148 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '产品阶梯价格表(只针对同商品)' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_product_ladder\n-- ----------------------------\nINSERT INTO `pms_product_ladder` VALUES (1, 7, 3, 0.70, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (2, 8, 3, 0.70, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (3, 9, 3, 0.70, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (4, 10, 3, 0.70, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (5, 11, 3, 0.70, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (6, 12, 3, 0.70, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (7, 13, 3, 0.70, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (8, 14, 3, 0.70, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (12, 18, 3, 0.70, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (14, 7, 4, 0.60, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (15, 7, 5, 0.50, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (18, 22, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (20, 24, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (38, 23, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (83, 36, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (84, 35, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (88, 30, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (89, 31, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (90, 32, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (92, 33, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (93, 34, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (99, 27, 2, 0.80, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (100, 27, 3, 0.75, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (103, 28, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (104, 29, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (110, 37, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (133, 38, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (134, 39, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (135, 41, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (136, 42, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (137, 43, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (138, 44, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (139, 45, 1, 0.70, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (140, 40, 0, 0.00, 0.00);\nINSERT INTO `pms_product_ladder` VALUES (147, 26, 0, 0.00, 0.00);\n\n-- ----------------------------\n-- Table structure for pms_product_operate_log\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_product_operate_log`;\nCREATE TABLE `pms_product_operate_log`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `price_old` decimal(10, 2) NULL DEFAULT NULL,\n  `price_new` decimal(10, 2) NULL DEFAULT NULL,\n  `sale_price_old` decimal(10, 2) NULL DEFAULT NULL,\n  `sale_price_new` decimal(10, 2) NULL DEFAULT NULL,\n  `gift_point_old` int(11) NULL DEFAULT NULL COMMENT '赠送的积分',\n  `gift_point_new` int(11) NULL DEFAULT NULL,\n  `use_point_limit_old` int(11) NULL DEFAULT NULL,\n  `use_point_limit_new` int(11) NULL DEFAULT NULL,\n  `operate_man` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人',\n  `create_time` datetime NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_product_operate_log\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for pms_product_vertify_record\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_product_vertify_record`;\nCREATE TABLE `pms_product_vertify_record`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `create_time` datetime NULL DEFAULT NULL,\n  `vertify_man` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '审核人',\n  `status` int(1) NULL DEFAULT NULL,\n  `detail` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '反馈详情',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品审核记录' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_product_vertify_record\n-- ----------------------------\nINSERT INTO `pms_product_vertify_record` VALUES (1, 1, '2018-04-27 16:36:41', 'test', 1, '验证通过');\nINSERT INTO `pms_product_vertify_record` VALUES (2, 2, '2018-04-27 16:36:41', 'test', 1, '验证通过');\n\n-- ----------------------------\n-- Table structure for pms_sku_stock\n-- ----------------------------\nDROP TABLE IF EXISTS `pms_sku_stock`;\nCREATE TABLE `pms_sku_stock`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `sku_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sku编码',\n  `price` decimal(10, 2) NULL DEFAULT NULL,\n  `stock` int(11) NULL DEFAULT 0 COMMENT '库存',\n  `low_stock` int(11) NULL DEFAULT NULL COMMENT '预警库存',\n  `pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '展示图片',\n  `sale` int(11) NULL DEFAULT NULL COMMENT '销量',\n  `promotion_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '单品促销价格',\n  `lock_stock` int(11) NULL DEFAULT 0 COMMENT '锁定库存',\n  `sp_data` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品销售属性，json格式',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 243 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'sku的库存' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of pms_sku_stock\n-- ----------------------------\nINSERT INTO `pms_sku_stock` VALUES (98, 27, '201808270027001', 2699.00, 86, NULL, NULL, NULL, NULL, -24, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (99, 27, '201808270027002', 2999.00, 100, NULL, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (100, 27, '201808270027003', 2699.00, 100, NULL, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (101, 27, '201808270027004', 2999.00, 100, NULL, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (102, 28, '201808270028001', 649.00, 99, NULL, NULL, NULL, NULL, -8, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (103, 28, '201808270028002', 699.00, 99, NULL, NULL, NULL, NULL, -8, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (104, 28, '201808270028003', 649.00, 100, NULL, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (105, 28, '201808270028004', 699.00, 100, NULL, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (106, 29, '201808270029001', 5499.00, 99, NULL, NULL, NULL, 4999.00, -8, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (107, 29, '201808270029002', 6299.00, 100, NULL, NULL, NULL, 5799.00, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (108, 29, '201808270029003', 5499.00, 100, NULL, NULL, NULL, 4999.00, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (109, 29, '201808270029004', 6299.00, 100, NULL, NULL, NULL, 5799.00, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (110, 26, '201806070026001', 3788.00, 487, NULL, NULL, NULL, 3699.00, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (111, 26, '201806070026002', 3999.00, 499, NULL, NULL, NULL, 3899.00, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"金色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (112, 26, '201806070026003', 3788.00, 500, NULL, NULL, NULL, 3699.00, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (113, 26, '201806070026004', 3999.00, 500, NULL, NULL, NULL, 3899.00, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (163, 36, '202002210036001', 100.00, 100, 25, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"秋季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (164, 36, '202002210036002', 120.00, 98, 20, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (165, 36, '202002210036003', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"39\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"秋季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (166, 36, '202002210036004', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"39\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (167, 36, '202002210036005', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"秋季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (168, 36, '202002210036006', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (169, 36, '202002210036007', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"39\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"秋季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (170, 36, '202002210036008', 100.00, 100, 20, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"39\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (171, 35, '202002250035001', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (172, 35, '202002250035002', 240.00, 100, 50, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"秋季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (173, 35, '202002250035003', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"39\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (174, 35, '202002250035004', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"红色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"39\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"秋季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (175, 35, '202002250035005', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (176, 35, '202002250035006', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"38\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"秋季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (177, 35, '202002250035007', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"39\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"夏季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (178, 35, '202002250035008', 200.00, 100, 50, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"39\\\"},{\\\"key\\\":\\\"风格\\\",\\\"value\\\":\\\"秋季\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (179, 30, '202004190030001', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"X\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (180, 30, '202004190030002', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"XL\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (181, 30, '202004190030003', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"M\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (182, 30, '202004190030004', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"白色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"X\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (183, 30, '202004190030005', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"白色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"XL\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (184, 30, '202004190030006', 88.00, 100, NULL, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"白色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"M\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (185, 31, '202004190031001', 88.00, 80, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"浅灰色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"X\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (186, 31, '202004190031002', 88.00, 80, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"浅灰色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"XL\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (187, 31, '202004190031003', 88.00, 80, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"深灰色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"X\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (188, 31, '202004190031004', 88.00, 80, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"深灰色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"XL\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (189, 32, '202004190032001', 99.00, 100, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"X\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (190, 32, '202004190032002', 99.00, 100, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"M\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (191, 32, '202004190032003', 99.00, 100, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"白色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"X\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (192, 32, '202004190032004', 99.00, 100, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"白色\\\"},{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"M\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (193, 33, '202004190033001', 2499.00, 500, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"50英寸\\\"},{\\\"key\\\":\\\"内存\\\",\\\"value\\\":\\\"8G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (194, 33, '202004190033002', 2499.00, 500, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"50英寸\\\"},{\\\"key\\\":\\\"内存\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (195, 33, '202004190033003', 2499.00, 500, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"65英寸\\\"},{\\\"key\\\":\\\"内存\\\",\\\"value\\\":\\\"8G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (196, 33, '202004190033004', 2499.00, 500, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"65英寸\\\"},{\\\"key\\\":\\\"内存\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (197, 34, '202004190034001', 3999.00, 500, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"65英寸\\\"},{\\\"key\\\":\\\"内存\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (198, 34, '202004190034002', 3999.00, 500, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"65英寸\\\"},{\\\"key\\\":\\\"内存\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (199, 34, '202004190034003', 3999.00, 500, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"70英寸\\\"},{\\\"key\\\":\\\"内存\\\",\\\"value\\\":\\\"16G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (200, 34, '202004190034004', 3999.00, 500, 10, NULL, NULL, NULL, 0, '[{\\\"key\\\":\\\"尺寸\\\",\\\"value\\\":\\\"70英寸\\\"},{\\\"key\\\":\\\"内存\\\",\\\"value\\\":\\\"32G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (201, 37, '202210280037001', 5999.00, 195, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', NULL, NULL, 1, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (202, 37, '202210280037002', 6899.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (203, 37, '202210280037003', 8699.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_001.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"午夜色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"512G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (204, 37, '202210280037004', 5999.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_002.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"星光色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (205, 37, '202210280037005', 6899.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_002.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"星光色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (206, 37, '202210280037006', 8699.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_002.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"星光色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"512G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (207, 37, '202210280037007', 5999.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_003.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"紫色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (208, 37, '202210280037008', 6899.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_003.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"紫色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (209, 37, '202210280037009', 8699.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_003.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"紫色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"512G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (210, 37, '202210280037010', 5999.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_004.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (211, 37, '202210280037011', 6899.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_004.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (212, 37, '202210280037012', 8699.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/iphone14_004.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"512G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (213, 38, '202210280038001', 3599.00, 198, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (214, 38, '202210280038002', 4799.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_001.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (215, 38, '202210280038003', 3599.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_002.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"64G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (216, 38, '202210280038004', 4799.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/ipad_002.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (217, 39, '202210280039001', 5999.00, 499, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新小米Pro 14英寸 2.8K屏\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"R7 16G 512\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (218, 39, '202210280039002', 5599.00, 500, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_001.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新小米Pro 14英寸 2.8K屏\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"R5 16G 512\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (219, 39, '202210280039003', 5499.00, 500, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_002.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新Redmi Pro 15英寸 3.2K屏\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"R7 16G 512\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (220, 39, '202210280039004', 4999.00, 500, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221028/xiaomi_computer_002.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新Redmi Pro 15英寸 3.2K屏\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"R5 16G 512\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (221, 40, '202211040040001', 2999.00, 91, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (222, 40, '202211040040002', 3499.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_01.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"黑色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (223, 40, '202211040040003', 2999.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_02.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (224, 40, '202211040040004', 3499.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/xiaomi_12_pro_02.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"蓝色\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (225, 41, '202211040041001', 2099.00, 195, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (226, 41, '202211040041002', 2299.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_01.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"墨羽\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (227, 41, '202211040041003', 2099.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_02.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银迹\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (228, 41, '202211040041004', 2299.00, 200, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/redmi_k50_02.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"银迹\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (229, 42, '202211040042001', 4999.00, 99, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_01.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"曜金黑\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (230, 42, '202211040042002', 5499.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_01.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"曜金黑\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (231, 42, '202211040042003', 4999.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_02.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"冰霜银\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (232, 42, '202211040042004', 5499.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/huawei_mate50_02.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"冰霜银\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (233, 43, '202211040043001', 1649.00, 500, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_13L_01.png', NULL, NULL, 0, '[{\\\"key\\\":\\\"系列\\\",\\\"value\\\":\\\"JSQ25-565W13【13升】【恒温旗舰款】\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (234, 43, '202211040043002', 1799.00, 500, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221104/wanhe_13L_01.png', NULL, NULL, 0, '[{\\\"key\\\":\\\"系列\\\",\\\"value\\\":\\\"JSQ30-565W16【16升】【恒温旗舰款】\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (235, 44, '202211080044001', 369.00, 99, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_02.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新品980｜NVMe PCIe3.0*4\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"512GB\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (236, 44, '202211080044002', 649.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_02.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"新品980｜NVMe PCIe3.0*4\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"1TB\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (237, 44, '202211080044003', 549.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_01.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"980 PRO｜NVMe PCIe 4.0\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"512GB\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (238, 44, '202211080044004', 899.00, 100, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_ssd_01.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"980 PRO｜NVMe PCIe 4.0\\\"},{\\\"key\\\":\\\"版本\\\",\\\"value\\\":\\\"1TB\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (239, 45, '202211080045001', 2299.00, 250, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_01.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"鸢尾紫\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (240, 45, '202211080045002', 2499.00, 250, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_01.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"鸢尾紫\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (241, 45, '202211080045003', 2299.00, 250, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_02.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"晴空蓝\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"128G\\\"}]');\nINSERT INTO `pms_sku_stock` VALUES (242, 45, '202211080045004', 2499.00, 250, NULL, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_r8_02.jpg', NULL, NULL, 0, '[{\\\"key\\\":\\\"颜色\\\",\\\"value\\\":\\\"晴空蓝\\\"},{\\\"key\\\":\\\"容量\\\",\\\"value\\\":\\\"256G\\\"}]');\n\n-- ----------------------------\n-- Table structure for sms_coupon\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_coupon`;\nCREATE TABLE `sms_coupon`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `type` int(1) NULL DEFAULT NULL COMMENT '优惠券类型；0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券',\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `platform` int(1) NULL DEFAULT NULL COMMENT '使用平台：0->全部；1->移动；2->PC',\n  `count` int(11) NULL DEFAULT NULL COMMENT '数量',\n  `amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '金额',\n  `per_limit` int(11) NULL DEFAULT NULL COMMENT '每人限领张数',\n  `min_point` decimal(10, 2) NULL DEFAULT NULL COMMENT '使用门槛；0表示无门槛',\n  `start_time` datetime NULL DEFAULT NULL,\n  `end_time` datetime NULL DEFAULT NULL,\n  `use_type` int(1) NULL DEFAULT NULL COMMENT '使用类型：0->全场通用；1->指定分类；2->指定商品',\n  `note` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',\n  `publish_count` int(11) NULL DEFAULT NULL COMMENT '发行数量',\n  `use_count` int(11) NULL DEFAULT NULL COMMENT '已使用数量',\n  `receive_count` int(11) NULL DEFAULT NULL COMMENT '领取数量',\n  `enable_time` datetime NULL DEFAULT NULL COMMENT '可以领取的日期',\n  `code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '优惠码',\n  `member_level` int(1) NULL DEFAULT NULL COMMENT '可领取的会员类型：0->无限时',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优惠券表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_coupon\n-- ----------------------------\nINSERT INTO `sms_coupon` VALUES (27, 0, '全品类通用券', 0, 94, 10.00, 10, 100.00, '2022-11-08 00:00:00', '2023-11-30 00:00:00', 0, NULL, 100, 0, 6, '2022-11-08 00:00:00', NULL, NULL);\nINSERT INTO `sms_coupon` VALUES (28, 0, '手机分类专用券', 0, 995, 100.00, 5, 1000.00, '2022-11-08 00:00:00', '2023-11-30 00:00:00', 1, NULL, 1000, 0, 5, '2022-11-08 00:00:00', NULL, NULL);\nINSERT INTO `sms_coupon` VALUES (29, 0, '苹果手机专用券', 0, 998, 600.00, 1, 4000.00, '2022-11-08 00:00:00', '2023-11-30 00:00:00', 2, NULL, 1000, 0, 2, '2022-11-08 00:00:00', NULL, NULL);\nINSERT INTO `sms_coupon` VALUES (30, 0, '小米手机专用券', 0, 998, 200.00, 1, 2000.00, '2022-11-08 00:00:00', '2023-11-30 00:00:00', 2, NULL, 1000, 0, 2, '2022-11-08 00:00:00', NULL, NULL);\nINSERT INTO `sms_coupon` VALUES (31, 0, '限时优惠券', 0, 999, 20.00, 5, 500.00, '2022-12-01 00:00:00', '2022-12-22 00:00:00', 0, NULL, 1000, 0, 1, '2022-12-23 00:00:00', NULL, NULL);\n\n-- ----------------------------\n-- Table structure for sms_coupon_history\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_coupon_history`;\nCREATE TABLE `sms_coupon_history`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `coupon_id` bigint(20) NULL DEFAULT NULL,\n  `member_id` bigint(20) NULL DEFAULT NULL,\n  `coupon_code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `member_nickname` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '领取人昵称',\n  `get_type` int(1) NULL DEFAULT NULL COMMENT '获取类型：0->后台赠送；1->主动获取',\n  `create_time` datetime NULL DEFAULT NULL,\n  `use_status` int(1) NULL DEFAULT NULL COMMENT '使用状态：0->未使用；1->已使用；2->已过期',\n  `use_time` datetime NULL DEFAULT NULL COMMENT '使用时间',\n  `order_id` bigint(20) NULL DEFAULT NULL COMMENT '订单编号',\n  `order_sn` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单号码',\n  PRIMARY KEY (`id`) USING BTREE,\n  INDEX `idx_member_id`(`member_id`) USING BTREE,\n  INDEX `idx_coupon_id`(`coupon_id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 53 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优惠券使用、领取历史表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_coupon_history\n-- ----------------------------\nINSERT INTO `sms_coupon_history` VALUES (37, 30, 1, '7806895974110001', 'windir', 1, '2022-11-09 15:14:29', 1, '2022-11-09 15:14:58', NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (38, 27, 1, '7872472849240001', 'windir', 1, '2022-11-09 15:25:25', 1, '2022-11-09 15:25:38', NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (39, 29, 1, '7876204111480001', 'windir', 1, '2022-11-09 15:26:02', 1, '2022-11-09 15:26:11', NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (40, 27, 1, '7911945030190001', 'windir', 1, '2022-11-09 15:31:59', 0, NULL, NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (41, 28, 1, '8194868687790001', 'windir', 1, '2022-11-09 16:19:09', 1, '2022-11-11 16:12:42', NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (42, 28, 1, '1239565720390001', 'test', 1, '2022-12-21 16:46:36', 1, '2022-12-21 16:53:07', NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (43, 31, 1, '6030247208280001', 'test', 1, '2022-12-23 09:51:42', 0, NULL, NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (44, 28, 1, '6050939443480001', 'test', 1, '2022-12-23 09:55:09', 0, NULL, NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (45, 27, 1, '4182437014580001', 'test', 1, '2023-01-10 17:10:24', 0, NULL, NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (46, 27, 11, '9011281751500011', 'member', 1, '2023-05-11 15:28:33', 0, NULL, NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (47, 28, 11, '9011495851370011', 'member', 1, '2023-05-11 15:28:35', 1, '2023-05-11 15:37:16', NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (48, 30, 11, '9011677197430011', 'member', 1, '2023-05-11 15:28:37', 1, '2023-05-11 15:28:56', NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (49, 27, 11, '9046676666610011', 'member', 1, '2023-05-11 15:34:27', 0, NULL, NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (50, 28, 11, '9046909751910011', 'member', 1, '2023-05-11 15:34:29', 0, NULL, NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (51, 29, 11, '9047077722990011', 'member', 1, '2023-05-11 15:34:31', 0, NULL, NULL, NULL);\nINSERT INTO `sms_coupon_history` VALUES (52, 27, 11, '9075818288630011', 'member', 1, '2023-05-11 15:39:18', 0, NULL, NULL, NULL);\n\n-- ----------------------------\n-- Table structure for sms_coupon_product_category_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_coupon_product_category_relation`;\nCREATE TABLE `sms_coupon_product_category_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `coupon_id` bigint(20) NULL DEFAULT NULL,\n  `product_category_id` bigint(20) NULL DEFAULT NULL,\n  `product_category_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '产品分类名称',\n  `parent_category_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '父分类名称',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优惠券和产品分类关系表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_coupon_product_category_relation\n-- ----------------------------\nINSERT INTO `sms_coupon_product_category_relation` VALUES (11, 28, 19, '手机通讯', '手机数码');\n\n-- ----------------------------\n-- Table structure for sms_coupon_product_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_coupon_product_relation`;\nCREATE TABLE `sms_coupon_product_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `coupon_id` bigint(20) NULL DEFAULT NULL,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `product_name` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品名称',\n  `product_sn` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '商品编码',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 23 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '优惠券和产品的关系表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_coupon_product_relation\n-- ----------------------------\nINSERT INTO `sms_coupon_product_relation` VALUES (18, 29, 37, 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', '100038005189');\nINSERT INTO `sms_coupon_product_relation` VALUES (19, 29, 29, 'Apple iPhone 8 Plus 64GB 红色特别版 移动联通电信4G手机', '7437799');\nINSERT INTO `sms_coupon_product_relation` VALUES (21, 30, 41, 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量 墨羽 12GB+256GB 5G智能手机 小米 红米', '100035246702');\nINSERT INTO `sms_coupon_product_relation` VALUES (22, 30, 40, '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', '100027789721');\n\n-- ----------------------------\n-- Table structure for sms_flash_promotion\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_flash_promotion`;\nCREATE TABLE `sms_flash_promotion`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `title` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '秒杀时间段名称',\n  `start_date` date NULL DEFAULT NULL COMMENT '开始日期',\n  `end_date` date NULL DEFAULT NULL COMMENT '结束日期',\n  `status` int(1) NULL DEFAULT NULL COMMENT '上下线状态',\n  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '限时购表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_flash_promotion\n-- ----------------------------\nINSERT INTO `sms_flash_promotion` VALUES (14, '双11特卖活动', '2022-11-09', '2023-12-31', 1, '2022-11-09 14:56:48');\n\n-- ----------------------------\n-- Table structure for sms_flash_promotion_log\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_flash_promotion_log`;\nCREATE TABLE `sms_flash_promotion_log`  (\n  `id` int(11) NOT NULL AUTO_INCREMENT,\n  `member_id` int(11) NULL DEFAULT NULL,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `member_phone` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `product_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `subscribe_time` datetime NULL DEFAULT NULL COMMENT '会员订阅时间',\n  `send_time` datetime NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '限时购通知记录' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_flash_promotion_log\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for sms_flash_promotion_product_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_flash_promotion_product_relation`;\nCREATE TABLE `sms_flash_promotion_product_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',\n  `flash_promotion_id` bigint(20) NULL DEFAULT NULL,\n  `flash_promotion_session_id` bigint(20) NULL DEFAULT NULL COMMENT '编号',\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `flash_promotion_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '限时购价格',\n  `flash_promotion_count` int(11) NULL DEFAULT NULL COMMENT '限时购数量',\n  `flash_promotion_limit` int(11) NULL DEFAULT NULL COMMENT '每人限购数量',\n  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 52 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品限时购与商品关系表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_flash_promotion_product_relation\n-- ----------------------------\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (1, 2, 1, 26, 3000.00, 10, 1, 0);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (2, 2, 1, 27, 2000.00, 10, 1, 20);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (3, 2, 1, 28, 599.00, 19, 1, 0);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (4, 2, 1, 29, 4999.00, 10, 1, 100);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (9, 2, 2, 26, 2999.00, 100, 1, 0);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (10, 2, 2, 27, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (11, 2, 2, 28, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (12, 2, 2, 29, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (13, 2, 2, 30, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (14, 2, 3, 31, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (15, 2, 3, 32, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (16, 2, 4, 33, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (17, 2, 4, 34, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (18, 2, 5, 36, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (19, 2, 6, 33, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (20, 2, 6, 34, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (21, 14, 1, 26, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (22, 14, 1, 27, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (23, 14, 1, 28, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (24, 14, 1, 29, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (25, 14, 2, 30, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (26, 14, 2, 31, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (27, 14, 2, 32, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (28, 14, 2, 35, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (29, 14, 3, 33, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (30, 14, 3, 34, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (31, 14, 3, 36, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (32, 14, 3, 37, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (33, 14, 4, 37, 5699.00, 10, 1, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (34, 14, 4, 38, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (35, 14, 4, 39, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (36, 14, 4, 40, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (37, 14, 5, 41, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (38, 14, 5, 42, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (39, 14, 5, 43, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (40, 14, 5, 44, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (41, 14, 5, 45, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (42, 14, 6, 26, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (43, 14, 6, 27, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (44, 14, 6, 28, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (45, 14, 6, 29, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (46, 14, 6, 30, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (47, 14, 7, 31, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (48, 14, 7, 32, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (49, 14, 7, 33, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (50, 14, 7, 34, NULL, NULL, NULL, NULL);\nINSERT INTO `sms_flash_promotion_product_relation` VALUES (51, 14, 7, 35, NULL, NULL, NULL, NULL);\n\n-- ----------------------------\n-- Table structure for sms_flash_promotion_session\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_flash_promotion_session`;\nCREATE TABLE `sms_flash_promotion_session`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',\n  `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '场次名称',\n  `start_time` time NULL DEFAULT NULL COMMENT '每日开始时间',\n  `end_time` time NULL DEFAULT NULL COMMENT '每日结束时间',\n  `status` int(1) NULL DEFAULT NULL COMMENT '启用状态：0->不启用；1->启用',\n  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '限时购场次表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_flash_promotion_session\n-- ----------------------------\nINSERT INTO `sms_flash_promotion_session` VALUES (1, '8:00', '08:00:00', '10:00:00', 1, '2018-11-16 13:22:17');\nINSERT INTO `sms_flash_promotion_session` VALUES (2, '10:00', '10:00:00', '12:00:00', 1, '2018-11-16 13:22:34');\nINSERT INTO `sms_flash_promotion_session` VALUES (3, '12:00', '12:00:00', '14:00:00', 1, '2018-11-16 13:22:37');\nINSERT INTO `sms_flash_promotion_session` VALUES (4, '14:00', '14:00:00', '16:00:00', 1, '2018-11-16 13:22:41');\nINSERT INTO `sms_flash_promotion_session` VALUES (5, '16:00', '16:00:00', '18:00:00', 1, '2018-11-16 13:22:45');\nINSERT INTO `sms_flash_promotion_session` VALUES (6, '18:00', '18:00:00', '20:00:00', 1, '2018-11-16 13:21:34');\nINSERT INTO `sms_flash_promotion_session` VALUES (7, '20:00', '20:00:00', '22:00:00', 1, '2018-11-16 13:22:55');\n\n-- ----------------------------\n-- Table structure for sms_home_advertise\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_home_advertise`;\nCREATE TABLE `sms_home_advertise`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `type` int(1) NULL DEFAULT NULL COMMENT '轮播位置：0->PC首页轮播；1->app首页轮播',\n  `pic` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `start_time` datetime NULL DEFAULT NULL,\n  `end_time` datetime NULL DEFAULT NULL,\n  `status` int(1) NULL DEFAULT NULL COMMENT '上下线状态：0->下线；1->上线',\n  `click_count` int(11) NULL DEFAULT NULL COMMENT '点击数',\n  `order_count` int(11) NULL DEFAULT NULL COMMENT '下单数',\n  `url` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '链接地址',\n  `note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',\n  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '首页轮播广告表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_home_advertise\n-- ----------------------------\nINSERT INTO `sms_home_advertise` VALUES (2, '夏季大热促销', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190525/ad1.jpg', '2018-11-01 14:01:37', '2018-11-15 14:01:37', 0, 0, 0, NULL, '夏季大热促销', 0);\nINSERT INTO `sms_home_advertise` VALUES (3, '夏季大热促销1', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190525/ad1.jpg', '2018-11-13 14:01:37', '2018-11-13 14:01:37', 0, 0, 0, NULL, '夏季大热促销1', 0);\nINSERT INTO `sms_home_advertise` VALUES (4, '夏季大热促销2', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190525/ad2.jpg', '2018-11-13 14:01:37', '2018-11-13 14:01:37', 0, 0, 0, NULL, '夏季大热促销2', 0);\nINSERT INTO `sms_home_advertise` VALUES (9, '电影推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20181113/movie_ad.jpg', '2018-11-01 00:00:00', '2018-11-24 00:00:00', 0, 0, 0, 'www.baidu.com', '电影推荐广告', 100);\nINSERT INTO `sms_home_advertise` VALUES (10, '汽车促销广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20181113/car_ad.jpg', '2018-11-13 00:00:00', '2018-11-24 00:00:00', 0, 0, 0, 'xxx', NULL, 99);\nINSERT INTO `sms_home_advertise` VALUES (11, '汽车推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20181113/car_ad2.jpg', '2018-11-13 00:00:00', '2018-11-30 00:00:00', 0, 0, 0, 'xxx', NULL, 98);\nINSERT INTO `sms_home_advertise` VALUES (12, '小米推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/xiaomi_banner_01.png', '2022-11-08 17:04:03', '2023-11-08 17:04:05', 1, 0, 0, '/pages/brand/brandDetail?id=6', NULL, 0);\nINSERT INTO `sms_home_advertise` VALUES (13, '华为推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/huawei_banner_01.png', '2022-11-08 17:10:27', '2023-11-08 17:10:28', 1, 0, 0, '/pages/brand/brandDetail?id=3', NULL, 0);\nINSERT INTO `sms_home_advertise` VALUES (14, '苹果推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/apple_banner_01.png', '2022-11-08 17:12:54', '2023-11-08 17:12:55', 1, 0, 0, '/pages/brand/brandDetail?id=51', NULL, 0);\nINSERT INTO `sms_home_advertise` VALUES (15, '三星推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/sanxing_banner_01.png', '2022-11-08 17:15:38', '2023-11-08 17:15:39', 1, 0, 0, '/pages/brand/brandDetail?id=2', NULL, 0);\nINSERT INTO `sms_home_advertise` VALUES (16, 'OPPO推荐广告', 1, 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20221108/oppo_banner_01.png', '2022-11-08 17:20:10', '2023-11-08 17:20:11', 1, 0, 0, '/pages/brand/brandDetail?id=21', NULL, 0);\n\n-- ----------------------------\n-- Table structure for sms_home_brand\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_home_brand`;\nCREATE TABLE `sms_home_brand`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `brand_id` bigint(20) NULL DEFAULT NULL,\n  `brand_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `recommend_status` int(1) NULL DEFAULT NULL,\n  `sort` int(11) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 48 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '首页推荐品牌表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_home_brand\n-- ----------------------------\nINSERT INTO `sms_home_brand` VALUES (6, 6, '小米', 1, 300);\nINSERT INTO `sms_home_brand` VALUES (32, 50, '海澜之家', 1, 198);\nINSERT INTO `sms_home_brand` VALUES (33, 51, '苹果', 1, 199);\nINSERT INTO `sms_home_brand` VALUES (34, 2, '三星', 1, 195);\nINSERT INTO `sms_home_brand` VALUES (35, 3, '华为', 1, 200);\nINSERT INTO `sms_home_brand` VALUES (39, 21, 'OPPO', 1, 197);\nINSERT INTO `sms_home_brand` VALUES (45, 1, '万和', 1, 0);\nINSERT INTO `sms_home_brand` VALUES (46, 5, '方太', 1, 0);\nINSERT INTO `sms_home_brand` VALUES (47, 4, '格力', 1, 0);\n\n-- ----------------------------\n-- Table structure for sms_home_new_product\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_home_new_product`;\nCREATE TABLE `sms_home_new_product`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `product_name` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `recommend_status` int(1) NULL DEFAULT NULL,\n  `sort` int(1) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 28 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '新鲜好物表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_home_new_product\n-- ----------------------------\nINSERT INTO `sms_home_new_product` VALUES (19, 37, 'Apple iPhone 14 (A2884) 128GB 支持移动联通电信5G 双卡双待手机', 1, 197);\nINSERT INTO `sms_home_new_product` VALUES (20, 38, 'Apple iPad 10.9英寸平板电脑 2022年款（64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A ）', 1, 0);\nINSERT INTO `sms_home_new_product` VALUES (21, 39, '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑(新R5-6600H标压 16G 512G win11)', 1, 198);\nINSERT INTO `sms_home_new_product` VALUES (22, 40, '小米12 Pro 天玑版 天玑9000+处理器 5000万疾速影像 2K超视感屏 120Hz高刷 67W快充 12GB+256GB 黑色 5G手机', 1, 200);\nINSERT INTO `sms_home_new_product` VALUES (23, 41, 'Redmi K50 天玑8100 2K柔性直屏 OIS光学防抖 67W快充 5500mAh大电量 墨羽 12GB+256GB 5G智能手机 小米 红米', 1, 199);\nINSERT INTO `sms_home_new_product` VALUES (24, 42, 'HUAWEI Mate 50 直屏旗舰 超光变XMAGE影像 北斗卫星消息 低电量应急模式 128GB曜金黑华为鸿蒙手机', 1, 0);\nINSERT INTO `sms_home_new_product` VALUES (25, 44, '三星（SAMSUNG）500GB SSD固态硬盘 M.2接口(NVMe协议) 980（MZ-V8V500BW）', 1, 0);\nINSERT INTO `sms_home_new_product` VALUES (26, 45, 'OPPO Reno8 8GB+128GB 鸢尾紫 新配色上市 80W超级闪充 5000万水光人像三摄 3200万前置索尼镜头 5G手机', 1, 0);\nINSERT INTO `sms_home_new_product` VALUES (27, 43, '万和（Vanward)燃气热水器天然气家用四重防冻直流变频节能全新升级增压水伺服恒温高抗风 JSQ30-565W16【16升】【恒温旗舰款】', 1, 0);\n\n-- ----------------------------\n-- Table structure for sms_home_recommend_product\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_home_recommend_product`;\nCREATE TABLE `sms_home_recommend_product`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `product_id` bigint(20) NULL DEFAULT NULL,\n  `product_name` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `recommend_status` int(1) NULL DEFAULT NULL,\n  `sort` int(1) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '人气推荐商品表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_home_recommend_product\n-- ----------------------------\nINSERT INTO `sms_home_recommend_product` VALUES (10, 38, 'Apple iPad 10.9英寸平板电脑 2022年款（64GB WLAN版/A14芯片/1200万像素/iPadOS MPQ03CH/A ）', 1, 0);\nINSERT INTO `sms_home_recommend_product` VALUES (11, 39, '小米 Xiaomi Book Pro 14 2022 锐龙版 2.8K超清大师屏 高端轻薄笔记本电脑(新R5-6600H标压 16G 512G win11)', 1, 0);\nINSERT INTO `sms_home_recommend_product` VALUES (12, 44, '三星（SAMSUNG）500GB SSD固态硬盘 M.2接口(NVMe协议) 980（MZ-V8V500BW）', 1, 0);\nINSERT INTO `sms_home_recommend_product` VALUES (13, 43, '万和（Vanward)燃气热水器天然气家用四重防冻直流变频节能全新升级增压水伺服恒温高抗风 JSQ30-565W16【16升】【恒温旗舰款】', 1, 0);\nINSERT INTO `sms_home_recommend_product` VALUES (14, 45, 'OPPO Reno8 8GB+128GB 鸢尾紫 新配色上市 80W超级闪充 5000万水光人像三摄 3200万前置索尼镜头 5G手机', 1, 0);\n\n-- ----------------------------\n-- Table structure for sms_home_recommend_subject\n-- ----------------------------\nDROP TABLE IF EXISTS `sms_home_recommend_subject`;\nCREATE TABLE `sms_home_recommend_subject`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `subject_id` bigint(20) NULL DEFAULT NULL,\n  `subject_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `recommend_status` int(1) NULL DEFAULT NULL,\n  `sort` int(11) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '首页推荐专题表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of sms_home_recommend_subject\n-- ----------------------------\nINSERT INTO `sms_home_recommend_subject` VALUES (14, 1, 'polo衬衫的也时尚', 1, 0);\nINSERT INTO `sms_home_recommend_subject` VALUES (15, 2, '大牌手机低价秒', 1, 0);\nINSERT INTO `sms_home_recommend_subject` VALUES (16, 3, '晓龙845新品上市', 1, 0);\nINSERT INTO `sms_home_recommend_subject` VALUES (17, 4, '夏天应该穿什么', 1, 0);\nINSERT INTO `sms_home_recommend_subject` VALUES (18, 5, '夏季精选', 1, 100);\nINSERT INTO `sms_home_recommend_subject` VALUES (19, 6, '品牌手机降价', 1, 0);\n\n-- ----------------------------\n-- Table structure for ums_admin\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_admin`;\nCREATE TABLE `ums_admin`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像',\n  `email` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮箱',\n  `nick_name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '昵称',\n  `note` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注信息',\n  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',\n  `login_time` datetime NULL DEFAULT NULL COMMENT '最后登录时间',\n  `status` int(1) NULL DEFAULT 1 COMMENT '帐号启用状态：0->禁用；1->启用',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_admin\n-- ----------------------------\nINSERT INTO `ums_admin` VALUES (1, 'test', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_02.png', 'test@qq.com', '测试账号', NULL, '2018-09-29 13:55:30', '2018-09-29 13:55:39', 1);\nINSERT INTO `ums_admin` VALUES (3, 'admin', '$2a$10$.E1FokumK5GIXWgKlg.Hc.i/0/2.qdAwYFL1zc5QHdyzpXOr38RZO', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_01.png', 'admin@163.com', '系统管理员', '系统管理员', '2018-10-08 13:32:47', '2019-04-20 12:45:16', 1);\nINSERT INTO `ums_admin` VALUES (4, 'macro', '$2a$10$Bx4jZPR7GhEpIQfefDQtVeS58GfT5n6mxs/b4nLLK65eMFa16topa', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_01.png', 'macro@qq.com', 'macro', 'macro专用', '2019-10-06 15:53:51', '2020-02-03 14:55:55', 1);\nINSERT INTO `ums_admin` VALUES (6, 'productAdmin', '$2a$10$6/.J.p.6Bhn7ic4GfoB5D.pGd7xSiD1a9M6ht6yO0fxzlKJPjRAGm', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_03.png', 'product@qq.com', '商品管理员', '只有商品权限', '2020-02-07 16:15:08', NULL, 1);\nINSERT INTO `ums_admin` VALUES (7, 'orderAdmin', '$2a$10$UqEhA9UZXjHHA3B.L9wNG.6aerrBjC6WHTtbv1FdvYPUI.7lkL6E.', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_04.png', 'order@qq.com', '订单管理员', '只有订单管理权限', '2020-02-07 16:15:50', NULL, 1);\nINSERT INTO `ums_admin` VALUES (8, 'test123', '$2a$10$M1qJguEzwoAN0la7PB8UO.HOGe1xZGku7xw1iTaUUpY0ZVRCxrxoO', 'string', 'abc@qq.com', 'string', 'string', '2022-08-07 14:45:42', NULL, 1);\nINSERT INTO `ums_admin` VALUES (9, 'test256', '$2a$10$kTMBrt8mkXcO8T4eHThFWOf3KuNK6tqevkiAf4YbtXtaCJ6ocYkJa', 'string', 'abc@qq.com', 'string', 'string', '2022-08-07 14:52:57', NULL, 1);\nINSERT INTO `ums_admin` VALUES (10, 'test1267', '$2a$10$VUywDhXVPY13YZxMD/uPWeDqkzSozN7o8u/3MX6sBig2NK2VaTJZ2', NULL, 'test1267@qq.com', 'test1267', 'test1267', '2023-01-04 16:13:34', NULL, 1);\n\n-- ----------------------------\n-- Table structure for ums_admin_login_log\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_admin_login_log`;\nCREATE TABLE `ums_admin_login_log`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `admin_id` bigint(20) NULL DEFAULT NULL,\n  `create_time` datetime NULL DEFAULT NULL,\n  `ip` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `address` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `user_agent` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '浏览器登录类型',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 413 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户登录日志表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_admin_login_log\n-- ----------------------------\nINSERT INTO `ums_admin_login_log` VALUES (1, 3, '2018-12-23 14:27:00', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (2, 3, '2019-04-07 16:04:39', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (3, 3, '2019-04-08 21:47:52', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (4, 3, '2019-04-08 21:48:18', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (5, 3, '2019-04-18 22:18:40', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (6, 3, '2019-04-20 12:45:16', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (7, 3, '2019-05-19 14:52:12', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (8, 3, '2019-05-25 15:00:17', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (9, 3, '2019-06-19 20:11:42', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (10, 3, '2019-06-30 10:33:48', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (11, 3, '2019-06-30 10:34:31', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (12, 3, '2019-06-30 10:35:34', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (13, 3, '2019-07-27 17:11:01', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (14, 3, '2019-07-27 17:13:18', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (15, 3, '2019-07-27 17:15:35', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (16, 3, '2019-07-27 17:17:11', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (17, 3, '2019-07-27 17:18:34', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (18, 3, '2019-07-27 21:21:52', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (19, 3, '2019-07-27 21:34:29', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (20, 3, '2019-07-27 21:35:17', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (21, 3, '2019-07-27 21:35:48', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (22, 3, '2019-07-27 21:40:33', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (23, 3, '2019-08-18 16:00:38', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (24, 3, '2019-08-18 16:01:06', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (25, 3, '2019-08-18 16:47:01', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (26, 3, '2019-10-06 15:54:23', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (27, 3, '2019-10-06 16:03:28', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (28, 3, '2019-10-06 16:04:51', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (29, 3, '2019-10-06 16:06:44', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (30, 3, '2019-10-06 16:14:51', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (31, 1, '2019-10-06 16:15:09', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (32, 1, '2019-10-06 16:16:14', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (33, 3, '2019-10-06 16:16:35', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (34, 3, '2019-10-06 16:16:42', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (35, 3, '2019-10-07 15:20:48', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (36, 3, '2019-10-07 15:40:07', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (37, 3, '2019-10-07 16:34:15', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (38, 3, '2019-10-09 21:19:08', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (39, 4, '2019-10-09 21:30:35', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (40, 4, '2019-10-09 21:31:30', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (41, 4, '2019-10-09 21:32:39', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (42, 4, '2019-10-09 21:33:27', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (43, 4, '2019-10-09 21:33:50', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (44, 3, '2019-10-20 16:02:53', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (45, 3, '2019-10-23 21:20:55', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (46, 3, '2019-10-27 21:41:45', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (47, 3, '2019-11-09 16:44:57', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (48, 3, '2019-11-09 16:46:56', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (49, 3, '2019-11-09 16:49:55', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (50, 3, '2019-11-23 14:17:16', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (51, 6, '2019-11-23 14:52:30', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (52, 3, '2019-11-23 15:07:24', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (53, 3, '2019-11-30 21:25:30', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (54, 3, '2019-11-30 21:27:54', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (55, 3, '2019-12-28 15:23:01', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (56, 3, '2020-01-01 15:21:46', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (57, 3, '2020-01-04 16:00:54', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (58, 3, '2020-02-01 15:05:19', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (59, 3, '2020-02-01 15:36:05', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (60, 3, '2020-02-01 15:36:36', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (61, 3, '2020-02-01 15:37:30', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (62, 3, '2020-02-01 15:37:46', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (63, 3, '2020-02-01 15:38:20', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (64, 3, '2020-02-01 15:38:33', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (65, 3, '2020-02-01 15:39:06', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (66, 3, '2020-02-01 15:41:31', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (67, 3, '2020-02-01 15:43:17', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (68, 3, '2020-02-01 15:44:34', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (69, 3, '2020-02-01 15:45:10', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (70, 3, '2020-02-01 15:46:04', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (71, 3, '2020-02-01 15:48:33', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (72, 3, '2020-02-01 16:00:07', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (73, 3, '2020-02-01 16:07:25', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (74, 3, '2020-02-01 16:08:22', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (75, 3, '2020-02-02 15:28:13', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (76, 3, '2020-02-02 15:44:37', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (77, 3, '2020-02-02 15:45:25', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (78, 3, '2020-02-02 15:52:32', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (79, 3, '2020-02-02 15:53:44', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (80, 3, '2020-02-02 15:54:36', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (81, 3, '2020-02-02 16:01:00', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (82, 3, '2020-02-02 16:05:19', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (83, 3, '2020-02-02 16:06:31', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (84, 3, '2020-02-02 16:17:26', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (85, 3, '2020-02-02 16:18:45', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (86, 3, '2020-02-02 16:19:05', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (87, 3, '2020-02-02 16:19:23', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (88, 3, '2020-02-02 16:22:27', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (89, 3, '2020-02-02 16:23:30', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (90, 3, '2020-02-02 16:23:48', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (91, 3, '2020-02-02 16:24:38', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (92, 3, '2020-02-02 16:25:22', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (93, 3, '2020-02-02 16:26:19', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (94, 3, '2020-02-02 16:26:31', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (95, 3, '2020-02-02 16:27:08', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (96, 3, '2020-02-02 16:31:02', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (97, 3, '2020-02-02 16:31:08', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (98, 3, '2020-02-02 16:31:25', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (99, 3, '2020-02-02 16:31:50', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (100, 3, '2020-02-02 16:33:22', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (101, 3, '2020-02-02 16:33:41', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (102, 3, '2020-02-02 16:34:58', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (103, 3, '2020-02-02 16:38:42', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (104, 3, '2020-02-02 16:39:41', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (105, 3, '2020-02-02 16:42:22', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (106, 3, '2020-02-02 16:46:21', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (107, 3, '2020-02-02 16:50:23', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (108, 3, '2020-02-02 16:51:11', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (109, 3, '2020-02-02 16:51:22', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (110, 3, '2020-02-02 16:52:00', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (111, 3, '2020-02-02 17:01:05', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (112, 3, '2020-02-03 10:43:22', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (113, 3, '2020-02-03 10:45:29', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (114, 3, '2020-02-03 10:46:33', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (115, 3, '2020-02-03 10:54:33', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (116, 3, '2020-02-03 14:24:47', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (117, 3, '2020-02-03 14:25:38', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (118, 5, '2020-02-03 15:22:28', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (119, 5, '2020-02-03 15:23:00', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (120, 5, '2020-02-03 15:24:29', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (121, 3, '2020-02-03 15:24:50', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (122, 5, '2020-02-03 15:27:18', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (123, 3, '2020-02-03 15:27:33', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (124, 3, '2020-02-03 15:29:06', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (125, 5, '2020-02-03 15:33:25', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (126, 3, '2020-02-03 15:33:51', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (127, 1, '2020-02-03 15:34:35', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (128, 3, '2020-02-03 15:34:47', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (129, 3, '2020-02-04 14:14:46', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (130, 3, '2020-02-05 10:33:35', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (131, 3, '2020-02-05 10:36:21', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (132, 3, '2020-02-05 16:34:37', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (133, 4, '2020-02-05 16:58:37', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (134, 3, '2020-02-05 16:59:03', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (135, 3, '2020-02-06 10:25:02', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (136, 3, '2020-02-07 14:34:34', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (137, 3, '2020-02-07 14:36:20', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (138, 1, '2020-02-07 14:43:34', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (139, 3, '2020-02-07 15:18:06', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (140, 3, '2020-02-07 15:20:07', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (141, 3, '2020-02-07 15:22:20', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (142, 3, '2020-02-07 15:22:28', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (143, 3, '2020-02-07 15:55:11', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (144, 3, '2020-02-07 15:56:04', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (145, 3, '2020-02-07 15:58:49', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (146, 6, '2020-02-07 16:16:21', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (147, 7, '2020-02-07 16:16:37', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (148, 3, '2020-02-07 16:18:39', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (149, 7, '2020-02-07 16:20:06', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (150, 3, '2020-02-07 16:20:44', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (151, 3, '2020-02-07 16:32:31', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (152, 3, '2020-02-07 19:32:34', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (153, 3, '2020-02-07 19:32:48', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (154, 3, '2020-02-07 19:33:01', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (155, 3, '2020-02-07 19:33:06', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (156, 3, '2020-02-07 19:33:21', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (157, 3, '2020-02-07 19:35:33', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (158, 3, '2020-02-07 19:37:10', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (159, 3, '2020-02-07 19:37:14', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (160, 3, '2020-02-07 19:37:25', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (161, 3, '2020-02-07 19:45:41', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (162, 3, '2020-02-07 19:47:45', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (163, 3, '2020-02-07 20:02:25', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (164, 6, '2020-02-07 20:10:55', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (165, 6, '2020-02-07 20:11:02', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (166, 6, '2020-02-07 20:13:44', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (167, 6, '2020-02-07 20:17:14', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (168, 3, '2020-02-07 20:17:44', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (169, 6, '2020-02-07 20:18:13', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (170, 3, '2020-02-10 10:28:14', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (171, 3, '2020-02-10 10:45:15', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (172, 3, '2020-02-10 10:57:46', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (173, 3, '2020-02-10 10:59:06', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (174, 3, '2020-02-10 11:04:19', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (175, 3, '2020-02-10 11:05:55', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (176, 3, '2020-02-10 11:06:45', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (177, 3, '2020-02-10 11:07:41', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (178, 3, '2020-02-10 11:08:13', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (179, 3, '2020-02-10 11:10:02', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (180, 6, '2020-02-10 14:25:17', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (181, 6, '2020-02-10 14:29:14', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (182, 3, '2020-02-10 16:09:16', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (183, 3, '2020-02-20 14:39:19', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (184, 8, '2020-02-20 17:14:58', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (185, 8, '2020-02-20 17:17:04', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (186, 8, '2020-02-20 17:17:42', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (187, 8, '2020-02-21 10:26:56', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (188, 8, '2020-02-21 10:28:54', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (189, 8, '2020-02-21 10:32:25', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (190, 8, '2020-02-21 10:33:41', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (191, 8, '2020-02-21 10:35:58', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (192, 8, '2020-02-21 10:36:49', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (193, 3, '2020-02-21 11:10:11', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (194, 3, '2020-02-25 16:11:13', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (195, 3, '2020-02-25 16:46:29', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (196, 3, '2020-03-07 16:33:59', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (197, 6, '2020-03-07 16:35:38', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (198, 3, '2020-03-07 17:00:09', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (199, 3, '2020-03-14 14:32:08', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (200, 8, '2020-03-14 14:32:59', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (201, 3, '2020-03-14 14:33:26', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (202, 8, '2020-03-14 14:34:57', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (203, 3, '2020-03-14 14:35:23', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (204, 8, '2020-03-14 14:36:31', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (205, 3, '2020-03-14 14:36:51', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (206, 8, '2020-03-14 14:37:31', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (207, 3, '2020-03-14 14:37:44', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (208, 8, '2020-03-14 14:38:30', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (209, 3, '2020-03-14 14:38:50', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (210, 8, '2020-03-14 14:39:26', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (211, 3, '2020-03-14 14:39:41', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (212, 3, '2020-03-15 14:23:54', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (213, 3, '2020-03-22 14:33:17', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (214, 3, '2020-03-22 14:59:51', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (215, 3, '2020-03-22 15:04:32', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (216, 3, '2020-03-29 16:14:37', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (217, 3, '2020-03-29 17:17:00', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (218, 3, '2020-04-06 16:54:49', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (219, 3, '2020-04-12 15:01:40', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (220, 3, '2020-04-19 09:50:59', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (221, 3, '2020-05-04 10:45:45', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (222, 3, '2020-05-05 11:02:44', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (223, 3, '2020-05-16 15:17:21', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (224, 3, '2020-05-17 14:58:35', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (225, 3, '2020-05-18 15:47:46', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (226, 3, '2020-05-23 16:51:15', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (227, 3, '2020-05-23 16:54:53', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (228, 3, '2020-05-23 17:00:33', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (229, 3, '2020-05-24 10:38:00', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (230, 3, '2020-06-07 09:39:31', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (231, 3, '2020-06-14 14:23:30', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (232, 3, '2020-06-14 17:11:59', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (233, 3, '2020-06-20 14:53:51', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (234, 3, '2020-06-21 14:57:36', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (235, 3, '2020-06-27 10:41:31', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (236, 3, '2020-07-05 15:54:21', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (237, 3, '2020-07-11 10:40:28', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (238, 3, '2020-07-11 10:45:01', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (239, 3, '2020-07-19 11:00:16', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (240, 3, '2020-07-19 11:46:27', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (241, 3, '2020-07-19 11:53:47', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (242, 3, '2020-07-19 14:17:37', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (243, 3, '2020-07-19 14:44:24', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (244, 3, '2020-07-19 14:44:58', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (245, 3, '2020-07-19 14:48:27', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (246, 3, '2020-07-19 14:48:57', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (247, 3, '2020-07-19 14:49:30', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (248, 3, '2020-07-19 14:50:18', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (249, 3, '2020-07-19 14:51:51', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (250, 3, '2020-07-19 14:55:27', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (251, 3, '2020-07-19 14:58:14', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (252, 6, '2020-07-19 15:04:21', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (253, 3, '2020-07-19 15:38:49', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (254, 6, '2020-07-19 16:26:24', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (255, 3, '2020-08-08 10:39:12', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (256, 3, '2020-08-09 11:06:31', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (257, 3, '2020-08-10 20:41:30', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (258, 3, '2020-08-15 10:12:25', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (259, 1, '2020-08-19 21:23:59', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (260, 1, '2020-08-19 21:25:06', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (261, 3, '2020-09-05 16:14:50', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (262, 3, '2020-09-05 16:15:37', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (263, 3, '2020-09-12 16:07:35', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (264, 6, '2020-09-12 16:08:14', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (265, 1, '2020-09-12 16:08:26', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (266, 6, '2020-09-12 16:09:08', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (267, 1, '2020-09-12 16:09:17', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (268, 3, '2020-09-13 14:22:25', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (269, 3, '2020-09-13 14:23:07', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (270, 3, '2020-09-13 14:24:21', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (271, 3, '2020-09-13 14:32:32', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (272, 1, '2020-09-19 15:43:31', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (273, 3, '2020-09-19 15:43:58', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (274, 3, '2020-09-19 15:49:44', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (275, 6, '2020-09-19 15:50:12', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (276, 6, '2020-09-19 15:50:18', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (277, 1, '2020-09-19 15:50:41', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (278, 6, '2020-09-19 15:52:28', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (279, 1, '2020-09-19 15:53:01', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (280, 1, '2020-09-19 15:53:48', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (281, 6, '2020-09-19 15:54:37', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (282, 3, '2020-09-20 11:13:50', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (283, 1, '2020-10-08 14:26:58', '0:0:0:0:0:0:0:1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (284, 1, '2020-10-08 14:30:49', '192.168.3.185', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (285, 3, '2021-04-11 10:27:43', '192.168.3.227', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (286, 1, '2021-04-11 10:29:19', '192.168.3.227', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (287, 3, '2021-04-11 10:30:40', '192.168.3.227', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (288, 3, '2021-04-11 10:37:50', '192.168.3.227', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (289, 3, '2021-12-08 10:44:09', '192.168.3.4', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (290, 3, '2022-04-15 15:04:51', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (291, 1, '2022-05-10 15:25:58', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (292, 1, '2022-05-10 15:31:08', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (293, 1, '2022-05-10 15:32:18', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (294, 1, '2022-05-10 15:34:17', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (295, 1, '2022-05-10 15:34:38', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (296, 1, '2022-05-10 15:54:50', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (297, 1, '2022-05-10 16:31:20', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (298, 1, '2022-05-10 16:33:45', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (299, 1, '2022-05-10 16:39:07', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (300, 1, '2022-05-18 14:53:41', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (301, 3, '2022-06-07 17:28:29', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (302, 3, '2022-06-08 09:48:32', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (303, 3, '2022-06-08 10:34:20', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (304, 3, '2022-06-08 17:09:29', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (305, 3, '2022-06-08 17:10:11', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (306, 6, '2022-06-08 17:10:55', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (307, 3, '2022-06-08 17:23:05', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (308, 3, '2022-06-08 17:30:51', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (309, 3, '2022-06-08 17:31:42', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (310, 3, '2022-06-08 17:31:48', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (311, 3, '2022-06-08 21:03:56', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (312, 3, '2022-06-09 10:41:31', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (313, 3, '2022-06-09 15:18:46', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (314, 3, '2022-06-10 15:43:15', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (315, 3, '2022-06-10 15:52:27', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (316, 3, '2022-06-15 14:41:59', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (317, 3, '2022-06-23 16:24:09', '192.168.3.6', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (318, 3, '2022-06-23 16:41:33', '192.168.3.6', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (319, 3, '2022-06-23 16:42:50', '192.168.3.6', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (320, 3, '2022-06-23 16:42:51', '192.168.3.6', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (321, 3, '2022-06-23 16:42:52', '192.168.3.6', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (322, 3, '2022-06-23 16:42:53', '192.168.3.6', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (323, 3, '2022-06-23 16:43:07', '192.168.3.6', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (324, 3, '2022-06-23 16:44:56', '192.168.3.6', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (325, 3, '2022-06-23 16:45:42', '192.168.3.6', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (326, 3, '2022-06-23 16:50:08', '192.168.3.6', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (327, 3, '2022-06-24 15:19:04', '192.168.3.227', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (328, 3, '2022-06-24 15:25:52', '192.168.3.227', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (329, 3, '2022-06-24 15:40:29', '192.168.3.227', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (330, 3, '2022-06-25 15:13:52', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (331, 3, '2022-06-25 15:25:12', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (332, 3, '2022-06-27 16:38:37', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (333, 3, '2022-07-24 10:10:06', '192.168.3.227', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (334, 1, '2022-07-25 17:15:55', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (335, 3, '2022-07-27 09:41:32', '192.168.3.227', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (336, 1, '2022-07-28 16:56:10', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (337, 1, '2022-07-28 16:56:25', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (338, 8, '2022-08-07 14:46:00', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (339, 9, '2022-08-07 14:53:32', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (340, 9, '2022-08-07 14:53:46', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (341, 9, '2022-08-07 14:56:19', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (342, 1, '2022-08-09 10:53:55', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (343, 1, '2022-08-09 10:54:36', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (344, 1, '2022-08-09 11:00:06', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (345, 1, '2022-08-09 11:02:04', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (346, 1, '2022-08-09 15:48:14', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (347, 1, '2022-08-16 16:35:24', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (348, 1, '2022-08-17 15:03:52', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (349, 1, '2022-08-20 16:49:19', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (350, 1, '2022-08-23 14:54:06', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (351, 1, '2022-08-31 17:16:35', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (352, 3, '2022-10-14 15:31:42', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (353, 3, '2022-10-14 15:42:39', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (354, 3, '2022-10-14 15:44:08', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (355, 3, '2022-10-14 15:46:23', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (356, 3, '2022-10-14 15:46:35', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (357, 3, '2022-10-14 16:06:11', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (358, 3, '2022-10-14 16:24:08', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (359, 3, '2022-10-17 16:44:52', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (360, 3, '2022-10-17 16:49:42', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (361, 3, '2022-10-17 16:49:53', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (362, 3, '2022-10-17 17:03:10', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (363, 3, '2022-10-17 17:03:22', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (364, 3, '2022-10-17 21:00:48', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (365, 3, '2022-10-24 16:32:31', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (366, 3, '2022-10-26 16:31:17', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (367, 3, '2022-10-26 16:50:48', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (368, 3, '2022-10-26 16:52:28', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (369, 3, '2022-10-27 17:21:28', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (370, 3, '2022-10-28 10:52:22', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (371, 3, '2022-11-04 16:09:08', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (372, 3, '2022-11-08 10:27:27', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (373, 3, '2022-11-09 10:42:30', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (374, 3, '2022-11-10 15:03:08', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (375, 3, '2022-11-11 10:11:11', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (376, 3, '2022-11-14 16:33:30', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (377, 3, '2022-11-15 10:54:02', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (378, 3, '2022-11-15 15:16:35', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (379, 3, '2022-11-15 15:17:41', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (380, 3, '2022-11-15 15:17:47', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (381, 1, '2022-11-15 15:19:56', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (382, 3, '2022-11-15 15:20:12', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (383, 3, '2022-11-15 15:22:22', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (384, 3, '2022-11-16 10:39:08', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (385, 1, '2022-11-24 20:02:12', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (386, 3, '2022-11-28 15:24:02', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (387, 3, '2022-11-30 09:34:28', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (388, 3, '2022-12-05 09:43:58', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (389, 3, '2022-12-09 17:18:09', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (390, 3, '2022-12-15 14:53:39', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (391, 3, '2022-12-15 16:11:54', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (392, 3, '2022-12-20 15:55:18', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (393, 3, '2022-12-21 14:49:30', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (394, 3, '2022-12-23 09:49:50', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (395, 3, '2023-01-04 10:17:44', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (396, 3, '2023-01-04 15:28:47', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (397, 3, '2023-01-05 10:13:43', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (398, 3, '2023-01-06 09:49:23', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (399, 3, '2023-01-06 10:04:19', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (400, 3, '2023-01-06 10:07:06', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (401, 3, '2023-01-06 16:21:31', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (402, 3, '2023-01-09 16:50:30', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (403, 3, '2023-01-10 10:05:52', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (404, 3, '2023-01-10 17:09:44', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (405, 3, '2023-01-11 10:17:17', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (406, 3, '2023-01-13 09:35:37', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (407, 3, '2023-01-13 09:40:51', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (408, 3, '2023-01-31 10:46:52', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (409, 3, '2023-02-08 17:11:11', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (410, 3, '2023-02-09 15:46:41', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (411, 3, '2023-02-10 17:23:52', '192.168.56.1', NULL, NULL);\nINSERT INTO `ums_admin_login_log` VALUES (412, 3, '2023-05-11 15:29:54', '192.168.56.1', NULL, NULL);\n\n-- ----------------------------\n-- Table structure for ums_admin_permission_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_admin_permission_relation`;\nCREATE TABLE `ums_admin_permission_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `admin_id` bigint(20) NULL DEFAULT NULL,\n  `permission_id` bigint(20) NULL DEFAULT NULL,\n  `type` int(1) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户和权限关系表(除角色中定义的权限以外的加减权限)' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_admin_permission_relation\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for ums_admin_role_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_admin_role_relation`;\nCREATE TABLE `ums_admin_role_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `admin_id` bigint(20) NULL DEFAULT NULL,\n  `role_id` bigint(20) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 32 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户和角色关系表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_admin_role_relation\n-- ----------------------------\nINSERT INTO `ums_admin_role_relation` VALUES (26, 3, 5);\nINSERT INTO `ums_admin_role_relation` VALUES (27, 6, 1);\nINSERT INTO `ums_admin_role_relation` VALUES (28, 7, 2);\nINSERT INTO `ums_admin_role_relation` VALUES (29, 1, 5);\nINSERT INTO `ums_admin_role_relation` VALUES (30, 4, 5);\nINSERT INTO `ums_admin_role_relation` VALUES (31, 8, 1);\n\n-- ----------------------------\n-- Table structure for ums_growth_change_history\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_growth_change_history`;\nCREATE TABLE `ums_growth_change_history`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `member_id` bigint(20) NULL DEFAULT NULL,\n  `create_time` datetime NULL DEFAULT NULL,\n  `change_type` int(1) NULL DEFAULT NULL COMMENT '改变类型：0->增加；1->减少',\n  `change_count` int(11) NULL DEFAULT NULL COMMENT '积分改变数量',\n  `operate_man` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人员',\n  `operate_note` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作备注',\n  `source_type` int(1) NULL DEFAULT NULL COMMENT '积分来源：0->购物；1->管理员修改',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '成长值变化历史记录表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_growth_change_history\n-- ----------------------------\nINSERT INTO `ums_growth_change_history` VALUES (1, 1, '2018-08-29 17:16:35', 0, 1000, 'test', '测试使用', 1);\n\n-- ----------------------------\n-- Table structure for ums_integration_change_history\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_integration_change_history`;\nCREATE TABLE `ums_integration_change_history`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `member_id` bigint(20) NULL DEFAULT NULL,\n  `create_time` datetime NULL DEFAULT NULL,\n  `change_type` int(1) NULL DEFAULT NULL COMMENT '改变类型：0->增加；1->减少',\n  `change_count` int(11) NULL DEFAULT NULL COMMENT '积分改变数量',\n  `operate_man` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人员',\n  `operate_note` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作备注',\n  `source_type` int(1) NULL DEFAULT NULL COMMENT '积分来源：0->购物；1->管理员修改',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '积分变化历史记录表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_integration_change_history\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for ums_integration_consume_setting\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_integration_consume_setting`;\nCREATE TABLE `ums_integration_consume_setting`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `deduction_per_amount` int(11) NULL DEFAULT NULL COMMENT '每一元需要抵扣的积分数量',\n  `max_percent_per_order` int(11) NULL DEFAULT NULL COMMENT '每笔订单最高抵用百分比',\n  `use_unit` int(11) NULL DEFAULT NULL COMMENT '每次使用积分最小单位100',\n  `coupon_status` int(1) NULL DEFAULT NULL COMMENT '是否可以和优惠券同用；0->不可以；1->可以',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '积分消费设置' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_integration_consume_setting\n-- ----------------------------\nINSERT INTO `ums_integration_consume_setting` VALUES (1, 100, 50, 100, 1);\n\n-- ----------------------------\n-- Table structure for ums_member\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_member`;\nCREATE TABLE `ums_member`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `member_level_id` bigint(20) NULL DEFAULT NULL,\n  `username` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '用户名',\n  `password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '密码',\n  `nickname` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '昵称',\n  `phone` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号码',\n  `status` int(1) NULL DEFAULT NULL COMMENT '帐号启用状态:0->禁用；1->启用',\n  `create_time` datetime NULL DEFAULT NULL COMMENT '注册时间',\n  `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '头像',\n  `gender` int(1) NULL DEFAULT NULL COMMENT '性别：0->未知；1->男；2->女',\n  `birthday` date NULL DEFAULT NULL COMMENT '生日',\n  `city` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所做城市',\n  `job` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '职业',\n  `personalized_signature` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '个性签名',\n  `source_type` int(1) NULL DEFAULT NULL COMMENT '用户来源',\n  `integration` int(11) NULL DEFAULT NULL COMMENT '积分',\n  `growth` int(11) NULL DEFAULT NULL COMMENT '成长值',\n  `luckey_count` int(11) NULL DEFAULT NULL COMMENT '剩余抽奖次数',\n  `history_integration` int(11) NULL DEFAULT NULL COMMENT '历史积分数量',\n  PRIMARY KEY (`id`) USING BTREE,\n  UNIQUE INDEX `idx_username`(`username`) USING BTREE,\n  UNIQUE INDEX `idx_phone`(`phone`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_member\n-- ----------------------------\nINSERT INTO `ums_member` VALUES (1, 4, 'test', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'test', '18061581849', 1, '2018-08-02 10:35:44', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_03.png', 1, '2009-06-01', '上海', '学生', 'test', NULL, 3900, 1000, NULL, NULL);\nINSERT INTO `ums_member` VALUES (3, 4, 'windy', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'windy', '18061581848', 1, '2018-08-03 16:46:38', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `ums_member` VALUES (4, 4, 'zhengsan', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'zhengsan', '18061581847', 1, '2018-11-12 14:12:04', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `ums_member` VALUES (5, 4, 'lisi', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'lisi', '18061581841', 1, '2018-11-12 14:12:38', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `ums_member` VALUES (6, 4, 'wangwu', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'wangwu', '18061581842', 1, '2018-11-12 14:13:09', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `ums_member` VALUES (7, 4, 'lion', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'lion', '18061581845', 1, '2018-11-12 14:21:39', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `ums_member` VALUES (8, 4, 'shari', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'shari', '18061581844', 1, '2018-11-12 14:22:00', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `ums_member` VALUES (9, 4, 'aewen', '$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG', 'aewen', '18061581843', 1, '2018-11-12 14:22:55', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `ums_member` VALUES (10, 4, 'guest', '$2a$10$WQiD4RzEs1iJVWU.2HVu8OdSlExJHWKmwndaw3SUfMyqfKZmXe1vq', NULL, '18911111111', 1, '2020-03-14 14:52:18', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);\nINSERT INTO `ums_member` VALUES (11, 4, 'member', '$2a$10$Q08uzqvtPj61NnpYQZsVvOnyilJ3AU4VdngAcJFGvPhEeqhhC.hhS', 'member', '18961511111', 1, '2023-05-11 15:22:38', 'https://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/icon/github_icon_02.png', 1, '2009-06-01', '上海', '学生', 'member', NULL, 5000, 1000, NULL, NULL);\n\n-- ----------------------------\n-- Table structure for ums_member_level\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_member_level`;\nCREATE TABLE `ums_member_level`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `growth_point` int(11) NULL DEFAULT NULL,\n  `default_status` int(1) NULL DEFAULT NULL COMMENT '是否为默认等级：0->不是；1->是',\n  `free_freight_point` decimal(10, 2) NULL DEFAULT NULL COMMENT '免运费标准',\n  `comment_growth_point` int(11) NULL DEFAULT NULL COMMENT '每次评价获取的成长值',\n  `priviledge_free_freight` int(1) NULL DEFAULT NULL COMMENT '是否有免邮特权',\n  `priviledge_sign_in` int(1) NULL DEFAULT NULL COMMENT '是否有签到特权',\n  `priviledge_comment` int(1) NULL DEFAULT NULL COMMENT '是否有评论获奖励特权',\n  `priviledge_promotion` int(1) NULL DEFAULT NULL COMMENT '是否有专享活动特权',\n  `priviledge_member_price` int(1) NULL DEFAULT NULL COMMENT '是否有会员价格特权',\n  `priviledge_birthday` int(1) NULL DEFAULT NULL COMMENT '是否有生日特权',\n  `note` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员等级表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_member_level\n-- ----------------------------\nINSERT INTO `ums_member_level` VALUES (1, '黄金会员', 1000, 0, 199.00, 5, 1, 1, 1, 1, 1, 1, NULL);\nINSERT INTO `ums_member_level` VALUES (2, '白金会员', 5000, 0, 99.00, 10, 1, 1, 1, 1, 1, 1, NULL);\nINSERT INTO `ums_member_level` VALUES (3, '钻石会员', 15000, 0, 69.00, 15, 1, 1, 1, 1, 1, 1, NULL);\nINSERT INTO `ums_member_level` VALUES (4, '普通会员', 1, 1, 199.00, 20, 1, 1, 1, 1, 0, 0, NULL);\n\n-- ----------------------------\n-- Table structure for ums_member_login_log\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_member_login_log`;\nCREATE TABLE `ums_member_login_log`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `member_id` bigint(20) NULL DEFAULT NULL,\n  `create_time` datetime NULL DEFAULT NULL,\n  `ip` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `city` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `login_type` int(1) NULL DEFAULT NULL COMMENT '登录类型：0->PC；1->android;2->ios;3->小程序',\n  `province` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员登录记录' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_member_login_log\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for ums_member_member_tag_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_member_member_tag_relation`;\nCREATE TABLE `ums_member_member_tag_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `member_id` bigint(20) NULL DEFAULT NULL,\n  `tag_id` bigint(20) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户和标签关系表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_member_member_tag_relation\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for ums_member_product_category_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_member_product_category_relation`;\nCREATE TABLE `ums_member_product_category_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `member_id` bigint(20) NULL DEFAULT NULL,\n  `product_category_id` bigint(20) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员与产品分类关系表（用户喜欢的分类）' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_member_product_category_relation\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for ums_member_receive_address\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_member_receive_address`;\nCREATE TABLE `ums_member_receive_address`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `member_id` bigint(20) NULL DEFAULT NULL,\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '收货人名称',\n  `phone_number` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `default_status` int(1) NULL DEFAULT NULL COMMENT '是否为默认',\n  `post_code` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮政编码',\n  `province` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '省份/直辖市',\n  `city` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '城市',\n  `region` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '区',\n  `detail_address` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详细地址(街道)',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员收货地址表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_member_receive_address\n-- ----------------------------\nINSERT INTO `ums_member_receive_address` VALUES (1, 1, '大梨', '18033441849', 0, '518000', '广东省', '深圳市', '南山区', '科兴科学园');\nINSERT INTO `ums_member_receive_address` VALUES (3, 1, '大梨', '18033441849', 0, '518000', '广东省', '深圳市', '福田区', '清水河街道');\nINSERT INTO `ums_member_receive_address` VALUES (4, 1, '大梨', '18033441849', 1, '518000', '广东省', '深圳市', '福田区', '东晓街道');\nINSERT INTO `ums_member_receive_address` VALUES (5, 11, '小李', '18961511111', 1, '518000', '广东省', '深圳市', '福田区', '东晓街道');\nINSERT INTO `ums_member_receive_address` VALUES (6, 11, '小李', '18961511111', NULL, '518000', '广东省', '深圳市', '福田区', '清水河街道');\n\n-- ----------------------------\n-- Table structure for ums_member_rule_setting\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_member_rule_setting`;\nCREATE TABLE `ums_member_rule_setting`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `continue_sign_day` int(11) NULL DEFAULT NULL COMMENT '连续签到天数',\n  `continue_sign_point` int(11) NULL DEFAULT NULL COMMENT '连续签到赠送数量',\n  `consume_per_point` decimal(10, 2) NULL DEFAULT NULL COMMENT '每消费多少元获取1个点',\n  `low_order_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '最低获取点数的订单金额',\n  `max_point_per_order` int(11) NULL DEFAULT NULL COMMENT '每笔订单最高获取点数',\n  `type` int(1) NULL DEFAULT NULL COMMENT '类型：0->积分规则；1->成长值规则',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员积分成长规则表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_member_rule_setting\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for ums_member_statistics_info\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_member_statistics_info`;\nCREATE TABLE `ums_member_statistics_info`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `member_id` bigint(20) NULL DEFAULT NULL,\n  `consume_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '累计消费金额',\n  `order_count` int(11) NULL DEFAULT NULL COMMENT '订单数量',\n  `coupon_count` int(11) NULL DEFAULT NULL COMMENT '优惠券数量',\n  `comment_count` int(11) NULL DEFAULT NULL COMMENT '评价数',\n  `return_order_count` int(11) NULL DEFAULT NULL COMMENT '退货数量',\n  `login_count` int(11) NULL DEFAULT NULL COMMENT '登录次数',\n  `attend_count` int(11) NULL DEFAULT NULL COMMENT '关注数量',\n  `fans_count` int(11) NULL DEFAULT NULL COMMENT '粉丝数量',\n  `collect_product_count` int(11) NULL DEFAULT NULL,\n  `collect_subject_count` int(11) NULL DEFAULT NULL,\n  `collect_topic_count` int(11) NULL DEFAULT NULL,\n  `collect_comment_count` int(11) NULL DEFAULT NULL,\n  `invite_friend_count` int(11) NULL DEFAULT NULL,\n  `recent_order_time` datetime NULL DEFAULT NULL COMMENT '最后一次下订单时间',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员统计信息' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_member_statistics_info\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for ums_member_tag\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_member_tag`;\nCREATE TABLE `ums_member_tag`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `finish_order_count` int(11) NULL DEFAULT NULL COMMENT '自动打标签完成订单数量',\n  `finish_order_amount` decimal(10, 2) NULL DEFAULT NULL COMMENT '自动打标签完成订单金额',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户标签表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_member_tag\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for ums_member_task\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_member_task`;\nCREATE TABLE `ums_member_task`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,\n  `growth` int(11) NULL DEFAULT NULL COMMENT '赠送成长值',\n  `intergration` int(11) NULL DEFAULT NULL COMMENT '赠送积分',\n  `type` int(1) NULL DEFAULT NULL COMMENT '任务类型：0->新手任务；1->日常任务',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '会员任务表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_member_task\n-- ----------------------------\n\n-- ----------------------------\n-- Table structure for ums_menu\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_menu`;\nCREATE TABLE `ums_menu`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父级ID',\n  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',\n  `title` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '菜单名称',\n  `level` int(4) NULL DEFAULT NULL COMMENT '菜单级数',\n  `sort` int(4) NULL DEFAULT NULL COMMENT '菜单排序',\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端名称',\n  `icon` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端图标',\n  `hidden` int(1) NULL DEFAULT NULL COMMENT '前端隐藏',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 26 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台菜单表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_menu\n-- ----------------------------\nINSERT INTO `ums_menu` VALUES (1, 0, '2020-02-02 14:50:36', '商品', 0, 0, 'pms', 'product', 0);\nINSERT INTO `ums_menu` VALUES (2, 1, '2020-02-02 14:51:50', '商品列表', 1, 0, 'product', 'product-list', 0);\nINSERT INTO `ums_menu` VALUES (3, 1, '2020-02-02 14:52:44', '添加商品', 1, 0, 'addProduct', 'product-add', 0);\nINSERT INTO `ums_menu` VALUES (4, 1, '2020-02-02 14:53:51', '商品分类', 1, 0, 'productCate', 'product-cate', 0);\nINSERT INTO `ums_menu` VALUES (5, 1, '2020-02-02 14:54:51', '商品类型', 1, 0, 'productAttr', 'product-attr', 0);\nINSERT INTO `ums_menu` VALUES (6, 1, '2020-02-02 14:56:29', '品牌管理', 1, 0, 'brand', 'product-brand', 0);\nINSERT INTO `ums_menu` VALUES (7, 0, '2020-02-02 16:54:07', '订单', 0, 0, 'oms', 'order', 0);\nINSERT INTO `ums_menu` VALUES (8, 7, '2020-02-02 16:55:18', '订单列表', 1, 0, 'order', 'product-list', 0);\nINSERT INTO `ums_menu` VALUES (9, 7, '2020-02-02 16:56:46', '订单设置', 1, 0, 'orderSetting', 'order-setting', 0);\nINSERT INTO `ums_menu` VALUES (10, 7, '2020-02-02 16:57:39', '退货申请处理', 1, 0, 'returnApply', 'order-return', 0);\nINSERT INTO `ums_menu` VALUES (11, 7, '2020-02-02 16:59:40', '退货原因设置', 1, 0, 'returnReason', 'order-return-reason', 0);\nINSERT INTO `ums_menu` VALUES (12, 0, '2020-02-04 16:18:00', '营销', 0, 0, 'sms', 'sms', 0);\nINSERT INTO `ums_menu` VALUES (13, 12, '2020-02-04 16:19:22', '秒杀活动列表', 1, 0, 'flash', 'sms-flash', 0);\nINSERT INTO `ums_menu` VALUES (14, 12, '2020-02-04 16:20:16', '优惠券列表', 1, 0, 'coupon', 'sms-coupon', 0);\nINSERT INTO `ums_menu` VALUES (16, 12, '2020-02-07 16:22:38', '品牌推荐', 1, 0, 'homeBrand', 'product-brand', 0);\nINSERT INTO `ums_menu` VALUES (17, 12, '2020-02-07 16:23:14', '新品推荐', 1, 0, 'homeNew', 'sms-new', 0);\nINSERT INTO `ums_menu` VALUES (18, 12, '2020-02-07 16:26:38', '人气推荐', 1, 0, 'homeHot', 'sms-hot', 0);\nINSERT INTO `ums_menu` VALUES (19, 12, '2020-02-07 16:28:16', '专题推荐', 1, 0, 'homeSubject', 'sms-subject', 0);\nINSERT INTO `ums_menu` VALUES (20, 12, '2020-02-07 16:28:42', '广告列表', 1, 0, 'homeAdvertise', 'sms-ad', 0);\nINSERT INTO `ums_menu` VALUES (21, 0, '2020-02-07 16:29:13', '权限', 0, 0, 'ums', 'ums', 0);\nINSERT INTO `ums_menu` VALUES (22, 21, '2020-02-07 16:29:51', '用户列表', 1, 0, 'admin', 'ums-admin', 0);\nINSERT INTO `ums_menu` VALUES (23, 21, '2020-02-07 16:30:13', '角色列表', 1, 0, 'role', 'ums-role', 0);\nINSERT INTO `ums_menu` VALUES (24, 21, '2020-02-07 16:30:53', '菜单列表', 1, 0, 'menu', 'ums-menu', 0);\nINSERT INTO `ums_menu` VALUES (25, 21, '2020-02-07 16:31:13', '资源列表', 1, 0, 'resource', 'ums-resource', 0);\n\n-- ----------------------------\n-- Table structure for ums_permission\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_permission`;\nCREATE TABLE `ums_permission`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `pid` bigint(20) NULL DEFAULT NULL COMMENT '父级权限id',\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',\n  `value` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '权限值',\n  `icon` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图标',\n  `type` int(1) NULL DEFAULT NULL COMMENT '权限类型：0->目录；1->菜单；2->按钮（接口绑定权限）',\n  `uri` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '前端资源路径',\n  `status` int(1) NULL DEFAULT NULL COMMENT '启用状态；0->禁用；1->启用',\n  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',\n  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户权限表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_permission\n-- ----------------------------\nINSERT INTO `ums_permission` VALUES (1, 0, '商品', NULL, NULL, 0, NULL, 1, '2018-09-29 16:15:14', 0);\nINSERT INTO `ums_permission` VALUES (2, 1, '商品列表', 'pms:product:read', NULL, 1, '/pms/product/index', 1, '2018-09-29 16:17:01', 0);\nINSERT INTO `ums_permission` VALUES (3, 1, '添加商品', 'pms:product:create', NULL, 1, '/pms/product/add', 1, '2018-09-29 16:18:51', 0);\nINSERT INTO `ums_permission` VALUES (4, 1, '商品分类', 'pms:productCategory:read', NULL, 1, '/pms/productCate/index', 1, '2018-09-29 16:23:07', 0);\nINSERT INTO `ums_permission` VALUES (5, 1, '商品类型', 'pms:productAttribute:read', NULL, 1, '/pms/productAttr/index', 1, '2018-09-29 16:24:43', 0);\nINSERT INTO `ums_permission` VALUES (6, 1, '品牌管理', 'pms:brand:read', NULL, 1, '/pms/brand/index', 1, '2018-09-29 16:25:45', 0);\nINSERT INTO `ums_permission` VALUES (7, 2, '编辑商品', 'pms:product:update', NULL, 2, '/pms/product/updateProduct', 1, '2018-09-29 16:34:23', 0);\nINSERT INTO `ums_permission` VALUES (8, 2, '删除商品', 'pms:product:delete', NULL, 2, '/pms/product/delete', 1, '2018-09-29 16:38:33', 0);\nINSERT INTO `ums_permission` VALUES (9, 4, '添加商品分类', 'pms:productCategory:create', NULL, 2, '/pms/productCate/create', 1, '2018-09-29 16:43:23', 0);\nINSERT INTO `ums_permission` VALUES (10, 4, '修改商品分类', 'pms:productCategory:update', NULL, 2, '/pms/productCate/update', 1, '2018-09-29 16:43:55', 0);\nINSERT INTO `ums_permission` VALUES (11, 4, '删除商品分类', 'pms:productCategory:delete', NULL, 2, '/pms/productAttr/delete', 1, '2018-09-29 16:44:38', 0);\nINSERT INTO `ums_permission` VALUES (12, 5, '添加商品类型', 'pms:productAttribute:create', NULL, 2, '/pms/productAttr/create', 1, '2018-09-29 16:45:25', 0);\nINSERT INTO `ums_permission` VALUES (13, 5, '修改商品类型', 'pms:productAttribute:update', NULL, 2, '/pms/productAttr/update', 1, '2018-09-29 16:48:08', 0);\nINSERT INTO `ums_permission` VALUES (14, 5, '删除商品类型', 'pms:productAttribute:delete', NULL, 2, '/pms/productAttr/delete', 1, '2018-09-29 16:48:44', 0);\nINSERT INTO `ums_permission` VALUES (15, 6, '添加品牌', 'pms:brand:create', NULL, 2, '/pms/brand/add', 1, '2018-09-29 16:49:34', 0);\nINSERT INTO `ums_permission` VALUES (16, 6, '修改品牌', 'pms:brand:update', NULL, 2, '/pms/brand/update', 1, '2018-09-29 16:50:55', 0);\nINSERT INTO `ums_permission` VALUES (17, 6, '删除品牌', 'pms:brand:delete', NULL, 2, '/pms/brand/delete', 1, '2018-09-29 16:50:59', 0);\nINSERT INTO `ums_permission` VALUES (18, 0, '首页', NULL, NULL, 0, NULL, 1, '2018-09-29 16:51:57', 0);\n\n-- ----------------------------\n-- Table structure for ums_resource\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_resource`;\nCREATE TABLE `ums_resource`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',\n  `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '资源名称',\n  `url` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '资源URL',\n  `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述',\n  `category_id` bigint(20) NULL DEFAULT NULL COMMENT '资源分类ID',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 33 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台资源表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_resource\n-- ----------------------------\nINSERT INTO `ums_resource` VALUES (1, '2020-02-04 17:04:55', '商品品牌管理', '/brand/**', NULL, 1);\nINSERT INTO `ums_resource` VALUES (2, '2020-02-04 17:05:35', '商品属性分类管理', '/productAttribute/category/**', NULL, 1);\nINSERT INTO `ums_resource` VALUES (3, '2020-02-04 17:06:13', '商品属性管理', '/productAttribute/**', NULL, 1);\nINSERT INTO `ums_resource` VALUES (4, '2020-02-04 17:07:15', '商品分类管理', '/productCategory/**', NULL, 1);\nINSERT INTO `ums_resource` VALUES (5, '2020-02-04 17:09:16', '商品管理', '/product/**', NULL, 1);\nINSERT INTO `ums_resource` VALUES (6, '2020-02-04 17:09:53', '商品库存管理', '/sku/**', NULL, 1);\nINSERT INTO `ums_resource` VALUES (8, '2020-02-05 14:43:37', '订单管理', '/order/**', '', 2);\nINSERT INTO `ums_resource` VALUES (9, '2020-02-05 14:44:22', ' 订单退货申请管理', '/returnApply/**', '', 2);\nINSERT INTO `ums_resource` VALUES (10, '2020-02-05 14:45:08', '退货原因管理', '/returnReason/**', '', 2);\nINSERT INTO `ums_resource` VALUES (11, '2020-02-05 14:45:43', '订单设置管理', '/orderSetting/**', '', 2);\nINSERT INTO `ums_resource` VALUES (12, '2020-02-05 14:46:23', '收货地址管理', '/companyAddress/**', '', 2);\nINSERT INTO `ums_resource` VALUES (13, '2020-02-07 16:37:22', '优惠券管理', '/coupon/**', '', 3);\nINSERT INTO `ums_resource` VALUES (14, '2020-02-07 16:37:59', '优惠券领取记录管理', '/couponHistory/**', '', 3);\nINSERT INTO `ums_resource` VALUES (15, '2020-02-07 16:38:28', '限时购活动管理', '/flash/**', '', 3);\nINSERT INTO `ums_resource` VALUES (16, '2020-02-07 16:38:59', '限时购商品关系管理', '/flashProductRelation/**', '', 3);\nINSERT INTO `ums_resource` VALUES (17, '2020-02-07 16:39:22', '限时购场次管理', '/flashSession/**', '', 3);\nINSERT INTO `ums_resource` VALUES (18, '2020-02-07 16:40:07', '首页轮播广告管理', '/home/advertise/**', '', 3);\nINSERT INTO `ums_resource` VALUES (19, '2020-02-07 16:40:34', '首页品牌管理', '/home/brand/**', '', 3);\nINSERT INTO `ums_resource` VALUES (20, '2020-02-07 16:41:06', '首页新品管理', '/home/newProduct/**', '', 3);\nINSERT INTO `ums_resource` VALUES (21, '2020-02-07 16:42:16', '首页人气推荐管理', '/home/recommendProduct/**', '', 3);\nINSERT INTO `ums_resource` VALUES (22, '2020-02-07 16:42:48', '首页专题推荐管理', '/home/recommendSubject/**', '', 3);\nINSERT INTO `ums_resource` VALUES (23, '2020-02-07 16:44:56', ' 商品优选管理', '/prefrenceArea/**', '', 5);\nINSERT INTO `ums_resource` VALUES (24, '2020-02-07 16:45:39', '商品专题管理', '/subject/**', '', 5);\nINSERT INTO `ums_resource` VALUES (25, '2020-02-07 16:47:34', '后台用户管理', '/admin/**', '', 4);\nINSERT INTO `ums_resource` VALUES (26, '2020-02-07 16:48:24', '后台用户角色管理', '/role/**', '', 4);\nINSERT INTO `ums_resource` VALUES (27, '2020-02-07 16:48:48', '后台菜单管理', '/menu/**', '', 4);\nINSERT INTO `ums_resource` VALUES (28, '2020-02-07 16:49:18', '后台资源分类管理', '/resourceCategory/**', '', 4);\nINSERT INTO `ums_resource` VALUES (29, '2020-02-07 16:49:45', '后台资源管理', '/resource/**', '', 4);\nINSERT INTO `ums_resource` VALUES (30, '2020-09-19 15:47:57', '会员等级管理', '/memberLevel/**', '', 7);\nINSERT INTO `ums_resource` VALUES (31, '2020-09-19 15:51:29', '获取登录用户信息', '/admin/info', '用户登录必配', 4);\nINSERT INTO `ums_resource` VALUES (32, '2020-09-19 15:53:34', '用户登出', '/admin/logout', '用户登出必配', 4);\n\n-- ----------------------------\n-- Table structure for ums_resource_category\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_resource_category`;\nCREATE TABLE `ums_resource_category`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',\n  `name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '分类名称',\n  `sort` int(4) NULL DEFAULT NULL COMMENT '排序',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '资源分类表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_resource_category\n-- ----------------------------\nINSERT INTO `ums_resource_category` VALUES (1, '2020-02-05 10:21:44', '商品模块', 0);\nINSERT INTO `ums_resource_category` VALUES (2, '2020-02-05 10:22:34', '订单模块', 0);\nINSERT INTO `ums_resource_category` VALUES (3, '2020-02-05 10:22:48', '营销模块', 0);\nINSERT INTO `ums_resource_category` VALUES (4, '2020-02-05 10:23:04', '权限模块', 0);\nINSERT INTO `ums_resource_category` VALUES (5, '2020-02-07 16:34:27', '内容模块', 0);\nINSERT INTO `ums_resource_category` VALUES (7, '2020-09-19 15:49:08', '其他模块', 0);\n\n-- ----------------------------\n-- Table structure for ums_role\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_role`;\nCREATE TABLE `ums_role`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',\n  `description` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述',\n  `admin_count` int(11) NULL DEFAULT NULL COMMENT '后台用户数量',\n  `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',\n  `status` int(1) NULL DEFAULT 1 COMMENT '启用状态：0->禁用；1->启用',\n  `sort` int(11) NULL DEFAULT 0,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户角色表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_role\n-- ----------------------------\nINSERT INTO `ums_role` VALUES (1, '商品管理员', '只能查看及操作商品', 0, '2020-02-03 16:50:37', 1, 0);\nINSERT INTO `ums_role` VALUES (2, '订单管理员', '只能查看及操作订单', 0, '2018-09-30 15:53:45', 1, 0);\nINSERT INTO `ums_role` VALUES (5, '超级管理员', '拥有所有查看和操作功能', 0, '2020-02-02 15:11:05', 1, 0);\n\n-- ----------------------------\n-- Table structure for ums_role_menu_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_role_menu_relation`;\nCREATE TABLE `ums_role_menu_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色ID',\n  `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单ID',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 127 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台角色菜单关系表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_role_menu_relation\n-- ----------------------------\nINSERT INTO `ums_role_menu_relation` VALUES (53, 2, 7);\nINSERT INTO `ums_role_menu_relation` VALUES (54, 2, 8);\nINSERT INTO `ums_role_menu_relation` VALUES (55, 2, 9);\nINSERT INTO `ums_role_menu_relation` VALUES (56, 2, 10);\nINSERT INTO `ums_role_menu_relation` VALUES (57, 2, 11);\nINSERT INTO `ums_role_menu_relation` VALUES (72, 5, 1);\nINSERT INTO `ums_role_menu_relation` VALUES (73, 5, 2);\nINSERT INTO `ums_role_menu_relation` VALUES (74, 5, 3);\nINSERT INTO `ums_role_menu_relation` VALUES (75, 5, 4);\nINSERT INTO `ums_role_menu_relation` VALUES (76, 5, 5);\nINSERT INTO `ums_role_menu_relation` VALUES (77, 5, 6);\nINSERT INTO `ums_role_menu_relation` VALUES (78, 5, 7);\nINSERT INTO `ums_role_menu_relation` VALUES (79, 5, 8);\nINSERT INTO `ums_role_menu_relation` VALUES (80, 5, 9);\nINSERT INTO `ums_role_menu_relation` VALUES (81, 5, 10);\nINSERT INTO `ums_role_menu_relation` VALUES (82, 5, 11);\nINSERT INTO `ums_role_menu_relation` VALUES (83, 5, 12);\nINSERT INTO `ums_role_menu_relation` VALUES (84, 5, 13);\nINSERT INTO `ums_role_menu_relation` VALUES (85, 5, 14);\nINSERT INTO `ums_role_menu_relation` VALUES (86, 5, 16);\nINSERT INTO `ums_role_menu_relation` VALUES (87, 5, 17);\nINSERT INTO `ums_role_menu_relation` VALUES (88, 5, 18);\nINSERT INTO `ums_role_menu_relation` VALUES (89, 5, 19);\nINSERT INTO `ums_role_menu_relation` VALUES (90, 5, 20);\nINSERT INTO `ums_role_menu_relation` VALUES (91, 5, 21);\nINSERT INTO `ums_role_menu_relation` VALUES (92, 5, 22);\nINSERT INTO `ums_role_menu_relation` VALUES (93, 5, 23);\nINSERT INTO `ums_role_menu_relation` VALUES (94, 5, 24);\nINSERT INTO `ums_role_menu_relation` VALUES (95, 5, 25);\nINSERT INTO `ums_role_menu_relation` VALUES (121, 1, 1);\nINSERT INTO `ums_role_menu_relation` VALUES (122, 1, 2);\nINSERT INTO `ums_role_menu_relation` VALUES (123, 1, 3);\nINSERT INTO `ums_role_menu_relation` VALUES (124, 1, 4);\nINSERT INTO `ums_role_menu_relation` VALUES (125, 1, 5);\nINSERT INTO `ums_role_menu_relation` VALUES (126, 1, 6);\n\n-- ----------------------------\n-- Table structure for ums_role_permission_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_role_permission_relation`;\nCREATE TABLE `ums_role_permission_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `role_id` bigint(20) NULL DEFAULT NULL,\n  `permission_id` bigint(20) NULL DEFAULT NULL,\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台用户角色和权限关系表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_role_permission_relation\n-- ----------------------------\nINSERT INTO `ums_role_permission_relation` VALUES (1, 1, 1);\nINSERT INTO `ums_role_permission_relation` VALUES (2, 1, 2);\nINSERT INTO `ums_role_permission_relation` VALUES (3, 1, 3);\nINSERT INTO `ums_role_permission_relation` VALUES (4, 1, 7);\nINSERT INTO `ums_role_permission_relation` VALUES (5, 1, 8);\nINSERT INTO `ums_role_permission_relation` VALUES (6, 2, 4);\nINSERT INTO `ums_role_permission_relation` VALUES (7, 2, 9);\nINSERT INTO `ums_role_permission_relation` VALUES (8, 2, 10);\nINSERT INTO `ums_role_permission_relation` VALUES (9, 2, 11);\nINSERT INTO `ums_role_permission_relation` VALUES (10, 3, 5);\nINSERT INTO `ums_role_permission_relation` VALUES (11, 3, 12);\nINSERT INTO `ums_role_permission_relation` VALUES (12, 3, 13);\nINSERT INTO `ums_role_permission_relation` VALUES (13, 3, 14);\nINSERT INTO `ums_role_permission_relation` VALUES (14, 4, 6);\nINSERT INTO `ums_role_permission_relation` VALUES (15, 4, 15);\nINSERT INTO `ums_role_permission_relation` VALUES (16, 4, 16);\nINSERT INTO `ums_role_permission_relation` VALUES (17, 4, 17);\n\n-- ----------------------------\n-- Table structure for ums_role_resource_relation\n-- ----------------------------\nDROP TABLE IF EXISTS `ums_role_resource_relation`;\nCREATE TABLE `ums_role_resource_relation`  (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色ID',\n  `resource_id` bigint(20) NULL DEFAULT NULL COMMENT '资源ID',\n  PRIMARY KEY (`id`) USING BTREE\n) ENGINE = InnoDB AUTO_INCREMENT = 249 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '后台角色资源关系表' ROW_FORMAT = DYNAMIC;\n\n-- ----------------------------\n-- Records of ums_role_resource_relation\n-- ----------------------------\nINSERT INTO `ums_role_resource_relation` VALUES (194, 5, 1);\nINSERT INTO `ums_role_resource_relation` VALUES (195, 5, 2);\nINSERT INTO `ums_role_resource_relation` VALUES (196, 5, 3);\nINSERT INTO `ums_role_resource_relation` VALUES (197, 5, 4);\nINSERT INTO `ums_role_resource_relation` VALUES (198, 5, 5);\nINSERT INTO `ums_role_resource_relation` VALUES (199, 5, 6);\nINSERT INTO `ums_role_resource_relation` VALUES (200, 5, 8);\nINSERT INTO `ums_role_resource_relation` VALUES (201, 5, 9);\nINSERT INTO `ums_role_resource_relation` VALUES (202, 5, 10);\nINSERT INTO `ums_role_resource_relation` VALUES (203, 5, 11);\nINSERT INTO `ums_role_resource_relation` VALUES (204, 5, 12);\nINSERT INTO `ums_role_resource_relation` VALUES (205, 5, 13);\nINSERT INTO `ums_role_resource_relation` VALUES (206, 5, 14);\nINSERT INTO `ums_role_resource_relation` VALUES (207, 5, 15);\nINSERT INTO `ums_role_resource_relation` VALUES (208, 5, 16);\nINSERT INTO `ums_role_resource_relation` VALUES (209, 5, 17);\nINSERT INTO `ums_role_resource_relation` VALUES (210, 5, 18);\nINSERT INTO `ums_role_resource_relation` VALUES (211, 5, 19);\nINSERT INTO `ums_role_resource_relation` VALUES (212, 5, 20);\nINSERT INTO `ums_role_resource_relation` VALUES (213, 5, 21);\nINSERT INTO `ums_role_resource_relation` VALUES (214, 5, 22);\nINSERT INTO `ums_role_resource_relation` VALUES (215, 5, 23);\nINSERT INTO `ums_role_resource_relation` VALUES (216, 5, 24);\nINSERT INTO `ums_role_resource_relation` VALUES (217, 5, 25);\nINSERT INTO `ums_role_resource_relation` VALUES (218, 5, 26);\nINSERT INTO `ums_role_resource_relation` VALUES (219, 5, 27);\nINSERT INTO `ums_role_resource_relation` VALUES (220, 5, 28);\nINSERT INTO `ums_role_resource_relation` VALUES (221, 5, 29);\nINSERT INTO `ums_role_resource_relation` VALUES (222, 5, 30);\nINSERT INTO `ums_role_resource_relation` VALUES (232, 2, 8);\nINSERT INTO `ums_role_resource_relation` VALUES (233, 2, 9);\nINSERT INTO `ums_role_resource_relation` VALUES (234, 2, 10);\nINSERT INTO `ums_role_resource_relation` VALUES (235, 2, 11);\nINSERT INTO `ums_role_resource_relation` VALUES (236, 2, 12);\nINSERT INTO `ums_role_resource_relation` VALUES (237, 2, 31);\nINSERT INTO `ums_role_resource_relation` VALUES (238, 2, 32);\nINSERT INTO `ums_role_resource_relation` VALUES (239, 1, 1);\nINSERT INTO `ums_role_resource_relation` VALUES (240, 1, 2);\nINSERT INTO `ums_role_resource_relation` VALUES (241, 1, 3);\nINSERT INTO `ums_role_resource_relation` VALUES (242, 1, 4);\nINSERT INTO `ums_role_resource_relation` VALUES (243, 1, 5);\nINSERT INTO `ums_role_resource_relation` VALUES (244, 1, 6);\nINSERT INTO `ums_role_resource_relation` VALUES (245, 1, 23);\nINSERT INTO `ums_role_resource_relation` VALUES (246, 1, 24);\nINSERT INTO `ums_role_resource_relation` VALUES (247, 1, 31);\nINSERT INTO `ums_role_resource_relation` VALUES (248, 1, 32);\n\nSET FOREIGN_KEY_CHECKS = 1;\n"
  },
  {
    "path": "mall-admin/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <groupId>com.macro.mall</groupId>\n    <artifactId>mall-admin</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <packaging>jar</packaging>\n\n    <name>mall-admin</name>\n    <description>mall-admin project for mall</description>\n\n    <parent>\n        <groupId>com.macro.mall</groupId>\n        <artifactId>mall-swarm</artifactId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.macro.mall</groupId>\n            <artifactId>mall-mbg</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-data-redis</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.aliyun.oss</groupId>\n            <artifactId>aliyun-sdk-oss</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>io.minio</groupId>\n            <artifactId>minio</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.cloud</groupId>\n            <artifactId>spring-cloud-starter-openfeign</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>cn.dev33</groupId>\n            <artifactId>sa-token-spring-boot3-starter</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>cn.dev33</groupId>\n            <artifactId>sa-token-redis-jackson</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.apache.commons</groupId>\n            <artifactId>commons-pool2</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>cn.dev33</groupId>\n            <artifactId>sa-token-jwt</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>de.codecentric</groupId>\n            <artifactId>spring-boot-admin-starter-client</artifactId>\n        </dependency>\n    </dependencies>\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.springframework.boot</groupId>\n                <artifactId>spring-boot-maven-plugin</artifactId>\n            </plugin>\n            <plugin>\n                <groupId>io.fabric8</groupId>\n                <artifactId>docker-maven-plugin</artifactId>\n            </plugin>\n        </plugins>\n    </build>\n</project>\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/MallAdminApplication.java",
    "content": "package com.macro.mall;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.cloud.client.discovery.EnableDiscoveryClient;\nimport org.springframework.cloud.openfeign.EnableFeignClients;\n\n/**\n * 应用启动入口\n * Created by macro on 2018/4/26.\n */\n@EnableFeignClients\n@EnableDiscoveryClient\n@SpringBootApplication\npublic class MallAdminApplication {\n    public static void main(String[] args) {\n        SpringApplication.run(MallAdminApplication.class, args);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/component/PathResourceRulesHolder.java",
    "content": "package com.macro.mall.component;\n\nimport com.macro.mall.service.UmsResourceService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Component;\n\nimport jakarta.annotation.PostConstruct;\n\n/**\n * 路径与资源访问对应关系操作组件\n * Created by macro on 2020/7/17.\n */\n@Component\npublic class PathResourceRulesHolder {\n\n    @Autowired\n    private UmsResourceService resourceService;\n\n    @PostConstruct\n    public void initPathResourceMap(){\n        resourceService.initPathResourceMap();\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/config/MyBatisConfig.java",
    "content": "package com.macro.mall.config;\n\nimport org.mybatis.spring.annotation.MapperScan;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.transaction.annotation.EnableTransactionManagement;\n\n/**\n * MyBatis相关配置\n * Created by macro on 2019/4/8.\n */\n@Configuration\n@EnableTransactionManagement\n@MapperScan({\"com.macro.mall.mapper\",\"com.macro.mall.dao\"})\npublic class MyBatisConfig {\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/config/OssConfig.java",
    "content": "package com.macro.mall.config;\n\nimport com.aliyun.oss.OSSClient;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\n\n/**\n * OSS对象存储相关配置\n * Created by macro on 2018/5/17.\n */\n@Configuration\npublic class OssConfig {\n    @Value(\"${aliyun.oss.endpoint}\")\n    private String ALIYUN_OSS_ENDPOINT;\n    @Value(\"${aliyun.oss.accessKeyId}\")\n    private String ALIYUN_OSS_ACCESSKEYID;\n    @Value(\"${aliyun.oss.accessKeySecret}\")\n    private String ALIYUN_OSS_ACCESSKEYSECRET;\n    @Bean\n    public OSSClient ossClient(){\n        return new OSSClient(ALIYUN_OSS_ENDPOINT,ALIYUN_OSS_ACCESSKEYID,ALIYUN_OSS_ACCESSKEYSECRET);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/config/RedisConfig.java",
    "content": "package com.macro.mall.config;\n\nimport com.macro.mall.common.config.BaseRedisConfig;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.data.redis.connection.RedisConnectionFactory;\nimport org.springframework.data.redis.core.RedisTemplate;\nimport org.springframework.data.redis.repository.configuration.EnableRedisRepositories;\nimport org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;\nimport org.springframework.data.redis.serializer.StringRedisSerializer;\n\n/**\n * Redis相关配置\n * Created by macro on 2020/6/19.\n */\n@Configuration\npublic class RedisConfig extends BaseRedisConfig {\n\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/config/SaTokenConfigure.java",
    "content": "package com.macro.mall.config;\n\nimport cn.dev33.satoken.jwt.StpLogicJwtForSimple;\nimport cn.dev33.satoken.stp.StpLogic;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\n\n/**\n * @auther macrozheng\n * @description Sa-Token相关配置\n * @date 2023/11/28\n * @github https://github.com/macrozheng\n */\n@Configuration\npublic class SaTokenConfigure {\n    // Sa-Token 整合 jwt (Simple 简单模式)\n    @Bean\n    public StpLogic getStpLogicJwt() {\n        return new StpLogicJwtForSimple();\n    }\n}\n\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/config/SpringDocConfig.java",
    "content": "package com.macro.mall.config;\n\nimport io.swagger.v3.oas.models.Components;\nimport io.swagger.v3.oas.models.ExternalDocumentation;\nimport io.swagger.v3.oas.models.OpenAPI;\nimport io.swagger.v3.oas.models.info.Info;\nimport io.swagger.v3.oas.models.info.License;\nimport io.swagger.v3.oas.models.security.SecurityRequirement;\nimport io.swagger.v3.oas.models.security.SecurityScheme;\nimport org.springdoc.core.customizers.GlobalOpenApiCustomizer;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.web.servlet.config.annotation.ViewControllerRegistry;\nimport org.springframework.web.servlet.config.annotation.WebMvcConfigurer;\n\n/**\n * SpringDoc相关配置\n * Created by macro on 2024/3/5.\n */\n@Configuration\npublic class SpringDocConfig implements WebMvcConfigurer {\n\n    private static final String SECURITY_SCHEME_NAME = \"Authorization\";\n\n    @Bean\n    public OpenAPI mallAdminOpenAPI() {\n        return new OpenAPI()\n                .info(new Info().title(\"mall后台系统\")\n                        .description(\"mall后台相关接口文档\")\n                        .version(\"v1.0.0\")\n                        .license(new License().name(\"Apache 2.0\")\n                                .url(\"https://github.com/macrozheng/mall-learning\")))\n                .externalDocs(new ExternalDocumentation()\n                        .description(\"SpringBoot实战电商项目mall（60K+Star）全套文档\")\n                        .url(\"http://www.macrozheng.com\"))\n                .addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME))\n                .components(new Components()\n                        .addSecuritySchemes(SECURITY_SCHEME_NAME,\n                                new SecurityScheme()\n                                        .name(SECURITY_SCHEME_NAME)\n                                        .type(SecurityScheme.Type.HTTP)\n                                        .scheme(\"bearer\")\n                                        .bearerFormat(\"JWT\")));\n    }\n\n    @Override\n    public void addViewControllers(ViewControllerRegistry registry) {\n        //配置访问`/swagger-ui/`路径时可以直接跳转到`/swagger-ui/index.html`\n        registry.addViewController(\"/swagger-ui/\").setViewName(\"redirect:/swagger-ui/index.html\");\n    }\n\n    @Bean\n    public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {\n        //解决Knife4j配置认证后无法自动添加认证头的问题\n        return openApi -> {\n            //全局添加鉴权参数\n            if (openApi.getPaths() != null) {\n                openApi.getPaths().forEach((s, pathItem) -> {\n                    pathItem.readOperations().forEach(operation -> {\n                        operation.addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME));\n                    });\n                });\n            }\n        };\n    }\n\n}\n\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/CmsPrefrenceAreaController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.CmsPrefrenceArea;\nimport com.macro.mall.service.CmsPrefrenceAreaService;\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\nimport java.util.List;\n\n/**\n * 商品优选管理Controller\n * Created by macro on 2018/6/1.\n */\n@Controller\n@Tag(name = \"CmsPrefrenceAreaController\", description = \"商品优选管理\")\n@RequestMapping(\"/prefrenceArea\")\npublic class CmsPrefrenceAreaController {\n    @Autowired\n    private CmsPrefrenceAreaService prefrenceAreaService;\n\n    @Operation(summary = \"获取所有商品优选\")\n    @RequestMapping(value = \"/listAll\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<CmsPrefrenceArea>> listAll() {\n        List<CmsPrefrenceArea> prefrenceAreaList = prefrenceAreaService.listAll();\n        return CommonResult.success(prefrenceAreaList);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/CmsSubjectController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.CmsSubject;\nimport com.macro.mall.service.CmsSubjectService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\nimport java.util.List;\n\n/**\n * 商品专题管理Controller\n * Created by macro on 2018/6/1.\n */\n@Controller\n@Tag(name = \"CmsSubjectController\", description = \"商品专题管理\")\n@RequestMapping(\"/subject\")\npublic class CmsSubjectController {\n    @Autowired\n    private CmsSubjectService subjectService;\n\n    @Operation(summary = \"获取全部商品专题\")\n    @RequestMapping(value = \"/listAll\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<CmsSubject>> listAll() {\n        List<CmsSubject> subjectList = subjectService.listAll();\n        return CommonResult.success(subjectList);\n    }\n\n    @Operation(summary = \"根据专题名称分页获取专题\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<CmsSubject>> getList(@RequestParam(value = \"keyword\", required = false) String keyword,\n                                                        @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum,\n                                                        @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize) {\n        List<CmsSubject> subjectList = subjectService.list(keyword, pageNum, pageSize);\n        return CommonResult.success(CommonPage.restPage(subjectList));\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/MinioController.java",
    "content": "package com.macro.mall.controller;\n\nimport cn.hutool.core.collection.CollUtil;\nimport cn.hutool.json.JSONUtil;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.BucketPolicyConfigDto;\nimport com.macro.mall.dto.MinioUploadDto;\nimport io.minio.*;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\nimport org.springframework.web.multipart.MultipartFile;\n\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\n/**\n * MinIO对象存储管理\n * Created by macro on 2019/12/25.\n */\n@Tag(name = \"MinioController\", description = \"MinIO对象存储管理\")\n@Controller\n@RequestMapping(\"/minio\")\npublic class MinioController {\n\n    private static final Logger LOGGER = LoggerFactory.getLogger(MinioController.class);\n    @Value(\"${minio.endpoint}\")\n    private String ENDPOINT;\n    @Value(\"${minio.bucketName}\")\n    private String BUCKET_NAME;\n    @Value(\"${minio.accessKey}\")\n    private String ACCESS_KEY;\n    @Value(\"${minio.secretKey}\")\n    private String SECRET_KEY;\n\n    @Operation(summary = \"文件上传\")\n    @RequestMapping(value = \"/upload\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult upload(@RequestPart(\"file\") MultipartFile file) {\n        try {\n            //创建一个MinIO的Java客户端\n            MinioClient minioClient =MinioClient.builder()\n                    .endpoint(ENDPOINT)\n                    .credentials(ACCESS_KEY,SECRET_KEY)\n                    .build();\n            boolean isExist = minioClient.bucketExists(BucketExistsArgs.builder().bucket(BUCKET_NAME).build());\n            if (isExist) {\n                LOGGER.info(\"存储桶已经存在！\");\n            } else {\n                //创建存储桶并设置只读权限\n                minioClient.makeBucket(MakeBucketArgs.builder().bucket(BUCKET_NAME).build());\n                BucketPolicyConfigDto bucketPolicyConfigDto = createBucketPolicyConfigDto(BUCKET_NAME);\n                SetBucketPolicyArgs setBucketPolicyArgs = SetBucketPolicyArgs.builder()\n                        .bucket(BUCKET_NAME)\n                        .config(JSONUtil.toJsonStr(bucketPolicyConfigDto))\n                        .build();\n                minioClient.setBucketPolicy(setBucketPolicyArgs);\n            }\n            String filename = file.getOriginalFilename();\n            SimpleDateFormat sdf = new SimpleDateFormat(\"yyyyMMdd\");\n            // 设置存储对象名称\n            String objectName = sdf.format(new Date()) + \"/\" + filename;\n            // 使用putObject上传一个文件到存储桶中\n            PutObjectArgs putObjectArgs = PutObjectArgs.builder()\n                    .bucket(BUCKET_NAME)\n                    .object(objectName)\n                    .contentType(file.getContentType())\n                    .stream(file.getInputStream(), file.getSize(), ObjectWriteArgs.MIN_MULTIPART_SIZE).build();\n            minioClient.putObject(putObjectArgs);\n            LOGGER.info(\"文件上传成功!\");\n            MinioUploadDto minioUploadDto = new MinioUploadDto();\n            minioUploadDto.setName(filename);\n            minioUploadDto.setUrl(ENDPOINT + \"/\" + BUCKET_NAME + \"/\" + objectName);\n            return CommonResult.success(minioUploadDto);\n        } catch (Exception e) {\n            e.printStackTrace();\n            LOGGER.info(\"上传发生错误: {}！\", e.getMessage());\n        }\n        return CommonResult.failed();\n    }\n\n    private BucketPolicyConfigDto createBucketPolicyConfigDto(String bucketName) {\n        BucketPolicyConfigDto.Statement statement = BucketPolicyConfigDto.Statement.builder()\n                .Effect(\"Allow\")\n                .Principal(\"*\")\n                .Action(\"s3:GetObject\")\n                .Resource(\"arn:aws:s3:::\"+bucketName+\"/*.**\").build();\n        return BucketPolicyConfigDto.builder()\n                .Version(\"2012-10-17\")\n                .Statement(CollUtil.toList(statement))\n                .build();\n    }\n\n    @Operation(summary = \"文件删除\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"objectName\") String objectName) {\n        try {\n            MinioClient minioClient = MinioClient.builder()\n                    .endpoint(ENDPOINT)\n                    .credentials(ACCESS_KEY,SECRET_KEY)\n                    .build();\n            minioClient.removeObject(RemoveObjectArgs.builder().bucket(BUCKET_NAME).object(objectName).build());\n            return CommonResult.success(null);\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n        return CommonResult.failed();\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/OmsCompanyAddressController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.OmsCompanyAddress;\nimport com.macro.mall.service.OmsCompanyAddressService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\nimport java.util.List;\n\n/**\n * 收货地址管理Controller\n * Created by macro on 2018/10/18.\n */\n@Controller\n@Tag(name = \"OmsCompanyAddressController\", description = \"收货地址管理\")\n@RequestMapping(\"/companyAddress\")\npublic class OmsCompanyAddressController {\n    @Autowired\n    private OmsCompanyAddressService companyAddressService;\n\n    @Operation(summary = \"获取所有收货地址\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<OmsCompanyAddress>> list() {\n        List<OmsCompanyAddress> companyAddressList = companyAddressService.list();\n        return CommonResult.success(companyAddressList);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/OmsOrderController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.*;\nimport com.macro.mall.model.OmsOrder;\nimport com.macro.mall.service.OmsOrderService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 订单管理Controller\n * Created by macro on 2018/10/11.\n */\n@Controller\n@Tag(name = \"OmsOrderController\", description = \"订单管理\")\n@RequestMapping(\"/order\")\npublic class OmsOrderController {\n    @Autowired\n    private OmsOrderService orderService;\n\n    @Operation(summary = \"查询订单\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<OmsOrder>> list(OmsOrderQueryParam queryParam,\n                                                   @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                   @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<OmsOrder> orderList = orderService.list(queryParam, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(orderList));\n    }\n\n    @Operation(summary = \"批量发货\")\n    @RequestMapping(value = \"/update/delivery\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delivery(@RequestBody List<OmsOrderDeliveryParam> deliveryParamList) {\n        int count = orderService.delivery(deliveryParamList);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量关闭订单\")\n    @RequestMapping(value = \"/update/close\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult close(@RequestParam(\"ids\") List<Long> ids, @RequestParam String note) {\n        int count = orderService.close(ids, note);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量删除订单\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<Long> ids) {\n        int count = orderService.delete(ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"获取订单详情:订单信息、商品信息、操作记录\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<OmsOrderDetail> detail(@PathVariable Long id) {\n        OmsOrderDetail orderDetailResult = orderService.detail(id);\n        return CommonResult.success(orderDetailResult);\n    }\n\n    @Operation(summary = \"修改收货人信息\")\n    @RequestMapping(value = \"/update/receiverInfo\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateReceiverInfo(@RequestBody OmsReceiverInfoParam receiverInfoParam) {\n        int count = orderService.updateReceiverInfo(receiverInfoParam);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改订单费用信息\")\n    @RequestMapping(value = \"/update/moneyInfo\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateReceiverInfo(@RequestBody OmsMoneyInfoParam moneyInfoParam) {\n        int count = orderService.updateMoneyInfo(moneyInfoParam);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"备注订单\")\n    @RequestMapping(value = \"/update/note\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateNote(@RequestParam(\"id\") Long id,\n                                   @RequestParam(\"note\") String note,\n                                   @RequestParam(\"status\") Integer status) {\n        int count = orderService.updateNote(id, note, status);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/OmsOrderReturnApplyController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.OmsOrderReturnApplyResult;\nimport com.macro.mall.dto.OmsReturnApplyQueryParam;\nimport com.macro.mall.dto.OmsUpdateStatusParam;\nimport com.macro.mall.model.OmsOrderReturnApply;\nimport com.macro.mall.service.OmsOrderReturnApplyService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 订单退货申请管理\n * Created by macro on 2018/10/18.\n */\n@Controller\n@Tag(name = \"OmsOrderReturnApplyController\", description = \"订单退货申请管理\")\n@RequestMapping(\"/returnApply\")\npublic class OmsOrderReturnApplyController {\n    @Autowired\n    private OmsOrderReturnApplyService returnApplyService;\n\n    @Operation(summary = \"分页查询退货申请\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<OmsOrderReturnApply>> list(OmsReturnApplyQueryParam queryParam,\n                                                              @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                              @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<OmsOrderReturnApply> returnApplyList = returnApplyService.list(queryParam, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(returnApplyList));\n    }\n\n    @Operation(summary = \"批量删除申请\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<Long> ids) {\n        int count = returnApplyService.delete(ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"获取退货申请详情\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult getItem(@PathVariable Long id) {\n        OmsOrderReturnApplyResult result = returnApplyService.getItem(id);\n        return CommonResult.success(result);\n    }\n\n    @Operation(summary = \"修改申请状态\")\n    @RequestMapping(value = \"/update/status/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateStatus(@PathVariable Long id, @RequestBody OmsUpdateStatusParam statusParam) {\n        int count = returnApplyService.updateStatus(id, statusParam);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/OmsOrderReturnReasonController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.OmsOrderReturnReason;\nimport com.macro.mall.service.OmsOrderReturnReasonService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 退货原因管理Controller\n * Created by macro on 2018/10/17.\n */\n@Controller\n@Tag(name = \"OmsOrderReturnReasonController\", description = \"退货原因管理\")\n@RequestMapping(\"/returnReason\")\npublic class OmsOrderReturnReasonController {\n    @Autowired\n    private OmsOrderReturnReasonService orderReturnReasonService;\n\n    @Operation(summary = \"添加退货原因\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody OmsOrderReturnReason returnReason) {\n        int count = orderReturnReasonService.create(returnReason);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改退货原因\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id, @RequestBody OmsOrderReturnReason returnReason) {\n        int count = orderReturnReasonService.update(id, returnReason);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量删除退货原因\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<Long> ids) {\n        int count = orderReturnReasonService.delete(ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"分页查询全部退货原因\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<OmsOrderReturnReason>> list(@RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                               @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<OmsOrderReturnReason> reasonList = orderReturnReasonService.list(pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(reasonList));\n    }\n\n    @Operation(summary = \"获取单个退货原因详情信息\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<OmsOrderReturnReason> getItem(@PathVariable Long id) {\n        OmsOrderReturnReason reason = orderReturnReasonService.getItem(id);\n        return CommonResult.success(reason);\n    }\n\n    @Operation(summary = \"修改退货原因启用状态\")\n    @RequestMapping(value = \"/update/status\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateStatus(@RequestParam(value = \"status\") Integer status,\n                                     @RequestParam(\"ids\") List<Long> ids) {\n        int count = orderReturnReasonService.updateStatus(ids, status);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/OmsOrderSettingController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.OmsOrderSetting;\nimport com.macro.mall.service.OmsOrderSettingService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\n/**\n * 订单设置Controller\n * Created by macro on 2018/10/16.\n */\n@Controller\n@Tag(name = \"OmsOrderSettingController\", description = \"订单设置管理\")\n@RequestMapping(\"/orderSetting\")\npublic class OmsOrderSettingController {\n    @Autowired\n    private OmsOrderSettingService orderSettingService;\n\n    @Operation(summary = \"获取指定订单设置\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<OmsOrderSetting> getItem(@PathVariable Long id) {\n        OmsOrderSetting orderSetting = orderSettingService.getItem(id);\n        return CommonResult.success(orderSetting);\n    }\n\n    @Operation(summary = \"修改指定订单设置\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id, @RequestBody OmsOrderSetting orderSetting) {\n        int count = orderSettingService.update(id,orderSetting);\n        if(count>0){\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/OssController.java",
    "content": "package com.macro.mall.controller;\n\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.OssCallbackResult;\nimport com.macro.mall.dto.OssPolicyResult;\nimport com.macro.mall.service.impl.OssServiceImpl;\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport jakarta.servlet.http.HttpServletRequest;\n\n/**\n * Oss相关操作接口\n * Created by macro on 2018/4/26.\n */\n@Controller\n@Tag(name = \"OssController\", description = \"Oss管理\")\n@RequestMapping(\"/aliyun/oss\")\npublic class OssController {\n    @Autowired\n    private OssServiceImpl ossService;\n\n    @Operation(summary = \"oss上传签名生成\")\n    @RequestMapping(value = \"/policy\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<OssPolicyResult> policy() {\n        OssPolicyResult result = ossService.policy();\n        return CommonResult.success(result);\n    }\n\n    @Operation(summary = \"oss上传成功回调\")\n    @RequestMapping(value = \"callback\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult<OssCallbackResult> callback(HttpServletRequest request) {\n        OssCallbackResult ossCallbackResult = ossService.callback(request);\n        return CommonResult.success(ossCallbackResult);\n    }\n\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/PmsBrandController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.PmsBrandParam;\nimport com.macro.mall.model.PmsBrand;\nimport com.macro.mall.service.PmsBrandService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.validation.annotation.Validated;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 品牌功能Controller\n * Created by macro on 2018/4/26.\n */\n@Controller\n@Tag(name = \"PmsBrandController\", description = \"商品品牌管理\")\n@RequestMapping(\"/brand\")\npublic class PmsBrandController {\n    @Autowired\n    private PmsBrandService brandService;\n\n    @Operation(summary = \"获取全部品牌列表\")\n    @RequestMapping(value = \"/listAll\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsBrand>> getList() {\n        return CommonResult.success(brandService.listAllBrand());\n    }\n\n    @Operation(summary = \"添加品牌\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@Validated @RequestBody PmsBrandParam pmsBrand) {\n        CommonResult commonResult;\n        int count = brandService.createBrand(pmsBrand);\n        if (count == 1) {\n            commonResult = CommonResult.success(count);\n        } else {\n            commonResult = CommonResult.failed();\n        }\n        return commonResult;\n    }\n\n    @Operation(summary = \"更新品牌\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable(\"id\") Long id,\n                               @Validated @RequestBody PmsBrandParam pmsBrandParam) {\n        CommonResult commonResult;\n        int count = brandService.updateBrand(id, pmsBrandParam);\n        if (count == 1) {\n            commonResult = CommonResult.success(count);\n        } else {\n            commonResult = CommonResult.failed();\n        }\n        return commonResult;\n    }\n\n    @Operation(summary = \"删除品牌\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult delete(@PathVariable(\"id\") Long id) {\n        int count = brandService.deleteBrand(id);\n        if (count == 1) {\n            return CommonResult.success(null);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"根据品牌名称分页获取品牌列表\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<PmsBrand>> getList(@RequestParam(value = \"keyword\", required = false) String keyword,\n                                                      @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum,\n                                                      @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize) {\n        List<PmsBrand> brandList = brandService.listBrand(keyword, pageNum, pageSize);\n        return CommonResult.success(CommonPage.restPage(brandList));\n    }\n\n    @Operation(summary = \"根据编号查询品牌信息\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<PmsBrand> getItem(@PathVariable(\"id\") Long id) {\n        return CommonResult.success(brandService.getBrand(id));\n    }\n\n    @Operation(summary = \"批量删除品牌\")\n    @RequestMapping(value = \"/delete/batch\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult deleteBatch(@RequestParam(\"ids\") List<Long> ids) {\n        int count = brandService.deleteBrand(ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"批量更新显示状态\")\n    @RequestMapping(value = \"/update/showStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateShowStatus(@RequestParam(\"ids\") List<Long> ids,\n                                   @RequestParam(\"showStatus\") Integer showStatus) {\n        int count = brandService.updateShowStatus(ids, showStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"批量更新厂家制造商状态\")\n    @RequestMapping(value = \"/update/factoryStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateFactoryStatus(@RequestParam(\"ids\") List<Long> ids,\n                                      @RequestParam(\"factoryStatus\") Integer factoryStatus) {\n        int count = brandService.updateFactoryStatus(ids, factoryStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/PmsProductAttributeCategoryController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.PmsProductAttributeCategoryItem;\nimport com.macro.mall.model.PmsProductAttributeCategory;\nimport com.macro.mall.service.PmsProductAttributeCategoryService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 商品属性分类Controller\n * Created by macro on 2018/4/26.\n */\n@Controller\n@Tag(name = \"PmsProductAttributeCategoryController\", description = \"商品属性分类管理\")\n@RequestMapping(\"/productAttribute/category\")\npublic class PmsProductAttributeCategoryController {\n    @Autowired\n    private PmsProductAttributeCategoryService productAttributeCategoryService;\n\n    @Operation(summary = \"添加商品属性分类\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestParam String name) {\n        int count = productAttributeCategoryService.create(name);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"修改商品属性分类\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id, @RequestParam String name) {\n        int count = productAttributeCategoryService.update(id, name);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"删除单个商品属性分类\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult delete(@PathVariable Long id) {\n        int count = productAttributeCategoryService.delete(id);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"获取单个商品属性分类信息\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<PmsProductAttributeCategory> getItem(@PathVariable Long id) {\n        PmsProductAttributeCategory productAttributeCategory = productAttributeCategoryService.getItem(id);\n        return CommonResult.success(productAttributeCategory);\n    }\n\n    @Operation(summary = \"分页获取所有商品属性分类\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<PmsProductAttributeCategory>> getList(@RequestParam(defaultValue = \"5\") Integer pageSize, @RequestParam(defaultValue = \"1\") Integer pageNum) {\n        List<PmsProductAttributeCategory> productAttributeCategoryList = productAttributeCategoryService.getList(pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(productAttributeCategoryList));\n    }\n\n    @Operation(summary = \"获取所有商品属性分类及其下属性\")\n    @RequestMapping(value = \"/list/withAttr\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsProductAttributeCategoryItem>> getListWithAttr() {\n        List<PmsProductAttributeCategoryItem> productAttributeCategoryResultList = productAttributeCategoryService.getListWithAttr();\n        return CommonResult.success(productAttributeCategoryResultList);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/PmsProductAttributeController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.PmsProductAttributeParam;\nimport com.macro.mall.dto.ProductAttrInfo;\nimport com.macro.mall.model.PmsProductAttribute;\nimport com.macro.mall.service.PmsProductAttributeService;\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.Parameter;\nimport io.swagger.v3.oas.annotations.Parameters;\nimport io.swagger.v3.oas.annotations.enums.ParameterIn;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 商品属性管理Controller\n * Created by macro on 2018/4/26.\n */\n@Controller\n@Tag(name = \"PmsProductAttributeController\", description = \"商品属性管理\")\n@RequestMapping(\"/productAttribute\")\npublic class PmsProductAttributeController {\n    @Autowired\n    private PmsProductAttributeService productAttributeService;\n\n    @Operation(summary = \"根据分类查询属性列表或参数列表\")\n    @Parameters({@Parameter(name = \"type\", description = \"0表示属性，1表示参数\", required = true,in = ParameterIn.QUERY, schema = @Schema(type = \"integer\"))})\n    @RequestMapping(value = \"/list/{cid}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<PmsProductAttribute>> getList(@PathVariable Long cid,\n                                                                 @RequestParam(value = \"type\") Integer type,\n                                                                 @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                                 @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<PmsProductAttribute> productAttributeList = productAttributeService.getList(cid, type, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(productAttributeList));\n    }\n\n    @Operation(summary = \"添加商品属性信息\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody PmsProductAttributeParam productAttributeParam) {\n        int count = productAttributeService.create(productAttributeParam);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"修改商品属性信息\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id, @RequestBody PmsProductAttributeParam productAttributeParam) {\n        int count = productAttributeService.update(id, productAttributeParam);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"查询单个商品属性\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<PmsProductAttribute> getItem(@PathVariable Long id) {\n        PmsProductAttribute productAttribute = productAttributeService.getItem(id);\n        return CommonResult.success(productAttribute);\n    }\n\n    @Operation(summary = \"批量删除商品属性\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<Long> ids) {\n        int count = productAttributeService.delete(ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"根据商品分类的id获取商品属性及属性分类\")\n    @RequestMapping(value = \"/attrInfo/{productCategoryId}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<ProductAttrInfo>> getAttrInfo(@PathVariable Long productCategoryId) {\n        List<ProductAttrInfo> productAttrInfoList = productAttributeService.getProductAttrInfo(productCategoryId);\n        return CommonResult.success(productAttrInfoList);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/PmsProductCategoryController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.PmsProductCategoryParam;\nimport com.macro.mall.dto.PmsProductCategoryWithChildrenItem;\nimport com.macro.mall.model.PmsProductCategory;\nimport com.macro.mall.service.PmsProductCategoryService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.validation.annotation.Validated;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 商品分类模块Controller\n * Created by macro on 2018/4/26.\n */\n@Controller\n@Tag(name = \"PmsProductCategoryController\", description = \"商品分类管理\")\n@RequestMapping(\"/productCategory\")\npublic class PmsProductCategoryController {\n    @Autowired\n    private PmsProductCategoryService productCategoryService;\n\n    @Operation(summary = \"添加产品分类\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@Validated @RequestBody PmsProductCategoryParam productCategoryParam) {\n        int count = productCategoryService.create(productCategoryParam);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"修改商品分类\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id,\n                         @Validated\n                         @RequestBody PmsProductCategoryParam productCategoryParam) {\n        int count = productCategoryService.update(id, productCategoryParam);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"分页查询商品分类\")\n    @RequestMapping(value = \"/list/{parentId}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<PmsProductCategory>> getList(@PathVariable Long parentId,\n                                                                @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                                @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<PmsProductCategory> productCategoryList = productCategoryService.getList(parentId, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(productCategoryList));\n    }\n\n    @Operation(summary = \"根据id获取商品分类\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<PmsProductCategory> getItem(@PathVariable Long id) {\n        PmsProductCategory productCategory = productCategoryService.getItem(id);\n        return CommonResult.success(productCategory);\n    }\n\n    @Operation(summary = \"删除商品分类\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@PathVariable Long id) {\n        int count = productCategoryService.delete(id);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"修改导航栏显示状态\")\n    @RequestMapping(value = \"/update/navStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateNavStatus(@RequestParam(\"ids\") List<Long> ids, @RequestParam(\"navStatus\") Integer navStatus) {\n        int count = productCategoryService.updateNavStatus(ids, navStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"修改显示状态\")\n    @RequestMapping(value = \"/update/showStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateShowStatus(@RequestParam(\"ids\") List<Long> ids, @RequestParam(\"showStatus\") Integer showStatus) {\n        int count = productCategoryService.updateShowStatus(ids, showStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"查询所有一级分类及子分类\")\n    @RequestMapping(value = \"/list/withChildren\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsProductCategoryWithChildrenItem>> listWithChildren() {\n        List<PmsProductCategoryWithChildrenItem> list = productCategoryService.listWithChildren();\n        return CommonResult.success(list);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/PmsProductController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.PmsProductParam;\nimport com.macro.mall.dto.PmsProductQueryParam;\nimport com.macro.mall.dto.PmsProductResult;\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.service.PmsProductService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 商品管理Controller\n * Created by macro on 2018/4/26.\n */\n@Controller\n@Tag(name = \"PmsProductController\", description = \"商品管理\")\n@RequestMapping(\"/product\")\npublic class PmsProductController {\n    @Autowired\n    private PmsProductService productService;\n\n    @Operation(summary = \"创建商品\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody PmsProductParam productParam) {\n        int count = productService.create(productParam);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"根据商品id获取商品编辑信息\")\n    @RequestMapping(value = \"/updateInfo/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<PmsProductResult> getUpdateInfo(@PathVariable Long id) {\n        PmsProductResult productResult = productService.getUpdateInfo(id);\n        return CommonResult.success(productResult);\n    }\n\n    @Operation(summary = \"更新商品\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id, @RequestBody PmsProductParam productParam) {\n        int count = productService.update(id, productParam);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"查询商品\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<PmsProduct>> getList(PmsProductQueryParam productQueryParam,\n                                                        @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                        @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<PmsProduct> productList = productService.list(productQueryParam, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(productList));\n    }\n\n    @Operation(summary = \"根据商品名称或货号模糊查询\")\n    @RequestMapping(value = \"/simpleList\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsProduct>> getList(String keyword) {\n        List<PmsProduct> productList = productService.list(keyword);\n        return CommonResult.success(productList);\n    }\n\n    @Operation(summary = \"批量修改审核状态\")\n    @RequestMapping(value = \"/update/verifyStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateVerifyStatus(@RequestParam(\"ids\") List<Long> ids,\n                                           @RequestParam(\"verifyStatus\") Integer verifyStatus,\n                                           @RequestParam(\"detail\") String detail) {\n        int count = productService.updateVerifyStatus(ids, verifyStatus, detail);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"批量上下架\")\n    @RequestMapping(value = \"/update/publishStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updatePublishStatus(@RequestParam(\"ids\") List<Long> ids,\n                                            @RequestParam(\"publishStatus\") Integer publishStatus) {\n        int count = productService.updatePublishStatus(ids, publishStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"批量推荐商品\")\n    @RequestMapping(value = \"/update/recommendStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateRecommendStatus(@RequestParam(\"ids\") List<Long> ids,\n                                              @RequestParam(\"recommendStatus\") Integer recommendStatus) {\n        int count = productService.updateRecommendStatus(ids, recommendStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"批量设为新品\")\n    @RequestMapping(value = \"/update/newStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateNewStatus(@RequestParam(\"ids\") List<Long> ids,\n                                        @RequestParam(\"newStatus\") Integer newStatus) {\n        int count = productService.updateNewStatus(ids, newStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"批量修改删除状态\")\n    @RequestMapping(value = \"/update/deleteStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateDeleteStatus(@RequestParam(\"ids\") List<Long> ids,\n                                           @RequestParam(\"deleteStatus\") Integer deleteStatus) {\n        int count = productService.updateDeleteStatus(ids, deleteStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/PmsSkuStockController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.PmsSkuStock;\nimport com.macro.mall.service.PmsSkuStockService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * sku库存Controller\n * Created by macro on 2018/4/27.\n */\n@Controller\n@Tag(name = \"PmsSkuStockController\", description = \"sku商品库存管理\")\n@RequestMapping(\"/sku\")\npublic class PmsSkuStockController {\n    @Autowired\n    private PmsSkuStockService skuStockService;\n\n    @Operation(summary = \"根据商品编号及编号模糊搜索sku库存\")\n    @RequestMapping(value = \"/{pid}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsSkuStock>> getList(@PathVariable Long pid, @RequestParam(value = \"keyword\",required = false) String keyword) {\n        List<PmsSkuStock> skuStockList = skuStockService.getList(pid, keyword);\n        return CommonResult.success(skuStockList);\n    }\n    @Operation(summary = \"批量更新库存信息\")\n    @RequestMapping(value =\"/update/{pid}\",method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long pid,@RequestBody List<PmsSkuStock> skuStockList){\n        int count = skuStockService.update(pid,skuStockList);\n        if(count>0){\n            return CommonResult.success(count);\n        }else{\n            return CommonResult.failed();\n        }\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/SmsCouponController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.SmsCouponParam;\nimport com.macro.mall.model.SmsCoupon;\nimport com.macro.mall.service.SmsCouponService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 优惠券管理Controller\n * Created by macro on 2018/8/28.\n */\n@Controller\n@Tag(name = \"SmsCouponController\", description = \"优惠券管理\")\n@RequestMapping(\"/coupon\")\npublic class SmsCouponController {\n    @Autowired\n    private SmsCouponService couponService;\n    @Operation(summary = \"添加优惠券\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult add(@RequestBody SmsCouponParam couponParam) {\n        int count = couponService.create(couponParam);\n        if(count>0){\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"删除优惠券\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@PathVariable Long id) {\n        int count = couponService.delete(id);\n        if(count>0){\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改优惠券\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id,@RequestBody SmsCouponParam couponParam) {\n        int count = couponService.update(id,couponParam);\n        if(count>0){\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"根据优惠券名称和类型分页获取优惠券列表\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<SmsCoupon>> list(\n            @RequestParam(value = \"name\",required = false) String name,\n            @RequestParam(value = \"type\",required = false) Integer type,\n            @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n            @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<SmsCoupon> couponList = couponService.list(name,type,pageSize,pageNum);\n        return CommonResult.success(CommonPage.restPage(couponList));\n    }\n\n    @Operation(summary = \"获取单个优惠券的详细信息\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<SmsCouponParam> getItem(@PathVariable Long id) {\n        SmsCouponParam couponParam = couponService.getItem(id);\n        return CommonResult.success(couponParam);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/SmsCouponHistoryController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.SmsCouponHistory;\nimport com.macro.mall.service.SmsCouponHistoryService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\nimport java.util.List;\n\n/**\n * 优惠券领取记录管理Controller\n * Created by macro on 2018/11/6.\n */\n@Controller\n@Tag(name = \"SmsCouponHistoryController\", description = \"优惠券领取记录管理\")\n@RequestMapping(\"/couponHistory\")\npublic class SmsCouponHistoryController {\n    @Autowired\n    private SmsCouponHistoryService historyService;\n\n    @Operation(summary = \"根据优惠券id，使用状态，订单编号分页获取领取记录\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<SmsCouponHistory>> list(@RequestParam(value = \"couponId\", required = false) Long couponId,\n                                                           @RequestParam(value = \"useStatus\", required = false) Integer useStatus,\n                                                           @RequestParam(value = \"orderSn\", required = false) String orderSn,\n                                                           @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                           @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<SmsCouponHistory> historyList = historyService.list(couponId, useStatus, orderSn, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(historyList));\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/SmsFlashPromotionController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.SmsFlashPromotion;\nimport com.macro.mall.service.SmsFlashPromotionService;\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 限时购活动管理Controller\n * Created by macro on 2018/11/16.\n */\n@Controller\n@Tag(name = \"SmsFlashPromotionController\", description = \"限时购活动管理\")\n@RequestMapping(\"/flash\")\npublic class SmsFlashPromotionController {\n    @Autowired\n    private SmsFlashPromotionService flashPromotionService;\n\n    @Operation(summary = \"添加活动\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody SmsFlashPromotion flashPromotion) {\n        int count = flashPromotionService.create(flashPromotion);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"编辑活动信息\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public Object update(@PathVariable Long id, @RequestBody SmsFlashPromotion flashPromotion) {\n        int count = flashPromotionService.update(id, flashPromotion);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"删除活动信息\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public Object delete(@PathVariable Long id) {\n        int count = flashPromotionService.delete(id);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改上下线状态\")\n    @RequestMapping(value = \"/update/status/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public Object update(@PathVariable Long id, Integer status) {\n        int count = flashPromotionService.updateStatus(id, status);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"获取活动详情\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public Object getItem(@PathVariable Long id) {\n        SmsFlashPromotion flashPromotion = flashPromotionService.getItem(id);\n        return CommonResult.success(flashPromotion);\n    }\n\n    @Operation(summary = \"根据活动名称分页查询\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public Object getItem(@RequestParam(value = \"keyword\", required = false) String keyword,\n                          @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                          @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<SmsFlashPromotion> flashPromotionList = flashPromotionService.list(keyword, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(flashPromotionList));\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/SmsFlashPromotionProductRelationController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.SmsFlashPromotionProduct;\nimport com.macro.mall.model.SmsFlashPromotionProductRelation;\nimport com.macro.mall.service.SmsFlashPromotionProductRelationService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 限时购和商品关系管理Controller\n * Created by macro on 2018/11/16.\n */\n@Controller\n@Tag(name = \"SmsFlashPromotionProductRelationController\", description = \"限时购和商品关系管理\")\n@RequestMapping(\"/flashProductRelation\")\npublic class SmsFlashPromotionProductRelationController {\n    @Autowired\n    private SmsFlashPromotionProductRelationService relationService;\n\n    @Operation(summary = \"批量选择商品添加关联\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody List<SmsFlashPromotionProductRelation> relationList) {\n        int count = relationService.create(relationList);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改关联相关信息\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id, @RequestBody SmsFlashPromotionProductRelation relation) {\n        int count = relationService.update(id, relation);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"删除关联\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@PathVariable Long id) {\n        int count = relationService.delete(id);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"获取管理商品促销信息\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<SmsFlashPromotionProductRelation> getItem(@PathVariable Long id) {\n        SmsFlashPromotionProductRelation relation = relationService.getItem(id);\n        return CommonResult.success(relation);\n    }\n\n    @Operation(summary = \"分页查询不同场次关联及商品信息\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<SmsFlashPromotionProduct>> list(@RequestParam(value = \"flashPromotionId\") Long flashPromotionId,\n                                                                   @RequestParam(value = \"flashPromotionSessionId\") Long flashPromotionSessionId,\n                                                                   @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                                   @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<SmsFlashPromotionProduct> flashPromotionProductList = relationService.list(flashPromotionId, flashPromotionSessionId, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(flashPromotionProductList));\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/SmsFlashPromotionSessionController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.SmsFlashPromotionSessionDetail;\nimport com.macro.mall.model.SmsFlashPromotionSession;\nimport com.macro.mall.service.SmsFlashPromotionSessionService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 限时购场次管理Controller\n * Created by macro on 2018/11/16.\n */\n@Controller\n@Tag(name = \"SmsFlashPromotionSessionController\", description = \"限时购场次管理\")\n@RequestMapping(\"/flashSession\")\npublic class SmsFlashPromotionSessionController {\n    @Autowired\n    private SmsFlashPromotionSessionService flashPromotionSessionService;\n\n    @Operation(summary = \"添加场次\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody SmsFlashPromotionSession promotionSession) {\n        int count = flashPromotionSessionService.create(promotionSession);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改场次\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id, @RequestBody SmsFlashPromotionSession promotionSession) {\n        int count = flashPromotionSessionService.update(id, promotionSession);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改启用状态\")\n    @RequestMapping(value = \"/update/status/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateStatus(@PathVariable Long id, Integer status) {\n        int count = flashPromotionSessionService.updateStatus(id, status);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"删除场次\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@PathVariable Long id) {\n        int count = flashPromotionSessionService.delete(id);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"获取场次详情\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<SmsFlashPromotionSession> getItem(@PathVariable Long id) {\n        SmsFlashPromotionSession promotionSession = flashPromotionSessionService.getItem(id);\n        return CommonResult.success(promotionSession);\n    }\n\n    @Operation(summary = \"获取全部场次\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<SmsFlashPromotionSession>> list() {\n        List<SmsFlashPromotionSession> promotionSessionList = flashPromotionSessionService.list();\n        return CommonResult.success(promotionSessionList);\n    }\n\n    @Operation(summary = \"获取全部可选场次及其数量\")\n    @RequestMapping(value = \"/selectList\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<SmsFlashPromotionSessionDetail>> selectList(Long flashPromotionId) {\n        List<SmsFlashPromotionSessionDetail> promotionSessionList = flashPromotionSessionService.selectList(flashPromotionId);\n        return CommonResult.success(promotionSessionList);\n    }\n}"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/SmsHomeAdvertiseController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.SmsHomeAdvertise;\nimport com.macro.mall.service.SmsHomeAdvertiseService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 首页轮播广告管理Controller\n * Created by macro on 2018/11/7.\n */\n@Controller\n@Tag(name = \"SmsHomeAdvertiseController\", description = \"首页轮播广告管理\")\n@RequestMapping(\"/home/advertise\")\npublic class SmsHomeAdvertiseController {\n    @Autowired\n    private SmsHomeAdvertiseService advertiseService;\n\n    @Operation(summary = \"添加广告\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody SmsHomeAdvertise advertise) {\n        int count = advertiseService.create(advertise);\n        if (count > 0)\n            return CommonResult.success(count);\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"删除广告\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<Long> ids) {\n        int count = advertiseService.delete(ids);\n        if (count > 0)\n            return CommonResult.success(count);\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改上下线状态\")\n    @RequestMapping(value = \"/update/status/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateStatus(@PathVariable Long id, Integer status) {\n        int count = advertiseService.updateStatus(id, status);\n        if (count > 0)\n            return CommonResult.success(count);\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"获取广告详情\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<SmsHomeAdvertise> getItem(@PathVariable Long id) {\n        SmsHomeAdvertise advertise = advertiseService.getItem(id);\n        return CommonResult.success(advertise);\n    }\n\n    @Operation(summary = \"修改广告\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id, @RequestBody SmsHomeAdvertise advertise) {\n        int count = advertiseService.update(id, advertise);\n        if (count > 0)\n            return CommonResult.success(count);\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"分页查询广告\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<SmsHomeAdvertise>> list(@RequestParam(value = \"name\", required = false) String name,\n                                                           @RequestParam(value = \"type\", required = false) Integer type,\n                                                           @RequestParam(value = \"endTime\", required = false) String endTime,\n                                                           @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                           @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<SmsHomeAdvertise> advertiseList = advertiseService.list(name, type, endTime, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(advertiseList));\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/SmsHomeBrandController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.SmsHomeBrand;\nimport com.macro.mall.service.SmsHomeBrandService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 首页品牌管理Controller\n * Created by macro on 2018/11/6.\n */\n@Controller\n@Tag(name = \"SmsHomeBrandController\", description = \"首页品牌管理\")\n@RequestMapping(\"/home/brand\")\npublic class SmsHomeBrandController {\n    @Autowired\n    private SmsHomeBrandService homeBrandService;\n\n    @Operation(summary = \"添加首页推荐品牌\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody List<SmsHomeBrand> homeBrandList) {\n        int count = homeBrandService.create(homeBrandList);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改品牌排序\")\n    @RequestMapping(value = \"/update/sort/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateSort(@PathVariable Long id, Integer sort) {\n        int count = homeBrandService.updateSort(id, sort);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量删除推荐品牌\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<Long> ids) {\n        int count = homeBrandService.delete(ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量修改推荐状态\")\n    @RequestMapping(value = \"/update/recommendStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateRecommendStatus(@RequestParam(\"ids\") List<Long> ids, @RequestParam Integer recommendStatus) {\n        int count = homeBrandService.updateRecommendStatus(ids, recommendStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"分页查询推荐品牌\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<SmsHomeBrand>> list(@RequestParam(value = \"brandName\", required = false) String brandName,\n                                                       @RequestParam(value = \"recommendStatus\", required = false) Integer recommendStatus,\n                                                       @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                       @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<SmsHomeBrand> homeBrandList = homeBrandService.list(brandName, recommendStatus, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(homeBrandList));\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/SmsHomeNewProductController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.SmsHomeNewProduct;\nimport com.macro.mall.service.SmsHomeNewProductService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 首页新品管理Controller\n * Created by macro on 2018/11/6.\n */\n@Controller\n@Tag(name = \"SmsHomeNewProductController\", description = \"首页新品管理\")\n@RequestMapping(\"/home/newProduct\")\npublic class SmsHomeNewProductController {\n    @Autowired\n    private SmsHomeNewProductService homeNewProductService;\n\n    @Operation(summary = \"添加首页推荐品牌\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody List<SmsHomeNewProduct> homeBrandList) {\n        int count = homeNewProductService.create(homeBrandList);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改推荐排序\")\n    @RequestMapping(value = \"/update/sort/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateSort(@PathVariable Long id, Integer sort) {\n        int count = homeNewProductService.updateSort(id, sort);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量删除推荐\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<Long> ids) {\n        int count = homeNewProductService.delete(ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量修改推荐状态\")\n    @RequestMapping(value = \"/update/recommendStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateRecommendStatus(@RequestParam(\"ids\") List<Long> ids, @RequestParam Integer recommendStatus) {\n        int count = homeNewProductService.updateRecommendStatus(ids, recommendStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"分页查询推荐\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<SmsHomeNewProduct>> list(@RequestParam(value = \"productName\", required = false) String productName,\n                                                            @RequestParam(value = \"recommendStatus\", required = false) Integer recommendStatus,\n                                                            @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                            @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<SmsHomeNewProduct> homeBrandList = homeNewProductService.list(productName, recommendStatus, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(homeBrandList));\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/SmsHomeRecommendProductController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.SmsHomeRecommendProduct;\nimport com.macro.mall.service.SmsHomeRecommendProductService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 首页人气推荐管理Controller\n * Created by macro on 2018/11/6.\n */\n@Controller\n@Tag(name = \"SmsHomeRecommendProductController\", description = \"首页人气推荐管理\")\n@RequestMapping(\"/home/recommendProduct\")\npublic class SmsHomeRecommendProductController {\n    @Autowired\n    private SmsHomeRecommendProductService recommendProductService;\n\n    @Operation(summary = \"添加首页推荐\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody List<SmsHomeRecommendProduct> homeBrandList) {\n        int count = recommendProductService.create(homeBrandList);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改推荐排序\")\n    @RequestMapping(value = \"/update/sort/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateSort(@PathVariable Long id, Integer sort) {\n        int count = recommendProductService.updateSort(id, sort);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量删除推荐\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<Long> ids) {\n        int count = recommendProductService.delete(ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量修改推荐状态\")\n    @RequestMapping(value = \"/update/recommendStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateRecommendStatus(@RequestParam(\"ids\") List<Long> ids, @RequestParam Integer recommendStatus) {\n        int count = recommendProductService.updateRecommendStatus(ids, recommendStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"分页查询推荐\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<SmsHomeRecommendProduct>> list(@RequestParam(value = \"productName\", required = false) String productName,\n                                                                  @RequestParam(value = \"recommendStatus\", required = false) Integer recommendStatus,\n                                                                  @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                                  @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<SmsHomeRecommendProduct> homeBrandList = recommendProductService.list(productName, recommendStatus, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(homeBrandList));\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/SmsHomeRecommendSubjectController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.SmsHomeRecommendSubject;\nimport com.macro.mall.service.SmsHomeRecommendSubjectService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 首页专题推荐管理Controller\n * Created by macro on 2018/11/6.\n */\n@Controller\n@Tag(name = \"SmsHomeRecommendSubjectController\", description = \"首页专题推荐管理\")\n@RequestMapping(\"/home/recommendSubject\")\npublic class SmsHomeRecommendSubjectController {\n    @Autowired\n    private SmsHomeRecommendSubjectService recommendSubjectService;\n\n    @Operation(summary = \"添加首页推荐专题\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody List<SmsHomeRecommendSubject> homeBrandList) {\n        int count = recommendSubjectService.create(homeBrandList);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改推荐排序\")\n    @RequestMapping(value = \"/update/sort/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateSort(@PathVariable Long id, Integer sort) {\n        int count = recommendSubjectService.updateSort(id, sort);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量删除推荐\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<Long> ids) {\n        int count = recommendSubjectService.delete(ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量修改推荐状态\")\n    @RequestMapping(value = \"/update/recommendStatus\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateRecommendStatus(@RequestParam(\"ids\") List<Long> ids, @RequestParam Integer recommendStatus) {\n        int count = recommendSubjectService.updateRecommendStatus(ids, recommendStatus);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"分页查询推荐\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<SmsHomeRecommendSubject>> list(@RequestParam(value = \"subjectName\", required = false) String subjectName,\n                                                                  @RequestParam(value = \"recommendStatus\", required = false) Integer recommendStatus,\n                                                                  @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                                  @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<SmsHomeRecommendSubject> homeBrandList = recommendSubjectService.list(subjectName, recommendStatus, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(homeBrandList));\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/UmsAdminController.java",
    "content": "package com.macro.mall.controller;\n\nimport cn.dev33.satoken.stp.SaTokenInfo;\nimport cn.hutool.core.collection.CollUtil;\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.UmsAdminLoginParam;\nimport com.macro.mall.dto.UmsAdminParam;\nimport com.macro.mall.dto.UpdateAdminPasswordParam;\nimport com.macro.mall.model.UmsAdmin;\nimport com.macro.mall.model.UmsRole;\nimport com.macro.mall.service.UmsAdminService;\nimport com.macro.mall.service.UmsRoleService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.validation.annotation.Validated;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\nimport java.util.stream.Collectors;\n\n/**\n * 后台用户管理\n * Created by macro on 2018/4/26.\n */\n@Controller\n@Tag(name = \"UmsAdminController\", description = \"后台用户管理\")\n@RequestMapping(\"/admin\")\npublic class UmsAdminController {\n    @Autowired\n    private UmsAdminService adminService;\n    @Autowired\n    private UmsRoleService roleService;\n    @Value(\"${sa-token.token-prefix}\")\n    private String tokenHead;\n\n    @Operation(summary = \"用户注册\")\n    @RequestMapping(value = \"/register\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult<UmsAdmin> register(@Validated @RequestBody UmsAdminParam umsAdminParam) {\n        UmsAdmin umsAdmin = adminService.register(umsAdminParam);\n        if (umsAdmin == null) {\n            return CommonResult.failed();\n        }\n        return CommonResult.success(umsAdmin);\n    }\n\n    @Operation(summary = \"登录以后返回token\")\n    @RequestMapping(value = \"/login\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult login(@Validated @RequestBody UmsAdminLoginParam umsAdminLoginParam) {\n        SaTokenInfo saTokenInfo  = adminService.login(umsAdminLoginParam.getUsername(), umsAdminLoginParam.getPassword());\n        if (saTokenInfo  == null) {\n            return CommonResult.validateFailed(\"用户名或密码错误\");\n        }\n        Map<String, String> tokenMap = new HashMap<>();\n        tokenMap.put(\"token\", saTokenInfo.getTokenValue() );\n        tokenMap.put(\"tokenHead\", tokenHead+\" \");\n        return CommonResult.success(tokenMap);\n    }\n\n    @Operation(summary = \"获取当前登录用户信息\")\n    @RequestMapping(value = \"/info\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult getAdminInfo() {\n        UmsAdmin umsAdmin = adminService.getCurrentAdmin();\n        Map<String, Object> data = new HashMap<>();\n        data.put(\"username\", umsAdmin.getUsername());\n        data.put(\"menus\", roleService.getMenuList(umsAdmin.getId()));\n        data.put(\"icon\", umsAdmin.getIcon());\n        List<UmsRole> roleList = adminService.getRoleList(umsAdmin.getId());\n        if(CollUtil.isNotEmpty(roleList)){\n            List<String> roles = roleList.stream().map(UmsRole::getName).collect(Collectors.toList());\n            data.put(\"roles\",roles);\n        }\n        return CommonResult.success(data);\n    }\n\n    @Operation(summary = \"登出功能\")\n    @RequestMapping(value = \"/logout\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult logout() {\n        adminService.logout();\n        return CommonResult.success(null);\n    }\n\n    @Operation(summary = \"根据用户名或姓名分页获取用户列表\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<UmsAdmin>> list(@RequestParam(value = \"keyword\", required = false) String keyword,\n                                                   @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                   @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<UmsAdmin> adminList = adminService.list(keyword, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(adminList));\n    }\n\n    @Operation(summary = \"获取指定用户信息\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<UmsAdmin> getItem(@PathVariable Long id) {\n        UmsAdmin admin = adminService.getItem(id);\n        return CommonResult.success(admin);\n    }\n\n    @Operation(summary = \"修改指定用户信息\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id, @RequestBody UmsAdmin admin) {\n        int count = adminService.update(id, admin);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改指定用户密码\")\n    @RequestMapping(value = \"/updatePassword\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updatePassword(@RequestBody UpdateAdminPasswordParam updatePasswordParam) {\n        int status = adminService.updatePassword(updatePasswordParam);\n        if (status > 0) {\n            return CommonResult.success(status);\n        } else if (status == -1) {\n            return CommonResult.failed(\"提交参数不合法\");\n        } else if (status == -2) {\n            return CommonResult.failed(\"找不到该用户\");\n        } else if (status == -3) {\n            return CommonResult.failed(\"旧密码错误\");\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"删除指定用户信息\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@PathVariable Long id) {\n        int count = adminService.delete(id);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改帐号状态\")\n    @RequestMapping(value = \"/updateStatus/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateStatus(@PathVariable Long id,@RequestParam(value = \"status\") Integer status) {\n        UmsAdmin umsAdmin = new UmsAdmin();\n        umsAdmin.setStatus(status);\n        int count = adminService.update(id,umsAdmin);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"给用户分配角色\")\n    @RequestMapping(value = \"/role/update\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateRole(@RequestParam(\"adminId\") Long adminId,\n                                   @RequestParam(\"roleIds\") List<Long> roleIds) {\n        int count = adminService.updateRole(adminId, roleIds);\n        if (count >= 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"获取指定用户的角色\")\n    @RequestMapping(value = \"/role/{adminId}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<UmsRole>> getRoleList(@PathVariable Long adminId) {\n        List<UmsRole> roleList = adminService.getRoleList(adminId);\n        return CommonResult.success(roleList);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/UmsMemberLevelController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.UmsMemberLevel;\nimport com.macro.mall.service.UmsMemberLevelService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\nimport java.util.List;\n\n/**\n * 会员等级管理Controller\n * Created by macro on 2018/4/26.\n */\n@Controller\n@Tag(name = \"UmsMemberLevelController\", description = \"会员等级管理\")\n@RequestMapping(\"/memberLevel\")\npublic class UmsMemberLevelController {\n    @Autowired\n    private UmsMemberLevelService memberLevelService;\n\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @Operation(summary = \"查询所有会员等级\")\n    @ResponseBody\n    public CommonResult<List<UmsMemberLevel>> list(@RequestParam(\"defaultStatus\") Integer defaultStatus) {\n        List<UmsMemberLevel> memberLevelList = memberLevelService.list(defaultStatus);\n        return CommonResult.success(memberLevelList);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/UmsMenuController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.dto.UmsMenuNode;\nimport com.macro.mall.model.UmsMenu;\nimport com.macro.mall.service.UmsMenuService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 后台菜单管理Controller\n * Created by macro on 2020/2/4.\n */\n@Controller\n@Tag(name = \"UmsMenuController\", description = \"后台菜单管理\")\n@RequestMapping(\"/menu\")\npublic class UmsMenuController {\n\n    @Autowired\n    private UmsMenuService menuService;\n\n    @Operation(summary = \"添加后台菜单\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody UmsMenu umsMenu) {\n        int count = menuService.create(umsMenu);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"修改后台菜单\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id,\n                               @RequestBody UmsMenu umsMenu) {\n        int count = menuService.update(id, umsMenu);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"根据ID获取菜单详情\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<UmsMenu> getItem(@PathVariable Long id) {\n        UmsMenu umsMenu = menuService.getItem(id);\n        return CommonResult.success(umsMenu);\n    }\n\n    @Operation(summary = \"根据ID删除后台菜单\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@PathVariable Long id) {\n        int count = menuService.delete(id);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"分页查询后台菜单\")\n    @RequestMapping(value = \"/list/{parentId}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<UmsMenu>> list(@PathVariable Long parentId,\n                                                  @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                  @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<UmsMenu> menuList = menuService.list(parentId, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(menuList));\n    }\n\n    @Operation(summary = \"树形结构返回所有菜单列表\")\n    @RequestMapping(value = \"/treeList\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<UmsMenuNode>> treeList() {\n        List<UmsMenuNode> list = menuService.treeList();\n        return CommonResult.success(list);\n    }\n\n    @Operation(summary = \"修改菜单显示状态\")\n    @RequestMapping(value = \"/updateHidden/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateHidden(@PathVariable Long id, @RequestParam(\"hidden\") Integer hidden) {\n        int count = menuService.updateHidden(id, hidden);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/UmsResourceCategoryController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.UmsResourceCategory;\nimport com.macro.mall.service.UmsResourceCategoryService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 后台资源分类管理Controller\n * Created by macro on 2020/2/5.\n */\n@Controller\n@Tag(name = \"UmsResourceCategoryController\", description = \"后台资源分类管理\")\n@RequestMapping(\"/resourceCategory\")\npublic class UmsResourceCategoryController {\n    @Autowired\n    private UmsResourceCategoryService resourceCategoryService;\n\n    @Operation(summary = \"查询所有后台资源分类\")\n    @RequestMapping(value = \"/listAll\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<UmsResourceCategory>> listAll() {\n        List<UmsResourceCategory> resourceList = resourceCategoryService.listAll();\n        return CommonResult.success(resourceList);\n    }\n\n    @Operation(summary = \"添加后台资源分类\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody UmsResourceCategory umsResourceCategory) {\n        int count = resourceCategoryService.create(umsResourceCategory);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"修改后台资源分类\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id,\n                               @RequestBody UmsResourceCategory umsResourceCategory) {\n        int count = resourceCategoryService.update(id, umsResourceCategory);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"根据ID删除后台资源\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@PathVariable Long id) {\n        int count = resourceCategoryService.delete(id);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/UmsResourceController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.UmsResource;\nimport com.macro.mall.service.UmsResourceService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\nimport java.util.Map;\n\n/**\n * 后台资源管理Controller\n * Created by macro on 2020/2/4.\n */\n@Controller\n@Tag(name = \"UmsResourceController\", description = \"后台资源管理\")\n@RequestMapping(\"/resource\")\npublic class UmsResourceController {\n\n    @Autowired\n    private UmsResourceService resourceService;\n\n    @Operation(summary = \"添加后台资源\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody UmsResource umsResource) {\n        int count = resourceService.create(umsResource);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"修改后台资源\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id,\n                               @RequestBody UmsResource umsResource) {\n        int count = resourceService.update(id, umsResource);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"根据ID获取资源详情\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<UmsResource> getItem(@PathVariable Long id) {\n        UmsResource umsResource = resourceService.getItem(id);\n        return CommonResult.success(umsResource);\n    }\n\n    @Operation(summary = \"根据ID删除后台资源\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@PathVariable Long id) {\n        int count = resourceService.delete(id);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"分页模糊查询后台资源\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<UmsResource>> list(@RequestParam(required = false) Long categoryId,\n                                                      @RequestParam(required = false) String nameKeyword,\n                                                      @RequestParam(required = false) String urlKeyword,\n                                                      @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                      @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<UmsResource> resourceList = resourceService.list(categoryId,nameKeyword, urlKeyword, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(resourceList));\n    }\n\n    @Operation(summary = \"查询所有后台资源\")\n    @RequestMapping(value = \"/listAll\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<UmsResource>> listAll() {\n        List<UmsResource> resourceList = resourceService.listAll();\n        return CommonResult.success(resourceList);\n    }\n\n    @Operation(summary = \"初始化路径和资源的关联数据\")\n    @RequestMapping(value = \"/initPathResourceMap\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult initPathResourceMap() {\n        Map<String, String> pathResourceMap = resourceService.initPathResourceMap();\n        return CommonResult.success(pathResourceMap);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/controller/UmsRoleController.java",
    "content": "package com.macro.mall.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.*;\nimport com.macro.mall.service.UmsRoleService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 后台用户角色管理\n * Created by macro on 2018/9/30.\n */\n@Controller\n@Tag(name = \"UmsRoleController\", description = \"后台用户角色管理\")\n@RequestMapping(\"/role\")\npublic class UmsRoleController {\n    @Autowired\n    private UmsRoleService roleService;\n\n    @Operation(summary = \"添加角色\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody UmsRole role) {\n        int count = roleService.create(role);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改角色\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id, @RequestBody UmsRole role) {\n        int count = roleService.update(id, role);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"批量删除角色\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<Long> ids) {\n        int count = roleService.delete(ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"获取所有角色\")\n    @RequestMapping(value = \"/listAll\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<UmsRole>> listAll() {\n        List<UmsRole> roleList = roleService.list();\n        return CommonResult.success(roleList);\n    }\n\n    @Operation(summary = \"根据角色名称分页获取角色列表\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<UmsRole>> list(@RequestParam(value = \"keyword\", required = false) String keyword,\n                                                  @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize,\n                                                  @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<UmsRole> roleList = roleService.list(keyword, pageSize, pageNum);\n        return CommonResult.success(CommonPage.restPage(roleList));\n    }\n\n    @Operation(summary = \"修改角色状态\")\n    @RequestMapping(value = \"/updateStatus/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateStatus(@PathVariable Long id, @RequestParam(value = \"status\") Integer status) {\n        UmsRole umsRole = new UmsRole();\n        umsRole.setStatus(status);\n        int count = roleService.update(id, umsRole);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"获取角色相关菜单\")\n    @RequestMapping(value = \"/listMenu/{roleId}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<UmsMenu>> listMenu(@PathVariable Long roleId) {\n        List<UmsMenu> roleList = roleService.listMenu(roleId);\n        return CommonResult.success(roleList);\n    }\n\n    @Operation(summary = \"获取角色相关资源\")\n    @RequestMapping(value = \"/listResource/{roleId}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<UmsResource>> listResource(@PathVariable Long roleId) {\n        List<UmsResource> roleList = roleService.listResource(roleId);\n        return CommonResult.success(roleList);\n    }\n\n    @Operation(summary = \"给角色分配菜单\")\n    @RequestMapping(value = \"/allocMenu\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult allocMenu(@RequestParam Long roleId, @RequestParam List<Long> menuIds) {\n        int count = roleService.allocMenu(roleId, menuIds);\n        return CommonResult.success(count);\n    }\n\n    @Operation(summary = \"给角色分配资源\")\n    @RequestMapping(value = \"/allocResource\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult allocResource(@RequestParam Long roleId, @RequestParam List<Long> resourceIds) {\n        int count = roleService.allocResource(roleId, resourceIds);\n        return CommonResult.success(count);\n    }\n\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/CmsPrefrenceAreaProductRelationDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.CmsPrefrenceAreaProductRelation;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义优选和商品关系操作Dao\n * Created by macro on 2018/4/26.\n */\npublic interface CmsPrefrenceAreaProductRelationDao {\n    /**\n     * 批量创建\n     */\n    int insertList(@Param(\"list\") List<CmsPrefrenceAreaProductRelation> prefrenceAreaProductRelationList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/CmsSubjectProductRelationDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.CmsSubjectProductRelation;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义商品和专题关系操作Dao\n * Created by macro on 2018/4/26.\n */\npublic interface CmsSubjectProductRelationDao {\n    /**\n     * 批量创建\n     */\n    int insertList(@Param(\"list\") List<CmsSubjectProductRelation> subjectProductRelationList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/OmsOrderDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.dto.OmsOrderDeliveryParam;\nimport com.macro.mall.dto.OmsOrderDetail;\nimport com.macro.mall.dto.OmsOrderQueryParam;\nimport com.macro.mall.model.OmsOrder;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 订单自定义查询Dao\n * Created by macro on 2018/10/12.\n */\npublic interface OmsOrderDao {\n    /**\n     * 条件查询订单\n     */\n    List<OmsOrder> getList(@Param(\"queryParam\") OmsOrderQueryParam queryParam);\n\n    /**\n     * 批量发货\n     */\n    int delivery(@Param(\"list\") List<OmsOrderDeliveryParam> deliveryParamList);\n\n    /**\n     * 获取订单详情\n     */\n    OmsOrderDetail getDetail(@Param(\"id\") Long id);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/OmsOrderOperateHistoryDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.OmsOrderOperateHistory;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 订单操作记录自定义Dao\n * Created by macro on 2018/10/12.\n */\npublic interface OmsOrderOperateHistoryDao {\n    /**\n     * 批量创建\n     */\n    int insertList(@Param(\"list\") List<OmsOrderOperateHistory> orderOperateHistoryList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/OmsOrderReturnApplyDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.dto.OmsOrderReturnApplyResult;\nimport com.macro.mall.dto.OmsReturnApplyQueryParam;\nimport com.macro.mall.model.OmsOrderReturnApply;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 订单退货申请自定义Dao\n * Created by macro on 2018/10/18.\n */\npublic interface OmsOrderReturnApplyDao {\n    /**\n     * 查询申请列表\n     */\n    List<OmsOrderReturnApply> getList(@Param(\"queryParam\") OmsReturnApplyQueryParam queryParam);\n\n    /**\n     * 获取申请详情\n     */\n    OmsOrderReturnApplyResult getDetail(@Param(\"id\")Long id);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/PmsMemberPriceDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.PmsMemberPrice;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义会员价格Dao\n * Created by macro on 2018/4/26.\n */\npublic interface PmsMemberPriceDao {\n    /**\n     * 批量创建\n     */\n    int insertList(@Param(\"list\") List<PmsMemberPrice> memberPriceList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeCategoryDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.dto.PmsProductAttributeCategoryItem;\n\nimport java.util.List;\n\n/**\n * 自定义商品属性分类Dao\n * Created by macro on 2018/5/24.\n */\npublic interface PmsProductAttributeCategoryDao {\n    /**\n     * 获取包含属性的商品属性分类\n     */\n    List<PmsProductAttributeCategoryItem> getListWithAttr();\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.dto.ProductAttrInfo;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义商品属性Dao\n * Created by macro on 2018/5/23.\n */\npublic interface PmsProductAttributeDao {\n    /**\n     * 获取商品属性信息\n     */\n    List<ProductAttrInfo> getProductAttrInfo(@Param(\"id\") Long productCategoryId);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/PmsProductAttributeValueDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.PmsProductAttributeValue;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 商品参数，商品自定义规格属性Dao\n * Created by macro on 2018/4/26.\n */\npublic interface PmsProductAttributeValueDao {\n    /**\n     * 批量创建\n     */\n    int insertList(@Param(\"list\")List<PmsProductAttributeValue> productAttributeValueList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/PmsProductCategoryAttributeRelationDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.PmsProductCategoryAttributeRelation;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义商品分类和属性关系Dao\n * Created by macro on 2018/5/23.\n */\npublic interface PmsProductCategoryAttributeRelationDao {\n    /**\n     * 批量创建\n     */\n    int insertList(@Param(\"list\") List<PmsProductCategoryAttributeRelation> productCategoryAttributeRelationList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/PmsProductCategoryDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.dto.PmsProductCategoryWithChildrenItem;\n\nimport java.util.List;\n\n/**\n * 商品分类自定义Dao\n * Created by macro on 2018/5/25.\n */\npublic interface PmsProductCategoryDao {\n    /**\n     * 获取商品分类及其子分类\n     */\n    List<PmsProductCategoryWithChildrenItem> listWithChildren();\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/PmsProductDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.dto.PmsProductResult;\nimport org.apache.ibatis.annotations.Param;\n\n\n/**\n * 自定义商品管理Dao\n * Created by macro on 2018/4/26.\n */\npublic interface PmsProductDao {\n    /**\n     * 获取商品编辑信息\n     */\n    PmsProductResult getUpdateInfo(@Param(\"id\") Long id);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/PmsProductFullReductionDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.PmsProductFullReduction;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义商品满减Dao\n * Created by macro on 2018/4/26.\n */\npublic interface PmsProductFullReductionDao {\n    /**\n     * 批量创建\n     */\n    int insertList(@Param(\"list\") List<PmsProductFullReduction> productFullReductionList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/PmsProductLadderDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.PmsProductLadder;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义会员阶梯价格Dao\n * Created by macro on 2018/4/26.\n */\npublic interface PmsProductLadderDao {\n    /**\n     * 批量创建\n     */\n    int insertList(@Param(\"list\") List<PmsProductLadder> productLadderList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/PmsProductVertifyRecordDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.PmsProductVertifyRecord;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义商品审核日志管理Dao\n * Created by macro on 2018/4/27.\n */\npublic interface PmsProductVertifyRecordDao {\n    /**\n     * 批量创建\n     */\n    int insertList(@Param(\"list\") List<PmsProductVertifyRecord> list);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/PmsSkuStockDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.PmsSkuStock;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义商品SKU管理Dao\n * Created by macro on 2018/4/26.\n */\npublic interface PmsSkuStockDao {\n    /**\n     * 批量插入操作\n     */\n    int insertList(@Param(\"list\")List<PmsSkuStock> skuStockList);\n\n    /**\n     * 批量插入或替换操作\n     */\n    int replaceList(@Param(\"list\")List<PmsSkuStock> skuStockList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/SmsCouponDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.dto.SmsCouponParam;\nimport org.apache.ibatis.annotations.Param;\n\n/**\n * 自定义优惠券管理Dao\n * Created by macro on 2018/8/29.\n */\npublic interface SmsCouponDao {\n    /**\n     * 获取优惠券详情包括绑定关系\n     */\n    SmsCouponParam getItem(@Param(\"id\") Long id);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/SmsCouponProductCategoryRelationDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.SmsCouponProductCategoryRelation;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义优惠券和商品分类关系管理Dao\n * Created by macro on 2018/8/28.\n */\npublic interface SmsCouponProductCategoryRelationDao {\n    /**\n     * 批量创建\n     */\n    int insertList(@Param(\"list\")List<SmsCouponProductCategoryRelation> productCategoryRelationList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/SmsCouponProductRelationDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.SmsCouponProductRelation;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义优惠券和商品关系关系Dao\n * Created by macro on 2018/8/28.\n */\npublic interface SmsCouponProductRelationDao {\n    /**\n     * 批量创建\n     */\n    int insertList(@Param(\"list\")List<SmsCouponProductRelation> productRelationList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/SmsFlashPromotionProductRelationDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.dto.SmsFlashPromotionProduct;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义限时购商品关系管理Dao\n * Created by macro on 2018/11/16.\n */\npublic interface SmsFlashPromotionProductRelationDao {\n    /**\n     * 获取限时购及相关商品信息\n     */\n    List<SmsFlashPromotionProduct> getList(@Param(\"flashPromotionId\") Long flashPromotionId, @Param(\"flashPromotionSessionId\") Long flashPromotionSessionId);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/UmsAdminRoleRelationDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.UmsAdminRoleRelation;\nimport com.macro.mall.model.UmsResource;\nimport com.macro.mall.model.UmsRole;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义后台用户与角色管理Dao\n * Created by macro on 2018/10/8.\n */\npublic interface UmsAdminRoleRelationDao {\n    /**\n     * 批量插入用户角色关系\n     */\n    int insertList(@Param(\"list\") List<UmsAdminRoleRelation> adminRoleRelationList);\n\n    /**\n     * 获取用于所有角色\n     */\n    List<UmsRole> getRoleList(@Param(\"adminId\") Long adminId);\n\n    /**\n     * 获取用户所有可访问资源\n     */\n    List<UmsResource> getResourceList(@Param(\"adminId\") Long adminId);\n\n    /**\n     * 获取资源相关用户ID列表\n     */\n    List<Long> getAdminIdList(@Param(\"resourceId\") Long resourceId);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dao/UmsRoleDao.java",
    "content": "package com.macro.mall.dao;\n\nimport com.macro.mall.model.UmsMenu;\nimport com.macro.mall.model.UmsResource;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 自定义后台角色管理Dao\n * Created by macro on 2020/2/2.\n */\npublic interface UmsRoleDao {\n    /**\n     * 根据后台用户ID获取菜单\n     */\n    List<UmsMenu> getMenuList(@Param(\"adminId\") Long adminId);\n    /**\n     * 根据角色ID获取菜单\n     */\n    List<UmsMenu> getMenuListByRoleId(@Param(\"roleId\") Long roleId);\n    /**\n     * 根据角色ID获取资源\n     */\n    List<UmsResource> getResourceListByRoleId(@Param(\"roleId\") Long roleId);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/BucketPolicyConfigDto.java",
    "content": "package com.macro.mall.dto;\n\nimport lombok.Builder;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\nimport java.util.List;\n\n/**\n * Minio Bucket访问策略配置\n * Created by macro on 2020/8/11.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\n@Builder\npublic class BucketPolicyConfigDto {\n\n    private String Version;\n    private List<Statement> Statement;\n\n    @Data\n    @EqualsAndHashCode(callSuper = false)\n    @Builder\n    public static class Statement {\n        private String Effect;\n        private String Principal;\n        private String Action;\n        private String Resource;\n\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/MinioUploadDto.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\n/**\n * 文件上传返回结果\n * Created by macro on 2019/12/25.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class MinioUploadDto {\n    @Schema(title = \"文件访问URL\")\n    private String url;\n    @Schema(title = \"文件名称\")\n    private String name;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/OmsMoneyInfoParam.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.math.BigDecimal;\n\n/**\n * 修改订单费用信息参数\n * Created by macro on 2018/10/29.\n */\n@Getter\n@Setter\npublic class OmsMoneyInfoParam {\n    @Schema(title = \"订单ID\")\n    private Long orderId;\n    @Schema(title = \"运费金额\")\n    private BigDecimal freightAmount;\n    @Schema(title = \"管理员后台调整订单使用的折扣金额\")\n    private BigDecimal discountAmount;\n    @Schema(title = \"订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单\")\n    private Integer status;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/OmsOrderDeliveryParam.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\n/**\n * 订单发货参数\n * Created by macro on 2018/10/12.\n */\n@Getter\n@Setter\npublic class OmsOrderDeliveryParam {\n    @Schema(title = \"订单id\")\n    private Long orderId;\n    @Schema(title = \"物流公司\")\n    private String deliveryCompany;\n    @Schema(title = \"物流单号\")\n    private String deliverySn;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/OmsOrderDetail.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.model.OmsOrder;\nimport com.macro.mall.model.OmsOrderItem;\nimport com.macro.mall.model.OmsOrderOperateHistory;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.util.List;\n\n/**\n * 订单详情信息\n * Created by macro on 2018/10/11.\n */\npublic class OmsOrderDetail extends OmsOrder {\n    @Getter\n    @Setter\n    @Schema(title = \"订单商品列表\")\n    private List<OmsOrderItem> orderItemList;\n    @Getter\n    @Setter\n    @Schema(title = \"订单操作记录列表\")\n    private List<OmsOrderOperateHistory> historyList;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/OmsOrderQueryParam.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\n/**\n * 订单查询参数\n * Created by macro on 2018/10/11.\n */\n@Getter\n@Setter\npublic class OmsOrderQueryParam {\n    @Schema(title = \"订单编号\")\n    private String orderSn;\n    @Schema(title = \"收货人姓名/号码\")\n    private String receiverKeyword;\n    @Schema(title = \"订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单\")\n    private Integer status;\n    @Schema(title = \"订单类型：0->正常订单；1->秒杀订单\")\n    private Integer orderType;\n    @Schema(title = \"订单来源：0->PC订单；1->app订单\")\n    private Integer sourceType;\n    @Schema(title = \"订单提交时间\")\n    private String createTime;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/OmsOrderReturnApplyResult.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.model.OmsCompanyAddress;\nimport com.macro.mall.model.OmsOrderReturnApply;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\n/**\n * 申请信息封装\n * Created by macro on 2018/10/18.\n */\npublic class OmsOrderReturnApplyResult extends OmsOrderReturnApply {\n    @Getter\n    @Setter\n    @Schema(title = \"公司收货地址\")\n    private OmsCompanyAddress companyAddress;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/OmsReceiverInfoParam.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\n/**\n * 订单修改收货人信息参数\n * Created by macro on 2018/10/29.\n */\n@Getter\n@Setter\npublic class OmsReceiverInfoParam {\n    @Schema(title = \"订单ID\")\n    private Long orderId;\n    @Schema(title = \"收货人姓名\")\n    private String receiverName;\n    @Schema(title = \"收货人电话\")\n    private String receiverPhone;\n    @Schema(title = \"收货人邮编\")\n    private String receiverPostCode;\n    @Schema(title = \"详细地址\")\n    private String receiverDetailAddress;\n    @Schema(title = \"省份/直辖市\")\n    private String receiverProvince;\n    @Schema(title = \"城市\")\n    private String receiverCity;\n    @Schema(title = \"区\")\n    private String receiverRegion;\n    @Schema(title = \"订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单\")\n    private Integer status;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/OmsReturnApplyQueryParam.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\n/**\n * 订单退货申请查询参数\n * Created by macro on 2018/10/18.\n */\n@Getter\n@Setter\npublic class OmsReturnApplyQueryParam {\n    @Schema(title = \"服务单号\")\n    private Long id;\n    @Schema(title = \"收货人姓名/号码\")\n    private String receiverKeyword;\n    @Schema(title = \"申请状态：0->待处理；1->退货中；2->已完成；3->已拒绝\")\n    private Integer status;\n    @Schema(title = \"申请时间\")\n    private String createTime;\n    @Schema(title = \"处理人员\")\n    private String handleMan;\n    @Schema(title = \"处理时间\")\n    private String handleTime;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/OmsUpdateStatusParam.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.math.BigDecimal;\n\n/**\n * 确认收货提交参数\n * Created by macro on 2018/10/18.\n */\n@Getter\n@Setter\npublic class OmsUpdateStatusParam {\n    @Schema(title = \"服务单号\")\n    private Long id;\n    @Schema(title = \"收货地址关联id\")\n    private Long companyAddressId;\n    @Schema(title = \"确认退款金额\")\n    private BigDecimal returnAmount;\n    @Schema(title = \"处理备注\")\n    private String handleNote;\n    @Schema(title = \"处理人\")\n    private String handleMan;\n    @Schema(title = \"收货备注\")\n    private String receiveNote;\n    @Schema(title = \"收货人\")\n    private String receiveMan;\n    @Schema(title = \"申请状态：1->退货中；2->已完成；3->已拒绝\")\n    private Integer status;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/OssCallbackParam.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\n/**\n * oss上传成功后的回调参数\n * Created by macro on 2018/5/17.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class OssCallbackParam {\n    @Schema(title = \"请求的回调地址\")\n    private String callbackUrl;\n    @Schema(title = \"回调是传入request中的参数\")\n    private String callbackBody;\n    @Schema(title = \"回调时传入参数的格式，比如表单提交形式\")\n    private String callbackBodyType;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/OssCallbackResult.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\n/**\n * oss上传文件的回调结果\n * Created by macro on 2018/5/17.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class OssCallbackResult {\n    @Schema(title = \"文件名称\")\n    private String filename;\n    @Schema(title = \"文件大小\")\n    private String size;\n    @Schema(title = \"文件的mimeType\")\n    private String mimeType;\n    @Schema(title = \"图片文件的宽\")\n    private String width;\n    @Schema(title = \"图片文件的高\")\n    private String height;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/OssPolicyResult.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\n/**\n * 获取OSS上传文件授权返回结果\n * Created by macro on 2018/5/17.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class OssPolicyResult {\n    @Schema(title = \"访问身份验证中用到用户标识\")\n    private String accessKeyId;\n    @Schema(title = \"用户表单上传的策略,经过base64编码过的字符串\")\n    private String policy;\n    @Schema(title = \"对policy签名后的字符串\")\n    private String signature;\n    @Schema(title = \"上传文件夹路径前缀\")\n    private String dir;\n    @Schema(title = \"oss对外服务的访问域名\")\n    private String host;\n    @Schema(title = \"上传成功后的回调设置\")\n    private String callback;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/PmsBrandParam.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.validator.FlagValidator;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\nimport jakarta.validation.constraints.Min;\nimport jakarta.validation.constraints.NotEmpty;\n\n/**\n * 品牌传递参数\n * Created by macro on 2018/4/26.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class PmsBrandParam {\n    @NotEmpty\n    @Schema(title = \"品牌名称\",required = true)\n    private String name;\n    @Schema(title = \"品牌首字母\")\n    private String firstLetter;\n    @Min(value = 0)\n    @Schema(title = \"排序字段\")\n    private Integer sort;\n    @FlagValidator(value = {\"0\",\"1\"}, message = \"厂家状态不正确\")\n    @Schema(title = \"是否为厂家制造商\")\n    private Integer factoryStatus;\n    @FlagValidator(value = {\"0\",\"1\"}, message = \"显示状态不正确\")\n    @Schema(title = \"是否进行显示\")\n    private Integer showStatus;\n    @NotEmpty\n    @Schema(title = \"品牌logo\",required = true)\n    private String logo;\n    @Schema(title = \"品牌大图\")\n    private String bigPic;\n    @Schema(title = \"品牌故事\")\n    private String brandStory;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductAttributeCategoryItem.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.model.PmsProductAttribute;\nimport com.macro.mall.model.PmsProductAttributeCategory;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.util.List;\n\n/**\n * 包含有分类下属性的dto\n * Created by macro on 2018/5/24.\n */\npublic class PmsProductAttributeCategoryItem extends PmsProductAttributeCategory {\n    @Getter\n    @Setter\n    @Schema(title = \"商品属性列表\")\n    private List<PmsProductAttribute> productAttributeList;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductAttributeParam.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.validator.FlagValidator;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\nimport jakarta.validation.constraints.NotEmpty;\n\n/**\n * 商品属性参数\n * Created by macro on 2018/4/26.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class PmsProductAttributeParam {\n    @NotEmpty\n    @Schema(title = \"属性分类ID\")\n    private Long productAttributeCategoryId;\n    @NotEmpty\n    @Schema(title = \"属性名称\")\n    private String name;\n    @FlagValidator({\"0\",\"1\",\"2\"})\n    @Schema(title = \"属性选择类型：0->唯一；1->单选；2->多选\")\n    private Integer selectType;\n    @FlagValidator({\"0\",\"1\"})\n    @Schema(title = \"属性录入方式：0->手工录入；1->从列表中选取\")\n    private Integer inputType;\n    @Schema(title = \"可选值列表，以逗号隔开\")\n    private String inputList;\n\n    private Integer sort;\n    @FlagValidator({\"0\",\"1\"})\n    @Schema(title = \"分类筛选样式：0->普通；1->颜色\")\n    private Integer filterType;\n    @FlagValidator({\"0\",\"1\",\"2\"})\n    @Schema(title = \"检索类型；0->不需要进行检索；1->关键字检索；2->范围检索\")\n    private Integer searchType;\n    @FlagValidator({\"0\",\"1\"})\n    @Schema(title = \"相同属性产品是否关联；0->不关联；1->关联\")\n    private Integer relatedStatus;\n    @FlagValidator({\"0\",\"1\"})\n    @Schema(title = \"是否支持手动新增；0->不支持；1->支持\")\n    private Integer handAddStatus;\n    @FlagValidator({\"0\",\"1\"})\n    @Schema(title = \"属性的类型；0->规格；1->参数\")\n    private Integer type;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductCategoryParam.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.validator.FlagValidator;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\nimport jakarta.validation.constraints.Min;\nimport jakarta.validation.constraints.NotEmpty;\nimport java.util.List;\n\n/**\n * 添加更新产品分类的参数\n * Created by macro on 2018/4/26.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class PmsProductCategoryParam {\n    @Schema(title = \"父分类的编号\")\n    private Long parentId;\n    @NotEmpty\n    @Schema(title = \"商品分类名称\",required = true)\n    private String name;\n    @Schema(title = \"分类单位\")\n    private String productUnit;\n    @FlagValidator(value = {\"0\",\"1\"},message = \"状态只能为0或1\")\n    @Schema(title = \"是否在导航栏显示\")\n    private Integer navStatus;\n    @FlagValidator(value = {\"0\",\"1\"},message = \"状态只能为0或1\")\n    @Schema(title = \"是否进行显示\")\n    private Integer showStatus;\n    @Min(value = 0)\n    @Schema(title = \"排序\")\n    private Integer sort;\n    @Schema(title = \"图标\")\n    private String icon;\n    @Schema(title = \"关键字\")\n    private String keywords;\n    @Schema(title = \"描述\")\n    private String description;\n    @Schema(title = \"产品相关筛选属性集合\")\n    private List<Long> productAttributeIdList;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductCategoryWithChildrenItem.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.model.PmsProductCategory;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.util.List;\n\n/**\n * Created by macro on 2018/5/25.\n */\npublic class PmsProductCategoryWithChildrenItem extends PmsProductCategory {\n    @Getter\n    @Setter\n    @Schema(title = \"子级分类\")\n    private List<PmsProductCategory> children;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductParam.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.model.*;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\nimport java.util.List;\n\n/**\n * 创建和修改商品时使用的参数\n * Created by macro on 2018/4/26.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class PmsProductParam extends PmsProduct{\n    @Schema(title = \"商品阶梯价格设置\")\n    private List<PmsProductLadder> productLadderList;\n    @Schema(title = \"商品满减价格设置\")\n    private List<PmsProductFullReduction> productFullReductionList;\n    @Schema(title = \"商品会员价格设置\")\n    private List<PmsMemberPrice> memberPriceList;\n    @Schema(title = \"商品的sku库存信息\")\n    private List<PmsSkuStock> skuStockList;\n    @Schema(title = \"商品参数及自定义规格属性\")\n    private List<PmsProductAttributeValue> productAttributeValueList;\n    @Schema(title = \"专题和商品关系\")\n    private List<CmsSubjectProductRelation> subjectProductRelationList;\n    @Schema(title = \"优选专区和商品的关系\")\n    private List<CmsPrefrenceAreaProductRelation> prefrenceAreaProductRelationList;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductQueryParam.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\n/**\n * 产品查询参数\n * Created by macro on 2018/4/27.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class PmsProductQueryParam {\n    @Schema(title = \"上架状态\")\n    private Integer publishStatus;\n    @Schema(title = \"审核状态\")\n    private Integer verifyStatus;\n    @Schema(title = \"商品名称模糊关键字\")\n    private String keyword;\n    @Schema(title = \"商品货号\")\n    private String productSn;\n    @Schema(title = \"商品分类编号\")\n    private Long productCategoryId;\n    @Schema(title = \"商品品牌编号\")\n    private Long brandId;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/PmsProductResult.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\n/**\n * 查询单个产品进行修改时返回的结果\n * Created by macro on 2018/4/26.\n */\npublic class PmsProductResult extends PmsProductParam {\n    @Getter\n    @Setter\n    @Schema(title = \"商品所选分类的父id\")\n    private Long cateParentId;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/ProductAttrInfo.java",
    "content": "package com.macro.mall.dto;\n\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\n/**\n * 商品分类对应属性信息\n * Created by macro on 2018/5/23.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class ProductAttrInfo {\n    @Schema(title = \"商品属性ID\")\n    private Long attributeId;\n    @Schema(title = \"商品属性分类ID\")\n    private Long attributeCategoryId;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/SmsCouponParam.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.model.SmsCoupon;\nimport com.macro.mall.model.SmsCouponProductCategoryRelation;\nimport com.macro.mall.model.SmsCouponProductRelation;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.util.List;\n\n/**\n * 优惠券信息封装，包括绑定商品和绑定分类\n * Created by macro on 2018/8/28.\n */\npublic class SmsCouponParam extends SmsCoupon {\n    @Getter\n    @Setter\n    @Schema(title = \"优惠券绑定的商品\")\n    private List<SmsCouponProductRelation> productRelationList;\n    @Getter\n    @Setter\n    @Schema(title = \"优惠券绑定的商品分类\")\n    private List<SmsCouponProductCategoryRelation> productCategoryRelationList;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/SmsFlashPromotionProduct.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.model.SmsFlashPromotionProductRelation;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\n/**\n * 限时购及商品信息封装\n * Created by macro on 2018/11/16.\n */\npublic class SmsFlashPromotionProduct extends SmsFlashPromotionProductRelation{\n    @Getter\n    @Setter\n    @Schema(title = \"关联商品\")\n    private PmsProduct product;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/SmsFlashPromotionSessionDetail.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.model.SmsFlashPromotionSession;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\n/**\n * 包含商品数量的场次信息\n * Created by macro on 2018/11/19.\n */\npublic class SmsFlashPromotionSessionDetail extends SmsFlashPromotionSession {\n    @Setter\n    @Getter\n    @Schema(title = \"商品数量\")\n    private Long productCount;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/UmsAdminLoginParam.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\nimport jakarta.validation.constraints.NotEmpty;\n\n/**\n * 用户登录参数\n * Created by macro on 2018/4/26.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class UmsAdminLoginParam {\n    @NotEmpty\n    @Schema(title = \"用户名\", required = true)\n    private String username;\n    @NotEmpty\n    @Schema(title = \"密码\", required = true)\n    private String password;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/UmsAdminParam.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport jakarta.validation.constraints.Email;\nimport jakarta.validation.constraints.NotEmpty;\n\n/**\n * 用户登录参数\n * Created by macro on 2018/4/26.\n */\n@Getter\n@Setter\npublic class UmsAdminParam {\n    @Schema(title = \"用户名\", required = true)\n    @NotEmpty\n    private String username;\n    @Schema(title = \"密码\", required = true)\n    @NotEmpty\n    private String password;\n    @Schema(title = \"用户头像\")\n    private String icon;\n    @Schema(title = \"邮箱\")\n    @Email\n    private String email;\n    @Schema(title = \"用户昵称\")\n    private String nickName;\n    @Schema(title = \"备注\")\n    private String note;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/UmsMenuNode.java",
    "content": "package com.macro.mall.dto;\n\nimport com.macro.mall.model.UmsMenu;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.util.List;\n\n/**\n * 后台菜单节点封装\n * Created by macro on 2020/2/4.\n */\n@Getter\n@Setter\npublic class UmsMenuNode extends UmsMenu {\n    @Schema(title = \"子级菜单\")\n    private List<UmsMenuNode> children;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/dto/UpdateAdminPasswordParam.java",
    "content": "package com.macro.mall.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport jakarta.validation.constraints.NotEmpty;\n\n/**\n * 修改用户名密码参数\n * Created by macro on 2019/10/9.\n */\n@Getter\n@Setter\npublic class UpdateAdminPasswordParam {\n    @NotEmpty\n    @Schema(title = \"用户名\", required = true)\n    private String username;\n    @NotEmpty\n    @Schema(title = \"旧密码\", required = true)\n    private String oldPassword;\n    @NotEmpty\n    @Schema(title = \"新密码\", required = true)\n    private String newPassword;\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/CmsPrefrenceAreaService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.CmsPrefrenceArea;\n\nimport java.util.List;\n\n/**\n * 商品优选管理Service\n * Created by macro on 2018/6/1.\n */\npublic interface CmsPrefrenceAreaService {\n    /**\n     * 获取所有优选专区\n     */\n    List<CmsPrefrenceArea> listAll();\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/CmsSubjectService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.CmsSubject;\n\nimport java.util.List;\n\n/**\n * 商品专题管理Service\n * Created by macro on 2018/6/1.\n */\npublic interface CmsSubjectService {\n    /**\n     * 查询所有专题\n     */\n    List<CmsSubject> listAll();\n\n    /**\n     * 分页查询专题\n     */\n    List<CmsSubject> list(String keyword, Integer pageNum, Integer pageSize);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/OmsCompanyAddressService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.OmsCompanyAddress;\n\nimport java.util.List;\n\n/**\n * 收货地址管Service\n * Created by macro on 2018/10/18.\n */\npublic interface OmsCompanyAddressService {\n    /**\n     * 获取全部收货地址\n     */\n    List<OmsCompanyAddress> list();\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/OmsOrderReturnApplyService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.OmsOrderReturnApplyResult;\nimport com.macro.mall.dto.OmsReturnApplyQueryParam;\nimport com.macro.mall.dto.OmsUpdateStatusParam;\nimport com.macro.mall.model.OmsOrderReturnApply;\n\nimport java.util.List;\n\n/**\n * 退货申请管理Service\n * Created by macro on 2018/10/18.\n */\npublic interface OmsOrderReturnApplyService {\n    /**\n     * 分页查询申请\n     */\n    List<OmsOrderReturnApply> list(OmsReturnApplyQueryParam queryParam, Integer pageSize, Integer pageNum);\n\n    /**\n     * 批量删除申请\n     */\n    int delete(List<Long> ids);\n\n    /**\n     * 修改申请状态\n     */\n    int updateStatus(Long id, OmsUpdateStatusParam statusParam);\n\n    /**\n     * 获取指定申请详情\n     */\n    OmsOrderReturnApplyResult getItem(Long id);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/OmsOrderReturnReasonService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.OmsOrderReturnReason;\n\nimport java.util.List;\n\n/**\n * 订单原因管理Service\n * Created by macro on 2018/10/17.\n */\npublic interface OmsOrderReturnReasonService {\n    /**\n     * 添加订单原因\n     */\n    int create(OmsOrderReturnReason returnReason);\n\n    /**\n     * 修改退货原因\n     */\n    int update(Long id, OmsOrderReturnReason returnReason);\n\n    /**\n     * 批量删除退货原因\n     */\n    int delete(List<Long> ids);\n\n    /**\n     * 分页获取退货原因\n     */\n    List<OmsOrderReturnReason> list(Integer pageSize, Integer pageNum);\n\n    /**\n     * 批量修改退货原因状态\n     */\n    int updateStatus(List<Long> ids, Integer status);\n\n    /**\n     * 获取单个退货原因详情信息\n     */\n    OmsOrderReturnReason getItem(Long id);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/OmsOrderService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.*;\nimport com.macro.mall.model.OmsOrder;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 订单管理Service\n * Created by macro on 2018/10/11.\n */\npublic interface OmsOrderService {\n    /**\n     * 订单查询\n     */\n    List<OmsOrder> list(OmsOrderQueryParam queryParam, Integer pageSize, Integer pageNum);\n\n    /**\n     * 批量发货\n     */\n    @Transactional\n    int delivery(List<OmsOrderDeliveryParam> deliveryParamList);\n\n    /**\n     * 批量关闭订单\n     */\n    @Transactional\n    int close(List<Long> ids, String note);\n\n    /**\n     * 批量删除订单\n     */\n    int delete(List<Long> ids);\n\n    /**\n     * 获取指定订单详情\n     */\n    OmsOrderDetail detail(Long id);\n\n    /**\n     * 修改订单收货人信息\n     */\n    @Transactional\n    int updateReceiverInfo(OmsReceiverInfoParam receiverInfoParam);\n\n    /**\n     * 修改订单费用信息\n     */\n    @Transactional\n    int updateMoneyInfo(OmsMoneyInfoParam moneyInfoParam);\n\n    /**\n     * 修改订单备注\n     */\n    @Transactional\n    int updateNote(Long id, String note, Integer status);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/OmsOrderSettingService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.OmsOrderSetting;\n\n/**\n * 订单设置Service\n * Created by macro on 2018/10/16.\n */\npublic interface OmsOrderSettingService {\n    /**\n     * 获取指定订单设置\n     */\n    OmsOrderSetting getItem(Long id);\n\n    /**\n     * 修改指定订单设置\n     */\n    int update(Long id, OmsOrderSetting orderSetting);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/OssService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.OssCallbackResult;\nimport com.macro.mall.dto.OssPolicyResult;\n\nimport jakarta.servlet.http.HttpServletRequest;\n\n/**\n * oss上传管理Service\n * Created by macro on 2018/5/17.\n */\npublic interface OssService {\n    /**\n     * oss上传策略生成\n     */\n    OssPolicyResult policy();\n    /**\n     * oss上传成功回调\n     */\n    OssCallbackResult callback(HttpServletRequest request);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/PmsBrandService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.PmsBrandParam;\nimport com.macro.mall.model.PmsBrand;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 商品品牌Service\n * Created by macro on 2018/4/26.\n */\npublic interface PmsBrandService {\n    /**\n     * 获取所有品牌\n     */\n    List<PmsBrand> listAllBrand();\n\n    /**\n     * 创建品牌\n     */\n    int createBrand(PmsBrandParam pmsBrandParam);\n\n    /**\n     * 修改品牌\n     */\n    @Transactional\n    int updateBrand(Long id, PmsBrandParam pmsBrandParam);\n\n    /**\n     * 删除品牌\n     */\n    int deleteBrand(Long id);\n\n    /**\n     * 批量删除品牌\n     */\n    int deleteBrand(List<Long> ids);\n\n    /**\n     * 分页查询品牌\n     */\n    List<PmsBrand> listBrand(String keyword, int pageNum, int pageSize);\n\n    /**\n     * 获取品牌\n     */\n    PmsBrand getBrand(Long id);\n\n    /**\n     * 修改显示状态\n     */\n    int updateShowStatus(List<Long> ids, Integer showStatus);\n\n    /**\n     * 修改厂家制造商状态\n     */\n    int updateFactoryStatus(List<Long> ids, Integer factoryStatus);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/PmsProductAttributeCategoryService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.PmsProductAttributeCategoryItem;\nimport com.macro.mall.model.PmsProductAttributeCategory;\n\nimport java.util.List;\n\n/**\n * 商品属性分类Service\n * Created by macro on 2018/4/26.\n */\npublic interface PmsProductAttributeCategoryService {\n    /**\n     * 创建属性分类\n     */\n    int create(String name);\n\n    /**\n     * 修改属性分类\n     */\n    int update(Long id, String name);\n\n    /**\n     * 删除属性分类\n     */\n    int delete(Long id);\n\n    /**\n     * 获取属性分类详情\n     */\n    PmsProductAttributeCategory getItem(Long id);\n\n    /**\n     * 分页查询属性分类\n     */\n    List<PmsProductAttributeCategory> getList(Integer pageSize, Integer pageNum);\n\n    /**\n     * 获取包含属性的属性分类\n     */\n    List<PmsProductAttributeCategoryItem> getListWithAttr();\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/PmsProductAttributeService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.PmsProductAttributeParam;\nimport com.macro.mall.dto.ProductAttrInfo;\nimport com.macro.mall.model.PmsProductAttribute;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 商品属性Service\n * Created by macro on 2018/4/26.\n */\npublic interface PmsProductAttributeService {\n    /**\n     * 根据分类分页获取商品属性\n     * @param cid 分类id\n     * @param type 0->属性；2->参数\n     */\n    List<PmsProductAttribute> getList(Long cid, Integer type, Integer pageSize, Integer pageNum);\n\n    /**\n     * 添加商品属性\n     */\n    @Transactional\n    int create(PmsProductAttributeParam pmsProductAttributeParam);\n\n    /**\n     * 修改商品属性\n     */\n    int update(Long id, PmsProductAttributeParam productAttributeParam);\n\n    /**\n     * 获取单个商品属性信息\n     */\n    PmsProductAttribute getItem(Long id);\n\n    @Transactional\n    int delete(List<Long> ids);\n\n    List<ProductAttrInfo> getProductAttrInfo(Long productCategoryId);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/PmsProductCategoryService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.PmsProductCategoryParam;\nimport com.macro.mall.dto.PmsProductCategoryWithChildrenItem;\nimport com.macro.mall.model.PmsProductCategory;\nimport org.springframework.transaction.annotation.Isolation;\nimport org.springframework.transaction.annotation.Propagation;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 商品分类Service\n * Created by macro on 2018/4/26.\n */\npublic interface PmsProductCategoryService {\n    /**\n     * 创建商品分类\n     */\n    @Transactional\n    int create(PmsProductCategoryParam pmsProductCategoryParam);\n\n    /**\n     * 修改商品分类\n     */\n    @Transactional\n    int update(Long id, PmsProductCategoryParam pmsProductCategoryParam);\n\n    /**\n     * 分页获取商品分类\n     */\n    List<PmsProductCategory> getList(Long parentId, Integer pageSize, Integer pageNum);\n\n    /**\n     * 删除商品分类\n     */\n    int delete(Long id);\n\n    /**\n     * 根据ID获取商品分类\n     */\n    PmsProductCategory getItem(Long id);\n\n    /**\n     * 批量修改导航状态\n     */\n    int updateNavStatus(List<Long> ids, Integer navStatus);\n\n    /**\n     * 批量修改显示状态\n     */\n    int updateShowStatus(List<Long> ids, Integer showStatus);\n\n    /**\n     * 以层级形式获取商品分类\n     */\n    List<PmsProductCategoryWithChildrenItem> listWithChildren();\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/PmsProductService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.PmsProductParam;\nimport com.macro.mall.dto.PmsProductQueryParam;\nimport com.macro.mall.dto.PmsProductResult;\nimport com.macro.mall.model.PmsProduct;\nimport org.springframework.transaction.annotation.Isolation;\nimport org.springframework.transaction.annotation.Propagation;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 商品管理Service\n * Created by macro on 2018/4/26.\n */\npublic interface PmsProductService {\n    /**\n     * 创建商品\n     */\n    @Transactional(isolation = Isolation.DEFAULT,propagation = Propagation.REQUIRED)\n    int create(PmsProductParam productParam);\n\n    /**\n     * 根据商品编号获取更新信息\n     */\n    PmsProductResult getUpdateInfo(Long id);\n\n    /**\n     * 更新商品\n     */\n    @Transactional\n    int update(Long id, PmsProductParam productParam);\n\n    /**\n     * 分页查询商品\n     */\n    List<PmsProduct> list(PmsProductQueryParam productQueryParam, Integer pageSize, Integer pageNum);\n\n    /**\n     * 批量修改审核状态\n     * @param ids 产品id\n     * @param verifyStatus 审核状态\n     * @param detail 审核详情\n     */\n    @Transactional\n    int updateVerifyStatus(List<Long> ids, Integer verifyStatus, String detail);\n\n    /**\n     * 批量修改商品上架状态\n     */\n    int updatePublishStatus(List<Long> ids, Integer publishStatus);\n\n    /**\n     * 批量修改商品推荐状态\n     */\n    int updateRecommendStatus(List<Long> ids, Integer recommendStatus);\n\n    /**\n     * 批量修改新品状态\n     */\n    int updateNewStatus(List<Long> ids, Integer newStatus);\n\n    /**\n     * 批量删除商品\n     */\n    int updateDeleteStatus(List<Long> ids, Integer deleteStatus);\n\n    /**\n     * 根据商品名称或者货号模糊查询\n     */\n    List<PmsProduct> list(String keyword);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/PmsSkuStockService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.PmsSkuStock;\n\nimport java.util.List;\n\n/**\n * sku商品库存管理Service\n * Created by macro on 2018/4/27.\n */\npublic interface PmsSkuStockService {\n    /**\n     * 根据产品id和skuCode模糊搜索\n     */\n    List<PmsSkuStock> getList(Long pid, String keyword);\n\n    /**\n     * 批量更新商品库存信息\n     */\n    int update(Long pid, List<PmsSkuStock> skuStockList);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/SmsCouponHistoryService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.SmsCouponHistory;\n\nimport java.util.List;\n\n/**\n * 优惠券领取记录管理Service\n * Created by macro on 2018/11/6.\n */\npublic interface SmsCouponHistoryService {\n    /**\n     * 分页查询优惠券领取记录\n     * @param couponId 优惠券id\n     * @param useStatus 使用状态\n     * @param orderSn 使用订单号码\n     */\n    List<SmsCouponHistory> list(Long couponId, Integer useStatus, String orderSn, Integer pageSize, Integer pageNum);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/SmsCouponService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.SmsCouponParam;\nimport com.macro.mall.model.SmsCoupon;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 优惠券管理Service\n * Created by macro on 2018/8/28.\n */\npublic interface SmsCouponService {\n    /**\n     * 添加优惠券\n     */\n    @Transactional\n    int create(SmsCouponParam couponParam);\n\n    /**\n     * 根据优惠券id删除优惠券\n     */\n    @Transactional\n    int delete(Long id);\n\n    /**\n     * 根据优惠券id更新优惠券信息\n     */\n    @Transactional\n    int update(Long id, SmsCouponParam couponParam);\n\n    /**\n     * 分页获取优惠券列表\n     */\n    List<SmsCoupon> list(String name, Integer type, Integer pageSize, Integer pageNum);\n\n    /**\n     * 获取优惠券详情\n     * @param id 优惠券表id\n     */\n    SmsCouponParam getItem(Long id);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/SmsFlashPromotionProductRelationService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.SmsFlashPromotionProduct;\nimport com.macro.mall.model.SmsFlashPromotionProductRelation;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 限时购商品关联管理Service\n * Created by macro on 2018/11/16.\n */\npublic interface SmsFlashPromotionProductRelationService {\n    /**\n     * 批量添加关联\n     */\n    @Transactional\n    int create(List<SmsFlashPromotionProductRelation> relationList);\n\n    /**\n     * 修改关联相关信息\n     */\n    int update(Long id, SmsFlashPromotionProductRelation relation);\n\n    /**\n     * 删除关联\n     */\n    int delete(Long id);\n\n    /**\n     * 获取关联详情\n     */\n    SmsFlashPromotionProductRelation getItem(Long id);\n\n    /**\n     * 分页查询相关商品及促销信息\n     *\n     * @param flashPromotionId        限时购id\n     * @param flashPromotionSessionId 限时购场次id\n     */\n    List<SmsFlashPromotionProduct> list(Long flashPromotionId, Long flashPromotionSessionId, Integer pageSize, Integer pageNum);\n\n    /**\n     * 根据活动和场次id获取商品关系数量\n     * @param flashPromotionId\n     * @param flashPromotionSessionId\n     * @return\n     */\n    long getCount(Long flashPromotionId,Long flashPromotionSessionId);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/SmsFlashPromotionService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.SmsFlashPromotion;\n\nimport java.util.List;\n\n/**\n * 限时购活动管理Service\n * Created by macro on 2018/11/16.\n */\npublic interface SmsFlashPromotionService {\n    /**\n     * 添加活动\n     */\n    int create(SmsFlashPromotion flashPromotion);\n\n    /**\n     * 修改指定活动\n     */\n    int update(Long id, SmsFlashPromotion flashPromotion);\n\n    /**\n     * 删除单个活动\n     */\n    int delete(Long id);\n\n    /**\n     * 修改上下线状态\n     */\n    int updateStatus(Long id, Integer status);\n\n    /**\n     * 获取详细信息\n     */\n    SmsFlashPromotion getItem(Long id);\n\n    /**\n     * 分页查询活动\n     */\n    List<SmsFlashPromotion> list(String keyword, Integer pageSize, Integer pageNum);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/SmsFlashPromotionSessionService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.SmsFlashPromotionSessionDetail;\nimport com.macro.mall.model.SmsFlashPromotionSession;\n\nimport java.util.List;\n\n/**\n * 限时购场次管理Service\n * Created by macro on 2018/11/16.\n */\npublic interface SmsFlashPromotionSessionService {\n    /**\n     * 添加场次\n     */\n    int create(SmsFlashPromotionSession promotionSession);\n\n    /**\n     * 修改场次\n     */\n    int update(Long id, SmsFlashPromotionSession promotionSession);\n\n    /**\n     * 修改场次启用状态\n     */\n    int updateStatus(Long id, Integer status);\n\n    /**\n     * 删除场次\n     */\n    int delete(Long id);\n\n    /**\n     * 获取详情\n     */\n    SmsFlashPromotionSession getItem(Long id);\n\n    /**\n     * 根据启用状态获取场次列表\n     */\n    List<SmsFlashPromotionSession> list();\n\n    /**\n     * 获取全部可选场次及其数量\n     */\n    List<SmsFlashPromotionSessionDetail> selectList(Long flashPromotionId);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/SmsHomeAdvertiseService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.SmsHomeAdvertise;\n\nimport java.util.List;\n\n/**\n * 首页广告管理Service\n * Created by macro on 2018/11/7.\n */\npublic interface SmsHomeAdvertiseService {\n    /**\n     * 添加广告\n     */\n    int create(SmsHomeAdvertise advertise);\n\n    /**\n     * 批量删除广告\n     */\n    int delete(List<Long> ids);\n\n    /**\n     * 修改上、下线状态\n     */\n    int updateStatus(Long id, Integer status);\n\n    /**\n     * 获取广告详情\n     */\n    SmsHomeAdvertise getItem(Long id);\n\n    /**\n     * 更新广告\n     */\n    int update(Long id, SmsHomeAdvertise advertise);\n\n    /**\n     * 分页查询广告\n     */\n    List<SmsHomeAdvertise> list(String name, Integer type, String endTime, Integer pageSize, Integer pageNum);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/SmsHomeBrandService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.SmsHomeBrand;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 首页品牌管理Service\n * Created by macro on 2018/11/6.\n */\npublic interface SmsHomeBrandService {\n    /**\n     * 添加首页品牌推荐\n     */\n    @Transactional\n    int create(List<SmsHomeBrand> homeBrandList);\n\n    /**\n     * 修改品牌推荐排序\n     */\n    int updateSort(Long id, Integer sort);\n\n    /**\n     * 批量删除品牌推荐\n     */\n    int delete(List<Long> ids);\n\n    /**\n     * 更新推荐状态\n     */\n    int updateRecommendStatus(List<Long> ids, Integer recommendStatus);\n\n    /**\n     * 分页查询品牌推荐\n     */\n    List<SmsHomeBrand> list(String brandName, Integer recommendStatus, Integer pageSize, Integer pageNum);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/SmsHomeNewProductService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.SmsHomeNewProduct;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 首页新品管理Service\n * Created by macro on 2018/11/6.\n */\npublic interface SmsHomeNewProductService {\n    /**\n     * 添加首页推荐\n     */\n    @Transactional\n    int create(List<SmsHomeNewProduct> homeNewProductList);\n\n    /**\n     * 修改推荐排序\n     */\n    int updateSort(Long id, Integer sort);\n\n    /**\n     * 批量删除推荐\n     */\n    int delete(List<Long> ids);\n\n    /**\n     * 更新推荐状态\n     */\n    int updateRecommendStatus(List<Long> ids, Integer recommendStatus);\n\n    /**\n     * 分页查询推荐\n     */\n    List<SmsHomeNewProduct> list(String productName, Integer recommendStatus, Integer pageSize, Integer pageNum);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/SmsHomeRecommendProductService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.SmsHomeRecommendProduct;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 首页人气推荐管理Service\n * Created by macro on 2018/11/7.\n */\npublic interface SmsHomeRecommendProductService {\n    /**\n     * 添加首页推荐\n     */\n    @Transactional\n    int create(List<SmsHomeRecommendProduct> homeRecommendProductList);\n\n    /**\n     * 修改推荐排序\n     */\n    int updateSort(Long id, Integer sort);\n\n    /**\n     * 批量删除推荐\n     */\n    int delete(List<Long> ids);\n\n    /**\n     * 更新推荐状态\n     */\n    int updateRecommendStatus(List<Long> ids, Integer recommendStatus);\n\n    /**\n     * 分页查询推荐\n     */\n    List<SmsHomeRecommendProduct> list(String productName, Integer recommendStatus, Integer pageSize, Integer pageNum);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/SmsHomeRecommendSubjectService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.SmsHomeRecommendSubject;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 首页专题推荐管理Service\n * Created by macro on 2018/11/7.\n */\npublic interface SmsHomeRecommendSubjectService {\n    /**\n     * 添加首页推荐\n     */\n    @Transactional\n    int create(List<SmsHomeRecommendSubject> recommendSubjectList);\n\n    /**\n     * 修改推荐排序\n     */\n    int updateSort(Long id, Integer sort);\n\n    /**\n     * 批量删除推荐\n     */\n    int delete(List<Long> ids);\n\n    /**\n     * 更新推荐状态\n     */\n    int updateRecommendStatus(List<Long> ids, Integer recommendStatus);\n\n    /**\n     * 分页查询推荐\n     */\n    List<SmsHomeRecommendSubject> list(String subjectName, Integer recommendStatus, Integer pageSize, Integer pageNum);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/UmsAdminCacheService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.UmsAdmin;\nimport com.macro.mall.model.UmsResource;\n\nimport java.util.List;\n\n/**\n * 后台用户缓存操作类\n * Created by macro on 2020/3/13.\n */\npublic interface UmsAdminCacheService {\n    /**\n     * 删除后台用户缓存\n     */\n    void delAdmin(Long adminId);\n\n    /**\n     * 获取缓存后台用户信息\n     */\n    UmsAdmin getAdmin(Long adminId);\n\n    /**\n     * 设置缓存后台用户信息\n     */\n    void setAdmin(UmsAdmin admin);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/UmsAdminService.java",
    "content": "package com.macro.mall.service;\n\nimport cn.dev33.satoken.stp.SaTokenInfo;\nimport com.macro.mall.dto.UmsAdminParam;\nimport com.macro.mall.dto.UpdateAdminPasswordParam;\nimport com.macro.mall.model.*;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 后台管理员Service\n * Created by macro on 2018/4/26.\n */\npublic interface UmsAdminService {\n    /**\n     * 根据用户名获取后台管理员\n     */\n    UmsAdmin getAdminByUsername(String username);\n\n    /**\n     * 注册功能\n     */\n    UmsAdmin register(UmsAdminParam umsAdminParam);\n\n    /**\n     * 登录功能\n     * @param username 用户名\n     * @param password 密码\n     */\n    SaTokenInfo login(String username, String password);\n\n    /**\n     * 根据用户id获取用户\n     */\n    UmsAdmin getItem(Long id);\n\n    /**\n     * 根据用户名或昵称分页查询用户\n     */\n    List<UmsAdmin> list(String keyword, Integer pageSize, Integer pageNum);\n\n    /**\n     * 修改指定用户信息\n     */\n    int update(Long id, UmsAdmin admin);\n\n    /**\n     * 删除指定用户\n     */\n    int delete(Long id);\n\n    /**\n     * 修改用户角色关系\n     */\n    @Transactional\n    int updateRole(Long adminId, List<Long> roleIds);\n\n    /**\n     * 获取用户对于角色\n     */\n    List<UmsRole> getRoleList(Long adminId);\n\n    /**\n     * 获取指定用户的可访问资源\n     */\n    List<UmsResource> getResourceList(Long adminId);\n\n    /**\n     * 修改密码\n     */\n    int updatePassword(UpdateAdminPasswordParam updatePasswordParam);\n\n    /**\n     * 获取当前登录后台用户\n     */\n    UmsAdmin getCurrentAdmin();\n\n    /**\n     * 登出操作\n     */\n    void logout();\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/UmsMemberLevelService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.UmsMemberLevel;\n\nimport java.util.List;\n\n/**\n * 会员等级管理Service\n * Created by macro on 2018/4/26.\n */\npublic interface UmsMemberLevelService {\n    /**\n     * 获取所有会员登录\n     * @param defaultStatus 是否为默认会员\n     */\n    List<UmsMemberLevel> list(Integer defaultStatus);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/UmsMenuService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.dto.UmsMenuNode;\nimport com.macro.mall.model.UmsMenu;\n\nimport java.util.List;\n\n/**\n * 后台菜单管理Service\n * Created by macro on 2020/2/2.\n */\npublic interface UmsMenuService {\n    /**\n     * 创建后台菜单\n     */\n    int create(UmsMenu umsMenu);\n\n    /**\n     * 修改后台菜单\n     */\n    int update(Long id, UmsMenu umsMenu);\n\n    /**\n     * 根据ID获取菜单详情\n     */\n    UmsMenu getItem(Long id);\n\n    /**\n     * 根据ID删除菜单\n     */\n    int delete(Long id);\n\n    /**\n     * 分页查询后台菜单\n     */\n    List<UmsMenu> list(Long parentId, Integer pageSize, Integer pageNum);\n\n    /**\n     * 树形结构返回所有菜单列表\n     */\n    List<UmsMenuNode> treeList();\n\n    /**\n     * 修改菜单显示状态\n     */\n    int updateHidden(Long id, Integer hidden);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/UmsResourceCategoryService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.UmsResourceCategory;\n\nimport java.util.List;\n\n/**\n * 后台资源分类管理Service\n * Created by macro on 2020/2/5.\n */\npublic interface UmsResourceCategoryService {\n\n    /**\n     * 获取所有资源分类\n     */\n    List<UmsResourceCategory> listAll();\n\n    /**\n     * 创建资源分类\n     */\n    int create(UmsResourceCategory umsResourceCategory);\n\n    /**\n     * 修改资源分类\n     */\n    int update(Long id, UmsResourceCategory umsResourceCategory);\n\n    /**\n     * 删除资源分类\n     */\n    int delete(Long id);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/UmsResourceService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.UmsResource;\n\nimport java.util.List;\nimport java.util.Map;\n\n/**\n * 后台资源管理Service\n * Created by macro on 2020/2/2.\n */\npublic interface UmsResourceService {\n    /**\n     * 添加资源\n     */\n    int create(UmsResource umsResource);\n\n    /**\n     * 修改资源\n     */\n    int update(Long id, UmsResource umsResource);\n\n    /**\n     * 获取资源详情\n     */\n    UmsResource getItem(Long id);\n\n    /**\n     * 删除资源\n     */\n    int delete(Long id);\n\n    /**\n     * 分页查询资源\n     */\n    List<UmsResource> list(Long categoryId, String nameKeyword, String urlKeyword, Integer pageSize, Integer pageNum);\n\n    /**\n     * 查询全部资源\n     */\n    List<UmsResource> listAll();\n\n    /**\n     * 初始化路径与资源访问规则\n     */\n    Map<String,String> initPathResourceMap();\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/UmsRoleService.java",
    "content": "package com.macro.mall.service;\n\nimport com.macro.mall.model.UmsMenu;\nimport com.macro.mall.model.UmsResource;\nimport com.macro.mall.model.UmsRole;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 后台角色管理Service\n * Created by macro on 2018/9/30.\n */\npublic interface UmsRoleService {\n    /**\n     * 添加角色\n     */\n    int create(UmsRole role);\n\n    /**\n     * 修改角色信息\n     */\n    int update(Long id, UmsRole role);\n\n    /**\n     * 批量删除角色\n     */\n    int delete(List<Long> ids);\n\n    /**\n     * 获取所有角色列表\n     */\n    List<UmsRole> list();\n\n    /**\n     * 分页获取角色列表\n     */\n    List<UmsRole> list(String keyword, Integer pageSize, Integer pageNum);\n\n    /**\n     * 根据管理员ID获取对应菜单\n     */\n    List<UmsMenu> getMenuList(Long adminId);\n\n    /**\n     * 获取角色相关菜单\n     */\n    List<UmsMenu> listMenu(Long roleId);\n\n    /**\n     * 获取角色相关资源\n     */\n    List<UmsResource> listResource(Long roleId);\n\n    /**\n     * 给角色分配菜单\n     */\n    @Transactional\n    int allocMenu(Long roleId, List<Long> menuIds);\n\n    /**\n     * 给角色分配资源\n     */\n    @Transactional\n    int allocResource(Long roleId, List<Long> resourceIds);\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/CmsPrefrenceAreaServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.macro.mall.mapper.CmsPrefrenceAreaMapper;\nimport com.macro.mall.model.CmsPrefrenceArea;\nimport com.macro.mall.model.CmsPrefrenceAreaExample;\nimport com.macro.mall.service.CmsPrefrenceAreaService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * 商品优选管理Service实现类\n * Created by macro on 2018/6/1.\n */\n@Service\npublic class CmsPrefrenceAreaServiceImpl implements CmsPrefrenceAreaService {\n    @Autowired\n    private CmsPrefrenceAreaMapper prefrenceAreaMapper;\n\n    @Override\n    public List<CmsPrefrenceArea> listAll() {\n        return prefrenceAreaMapper.selectByExample(new CmsPrefrenceAreaExample());\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/CmsSubjectServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.mapper.CmsSubjectMapper;\nimport com.macro.mall.model.CmsSubject;\nimport com.macro.mall.model.CmsSubjectExample;\nimport com.macro.mall.service.CmsSubjectService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.util.List;\n\n/**\n * 商品专题管理Service实现类\n * Created by macro on 2018/6/1.\n */\n@Service\npublic class CmsSubjectServiceImpl implements CmsSubjectService {\n    @Autowired\n    private CmsSubjectMapper subjectMapper;\n\n    @Override\n    public List<CmsSubject> listAll() {\n        return subjectMapper.selectByExample(new CmsSubjectExample());\n    }\n\n    @Override\n    public List<CmsSubject> list(String keyword, Integer pageNum, Integer pageSize) {\n        PageHelper.startPage(pageNum, pageSize);\n        CmsSubjectExample example = new CmsSubjectExample();\n        CmsSubjectExample.Criteria criteria = example.createCriteria();\n        if (!StringUtils.isEmpty(keyword)) {\n            criteria.andTitleLike(\"%\" + keyword + \"%\");\n        }\n        return subjectMapper.selectByExample(example);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/OmsCompanyAddressServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.macro.mall.mapper.OmsCompanyAddressMapper;\nimport com.macro.mall.model.OmsCompanyAddress;\nimport com.macro.mall.model.OmsCompanyAddressExample;\nimport com.macro.mall.service.OmsCompanyAddressService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * 收货地址管理Service实现类\n * Created by macro on 2018/10/18.\n */\n@Service\npublic class OmsCompanyAddressServiceImpl implements OmsCompanyAddressService {\n    @Autowired\n    private OmsCompanyAddressMapper companyAddressMapper;\n    @Override\n    public List<OmsCompanyAddress> list() {\n        return companyAddressMapper.selectByExample(new OmsCompanyAddressExample());\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/OmsOrderReturnApplyServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.dao.OmsOrderReturnApplyDao;\nimport com.macro.mall.dto.OmsOrderReturnApplyResult;\nimport com.macro.mall.dto.OmsReturnApplyQueryParam;\nimport com.macro.mall.dto.OmsUpdateStatusParam;\nimport com.macro.mall.mapper.OmsOrderReturnApplyMapper;\nimport com.macro.mall.model.OmsOrderReturnApply;\nimport com.macro.mall.model.OmsOrderReturnApplyExample;\nimport com.macro.mall.service.OmsOrderReturnApplyService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * 订单退货管理Service\n * Created by macro on 2018/10/18.\n */\n@Service\npublic class OmsOrderReturnApplyServiceImpl implements OmsOrderReturnApplyService {\n    @Autowired\n    private OmsOrderReturnApplyDao returnApplyDao;\n    @Autowired\n    private OmsOrderReturnApplyMapper returnApplyMapper;\n    @Override\n    public List<OmsOrderReturnApply> list(OmsReturnApplyQueryParam queryParam, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum,pageSize);\n        return returnApplyDao.getList(queryParam);\n    }\n\n    @Override\n    public int delete(List<Long> ids) {\n        OmsOrderReturnApplyExample example = new OmsOrderReturnApplyExample();\n        example.createCriteria().andIdIn(ids).andStatusEqualTo(3);\n        return returnApplyMapper.deleteByExample(example);\n    }\n\n    @Override\n    public int updateStatus(Long id, OmsUpdateStatusParam statusParam) {\n        Integer status = statusParam.getStatus();\n        OmsOrderReturnApply returnApply = new OmsOrderReturnApply();\n        if(status.equals(1)){\n            //确认退货\n            returnApply.setId(id);\n            returnApply.setStatus(1);\n            returnApply.setReturnAmount(statusParam.getReturnAmount());\n            returnApply.setCompanyAddressId(statusParam.getCompanyAddressId());\n            returnApply.setHandleTime(new Date());\n            returnApply.setHandleMan(statusParam.getHandleMan());\n            returnApply.setHandleNote(statusParam.getHandleNote());\n        }else if(status.equals(2)){\n            //完成退货\n            returnApply.setId(id);\n            returnApply.setStatus(2);\n            returnApply.setReceiveTime(new Date());\n            returnApply.setReceiveMan(statusParam.getReceiveMan());\n            returnApply.setReceiveNote(statusParam.getReceiveNote());\n        }else if(status.equals(3)){\n            //拒绝退货\n            returnApply.setId(id);\n            returnApply.setStatus(3);\n            returnApply.setHandleTime(new Date());\n            returnApply.setHandleMan(statusParam.getHandleMan());\n            returnApply.setHandleNote(statusParam.getHandleNote());\n        }else{\n            return 0;\n        }\n        return returnApplyMapper.updateByPrimaryKeySelective(returnApply);\n    }\n\n    @Override\n    public OmsOrderReturnApplyResult getItem(Long id) {\n        return returnApplyDao.getDetail(id);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/OmsOrderReturnReasonServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.mapper.OmsOrderReturnReasonMapper;\nimport com.macro.mall.model.OmsOrderReturnReason;\nimport com.macro.mall.model.OmsOrderReturnReasonExample;\nimport com.macro.mall.service.OmsOrderReturnReasonService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * 订单原因管理Service实现类\n * Created by macro on 2018/10/17.\n */\n@Service\npublic class OmsOrderReturnReasonServiceImpl implements OmsOrderReturnReasonService {\n    @Autowired\n    private OmsOrderReturnReasonMapper returnReasonMapper;\n    @Override\n    public int create(OmsOrderReturnReason returnReason) {\n        returnReason.setCreateTime(new Date());\n        return returnReasonMapper.insert(returnReason);\n    }\n\n    @Override\n    public int update(Long id, OmsOrderReturnReason returnReason) {\n        returnReason.setId(id);\n        return returnReasonMapper.updateByPrimaryKey(returnReason);\n    }\n\n    @Override\n    public int delete(List<Long> ids) {\n        OmsOrderReturnReasonExample example = new OmsOrderReturnReasonExample();\n        example.createCriteria().andIdIn(ids);\n        return returnReasonMapper.deleteByExample(example);\n    }\n\n    @Override\n    public List<OmsOrderReturnReason> list(Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum,pageSize);\n        OmsOrderReturnReasonExample example = new OmsOrderReturnReasonExample();\n        example.setOrderByClause(\"sort desc\");\n        return returnReasonMapper.selectByExample(example);\n    }\n\n    @Override\n    public int updateStatus(List<Long> ids, Integer status) {\n        if(!status.equals(0)&&!status.equals(1)){\n            return 0;\n        }\n        OmsOrderReturnReason record = new OmsOrderReturnReason();\n        record.setStatus(status);\n        OmsOrderReturnReasonExample example = new OmsOrderReturnReasonExample();\n        example.createCriteria().andIdIn(ids);\n        return returnReasonMapper.updateByExampleSelective(record,example);\n    }\n\n    @Override\n    public OmsOrderReturnReason getItem(Long id) {\n        return returnReasonMapper.selectByPrimaryKey(id);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/OmsOrderServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.dao.OmsOrderDao;\nimport com.macro.mall.dao.OmsOrderOperateHistoryDao;\nimport com.macro.mall.dto.*;\nimport com.macro.mall.mapper.OmsOrderMapper;\nimport com.macro.mall.mapper.OmsOrderOperateHistoryMapper;\nimport com.macro.mall.model.OmsOrder;\nimport com.macro.mall.model.OmsOrderExample;\nimport com.macro.mall.model.OmsOrderOperateHistory;\nimport com.macro.mall.service.OmsOrderService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.Date;\nimport java.util.List;\nimport java.util.stream.Collectors;\n\n/**\n * 订单管理Service实现类\n * Created by macro on 2018/10/11.\n */\n@Service\npublic class OmsOrderServiceImpl implements OmsOrderService {\n    @Autowired\n    private OmsOrderMapper orderMapper;\n    @Autowired\n    private OmsOrderDao orderDao;\n    @Autowired\n    private OmsOrderOperateHistoryDao orderOperateHistoryDao;\n    @Autowired\n    private OmsOrderOperateHistoryMapper orderOperateHistoryMapper;\n\n    @Override\n    public List<OmsOrder> list(OmsOrderQueryParam queryParam, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum, pageSize);\n        return orderDao.getList(queryParam);\n    }\n\n    @Override\n    public int delivery(List<OmsOrderDeliveryParam> deliveryParamList) {\n        //批量发货\n        int count = orderDao.delivery(deliveryParamList);\n        //添加操作记录\n        List<OmsOrderOperateHistory> operateHistoryList = deliveryParamList.stream()\n                .map(omsOrderDeliveryParam -> {\n                    OmsOrderOperateHistory history = new OmsOrderOperateHistory();\n                    history.setOrderId(omsOrderDeliveryParam.getOrderId());\n                    history.setCreateTime(new Date());\n                    history.setOperateMan(\"后台管理员\");\n                    history.setOrderStatus(2);\n                    history.setNote(\"完成发货\");\n                    return history;\n                }).collect(Collectors.toList());\n        orderOperateHistoryDao.insertList(operateHistoryList);\n        return count;\n    }\n\n    @Override\n    public int close(List<Long> ids, String note) {\n        OmsOrder record = new OmsOrder();\n        record.setStatus(4);\n        OmsOrderExample example = new OmsOrderExample();\n        example.createCriteria().andDeleteStatusEqualTo(0).andIdIn(ids);\n        int count = orderMapper.updateByExampleSelective(record, example);\n        List<OmsOrderOperateHistory> historyList = ids.stream().map(orderId -> {\n            OmsOrderOperateHistory history = new OmsOrderOperateHistory();\n            history.setOrderId(orderId);\n            history.setCreateTime(new Date());\n            history.setOperateMan(\"后台管理员\");\n            history.setOrderStatus(4);\n            history.setNote(\"订单关闭:\"+note);\n            return history;\n        }).collect(Collectors.toList());\n        orderOperateHistoryDao.insertList(historyList);\n        return count;\n    }\n\n    @Override\n    public int delete(List<Long> ids) {\n        OmsOrder record = new OmsOrder();\n        record.setDeleteStatus(1);\n        OmsOrderExample example = new OmsOrderExample();\n        example.createCriteria().andDeleteStatusEqualTo(0).andIdIn(ids);\n        return orderMapper.updateByExampleSelective(record, example);\n    }\n\n    @Override\n    public OmsOrderDetail detail(Long id) {\n        return orderDao.getDetail(id);\n    }\n\n    @Override\n    public int updateReceiverInfo(OmsReceiverInfoParam receiverInfoParam) {\n        OmsOrder order = new OmsOrder();\n        order.setId(receiverInfoParam.getOrderId());\n        order.setReceiverName(receiverInfoParam.getReceiverName());\n        order.setReceiverPhone(receiverInfoParam.getReceiverPhone());\n        order.setReceiverPostCode(receiverInfoParam.getReceiverPostCode());\n        order.setReceiverDetailAddress(receiverInfoParam.getReceiverDetailAddress());\n        order.setReceiverProvince(receiverInfoParam.getReceiverProvince());\n        order.setReceiverCity(receiverInfoParam.getReceiverCity());\n        order.setReceiverRegion(receiverInfoParam.getReceiverRegion());\n        order.setModifyTime(new Date());\n        int count = orderMapper.updateByPrimaryKeySelective(order);\n        //插入操作记录\n        OmsOrderOperateHistory history = new OmsOrderOperateHistory();\n        history.setOrderId(receiverInfoParam.getOrderId());\n        history.setCreateTime(new Date());\n        history.setOperateMan(\"后台管理员\");\n        history.setOrderStatus(receiverInfoParam.getStatus());\n        history.setNote(\"修改收货人信息\");\n        orderOperateHistoryMapper.insert(history);\n        return count;\n    }\n\n    @Override\n    public int updateMoneyInfo(OmsMoneyInfoParam moneyInfoParam) {\n        OmsOrder order = new OmsOrder();\n        order.setId(moneyInfoParam.getOrderId());\n        order.setFreightAmount(moneyInfoParam.getFreightAmount());\n        order.setDiscountAmount(moneyInfoParam.getDiscountAmount());\n        order.setModifyTime(new Date());\n        int count = orderMapper.updateByPrimaryKeySelective(order);\n        //插入操作记录\n        OmsOrderOperateHistory history = new OmsOrderOperateHistory();\n        history.setOrderId(moneyInfoParam.getOrderId());\n        history.setCreateTime(new Date());\n        history.setOperateMan(\"后台管理员\");\n        history.setOrderStatus(moneyInfoParam.getStatus());\n        history.setNote(\"修改费用信息\");\n        orderOperateHistoryMapper.insert(history);\n        return count;\n    }\n\n    @Override\n    public int updateNote(Long id, String note, Integer status) {\n        OmsOrder order = new OmsOrder();\n        order.setId(id);\n        order.setNote(note);\n        order.setModifyTime(new Date());\n        int count = orderMapper.updateByPrimaryKeySelective(order);\n        OmsOrderOperateHistory history = new OmsOrderOperateHistory();\n        history.setOrderId(id);\n        history.setCreateTime(new Date());\n        history.setOperateMan(\"后台管理员\");\n        history.setOrderStatus(status);\n        history.setNote(\"修改备注信息：\"+note);\n        orderOperateHistoryMapper.insert(history);\n        return count;\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/OmsOrderSettingServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.macro.mall.mapper.OmsOrderSettingMapper;\nimport com.macro.mall.model.OmsOrderSetting;\nimport com.macro.mall.service.OmsOrderSettingService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\n/**\n * 订单设置管理Service实现类\n * Created by macro on 2018/10/16.\n */\n@Service\npublic class OmsOrderSettingServiceImpl implements OmsOrderSettingService {\n    @Autowired\n    private OmsOrderSettingMapper orderSettingMapper;\n\n    @Override\n    public OmsOrderSetting getItem(Long id) {\n        return orderSettingMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public int update(Long id, OmsOrderSetting orderSetting) {\n        orderSetting.setId(id);\n        return orderSettingMapper.updateByPrimaryKey(orderSetting);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/OssServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport cn.hutool.json.JSONUtil;\nimport com.aliyun.oss.OSSClient;\nimport com.aliyun.oss.common.utils.BinaryUtil;\nimport com.aliyun.oss.model.MatchMode;\nimport com.aliyun.oss.model.PolicyConditions;\nimport com.macro.mall.dto.OssCallbackParam;\nimport com.macro.mall.dto.OssCallbackResult;\nimport com.macro.mall.dto.OssPolicyResult;\nimport com.macro.mall.service.OssService;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.stereotype.Service;\n\nimport jakarta.servlet.http.HttpServletRequest;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\n\n/**\n * oss上传管理Service实现类\n * Created by macro on 2018/5/17.\n */\n@Service\npublic class OssServiceImpl implements OssService {\n\n\tprivate static final Logger LOGGER = LoggerFactory.getLogger(OssServiceImpl.class);\n\t@Value(\"${aliyun.oss.policy.expire}\")\n\tprivate int ALIYUN_OSS_EXPIRE;\n\t@Value(\"${aliyun.oss.maxSize}\")\n\tprivate int ALIYUN_OSS_MAX_SIZE;\n\t@Value(\"${aliyun.oss.callback}\")\n\tprivate String ALIYUN_OSS_CALLBACK;\n\t@Value(\"${aliyun.oss.bucketName}\")\n\tprivate String ALIYUN_OSS_BUCKET_NAME;\n\t@Value(\"${aliyun.oss.endpoint}\")\n\tprivate String ALIYUN_OSS_ENDPOINT;\n\t@Value(\"${aliyun.oss.dir.prefix}\")\n\tprivate String ALIYUN_OSS_DIR_PREFIX;\n\n\t@Autowired\n\tprivate OSSClient ossClient;\n\n\t/**\n\t * 签名生成\n\t */\n\t@Override\n\tpublic OssPolicyResult policy() {\n\t\tOssPolicyResult result = new OssPolicyResult();\n\t\t// 存储目录\n\t\tSimpleDateFormat sdf = new SimpleDateFormat(\"yyyyMMdd\");\n\t\tString dir = ALIYUN_OSS_DIR_PREFIX+sdf.format(new Date());\n\t\t// 签名有效期\n\t\tlong expireEndTime = System.currentTimeMillis() + ALIYUN_OSS_EXPIRE * 1000;\n\t\tDate expiration = new Date(expireEndTime);\n\t\t// 文件大小\n\t\tlong maxSize = ALIYUN_OSS_MAX_SIZE * 1024 * 1024;\n\t\t// 回调\n\t\tOssCallbackParam callback = new OssCallbackParam();\n\t\tcallback.setCallbackUrl(ALIYUN_OSS_CALLBACK);\n\t\tcallback.setCallbackBody(\"filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}\");\n\t\tcallback.setCallbackBodyType(\"application/x-www-form-urlencoded\");\n\t\t// 提交节点\n\t\tString action = \"http://\" + ALIYUN_OSS_BUCKET_NAME + \".\" + ALIYUN_OSS_ENDPOINT;\n\t\ttry {\n\t\t\tPolicyConditions policyConds = new PolicyConditions();\n\t\t\tpolicyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, maxSize);\n\t\t\tpolicyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir);\n\t\t\tString postPolicy = ossClient.generatePostPolicy(expiration, policyConds);\n\t\t\tbyte[] binaryData = postPolicy.getBytes(\"utf-8\");\n\t\t\tString policy = BinaryUtil.toBase64String(binaryData);\n\t\t\tString signature = ossClient.calculatePostSignature(postPolicy);\n\t\t\tString callbackData = BinaryUtil.toBase64String(JSONUtil.parse(callback).toString().getBytes(\"utf-8\"));\n\t\t\t// 返回结果\n\t\t\tresult.setAccessKeyId(ossClient.getCredentialsProvider().getCredentials().getAccessKeyId());\n\t\t\tresult.setPolicy(policy);\n\t\t\tresult.setSignature(signature);\n\t\t\tresult.setDir(dir);\n\t\t\tresult.setCallback(callbackData);\n\t\t\tresult.setHost(action);\n\t\t} catch (Exception e) {\n\t\t\tLOGGER.error(\"签名生成失败\", e);\n\t\t}\n\t\treturn result;\n\t}\n\n\t@Override\n\tpublic OssCallbackResult callback(HttpServletRequest request) {\n\t\tOssCallbackResult result= new OssCallbackResult();\n\t\tString filename = request.getParameter(\"filename\");\n\t\tfilename = \"http://\".concat(ALIYUN_OSS_BUCKET_NAME).concat(\".\").concat(ALIYUN_OSS_ENDPOINT).concat(\"/\").concat(filename);\n\t\tresult.setFilename(filename);\n\t\tresult.setSize(request.getParameter(\"size\"));\n\t\tresult.setMimeType(request.getParameter(\"mimeType\"));\n\t\tresult.setWidth(request.getParameter(\"width\"));\n\t\tresult.setHeight(request.getParameter(\"height\"));\n\t\treturn result;\n\t}\n\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/PmsBrandServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.dto.PmsBrandParam;\nimport com.macro.mall.mapper.PmsBrandMapper;\nimport com.macro.mall.mapper.PmsProductMapper;\nimport com.macro.mall.model.PmsBrand;\nimport com.macro.mall.model.PmsBrandExample;\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.model.PmsProductExample;\nimport com.macro.mall.service.PmsBrandService;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.util.List;\n\n/**\n * 商品品牌Service实现类\n * Created by macro on 2018/4/26.\n */\n@Service\npublic class PmsBrandServiceImpl implements PmsBrandService {\n    @Autowired\n    private PmsBrandMapper brandMapper;\n    @Autowired\n    private PmsProductMapper productMapper;\n\n    @Override\n    public List<PmsBrand> listAllBrand() {\n        return brandMapper.selectByExample(new PmsBrandExample());\n    }\n\n    @Override\n    public int createBrand(PmsBrandParam pmsBrandParam) {\n        PmsBrand pmsBrand = new PmsBrand();\n        BeanUtils.copyProperties(pmsBrandParam, pmsBrand);\n        //如果创建时首字母为空，取名称的第一个为首字母\n        if (StringUtils.isEmpty(pmsBrand.getFirstLetter())) {\n            pmsBrand.setFirstLetter(pmsBrand.getName().substring(0, 1));\n        }\n        return brandMapper.insertSelective(pmsBrand);\n    }\n\n    @Override\n    public int updateBrand(Long id, PmsBrandParam pmsBrandParam) {\n        PmsBrand pmsBrand = new PmsBrand();\n        BeanUtils.copyProperties(pmsBrandParam, pmsBrand);\n        pmsBrand.setId(id);\n        //如果创建时首字母为空，取名称的第一个为首字母\n        if (StringUtils.isEmpty(pmsBrand.getFirstLetter())) {\n            pmsBrand.setFirstLetter(pmsBrand.getName().substring(0, 1));\n        }\n        //更新品牌时要更新商品中的品牌名称\n        PmsProduct product = new PmsProduct();\n        product.setBrandName(pmsBrand.getName());\n        PmsProductExample example = new PmsProductExample();\n        example.createCriteria().andBrandIdEqualTo(id);\n        productMapper.updateByExampleSelective(product,example);\n        return brandMapper.updateByPrimaryKeySelective(pmsBrand);\n    }\n\n    @Override\n    public int deleteBrand(Long id) {\n        return brandMapper.deleteByPrimaryKey(id);\n    }\n\n    @Override\n    public int deleteBrand(List<Long> ids) {\n        PmsBrandExample pmsBrandExample = new PmsBrandExample();\n        pmsBrandExample.createCriteria().andIdIn(ids);\n        return brandMapper.deleteByExample(pmsBrandExample);\n    }\n\n    @Override\n    public List<PmsBrand> listBrand(String keyword, int pageNum, int pageSize) {\n        PageHelper.startPage(pageNum, pageSize);\n        PmsBrandExample pmsBrandExample = new PmsBrandExample();\n        pmsBrandExample.setOrderByClause(\"sort desc\");\n        PmsBrandExample.Criteria criteria = pmsBrandExample.createCriteria();\n        if (!StringUtils.isEmpty(keyword)) {\n            criteria.andNameLike(\"%\" + keyword + \"%\");\n        }\n        return brandMapper.selectByExample(pmsBrandExample);\n    }\n\n    @Override\n    public PmsBrand getBrand(Long id) {\n        return brandMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public int updateShowStatus(List<Long> ids, Integer showStatus) {\n        PmsBrand pmsBrand = new PmsBrand();\n        pmsBrand.setShowStatus(showStatus);\n        PmsBrandExample pmsBrandExample = new PmsBrandExample();\n        pmsBrandExample.createCriteria().andIdIn(ids);\n        return brandMapper.updateByExampleSelective(pmsBrand, pmsBrandExample);\n    }\n\n    @Override\n    public int updateFactoryStatus(List<Long> ids, Integer factoryStatus) {\n        PmsBrand pmsBrand = new PmsBrand();\n        pmsBrand.setFactoryStatus(factoryStatus);\n        PmsBrandExample pmsBrandExample = new PmsBrandExample();\n        pmsBrandExample.createCriteria().andIdIn(ids);\n        return brandMapper.updateByExampleSelective(pmsBrand, pmsBrandExample);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/PmsProductAttributeCategoryServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.dao.PmsProductAttributeCategoryDao;\nimport com.macro.mall.dto.PmsProductAttributeCategoryItem;\nimport com.macro.mall.mapper.PmsProductAttributeCategoryMapper;\nimport com.macro.mall.model.PmsProductAttributeCategory;\nimport com.macro.mall.model.PmsProductAttributeCategoryExample;\nimport com.macro.mall.service.PmsProductAttributeCategoryService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * PmsProductAttributeCategoryService实现类\n * Created by macro on 2018/4/26.\n */\n@Service\npublic class PmsProductAttributeCategoryServiceImpl implements PmsProductAttributeCategoryService {\n    @Autowired\n    private PmsProductAttributeCategoryMapper productAttributeCategoryMapper;\n    @Autowired\n    private PmsProductAttributeCategoryDao productAttributeCategoryDao;\n\n    @Override\n    public int create(String name) {\n        PmsProductAttributeCategory productAttributeCategory = new PmsProductAttributeCategory();\n        productAttributeCategory.setName(name);\n        return productAttributeCategoryMapper.insertSelective(productAttributeCategory);\n    }\n\n    @Override\n    public int update(Long id, String name) {\n        PmsProductAttributeCategory productAttributeCategory = new PmsProductAttributeCategory();\n        productAttributeCategory.setName(name);\n        productAttributeCategory.setId(id);\n        return productAttributeCategoryMapper.updateByPrimaryKeySelective(productAttributeCategory);\n    }\n\n    @Override\n    public int delete(Long id) {\n        return productAttributeCategoryMapper.deleteByPrimaryKey(id);\n    }\n\n    @Override\n    public PmsProductAttributeCategory getItem(Long id) {\n        return productAttributeCategoryMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public List<PmsProductAttributeCategory> getList(Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum,pageSize);\n        return productAttributeCategoryMapper.selectByExample(new PmsProductAttributeCategoryExample());\n    }\n\n    @Override\n    public List<PmsProductAttributeCategoryItem> getListWithAttr() {\n        return productAttributeCategoryDao.getListWithAttr();\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/PmsProductAttributeServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.dao.PmsProductAttributeDao;\nimport com.macro.mall.dto.PmsProductAttributeParam;\nimport com.macro.mall.dto.ProductAttrInfo;\nimport com.macro.mall.mapper.PmsProductAttributeCategoryMapper;\nimport com.macro.mall.mapper.PmsProductAttributeMapper;\nimport com.macro.mall.model.PmsProductAttribute;\nimport com.macro.mall.model.PmsProductAttributeCategory;\nimport com.macro.mall.model.PmsProductAttributeExample;\nimport com.macro.mall.service.PmsProductAttributeService;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * 商品属性Service实现类\n * Created by macro on 2018/4/26.\n */\n@Service\npublic class PmsProductAttributeServiceImpl implements PmsProductAttributeService {\n    @Autowired\n    private PmsProductAttributeMapper productAttributeMapper;\n    @Autowired\n    private PmsProductAttributeCategoryMapper productAttributeCategoryMapper;\n    @Autowired\n    private PmsProductAttributeDao productAttributeDao;\n\n    @Override\n    public List<PmsProductAttribute> getList(Long cid, Integer type, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum, pageSize);\n        PmsProductAttributeExample example = new PmsProductAttributeExample();\n        example.setOrderByClause(\"sort desc\");\n        example.createCriteria().andProductAttributeCategoryIdEqualTo(cid).andTypeEqualTo(type);\n        return productAttributeMapper.selectByExample(example);\n    }\n\n    @Override\n    public int create(PmsProductAttributeParam pmsProductAttributeParam) {\n        PmsProductAttribute pmsProductAttribute = new PmsProductAttribute();\n        BeanUtils.copyProperties(pmsProductAttributeParam, pmsProductAttribute);\n        int count = productAttributeMapper.insertSelective(pmsProductAttribute);\n        //新增商品属性以后需要更新商品属性分类数量\n        PmsProductAttributeCategory pmsProductAttributeCategory = productAttributeCategoryMapper.selectByPrimaryKey(pmsProductAttribute.getProductAttributeCategoryId());\n        if(pmsProductAttribute.getType()==0){\n            pmsProductAttributeCategory.setAttributeCount(pmsProductAttributeCategory.getAttributeCount()+1);\n        }else if(pmsProductAttribute.getType()==1){\n            pmsProductAttributeCategory.setParamCount(pmsProductAttributeCategory.getParamCount()+1);\n        }\n        productAttributeCategoryMapper.updateByPrimaryKey(pmsProductAttributeCategory);\n        return count;\n    }\n\n    @Override\n    public int update(Long id, PmsProductAttributeParam productAttributeParam) {\n        PmsProductAttribute pmsProductAttribute = new PmsProductAttribute();\n        pmsProductAttribute.setId(id);\n        BeanUtils.copyProperties(productAttributeParam, pmsProductAttribute);\n        return productAttributeMapper.updateByPrimaryKeySelective(pmsProductAttribute);\n    }\n\n    @Override\n    public PmsProductAttribute getItem(Long id) {\n        return productAttributeMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public int delete(List<Long> ids) {\n        //获取分类\n        PmsProductAttribute pmsProductAttribute = productAttributeMapper.selectByPrimaryKey(ids.get(0));\n        Integer type = pmsProductAttribute.getType();\n        PmsProductAttributeCategory pmsProductAttributeCategory = productAttributeCategoryMapper.selectByPrimaryKey(pmsProductAttribute.getProductAttributeCategoryId());\n        PmsProductAttributeExample example = new PmsProductAttributeExample();\n        example.createCriteria().andIdIn(ids);\n        int count = productAttributeMapper.deleteByExample(example);\n        //删除完成后修改数量\n        if(type==0){\n            if(pmsProductAttributeCategory.getAttributeCount()>=count){\n                pmsProductAttributeCategory.setAttributeCount(pmsProductAttributeCategory.getAttributeCount()-count);\n            }else{\n                pmsProductAttributeCategory.setAttributeCount(0);\n            }\n        }else if(type==1){\n            if(pmsProductAttributeCategory.getParamCount()>=count){\n                pmsProductAttributeCategory.setParamCount(pmsProductAttributeCategory.getParamCount()-count);\n            }else{\n                pmsProductAttributeCategory.setParamCount(0);\n            }\n        }\n        productAttributeCategoryMapper.updateByPrimaryKey(pmsProductAttributeCategory);\n        return count;\n    }\n\n    @Override\n    public List<ProductAttrInfo> getProductAttrInfo(Long productCategoryId) {\n        return productAttributeDao.getProductAttrInfo(productCategoryId);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/PmsProductCategoryServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.dao.PmsProductCategoryAttributeRelationDao;\nimport com.macro.mall.dao.PmsProductCategoryDao;\nimport com.macro.mall.dto.PmsProductCategoryParam;\nimport com.macro.mall.dto.PmsProductCategoryWithChildrenItem;\nimport com.macro.mall.mapper.PmsProductCategoryAttributeRelationMapper;\nimport com.macro.mall.mapper.PmsProductCategoryMapper;\nimport com.macro.mall.mapper.PmsProductMapper;\nimport com.macro.mall.model.*;\nimport com.macro.mall.service.PmsProductCategoryService;\nimport org.apache.commons.collections.CollectionUtils;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\n/**\n * PmsProductCategoryService实现类\n * Created by macro on 2018/4/26.\n */\n@Service\npublic class PmsProductCategoryServiceImpl implements PmsProductCategoryService {\n    @Autowired\n    private PmsProductCategoryMapper productCategoryMapper;\n    @Autowired\n    private PmsProductMapper productMapper;\n    @Autowired\n    private PmsProductCategoryAttributeRelationDao productCategoryAttributeRelationDao;\n    @Autowired\n    private PmsProductCategoryAttributeRelationMapper productCategoryAttributeRelationMapper;\n    @Autowired\n    private PmsProductCategoryDao productCategoryDao;\n    @Override\n    public int create(PmsProductCategoryParam pmsProductCategoryParam) {\n        PmsProductCategory productCategory = new PmsProductCategory();\n        productCategory.setProductCount(0);\n        BeanUtils.copyProperties(pmsProductCategoryParam, productCategory);\n        //没有父分类时为一级分类\n        setCategoryLevel(productCategory);\n        int count = productCategoryMapper.insertSelective(productCategory);\n        //创建筛选属性关联\n        List<Long> productAttributeIdList = pmsProductCategoryParam.getProductAttributeIdList();\n        if(!CollectionUtils.isEmpty(productAttributeIdList)){\n            insertRelationList(productCategory.getId(), productAttributeIdList);\n        }\n        return count;\n    }\n\n    /**\n     * 批量插入商品分类与筛选属性关系表\n     * @param productCategoryId 商品分类id\n     * @param productAttributeIdList 相关商品筛选属性id集合\n     */\n    private void insertRelationList(Long productCategoryId, List<Long> productAttributeIdList) {\n        List<PmsProductCategoryAttributeRelation> relationList = new ArrayList<>();\n        for (Long productAttrId : productAttributeIdList) {\n            PmsProductCategoryAttributeRelation relation = new PmsProductCategoryAttributeRelation();\n            relation.setProductAttributeId(productAttrId);\n            relation.setProductCategoryId(productCategoryId);\n            relationList.add(relation);\n        }\n        productCategoryAttributeRelationDao.insertList(relationList);\n    }\n\n    @Override\n    public int update(Long id, PmsProductCategoryParam pmsProductCategoryParam) {\n        PmsProductCategory productCategory = new PmsProductCategory();\n        productCategory.setId(id);\n        BeanUtils.copyProperties(pmsProductCategoryParam, productCategory);\n        setCategoryLevel(productCategory);\n        //更新商品分类时要更新商品中的名称\n        PmsProduct product = new PmsProduct();\n        product.setProductCategoryName(productCategory.getName());\n        PmsProductExample example = new PmsProductExample();\n        example.createCriteria().andProductCategoryIdEqualTo(id);\n        productMapper.updateByExampleSelective(product,example);\n        //同时更新筛选属性的信息\n        if(!CollectionUtils.isEmpty(pmsProductCategoryParam.getProductAttributeIdList())){\n            PmsProductCategoryAttributeRelationExample relationExample = new PmsProductCategoryAttributeRelationExample();\n            relationExample.createCriteria().andProductCategoryIdEqualTo(id);\n            productCategoryAttributeRelationMapper.deleteByExample(relationExample);\n            insertRelationList(id,pmsProductCategoryParam.getProductAttributeIdList());\n        }else{\n            PmsProductCategoryAttributeRelationExample relationExample = new PmsProductCategoryAttributeRelationExample();\n            relationExample.createCriteria().andProductCategoryIdEqualTo(id);\n            productCategoryAttributeRelationMapper.deleteByExample(relationExample);\n        }\n        return productCategoryMapper.updateByPrimaryKeySelective(productCategory);\n    }\n\n    @Override\n    public List<PmsProductCategory> getList(Long parentId, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum, pageSize);\n        PmsProductCategoryExample example = new PmsProductCategoryExample();\n        example.setOrderByClause(\"sort desc\");\n        example.createCriteria().andParentIdEqualTo(parentId);\n        return productCategoryMapper.selectByExample(example);\n    }\n\n    @Override\n    public int delete(Long id) {\n        return productCategoryMapper.deleteByPrimaryKey(id);\n    }\n\n    @Override\n    public PmsProductCategory getItem(Long id) {\n        return productCategoryMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public int updateNavStatus(List<Long> ids, Integer navStatus) {\n        PmsProductCategory productCategory = new PmsProductCategory();\n        productCategory.setNavStatus(navStatus);\n        PmsProductCategoryExample example = new PmsProductCategoryExample();\n        example.createCriteria().andIdIn(ids);\n        return productCategoryMapper.updateByExampleSelective(productCategory, example);\n    }\n\n    @Override\n    public int updateShowStatus(List<Long> ids, Integer showStatus) {\n        PmsProductCategory productCategory = new PmsProductCategory();\n        productCategory.setShowStatus(showStatus);\n        PmsProductCategoryExample example = new PmsProductCategoryExample();\n        example.createCriteria().andIdIn(ids);\n        return productCategoryMapper.updateByExampleSelective(productCategory, example);\n    }\n\n    @Override\n    public List<PmsProductCategoryWithChildrenItem> listWithChildren() {\n        return productCategoryDao.listWithChildren();\n    }\n\n    /**\n     * 根据分类的parentId设置分类的level\n     */\n    private void setCategoryLevel(PmsProductCategory productCategory) {\n        //没有父分类时为一级分类\n        if (productCategory.getParentId() == 0) {\n            productCategory.setLevel(0);\n        } else {\n            //有父分类时选择根据父分类level设置\n            PmsProductCategory parentCategory = productCategoryMapper.selectByPrimaryKey(productCategory.getParentId());\n            if (parentCategory != null) {\n                productCategory.setLevel(parentCategory.getLevel() + 1);\n            } else {\n                productCategory.setLevel(0);\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/PmsProductServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport cn.hutool.core.collection.CollUtil;\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.dao.*;\nimport com.macro.mall.dto.PmsProductParam;\nimport com.macro.mall.dto.PmsProductQueryParam;\nimport com.macro.mall.dto.PmsProductResult;\nimport com.macro.mall.mapper.*;\nimport com.macro.mall.model.*;\nimport com.macro.mall.service.PmsProductService;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.CollectionUtils;\nimport org.springframework.util.StringUtils;\n\nimport java.lang.reflect.Method;\nimport java.text.SimpleDateFormat;\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\nimport java.util.stream.Collectors;\n\n/**\n * 商品管理Service实现类\n * Created by macro on 2018/4/26.\n */\n@Service\npublic class PmsProductServiceImpl implements PmsProductService {\n    private static final Logger LOGGER = LoggerFactory.getLogger(PmsProductServiceImpl.class);\n    @Autowired\n    private PmsProductMapper productMapper;\n    @Autowired\n    private PmsMemberPriceDao memberPriceDao;\n    @Autowired\n    private PmsMemberPriceMapper memberPriceMapper;\n    @Autowired\n    private PmsProductLadderDao productLadderDao;\n    @Autowired\n    private PmsProductLadderMapper productLadderMapper;\n    @Autowired\n    private PmsProductFullReductionDao productFullReductionDao;\n    @Autowired\n    private PmsProductFullReductionMapper productFullReductionMapper;\n    @Autowired\n    private PmsSkuStockDao skuStockDao;\n    @Autowired\n    private PmsSkuStockMapper skuStockMapper;\n    @Autowired\n    private PmsProductAttributeValueDao productAttributeValueDao;\n    @Autowired\n    private PmsProductAttributeValueMapper productAttributeValueMapper;\n    @Autowired\n    private CmsSubjectProductRelationDao subjectProductRelationDao;\n    @Autowired\n    private CmsSubjectProductRelationMapper subjectProductRelationMapper;\n    @Autowired\n    private CmsPrefrenceAreaProductRelationDao prefrenceAreaProductRelationDao;\n    @Autowired\n    private CmsPrefrenceAreaProductRelationMapper prefrenceAreaProductRelationMapper;\n    @Autowired\n    private PmsProductDao productDao;\n    @Autowired\n    private PmsProductVertifyRecordDao productVertifyRecordDao;\n\n    @Override\n    public int create(PmsProductParam productParam) {\n        int count;\n        //创建商品\n        PmsProduct product = productParam;\n        product.setId(null);\n        productMapper.insertSelective(product);\n        //根据促销类型设置价格：会员价格、阶梯价格、满减价格\n        Long productId = product.getId();\n        //会员价格\n        relateAndInsertList(memberPriceDao, productParam.getMemberPriceList(), productId);\n        //阶梯价格\n        relateAndInsertList(productLadderDao, productParam.getProductLadderList(), productId);\n        //满减价格\n        relateAndInsertList(productFullReductionDao, productParam.getProductFullReductionList(), productId);\n        //处理sku的编码\n        handleSkuStockCode(productParam.getSkuStockList(),productId);\n        //添加sku库存信息\n        relateAndInsertList(skuStockDao, productParam.getSkuStockList(), productId);\n        //添加商品参数,添加自定义商品规格\n        relateAndInsertList(productAttributeValueDao, productParam.getProductAttributeValueList(), productId);\n        //关联专题\n        relateAndInsertList(subjectProductRelationDao, productParam.getSubjectProductRelationList(), productId);\n        //关联优选\n        relateAndInsertList(prefrenceAreaProductRelationDao, productParam.getPrefrenceAreaProductRelationList(), productId);\n        count = 1;\n        return count;\n    }\n\n    private void handleSkuStockCode(List<PmsSkuStock> skuStockList, Long productId) {\n        if(CollectionUtils.isEmpty(skuStockList))return;\n        for(int i=0;i<skuStockList.size();i++){\n            PmsSkuStock skuStock = skuStockList.get(i);\n            if(StringUtils.isEmpty(skuStock.getSkuCode())){\n                SimpleDateFormat sdf = new SimpleDateFormat(\"yyyyMMdd\");\n                StringBuilder sb = new StringBuilder();\n                //日期\n                sb.append(sdf.format(new Date()));\n                //四位商品id\n                sb.append(String.format(\"%04d\", productId));\n                //三位索引id\n                sb.append(String.format(\"%03d\", i+1));\n                skuStock.setSkuCode(sb.toString());\n            }\n        }\n    }\n\n    @Override\n    public PmsProductResult getUpdateInfo(Long id) {\n        return productDao.getUpdateInfo(id);\n    }\n\n    @Override\n    public int update(Long id, PmsProductParam productParam) {\n        int count;\n        //更新商品信息\n        PmsProduct product = productParam;\n        product.setId(id);\n        productMapper.updateByPrimaryKeySelective(product);\n        //会员价格\n        PmsMemberPriceExample pmsMemberPriceExample = new PmsMemberPriceExample();\n        pmsMemberPriceExample.createCriteria().andProductIdEqualTo(id);\n        memberPriceMapper.deleteByExample(pmsMemberPriceExample);\n        relateAndInsertList(memberPriceDao, productParam.getMemberPriceList(), id);\n        //阶梯价格\n        PmsProductLadderExample ladderExample = new PmsProductLadderExample();\n        ladderExample.createCriteria().andProductIdEqualTo(id);\n        productLadderMapper.deleteByExample(ladderExample);\n        relateAndInsertList(productLadderDao, productParam.getProductLadderList(), id);\n        //满减价格\n        PmsProductFullReductionExample fullReductionExample = new PmsProductFullReductionExample();\n        fullReductionExample.createCriteria().andProductIdEqualTo(id);\n        productFullReductionMapper.deleteByExample(fullReductionExample);\n        relateAndInsertList(productFullReductionDao, productParam.getProductFullReductionList(), id);\n        //修改sku库存信息\n        handleUpdateSkuStockList(id, productParam);\n        //修改商品参数,添加自定义商品规格\n        PmsProductAttributeValueExample productAttributeValueExample = new PmsProductAttributeValueExample();\n        productAttributeValueExample.createCriteria().andProductIdEqualTo(id);\n        productAttributeValueMapper.deleteByExample(productAttributeValueExample);\n        relateAndInsertList(productAttributeValueDao, productParam.getProductAttributeValueList(), id);\n        //关联专题\n        CmsSubjectProductRelationExample subjectProductRelationExample = new CmsSubjectProductRelationExample();\n        subjectProductRelationExample.createCriteria().andProductIdEqualTo(id);\n        subjectProductRelationMapper.deleteByExample(subjectProductRelationExample);\n        relateAndInsertList(subjectProductRelationDao, productParam.getSubjectProductRelationList(), id);\n        //关联优选\n        CmsPrefrenceAreaProductRelationExample prefrenceAreaExample = new CmsPrefrenceAreaProductRelationExample();\n        prefrenceAreaExample.createCriteria().andProductIdEqualTo(id);\n        prefrenceAreaProductRelationMapper.deleteByExample(prefrenceAreaExample);\n        relateAndInsertList(prefrenceAreaProductRelationDao, productParam.getPrefrenceAreaProductRelationList(), id);\n        count = 1;\n        return count;\n    }\n\n    private void handleUpdateSkuStockList(Long id, PmsProductParam productParam) {\n        //当前的sku信息\n        List<PmsSkuStock> currSkuList = productParam.getSkuStockList();\n        //当前没有sku直接删除\n        if(CollUtil.isEmpty(currSkuList)){\n            PmsSkuStockExample skuStockExample = new PmsSkuStockExample();\n            skuStockExample.createCriteria().andProductIdEqualTo(id);\n            skuStockMapper.deleteByExample(skuStockExample);\n            return;\n        }\n        //获取初始sku信息\n        PmsSkuStockExample skuStockExample = new PmsSkuStockExample();\n        skuStockExample.createCriteria().andProductIdEqualTo(id);\n        List<PmsSkuStock> oriStuList = skuStockMapper.selectByExample(skuStockExample);\n        //获取新增sku信息\n        List<PmsSkuStock> insertSkuList = currSkuList.stream().filter(item->item.getId()==null).collect(Collectors.toList());\n        //获取需要更新的sku信息\n        List<PmsSkuStock> updateSkuList = currSkuList.stream().filter(item->item.getId()!=null).collect(Collectors.toList());\n        List<Long> updateSkuIds = updateSkuList.stream().map(PmsSkuStock::getId).collect(Collectors.toList());\n        //获取需要删除的sku信息\n        List<PmsSkuStock> removeSkuList = oriStuList.stream().filter(item-> !updateSkuIds.contains(item.getId())).collect(Collectors.toList());\n        handleSkuStockCode(insertSkuList,id);\n        handleSkuStockCode(updateSkuList,id);\n        //新增sku\n        if(CollUtil.isNotEmpty(insertSkuList)){\n            relateAndInsertList(skuStockDao, insertSkuList, id);\n        }\n        //删除sku\n        if(CollUtil.isNotEmpty(removeSkuList)){\n            List<Long> removeSkuIds = removeSkuList.stream().map(PmsSkuStock::getId).collect(Collectors.toList());\n            PmsSkuStockExample removeExample = new PmsSkuStockExample();\n            removeExample.createCriteria().andIdIn(removeSkuIds);\n            skuStockMapper.deleteByExample(removeExample);\n        }\n        //修改sku\n        if(CollUtil.isNotEmpty(updateSkuList)){\n            for (PmsSkuStock pmsSkuStock : updateSkuList) {\n                skuStockMapper.updateByPrimaryKeySelective(pmsSkuStock);\n            }\n        }\n\n    }\n\n    @Override\n    public List<PmsProduct> list(PmsProductQueryParam productQueryParam, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum, pageSize);\n        PmsProductExample productExample = new PmsProductExample();\n        PmsProductExample.Criteria criteria = productExample.createCriteria();\n        criteria.andDeleteStatusEqualTo(0);\n        if (productQueryParam.getPublishStatus() != null) {\n            criteria.andPublishStatusEqualTo(productQueryParam.getPublishStatus());\n        }\n        if (productQueryParam.getVerifyStatus() != null) {\n            criteria.andVerifyStatusEqualTo(productQueryParam.getVerifyStatus());\n        }\n        if (!StringUtils.isEmpty(productQueryParam.getKeyword())) {\n            criteria.andNameLike(\"%\" + productQueryParam.getKeyword() + \"%\");\n        }\n        if (!StringUtils.isEmpty(productQueryParam.getProductSn())) {\n            criteria.andProductSnEqualTo(productQueryParam.getProductSn());\n        }\n        if (productQueryParam.getBrandId() != null) {\n            criteria.andBrandIdEqualTo(productQueryParam.getBrandId());\n        }\n        if (productQueryParam.getProductCategoryId() != null) {\n            criteria.andProductCategoryIdEqualTo(productQueryParam.getProductCategoryId());\n        }\n        return productMapper.selectByExample(productExample);\n    }\n\n    @Override\n    public int updateVerifyStatus(List<Long> ids, Integer verifyStatus, String detail) {\n        PmsProduct product = new PmsProduct();\n        product.setVerifyStatus(verifyStatus);\n        PmsProductExample example = new PmsProductExample();\n        example.createCriteria().andIdIn(ids);\n        List<PmsProductVertifyRecord> list = new ArrayList<>();\n        int count = productMapper.updateByExampleSelective(product, example);\n        //修改完审核状态后插入审核记录\n        for (Long id : ids) {\n            PmsProductVertifyRecord record = new PmsProductVertifyRecord();\n            record.setProductId(id);\n            record.setCreateTime(new Date());\n            record.setDetail(detail);\n            record.setStatus(verifyStatus);\n            record.setVertifyMan(\"test\");\n            list.add(record);\n        }\n        productVertifyRecordDao.insertList(list);\n        return count;\n    }\n\n    @Override\n    public int updatePublishStatus(List<Long> ids, Integer publishStatus) {\n        PmsProduct record = new PmsProduct();\n        record.setPublishStatus(publishStatus);\n        PmsProductExample example = new PmsProductExample();\n        example.createCriteria().andIdIn(ids);\n        return productMapper.updateByExampleSelective(record, example);\n    }\n\n    @Override\n    public int updateRecommendStatus(List<Long> ids, Integer recommendStatus) {\n        PmsProduct record = new PmsProduct();\n        record.setRecommandStatus(recommendStatus);\n        PmsProductExample example = new PmsProductExample();\n        example.createCriteria().andIdIn(ids);\n        return productMapper.updateByExampleSelective(record, example);\n    }\n\n    @Override\n    public int updateNewStatus(List<Long> ids, Integer newStatus) {\n        PmsProduct record = new PmsProduct();\n        record.setNewStatus(newStatus);\n        PmsProductExample example = new PmsProductExample();\n        example.createCriteria().andIdIn(ids);\n        return productMapper.updateByExampleSelective(record, example);\n    }\n\n    @Override\n    public int updateDeleteStatus(List<Long> ids, Integer deleteStatus) {\n        PmsProduct record = new PmsProduct();\n        record.setDeleteStatus(deleteStatus);\n        PmsProductExample example = new PmsProductExample();\n        example.createCriteria().andIdIn(ids);\n        return productMapper.updateByExampleSelective(record, example);\n    }\n\n    @Override\n    public List<PmsProduct> list(String keyword) {\n        PmsProductExample productExample = new PmsProductExample();\n        PmsProductExample.Criteria criteria = productExample.createCriteria();\n        criteria.andDeleteStatusEqualTo(0);\n        if(!StringUtils.isEmpty(keyword)){\n            criteria.andNameLike(\"%\" + keyword + \"%\");\n            productExample.or().andDeleteStatusEqualTo(0).andProductSnLike(\"%\" + keyword + \"%\");\n        }\n        return productMapper.selectByExample(productExample);\n    }\n\n    /**\n     * 建立和插入关系表操作\n     *\n     * @param dao       可以操作的dao\n     * @param dataList  要插入的数据\n     * @param productId 建立关系的id\n     */\n    private void relateAndInsertList(Object dao, List dataList, Long productId) {\n        try {\n            if (CollectionUtils.isEmpty(dataList)) return;\n            for (Object item : dataList) {\n                Method setId = item.getClass().getMethod(\"setId\", Long.class);\n                setId.invoke(item, (Long) null);\n                Method setProductId = item.getClass().getMethod(\"setProductId\", Long.class);\n                setProductId.invoke(item, productId);\n            }\n            Method insertList = dao.getClass().getMethod(\"insertList\", List.class);\n            insertList.invoke(dao, dataList);\n        } catch (Exception e) {\n            LOGGER.warn(\"创建产品出错:{}\", e.getMessage());\n            throw new RuntimeException(e.getMessage());\n        }\n    }\n\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/PmsSkuStockServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.macro.mall.dao.PmsSkuStockDao;\nimport com.macro.mall.mapper.PmsSkuStockMapper;\nimport com.macro.mall.model.PmsSkuStock;\nimport com.macro.mall.model.PmsSkuStockExample;\nimport com.macro.mall.service.PmsSkuStockService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.util.List;\n\n/**\n * 商品sku库存管理Service实现类\n * Created by macro on 2018/4/27.\n */\n@Service\npublic class PmsSkuStockServiceImpl implements PmsSkuStockService {\n    @Autowired\n    private PmsSkuStockMapper skuStockMapper;\n    @Autowired\n    private PmsSkuStockDao skuStockDao;\n\n    @Override\n    public List<PmsSkuStock> getList(Long pid, String keyword) {\n        PmsSkuStockExample example = new PmsSkuStockExample();\n        PmsSkuStockExample.Criteria criteria = example.createCriteria().andProductIdEqualTo(pid);\n        if (!StringUtils.isEmpty(keyword)) {\n            criteria.andSkuCodeLike(\"%\" + keyword + \"%\");\n        }\n        return skuStockMapper.selectByExample(example);\n    }\n\n    @Override\n    public int update(Long pid, List<PmsSkuStock> skuStockList) {\n        return skuStockDao.replaceList(skuStockList);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/SmsCouponHistoryServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.mapper.SmsCouponHistoryMapper;\nimport com.macro.mall.model.SmsCouponHistory;\nimport com.macro.mall.model.SmsCouponHistoryExample;\nimport com.macro.mall.service.SmsCouponHistoryService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.util.List;\n\n/**\n * 优惠券领取记录管理Service实现类\n * Created by macro on 2018/11/6.\n */\n@Service\npublic class SmsCouponHistoryServiceImpl implements SmsCouponHistoryService {\n    @Autowired\n    private SmsCouponHistoryMapper historyMapper;\n    @Override\n    public List<SmsCouponHistory> list(Long couponId, Integer useStatus, String orderSn, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum,pageSize);\n        SmsCouponHistoryExample example = new SmsCouponHistoryExample();\n        SmsCouponHistoryExample.Criteria criteria = example.createCriteria();\n        if(couponId!=null){\n            criteria.andCouponIdEqualTo(couponId);\n        }\n        if(useStatus!=null){\n            criteria.andUseStatusEqualTo(useStatus);\n        }\n        if(!StringUtils.isEmpty(orderSn)){\n            criteria.andOrderSnEqualTo(orderSn);\n        }\n        return historyMapper.selectByExample(example);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/SmsCouponServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.dao.SmsCouponDao;\nimport com.macro.mall.dao.SmsCouponProductCategoryRelationDao;\nimport com.macro.mall.dao.SmsCouponProductRelationDao;\nimport com.macro.mall.dto.SmsCouponParam;\nimport com.macro.mall.mapper.SmsCouponMapper;\nimport com.macro.mall.mapper.SmsCouponProductCategoryRelationMapper;\nimport com.macro.mall.mapper.SmsCouponProductRelationMapper;\nimport com.macro.mall.model.*;\nimport com.macro.mall.service.SmsCouponService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.util.List;\n\n/**\n * 优惠券管理Service实现类\n * Created by macro on 2018/8/28.\n */\n@Service\npublic class SmsCouponServiceImpl implements SmsCouponService {\n    @Autowired\n    private SmsCouponMapper couponMapper;\n    @Autowired\n    private SmsCouponProductRelationMapper productRelationMapper;\n    @Autowired\n    private SmsCouponProductCategoryRelationMapper productCategoryRelationMapper;\n    @Autowired\n    private SmsCouponProductRelationDao productRelationDao;\n    @Autowired\n    private SmsCouponProductCategoryRelationDao productCategoryRelationDao;\n    @Autowired\n    private SmsCouponDao couponDao;\n    @Override\n    public int create(SmsCouponParam couponParam) {\n        couponParam.setCount(couponParam.getPublishCount());\n        couponParam.setUseCount(0);\n        couponParam.setReceiveCount(0);\n        //插入优惠券表\n        int count = couponMapper.insert(couponParam);\n        //插入优惠券和商品关系表\n        if(couponParam.getUseType().equals(2)){\n            for(SmsCouponProductRelation productRelation:couponParam.getProductRelationList()){\n                productRelation.setCouponId(couponParam.getId());\n            }\n            productRelationDao.insertList(couponParam.getProductRelationList());\n        }\n        //插入优惠券和商品分类关系表\n        if(couponParam.getUseType().equals(1)){\n            for (SmsCouponProductCategoryRelation couponProductCategoryRelation : couponParam.getProductCategoryRelationList()) {\n                couponProductCategoryRelation.setCouponId(couponParam.getId());\n            }\n            productCategoryRelationDao.insertList(couponParam.getProductCategoryRelationList());\n        }\n        return count;\n    }\n\n    @Override\n    public int delete(Long id) {\n        //删除优惠券\n        int count = couponMapper.deleteByPrimaryKey(id);\n        //删除商品关联\n        deleteProductRelation(id);\n        //删除商品分类关联\n        deleteProductCategoryRelation(id);\n        return count;\n    }\n\n    private void deleteProductCategoryRelation(Long id) {\n        SmsCouponProductCategoryRelationExample productCategoryRelationExample = new SmsCouponProductCategoryRelationExample();\n        productCategoryRelationExample.createCriteria().andCouponIdEqualTo(id);\n        productCategoryRelationMapper.deleteByExample(productCategoryRelationExample);\n    }\n\n    private void deleteProductRelation(Long id) {\n        SmsCouponProductRelationExample productRelationExample = new SmsCouponProductRelationExample();\n        productRelationExample.createCriteria().andCouponIdEqualTo(id);\n        productRelationMapper.deleteByExample(productRelationExample);\n    }\n\n    @Override\n    public int update(Long id, SmsCouponParam couponParam) {\n        couponParam.setId(id);\n        int count =couponMapper.updateByPrimaryKey(couponParam);\n        //删除后插入优惠券和商品关系表\n        if(couponParam.getUseType().equals(2)){\n            for(SmsCouponProductRelation productRelation:couponParam.getProductRelationList()){\n                productRelation.setCouponId(couponParam.getId());\n            }\n            deleteProductRelation(id);\n            productRelationDao.insertList(couponParam.getProductRelationList());\n        }\n        //删除后插入优惠券和商品分类关系表\n        if(couponParam.getUseType().equals(1)){\n            for (SmsCouponProductCategoryRelation couponProductCategoryRelation : couponParam.getProductCategoryRelationList()) {\n                couponProductCategoryRelation.setCouponId(couponParam.getId());\n            }\n            deleteProductCategoryRelation(id);\n            productCategoryRelationDao.insertList(couponParam.getProductCategoryRelationList());\n        }\n        return count;\n    }\n\n    @Override\n    public List<SmsCoupon> list(String name, Integer type, Integer pageSize, Integer pageNum) {\n        SmsCouponExample example = new SmsCouponExample();\n        SmsCouponExample.Criteria criteria = example.createCriteria();\n        if(!StringUtils.isEmpty(name)){\n            criteria.andNameLike(\"%\"+name+\"%\");\n        }\n        if(type!=null){\n            criteria.andTypeEqualTo(type);\n        }\n        PageHelper.startPage(pageNum,pageSize);\n        return couponMapper.selectByExample(example);\n    }\n\n    @Override\n    public SmsCouponParam getItem(Long id) {\n        return couponDao.getItem(id);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/SmsFlashPromotionProductRelationServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.dao.SmsFlashPromotionProductRelationDao;\nimport com.macro.mall.dto.SmsFlashPromotionProduct;\nimport com.macro.mall.mapper.SmsFlashPromotionProductRelationMapper;\nimport com.macro.mall.model.SmsFlashPromotionProductRelation;\nimport com.macro.mall.model.SmsFlashPromotionProductRelationExample;\nimport com.macro.mall.service.SmsFlashPromotionProductRelationService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * 限时购商品关联管理Service实现类\n * Created by macro on 2018/11/16.\n */\n@Service\npublic class SmsFlashPromotionProductRelationServiceImpl implements SmsFlashPromotionProductRelationService {\n    @Autowired\n    private SmsFlashPromotionProductRelationMapper relationMapper;\n    @Autowired\n    private SmsFlashPromotionProductRelationDao relationDao;\n    @Override\n    public int create(List<SmsFlashPromotionProductRelation> relationList) {\n        for (SmsFlashPromotionProductRelation relation : relationList) {\n            relationMapper.insert(relation);\n        }\n        return relationList.size();\n    }\n\n    @Override\n    public int update(Long id, SmsFlashPromotionProductRelation relation) {\n        relation.setId(id);\n        return relationMapper.updateByPrimaryKey(relation);\n    }\n\n    @Override\n    public int delete(Long id) {\n        return relationMapper.deleteByPrimaryKey(id);\n    }\n\n    @Override\n    public SmsFlashPromotionProductRelation getItem(Long id) {\n        return relationMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public List<SmsFlashPromotionProduct> list(Long flashPromotionId, Long flashPromotionSessionId, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum,pageSize);\n        return relationDao.getList(flashPromotionId,flashPromotionSessionId);\n    }\n\n    @Override\n    public long getCount(Long flashPromotionId, Long flashPromotionSessionId) {\n        SmsFlashPromotionProductRelationExample example = new SmsFlashPromotionProductRelationExample();\n        example.createCriteria()\n                .andFlashPromotionIdEqualTo(flashPromotionId)\n                .andFlashPromotionSessionIdEqualTo(flashPromotionSessionId);\n        return relationMapper.countByExample(example);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/SmsFlashPromotionServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.mapper.SmsFlashPromotionMapper;\nimport com.macro.mall.model.SmsFlashPromotion;\nimport com.macro.mall.model.SmsFlashPromotionExample;\nimport com.macro.mall.service.SmsFlashPromotionService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * 限时购活动管理Service实现类\n * Created by macro on 2018/11/16.\n */\n@Service\npublic class SmsFlashPromotionServiceImpl implements SmsFlashPromotionService {\n    @Autowired\n    private SmsFlashPromotionMapper flashPromotionMapper;\n\n    @Override\n    public int create(SmsFlashPromotion flashPromotion) {\n        flashPromotion.setCreateTime(new Date());\n        return flashPromotionMapper.insert(flashPromotion);\n    }\n\n    @Override\n    public int update(Long id, SmsFlashPromotion flashPromotion) {\n        flashPromotion.setId(id);\n        return flashPromotionMapper.updateByPrimaryKey(flashPromotion);\n    }\n\n    @Override\n    public int delete(Long id) {\n        return flashPromotionMapper.deleteByPrimaryKey(id);\n    }\n\n    @Override\n    public int updateStatus(Long id, Integer status) {\n        SmsFlashPromotion flashPromotion = new SmsFlashPromotion();\n        flashPromotion.setId(id);\n        flashPromotion.setStatus(status);\n        return flashPromotionMapper.updateByPrimaryKeySelective(flashPromotion);\n    }\n\n    @Override\n    public SmsFlashPromotion getItem(Long id) {\n        return flashPromotionMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public List<SmsFlashPromotion> list(String keyword, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum, pageSize);\n        SmsFlashPromotionExample example = new SmsFlashPromotionExample();\n        if (!StringUtils.isEmpty(keyword)) {\n            example.createCriteria().andTitleLike(\"%\" + keyword + \"%\");\n        }\n        return flashPromotionMapper.selectByExample(example);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/SmsFlashPromotionSessionServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.macro.mall.dto.SmsFlashPromotionSessionDetail;\nimport com.macro.mall.mapper.SmsFlashPromotionSessionMapper;\nimport com.macro.mall.model.SmsFlashPromotionSession;\nimport com.macro.mall.model.SmsFlashPromotionSessionExample;\nimport com.macro.mall.service.SmsFlashPromotionProductRelationService;\nimport com.macro.mall.service.SmsFlashPromotionSessionService;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * 限时购场次管理Service实现类\n * Created by macro on 2018/11/16.\n */\n@Service\npublic class SmsFlashPromotionSessionServiceImpl implements SmsFlashPromotionSessionService {\n    @Autowired\n    private SmsFlashPromotionSessionMapper promotionSessionMapper;\n    @Autowired\n    private SmsFlashPromotionProductRelationService relationService;\n\n    @Override\n    public int create(SmsFlashPromotionSession promotionSession) {\n        promotionSession.setCreateTime(new Date());\n        return promotionSessionMapper.insert(promotionSession);\n    }\n\n    @Override\n    public int update(Long id, SmsFlashPromotionSession promotionSession) {\n        promotionSession.setId(id);\n        return promotionSessionMapper.updateByPrimaryKey(promotionSession);\n    }\n\n    @Override\n    public int updateStatus(Long id, Integer status) {\n        SmsFlashPromotionSession promotionSession = new SmsFlashPromotionSession();\n        promotionSession.setId(id);\n        promotionSession.setStatus(status);\n        return promotionSessionMapper.updateByPrimaryKeySelective(promotionSession);\n    }\n\n    @Override\n    public int delete(Long id) {\n        return promotionSessionMapper.deleteByPrimaryKey(id);\n    }\n\n    @Override\n    public SmsFlashPromotionSession getItem(Long id) {\n        return promotionSessionMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public List<SmsFlashPromotionSession> list() {\n        SmsFlashPromotionSessionExample example = new SmsFlashPromotionSessionExample();\n        return promotionSessionMapper.selectByExample(example);\n    }\n\n    @Override\n    public List<SmsFlashPromotionSessionDetail> selectList(Long flashPromotionId) {\n        List<SmsFlashPromotionSessionDetail> result = new ArrayList<>();\n        SmsFlashPromotionSessionExample example = new SmsFlashPromotionSessionExample();\n        example.createCriteria().andStatusEqualTo(1);\n        List<SmsFlashPromotionSession> list = promotionSessionMapper.selectByExample(example);\n        for (SmsFlashPromotionSession promotionSession : list) {\n            SmsFlashPromotionSessionDetail detail = new SmsFlashPromotionSessionDetail();\n            BeanUtils.copyProperties(promotionSession, detail);\n            long count = relationService.getCount(flashPromotionId, promotionSession.getId());\n            detail.setProductCount(count);\n            result.add(detail);\n        }\n        return result;\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/SmsHomeAdvertiseServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.mapper.SmsHomeAdvertiseMapper;\nimport com.macro.mall.model.SmsHomeAdvertise;\nimport com.macro.mall.model.SmsHomeAdvertiseExample;\nimport com.macro.mall.service.SmsHomeAdvertiseService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * 首页广告管理Service实现类\n * Created by macro on 2018/11/7.\n */\n@Service\npublic class SmsHomeAdvertiseServiceImpl implements SmsHomeAdvertiseService {\n    @Autowired\n    private SmsHomeAdvertiseMapper advertiseMapper;\n\n    @Override\n    public int create(SmsHomeAdvertise advertise) {\n        advertise.setClickCount(0);\n        advertise.setOrderCount(0);\n        return advertiseMapper.insert(advertise);\n    }\n\n    @Override\n    public int delete(List<Long> ids) {\n        SmsHomeAdvertiseExample example = new SmsHomeAdvertiseExample();\n        example.createCriteria().andIdIn(ids);\n        return advertiseMapper.deleteByExample(example);\n    }\n\n    @Override\n    public int updateStatus(Long id, Integer status) {\n        SmsHomeAdvertise record = new SmsHomeAdvertise();\n        record.setId(id);\n        record.setStatus(status);\n        return advertiseMapper.updateByPrimaryKeySelective(record);\n    }\n\n    @Override\n    public SmsHomeAdvertise getItem(Long id) {\n        return advertiseMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public int update(Long id, SmsHomeAdvertise advertise) {\n        advertise.setId(id);\n        return advertiseMapper.updateByPrimaryKeySelective(advertise);\n    }\n\n    @Override\n    public List<SmsHomeAdvertise> list(String name, Integer type, String endTime, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum, pageSize);\n        SmsHomeAdvertiseExample example = new SmsHomeAdvertiseExample();\n        SmsHomeAdvertiseExample.Criteria criteria = example.createCriteria();\n        if (!StringUtils.isEmpty(name)) {\n            criteria.andNameLike(\"%\" + name + \"%\");\n        }\n        if (type != null) {\n            criteria.andTypeEqualTo(type);\n        }\n        if (!StringUtils.isEmpty(endTime)) {\n            String startStr = endTime + \" 00:00:00\";\n            String endStr = endTime + \" 23:59:59\";\n            SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");\n            Date start = null;\n            try {\n                start = sdf.parse(startStr);\n            } catch (ParseException e) {\n                e.printStackTrace();\n            }\n            Date end = null;\n            try {\n                end = sdf.parse(endStr);\n            } catch (ParseException e) {\n                e.printStackTrace();\n            }\n            if (start != null && end != null) {\n                criteria.andEndTimeBetween(start, end);\n            }\n        }\n        example.setOrderByClause(\"sort desc\");\n        return advertiseMapper.selectByExample(example);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/SmsHomeBrandServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.mapper.SmsHomeBrandMapper;\nimport com.macro.mall.model.SmsHomeBrand;\nimport com.macro.mall.model.SmsHomeBrandExample;\nimport com.macro.mall.service.SmsHomeBrandService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.util.List;\n\n/**\n * 首页品牌管理Service实现类\n * Created by macro on 2018/11/6.\n */\n@Service\npublic class SmsHomeBrandServiceImpl implements SmsHomeBrandService {\n    @Autowired\n    private SmsHomeBrandMapper homeBrandMapper;\n    @Override\n    public int create(List<SmsHomeBrand> homeBrandList) {\n        for (SmsHomeBrand smsHomeBrand : homeBrandList) {\n            smsHomeBrand.setRecommendStatus(1);\n            smsHomeBrand.setSort(0);\n            homeBrandMapper.insert(smsHomeBrand);\n        }\n        return homeBrandList.size();\n    }\n\n    @Override\n    public int updateSort(Long id, Integer sort) {\n        SmsHomeBrand homeBrand = new SmsHomeBrand();\n        homeBrand.setId(id);\n        homeBrand.setSort(sort);\n        return homeBrandMapper.updateByPrimaryKeySelective(homeBrand);\n    }\n\n    @Override\n    public int delete(List<Long> ids) {\n        SmsHomeBrandExample example = new SmsHomeBrandExample();\n        example.createCriteria().andIdIn(ids);\n        return homeBrandMapper.deleteByExample(example);\n    }\n\n    @Override\n    public int updateRecommendStatus(List<Long> ids, Integer recommendStatus) {\n        SmsHomeBrandExample example = new SmsHomeBrandExample();\n        example.createCriteria().andIdIn(ids);\n        SmsHomeBrand record = new SmsHomeBrand();\n        record.setRecommendStatus(recommendStatus);\n        return homeBrandMapper.updateByExampleSelective(record,example);\n    }\n\n    @Override\n    public List<SmsHomeBrand> list(String brandName, Integer recommendStatus, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum,pageSize);\n        SmsHomeBrandExample example = new SmsHomeBrandExample();\n        SmsHomeBrandExample.Criteria criteria = example.createCriteria();\n        if(!StringUtils.isEmpty(brandName)){\n            criteria.andBrandNameLike(\"%\"+brandName+\"%\");\n        }\n        if(recommendStatus!=null){\n            criteria.andRecommendStatusEqualTo(recommendStatus);\n        }\n        example.setOrderByClause(\"sort desc\");\n        return homeBrandMapper.selectByExample(example);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/SmsHomeNewProductServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.mapper.SmsHomeNewProductMapper;\nimport com.macro.mall.model.SmsHomeNewProduct;\nimport com.macro.mall.model.SmsHomeNewProductExample;\nimport com.macro.mall.service.SmsHomeNewProductService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.util.List;\n\n/**\n * 首页新品推荐管理Service实现类\n * Created by macro on 2018/11/6.\n */\n@Service\npublic class SmsHomeNewProductServiceImpl implements SmsHomeNewProductService {\n    @Autowired\n    private SmsHomeNewProductMapper homeNewProductMapper;\n    @Override\n    public int create(List<SmsHomeNewProduct> homeNewProductList) {\n        for (SmsHomeNewProduct SmsHomeNewProduct : homeNewProductList) {\n            SmsHomeNewProduct.setRecommendStatus(1);\n            SmsHomeNewProduct.setSort(0);\n            homeNewProductMapper.insert(SmsHomeNewProduct);\n        }\n        return homeNewProductList.size();\n    }\n\n    @Override\n    public int updateSort(Long id, Integer sort) {\n        SmsHomeNewProduct homeNewProduct = new SmsHomeNewProduct();\n        homeNewProduct.setId(id);\n        homeNewProduct.setSort(sort);\n        return homeNewProductMapper.updateByPrimaryKeySelective(homeNewProduct);\n    }\n\n    @Override\n    public int delete(List<Long> ids) {\n        SmsHomeNewProductExample example = new SmsHomeNewProductExample();\n        example.createCriteria().andIdIn(ids);\n        return homeNewProductMapper.deleteByExample(example);\n    }\n\n    @Override\n    public int updateRecommendStatus(List<Long> ids, Integer recommendStatus) {\n        SmsHomeNewProductExample example = new SmsHomeNewProductExample();\n        example.createCriteria().andIdIn(ids);\n        SmsHomeNewProduct record = new SmsHomeNewProduct();\n        record.setRecommendStatus(recommendStatus);\n        return homeNewProductMapper.updateByExampleSelective(record,example);\n    }\n\n    @Override\n    public List<SmsHomeNewProduct> list(String productName, Integer recommendStatus, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum,pageSize);\n        SmsHomeNewProductExample example = new SmsHomeNewProductExample();\n        SmsHomeNewProductExample.Criteria criteria = example.createCriteria();\n        if(!StringUtils.isEmpty(productName)){\n            criteria.andProductNameLike(\"%\"+productName+\"%\");\n        }\n        if(recommendStatus!=null){\n            criteria.andRecommendStatusEqualTo(recommendStatus);\n        }\n        example.setOrderByClause(\"sort desc\");\n        return homeNewProductMapper.selectByExample(example);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/SmsHomeRecommendProductServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.mapper.SmsHomeRecommendProductMapper;\nimport com.macro.mall.model.SmsHomeRecommendProduct;\nimport com.macro.mall.model.SmsHomeRecommendProductExample;\nimport com.macro.mall.service.SmsHomeRecommendProductService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.util.List;\n\n/**\n * 首页人气推荐管理Service实现类\n * Created by macro on 2018/11/7.\n */\n@Service\npublic class SmsHomeRecommendProductServiceImpl implements SmsHomeRecommendProductService {\n    @Autowired\n    private SmsHomeRecommendProductMapper recommendProductMapper;\n    @Override\n    public int create(List<SmsHomeRecommendProduct> homeRecommendProductList) {\n        for (SmsHomeRecommendProduct recommendProduct : homeRecommendProductList) {\n            recommendProduct.setRecommendStatus(1);\n            recommendProduct.setSort(0);\n            recommendProductMapper.insert(recommendProduct);\n        }\n        return homeRecommendProductList.size();\n    }\n\n    @Override\n    public int updateSort(Long id, Integer sort) {\n        SmsHomeRecommendProduct recommendProduct = new SmsHomeRecommendProduct();\n        recommendProduct.setId(id);\n        recommendProduct.setSort(sort);\n        return recommendProductMapper.updateByPrimaryKeySelective(recommendProduct);\n    }\n\n    @Override\n    public int delete(List<Long> ids) {\n        SmsHomeRecommendProductExample example = new SmsHomeRecommendProductExample();\n        example.createCriteria().andIdIn(ids);\n        return recommendProductMapper.deleteByExample(example);\n    }\n\n    @Override\n    public int updateRecommendStatus(List<Long> ids, Integer recommendStatus) {\n        SmsHomeRecommendProductExample example = new SmsHomeRecommendProductExample();\n        example.createCriteria().andIdIn(ids);\n        SmsHomeRecommendProduct record = new SmsHomeRecommendProduct();\n        record.setRecommendStatus(recommendStatus);\n        return recommendProductMapper.updateByExampleSelective(record,example);\n    }\n\n    @Override\n    public List<SmsHomeRecommendProduct> list(String productName, Integer recommendStatus, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum,pageSize);\n        SmsHomeRecommendProductExample example = new SmsHomeRecommendProductExample();\n        SmsHomeRecommendProductExample.Criteria criteria = example.createCriteria();\n        if(!StringUtils.isEmpty(productName)){\n            criteria.andProductNameLike(\"%\"+productName+\"%\");\n        }\n        if(recommendStatus!=null){\n            criteria.andRecommendStatusEqualTo(recommendStatus);\n        }\n        example.setOrderByClause(\"sort desc\");\n        return recommendProductMapper.selectByExample(example);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/SmsHomeRecommendSubjectServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.mapper.SmsHomeRecommendSubjectMapper;\nimport com.macro.mall.model.SmsHomeRecommendSubject;\nimport com.macro.mall.model.SmsHomeRecommendSubjectExample;\nimport com.macro.mall.service.SmsHomeRecommendSubjectService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.util.List;\n\n/**\n * 首页专题推荐管理Service实现类\n * Created by macro on 2018/11/7.\n */\n@Service\npublic class SmsHomeRecommendSubjectServiceImpl implements SmsHomeRecommendSubjectService {\n    @Autowired\n    private SmsHomeRecommendSubjectMapper recommendProductMapper;\n    @Override\n    public int create(List<SmsHomeRecommendSubject> recommendSubjectList) {\n        for (SmsHomeRecommendSubject recommendProduct : recommendSubjectList) {\n            recommendProduct.setRecommendStatus(1);\n            recommendProduct.setSort(0);\n            recommendProductMapper.insert(recommendProduct);\n        }\n        return recommendSubjectList.size();\n    }\n\n    @Override\n    public int updateSort(Long id, Integer sort) {\n        SmsHomeRecommendSubject recommendProduct = new SmsHomeRecommendSubject();\n        recommendProduct.setId(id);\n        recommendProduct.setSort(sort);\n        return recommendProductMapper.updateByPrimaryKeySelective(recommendProduct);\n    }\n\n    @Override\n    public int delete(List<Long> ids) {\n        SmsHomeRecommendSubjectExample example = new SmsHomeRecommendSubjectExample();\n        example.createCriteria().andIdIn(ids);\n        return recommendProductMapper.deleteByExample(example);\n    }\n\n    @Override\n    public int updateRecommendStatus(List<Long> ids, Integer recommendStatus) {\n        SmsHomeRecommendSubjectExample example = new SmsHomeRecommendSubjectExample();\n        example.createCriteria().andIdIn(ids);\n        SmsHomeRecommendSubject record = new SmsHomeRecommendSubject();\n        record.setRecommendStatus(recommendStatus);\n        return recommendProductMapper.updateByExampleSelective(record,example);\n    }\n\n    @Override\n    public List<SmsHomeRecommendSubject> list(String subjectName, Integer recommendStatus, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum,pageSize);\n        SmsHomeRecommendSubjectExample example = new SmsHomeRecommendSubjectExample();\n        SmsHomeRecommendSubjectExample.Criteria criteria = example.createCriteria();\n        if(!StringUtils.isEmpty(subjectName)){\n            criteria.andSubjectNameLike(\"%\"+subjectName+\"%\");\n        }\n        if(recommendStatus!=null){\n            criteria.andRecommendStatusEqualTo(recommendStatus);\n        }\n        example.setOrderByClause(\"sort desc\");\n        return recommendProductMapper.selectByExample(example);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminCacheServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.macro.mall.common.service.RedisService;\nimport com.macro.mall.model.UmsAdmin;\nimport com.macro.mall.service.UmsAdminCacheService;\nimport com.macro.mall.service.UmsAdminService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.stereotype.Service;\n\n/**\n * UmsAdminCacheService实现类\n * Created by macro on 2020/3/13.\n */\n@Service\npublic class UmsAdminCacheServiceImpl implements UmsAdminCacheService {\n    @Autowired\n    private RedisService redisService;\n    @Value(\"${redis.database}\")\n    private String REDIS_DATABASE;\n    @Value(\"${redis.expire.common}\")\n    private Long REDIS_EXPIRE;\n    @Value(\"${redis.key.admin}\")\n    private String REDIS_KEY_ADMIN;\n\n    @Override\n    public void delAdmin(Long adminId) {\n        String key = REDIS_DATABASE + \":\" + REDIS_KEY_ADMIN + \":\" + adminId;\n        redisService.del(key);\n    }\n\n    @Override\n    public UmsAdmin getAdmin(Long adminId) {\n        String key = REDIS_DATABASE + \":\" + REDIS_KEY_ADMIN + \":\" + adminId;\n        return (UmsAdmin) redisService.get(key);\n    }\n\n    @Override\n    public void setAdmin(UmsAdmin admin) {\n        String key = REDIS_DATABASE + \":\" + REDIS_KEY_ADMIN + \":\" + admin.getId();\n        redisService.set(key, admin, REDIS_EXPIRE);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/UmsAdminServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport cn.dev33.satoken.stp.SaTokenInfo;\nimport cn.dev33.satoken.stp.StpUtil;\nimport cn.hutool.core.collection.CollUtil;\nimport cn.hutool.core.util.StrUtil;\nimport cn.hutool.crypto.digest.BCrypt;\nimport cn.hutool.extra.spring.SpringUtil;\nimport cn.hutool.json.JSONUtil;\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.common.api.ResultCode;\nimport com.macro.mall.common.constant.AuthConstant;\nimport com.macro.mall.common.dto.UserDto;\nimport com.macro.mall.common.exception.Asserts;\nimport com.macro.mall.dao.UmsAdminRoleRelationDao;\nimport com.macro.mall.dto.UmsAdminParam;\nimport com.macro.mall.dto.UpdateAdminPasswordParam;\nimport com.macro.mall.mapper.UmsAdminLoginLogMapper;\nimport com.macro.mall.mapper.UmsAdminMapper;\nimport com.macro.mall.mapper.UmsAdminRoleRelationMapper;\nimport com.macro.mall.model.*;\nimport com.macro.mall.service.UmsAdminCacheService;\nimport com.macro.mall.service.UmsAdminService;\nimport jakarta.servlet.http.HttpServletRequest;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.CollectionUtils;\nimport org.springframework.util.StringUtils;\nimport org.springframework.web.context.request.RequestContextHolder;\nimport org.springframework.web.context.request.ServletRequestAttributes;\n\nimport java.util.*;\nimport java.util.stream.Collectors;\n\n/**\n * UmsAdminService实现类\n * Created by macro on 2018/4/26.\n */\n@Service\npublic class UmsAdminServiceImpl implements UmsAdminService {\n    private static final Logger LOGGER = LoggerFactory.getLogger(UmsAdminServiceImpl.class);\n    @Autowired\n    private UmsAdminMapper adminMapper;\n    @Autowired\n    private UmsAdminRoleRelationMapper adminRoleRelationMapper;\n    @Autowired\n    private UmsAdminRoleRelationDao adminRoleRelationDao;\n    @Autowired\n    private UmsAdminLoginLogMapper loginLogMapper;\n    @Autowired\n    private UmsAdminCacheService adminCacheService;\n\n    @Override\n    public UmsAdmin getAdminByUsername(String username) {\n        UmsAdminExample example = new UmsAdminExample();\n        example.createCriteria().andUsernameEqualTo(username);\n        List<UmsAdmin> adminList = adminMapper.selectByExample(example);\n        if (adminList != null && adminList.size() > 0) {\n            return adminList.get(0);\n        }\n        return null;\n    }\n\n    @Override\n    public UmsAdmin register(UmsAdminParam umsAdminParam) {\n        UmsAdmin umsAdmin = new UmsAdmin();\n        BeanUtils.copyProperties(umsAdminParam, umsAdmin);\n        umsAdmin.setCreateTime(new Date());\n        umsAdmin.setStatus(1);\n        //查询是否有相同用户名的用户\n        UmsAdminExample example = new UmsAdminExample();\n        example.createCriteria().andUsernameEqualTo(umsAdmin.getUsername());\n        List<UmsAdmin> umsAdminList = adminMapper.selectByExample(example);\n        if (umsAdminList.size() > 0) {\n            return null;\n        }\n        //将密码进行加密操作\n        String encodePassword = BCrypt.hashpw(umsAdmin.getPassword());\n        umsAdmin.setPassword(encodePassword);\n        adminMapper.insert(umsAdmin);\n        return umsAdmin;\n    }\n\n    @Override\n    public SaTokenInfo login(String username, String password) {\n        if(StrUtil.isEmpty(username)||StrUtil.isEmpty(password)){\n            Asserts.fail(\"用户名或密码不能为空！\");\n        }\n        UmsAdmin admin = getAdminByUsername(username);\n        if(admin==null){\n            Asserts.fail(\"找不到该用户！\");\n        }\n        if (!BCrypt.checkpw(password, admin.getPassword())) {\n            Asserts.fail(\"密码不正确！\");\n        }\n        if(admin.getStatus()!=1){\n            Asserts.fail(\"该账号已被禁用！\");\n        }\n        // 登录校验成功后，一行代码实现登录\n        StpUtil.login(admin.getId());\n        UserDto userDto = new UserDto();\n        userDto.setId(admin.getId());\n        userDto.setUsername(admin.getUsername());\n        userDto.setClientId(AuthConstant.ADMIN_CLIENT_ID);\n        List<UmsResource> resourceList = getResourceList(admin.getId());\n        List<String> permissionList = resourceList.stream().map(item -> item.getId() + \":\" + item.getName()).toList();\n        userDto.setPermissionList(permissionList);\n        // 将用户信息存储到Session中\n        StpUtil.getSession().set(AuthConstant.STP_ADMIN_INFO,userDto);\n        // 获取当前登录用户Token信息\n        SaTokenInfo saTokenInfo = StpUtil.getTokenInfo();\n//        updateLoginTimeByUsername(username);\n        insertLoginLog(admin);\n        return saTokenInfo;\n    }\n\n    /**\n     * 添加登录记录\n     */\n    private void insertLoginLog(UmsAdmin admin) {\n        if(admin==null) return;\n        UmsAdminLoginLog loginLog = new UmsAdminLoginLog();\n        loginLog.setAdminId(admin.getId());\n        loginLog.setCreateTime(new Date());\n        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();\n        HttpServletRequest request = attributes.getRequest();\n        loginLog.setIp(request.getRemoteAddr());\n        loginLogMapper.insert(loginLog);\n    }\n\n    /**\n     * 根据用户名修改登录时间\n     */\n    private void updateLoginTimeByUsername(String username) {\n        UmsAdmin record = new UmsAdmin();\n        record.setLoginTime(new Date());\n        UmsAdminExample example = new UmsAdminExample();\n        example.createCriteria().andUsernameEqualTo(username);\n        adminMapper.updateByExampleSelective(record, example);\n    }\n\n    @Override\n    public UmsAdmin getItem(Long id) {\n        return adminMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public List<UmsAdmin> list(String keyword, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum, pageSize);\n        UmsAdminExample example = new UmsAdminExample();\n        UmsAdminExample.Criteria criteria = example.createCriteria();\n        if (!StringUtils.isEmpty(keyword)) {\n            criteria.andUsernameLike(\"%\" + keyword + \"%\");\n            example.or(example.createCriteria().andNickNameLike(\"%\" + keyword + \"%\"));\n        }\n        return adminMapper.selectByExample(example);\n    }\n\n    @Override\n    public int update(Long id, UmsAdmin admin) {\n        admin.setId(id);\n        UmsAdmin rawAdmin = adminMapper.selectByPrimaryKey(id);\n        if(rawAdmin.getPassword().equals(admin.getPassword())){\n            //与原加密密码相同的不需要修改\n            admin.setPassword(null);\n        }else{\n            //与原加密密码不同的需要加密修改\n            if(StrUtil.isEmpty(admin.getPassword())){\n                admin.setPassword(null);\n            }else{\n                admin.setPassword(BCrypt.hashpw(admin.getPassword()));\n            }\n        }\n        int count = adminMapper.updateByPrimaryKeySelective(admin);\n        adminCacheService.delAdmin(id);\n        return count;\n    }\n\n    @Override\n    public int delete(Long id) {\n        int count = adminMapper.deleteByPrimaryKey(id);\n        adminCacheService.delAdmin(id);\n        return count;\n    }\n\n    @Override\n    public int updateRole(Long adminId, List<Long> roleIds) {\n        int count = roleIds == null ? 0 : roleIds.size();\n        //先删除原来的关系\n        UmsAdminRoleRelationExample adminRoleRelationExample = new UmsAdminRoleRelationExample();\n        adminRoleRelationExample.createCriteria().andAdminIdEqualTo(adminId);\n        adminRoleRelationMapper.deleteByExample(adminRoleRelationExample);\n        //建立新关系\n        if (!CollectionUtils.isEmpty(roleIds)) {\n            List<UmsAdminRoleRelation> list = new ArrayList<>();\n            for (Long roleId : roleIds) {\n                UmsAdminRoleRelation roleRelation = new UmsAdminRoleRelation();\n                roleRelation.setAdminId(adminId);\n                roleRelation.setRoleId(roleId);\n                list.add(roleRelation);\n            }\n            adminRoleRelationDao.insertList(list);\n        }\n        return count;\n    }\n\n    @Override\n    public List<UmsRole> getRoleList(Long adminId) {\n        return adminRoleRelationDao.getRoleList(adminId);\n    }\n\n    @Override\n    public List<UmsResource> getResourceList(Long adminId) {\n        return adminRoleRelationDao.getResourceList(adminId);\n    }\n\n    @Override\n    public int updatePassword(UpdateAdminPasswordParam param) {\n        if(StrUtil.isEmpty(param.getUsername())\n                ||StrUtil.isEmpty(param.getOldPassword())\n                ||StrUtil.isEmpty(param.getNewPassword())){\n            return -1;\n        }\n        UmsAdminExample example = new UmsAdminExample();\n        example.createCriteria().andUsernameEqualTo(param.getUsername());\n        List<UmsAdmin> adminList = adminMapper.selectByExample(example);\n        if(CollUtil.isEmpty(adminList)){\n            return -2;\n        }\n        UmsAdmin umsAdmin = adminList.get(0);\n        if(!BCrypt.checkpw(param.getOldPassword(),umsAdmin.getPassword())){\n            return -3;\n        }\n        umsAdmin.setPassword(BCrypt.hashpw(param.getNewPassword()));\n        adminMapper.updateByPrimaryKey(umsAdmin);\n        adminCacheService.delAdmin(umsAdmin.getId());\n        return 1;\n    }\n\n    @Override\n    public UmsAdmin getCurrentAdmin() {\n        UserDto userDto = (UserDto) StpUtil.getSession().get(AuthConstant.STP_ADMIN_INFO);\n        UmsAdmin admin = adminCacheService.getAdmin(userDto.getId());\n        if (admin == null) {\n            admin = adminMapper.selectByPrimaryKey(userDto.getId());\n            adminCacheService.setAdmin(admin);\n        }\n        return admin;\n    }\n    @Override\n    public void logout() {\n        //先清空缓存\n        UserDto userDto = (UserDto) StpUtil.getSession().get(AuthConstant.STP_ADMIN_INFO);\n        adminCacheService.delAdmin(userDto.getId());\n        //再调用sa-token的登出方法\n        StpUtil.logout();\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/UmsMemberLevelServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.macro.mall.mapper.UmsMemberLevelMapper;\nimport com.macro.mall.model.UmsMemberLevel;\nimport com.macro.mall.model.UmsMemberLevelExample;\nimport com.macro.mall.service.UmsMemberLevelService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * 会员等级管理Service实现类\n * Created by macro on 2018/4/26.\n */\n@Service\npublic class UmsMemberLevelServiceImpl implements UmsMemberLevelService{\n    @Autowired\n    private UmsMemberLevelMapper memberLevelMapper;\n    @Override\n    public List<UmsMemberLevel> list(Integer defaultStatus) {\n        UmsMemberLevelExample example = new UmsMemberLevelExample();\n        example.createCriteria().andDefaultStatusEqualTo(defaultStatus);\n        return memberLevelMapper.selectByExample(example);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/UmsMenuServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.dto.UmsMenuNode;\nimport com.macro.mall.mapper.UmsMenuMapper;\nimport com.macro.mall.model.*;\nimport com.macro.mall.service.UmsMenuService;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.Date;\nimport java.util.List;\nimport java.util.stream.Collectors;\n\n/**\n * 后台菜单管理Service实现类\n * Created by macro on 2020/2/2.\n */\n@Service\npublic class UmsMenuServiceImpl implements UmsMenuService {\n    @Autowired\n    private UmsMenuMapper menuMapper;\n\n    @Override\n    public int create(UmsMenu umsMenu) {\n        umsMenu.setCreateTime(new Date());\n        updateLevel(umsMenu);\n        return menuMapper.insert(umsMenu);\n    }\n\n    /**\n     * 修改菜单层级\n     */\n    private void updateLevel(UmsMenu umsMenu) {\n        if (umsMenu.getParentId() == 0) {\n            //没有父菜单时为一级菜单\n            umsMenu.setLevel(0);\n        } else {\n            //有父菜单时选择根据父菜单level设置\n            UmsMenu parentMenu = menuMapper.selectByPrimaryKey(umsMenu.getParentId());\n            if (parentMenu != null) {\n                umsMenu.setLevel(parentMenu.getLevel() + 1);\n            } else {\n                umsMenu.setLevel(0);\n            }\n        }\n    }\n\n    @Override\n    public int update(Long id, UmsMenu umsMenu) {\n        umsMenu.setId(id);\n        updateLevel(umsMenu);\n        return menuMapper.updateByPrimaryKeySelective(umsMenu);\n    }\n\n    @Override\n    public UmsMenu getItem(Long id) {\n        return menuMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public int delete(Long id) {\n        return menuMapper.deleteByPrimaryKey(id);\n    }\n\n    @Override\n    public List<UmsMenu> list(Long parentId, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum, pageSize);\n        UmsMenuExample example = new UmsMenuExample();\n        example.setOrderByClause(\"sort desc\");\n        example.createCriteria().andParentIdEqualTo(parentId);\n        return menuMapper.selectByExample(example);\n    }\n\n    @Override\n    public List<UmsMenuNode> treeList() {\n        List<UmsMenu> menuList = menuMapper.selectByExample(new UmsMenuExample());\n        List<UmsMenuNode> result = menuList.stream()\n                .filter(menu -> menu.getParentId().equals(0L))\n                .map(menu -> covertMenuNode(menu, menuList)).collect(Collectors.toList());\n        return result;\n    }\n\n    @Override\n    public int updateHidden(Long id, Integer hidden) {\n        UmsMenu umsMenu = new UmsMenu();\n        umsMenu.setId(id);\n        umsMenu.setHidden(hidden);\n        return menuMapper.updateByPrimaryKeySelective(umsMenu);\n    }\n\n    /**\n     * 将UmsMenu转化为UmsMenuNode并设置children属性\n     */\n    private UmsMenuNode covertMenuNode(UmsMenu menu, List<UmsMenu> menuList) {\n        UmsMenuNode node = new UmsMenuNode();\n        BeanUtils.copyProperties(menu, node);\n        List<UmsMenuNode> children = menuList.stream()\n                .filter(subMenu -> subMenu.getParentId().equals(menu.getId()))\n                .map(subMenu -> covertMenuNode(subMenu, menuList)).collect(Collectors.toList());\n        node.setChildren(children);\n        return node;\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/UmsResourceCategoryServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.macro.mall.mapper.UmsResourceCategoryMapper;\nimport com.macro.mall.model.UmsResourceCategory;\nimport com.macro.mall.model.UmsResourceCategoryExample;\nimport com.macro.mall.service.UmsResourceCategoryService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * 后台资源分类管理Service实现类\n * Created by macro on 2020/2/5.\n */\n@Service\npublic class UmsResourceCategoryServiceImpl implements UmsResourceCategoryService {\n    @Autowired\n    private UmsResourceCategoryMapper resourceCategoryMapper;\n\n    @Override\n    public List<UmsResourceCategory> listAll() {\n        UmsResourceCategoryExample example = new UmsResourceCategoryExample();\n        example.setOrderByClause(\"sort desc\");\n        return resourceCategoryMapper.selectByExample(example);\n    }\n\n    @Override\n    public int create(UmsResourceCategory umsResourceCategory) {\n        umsResourceCategory.setCreateTime(new Date());\n        return resourceCategoryMapper.insert(umsResourceCategory);\n    }\n\n    @Override\n    public int update(Long id, UmsResourceCategory umsResourceCategory) {\n        umsResourceCategory.setId(id);\n        return resourceCategoryMapper.updateByPrimaryKeySelective(umsResourceCategory);\n    }\n\n    @Override\n    public int delete(Long id) {\n        return resourceCategoryMapper.deleteByPrimaryKey(id);\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/UmsResourceServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport cn.hutool.core.util.StrUtil;\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.common.constant.AuthConstant;\nimport com.macro.mall.common.service.RedisService;\nimport com.macro.mall.mapper.UmsResourceMapper;\nimport com.macro.mall.model.*;\nimport com.macro.mall.service.UmsResourceService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.stereotype.Service;\n\nimport java.util.*;\n\n/**\n * 后台资源管理Service实现类\n * Created by macro on 2020/2/2.\n */\n@Service\npublic class UmsResourceServiceImpl implements UmsResourceService {\n    @Autowired\n    private UmsResourceMapper resourceMapper;\n    @Autowired\n    private RedisService redisService;\n    @Value(\"${spring.application.name}\")\n    private String applicationName;\n    @Override\n    public int create(UmsResource umsResource) {\n        umsResource.setCreateTime(new Date());\n        int count = resourceMapper.insert(umsResource);\n        initPathResourceMap();\n        return count;\n    }\n\n    @Override\n    public int update(Long id, UmsResource umsResource) {\n        umsResource.setId(id);\n        int count = resourceMapper.updateByPrimaryKeySelective(umsResource);\n        initPathResourceMap();\n        return count;\n    }\n\n    @Override\n    public UmsResource getItem(Long id) {\n        return resourceMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public int delete(Long id) {\n        int count = resourceMapper.deleteByPrimaryKey(id);\n        initPathResourceMap();\n        return count;\n    }\n\n    @Override\n    public List<UmsResource> list(Long categoryId, String nameKeyword, String urlKeyword, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum,pageSize);\n        UmsResourceExample example = new UmsResourceExample();\n        UmsResourceExample.Criteria criteria = example.createCriteria();\n        if(categoryId!=null){\n            criteria.andCategoryIdEqualTo(categoryId);\n        }\n        if(StrUtil.isNotEmpty(nameKeyword)){\n            criteria.andNameLike('%'+nameKeyword+'%');\n        }\n        if(StrUtil.isNotEmpty(urlKeyword)){\n            criteria.andUrlLike('%'+urlKeyword+'%');\n        }\n        return resourceMapper.selectByExample(example);\n    }\n\n    @Override\n    public List<UmsResource> listAll() {\n        return resourceMapper.selectByExample(new UmsResourceExample());\n    }\n\n    @Override\n    public Map<String,String> initPathResourceMap() {\n        Map<String,String> pathResourceMap = new TreeMap<>();\n        List<UmsResource> resourceList = resourceMapper.selectByExample(new UmsResourceExample());\n        for (UmsResource resource : resourceList) {\n            pathResourceMap.put(\"/\"+applicationName+resource.getUrl(),resource.getId()+\":\"+resource.getName());\n        }\n        redisService.del(AuthConstant.PATH_RESOURCE_MAP);\n        redisService.hSetAll(AuthConstant.PATH_RESOURCE_MAP, pathResourceMap);\n        return pathResourceMap;\n\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/service/impl/UmsRoleServiceImpl.java",
    "content": "package com.macro.mall.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.dao.UmsRoleDao;\nimport com.macro.mall.mapper.UmsRoleMapper;\nimport com.macro.mall.mapper.UmsRoleMenuRelationMapper;\nimport com.macro.mall.mapper.UmsRoleResourceRelationMapper;\nimport com.macro.mall.model.*;\nimport com.macro.mall.service.UmsResourceService;\nimport com.macro.mall.service.UmsRoleService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.StringUtils;\n\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * 后台角色管理Service实现类\n * Created by macro on 2018/9/30.\n */\n@Service\npublic class UmsRoleServiceImpl implements UmsRoleService {\n    @Autowired\n    private UmsRoleMapper roleMapper;\n    @Autowired\n    private UmsRoleMenuRelationMapper roleMenuRelationMapper;\n    @Autowired\n    private UmsRoleResourceRelationMapper roleResourceRelationMapper;\n    @Autowired\n    private UmsRoleDao roleDao;\n    @Autowired\n    private UmsResourceService resourceService;\n    @Override\n    public int create(UmsRole role) {\n        role.setCreateTime(new Date());\n        role.setAdminCount(0);\n        role.setSort(0);\n        return roleMapper.insert(role);\n    }\n\n    @Override\n    public int update(Long id, UmsRole role) {\n        role.setId(id);\n        return roleMapper.updateByPrimaryKeySelective(role);\n    }\n\n    @Override\n    public int delete(List<Long> ids) {\n        UmsRoleExample example = new UmsRoleExample();\n        example.createCriteria().andIdIn(ids);\n        int count = roleMapper.deleteByExample(example);\n        resourceService.initPathResourceMap();\n        return count;\n    }\n\n    @Override\n    public List<UmsRole> list() {\n        return roleMapper.selectByExample(new UmsRoleExample());\n    }\n\n    @Override\n    public List<UmsRole> list(String keyword, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum, pageSize);\n        UmsRoleExample example = new UmsRoleExample();\n        if (!StringUtils.isEmpty(keyword)) {\n            example.createCriteria().andNameLike(\"%\" + keyword + \"%\");\n        }\n        return roleMapper.selectByExample(example);\n    }\n\n    @Override\n    public List<UmsMenu> getMenuList(Long adminId) {\n        return roleDao.getMenuList(adminId);\n    }\n\n    @Override\n    public List<UmsMenu> listMenu(Long roleId) {\n        return roleDao.getMenuListByRoleId(roleId);\n    }\n\n    @Override\n    public List<UmsResource> listResource(Long roleId) {\n        return roleDao.getResourceListByRoleId(roleId);\n    }\n\n    @Override\n    public int allocMenu(Long roleId, List<Long> menuIds) {\n        //先删除原有关系\n        UmsRoleMenuRelationExample example=new UmsRoleMenuRelationExample();\n        example.createCriteria().andRoleIdEqualTo(roleId);\n        roleMenuRelationMapper.deleteByExample(example);\n        //批量插入新关系\n        for (Long menuId : menuIds) {\n            UmsRoleMenuRelation relation = new UmsRoleMenuRelation();\n            relation.setRoleId(roleId);\n            relation.setMenuId(menuId);\n            roleMenuRelationMapper.insert(relation);\n        }\n        return menuIds.size();\n    }\n\n    @Override\n    public int allocResource(Long roleId, List<Long> resourceIds) {\n        //先删除原有关系\n        UmsRoleResourceRelationExample example=new UmsRoleResourceRelationExample();\n        example.createCriteria().andRoleIdEqualTo(roleId);\n        roleResourceRelationMapper.deleteByExample(example);\n        //批量插入新关系\n        for (Long resourceId : resourceIds) {\n            UmsRoleResourceRelation relation = new UmsRoleResourceRelation();\n            relation.setRoleId(roleId);\n            relation.setResourceId(resourceId);\n            roleResourceRelationMapper.insert(relation);\n        }\n        resourceService.initPathResourceMap();\n        return resourceIds.size();\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/validator/FlagValidator.java",
    "content": "package com.macro.mall.validator;\n\nimport jakarta.validation.Constraint;\nimport jakarta.validation.Payload;\nimport java.lang.annotation.*;\n\n/**\n * 用户验证状态是否在指定范围内的注解\n * Created by macro on 2018/4/26.\n */\n@Documented\n@Retention(RetentionPolicy.RUNTIME)\n@Target({ElementType.FIELD,ElementType.PARAMETER})\n@Constraint(validatedBy = FlagValidatorClass.class)\npublic @interface FlagValidator {\n    String[] value() default {};\n\n    String message() default \"flag is not found\";\n\n    Class<?>[] groups() default {};\n\n    Class<? extends Payload>[] payload() default {};\n}\n"
  },
  {
    "path": "mall-admin/src/main/java/com/macro/mall/validator/FlagValidatorClass.java",
    "content": "package com.macro.mall.validator;\n\nimport jakarta.validation.ConstraintValidator;\nimport jakarta.validation.ConstraintValidatorContext;\n\n/**\n * 状态标记校验器\n * Created by macro on 2018/4/26.\n */\npublic class FlagValidatorClass implements ConstraintValidator<FlagValidator,Integer> {\n    private String[] values;\n    @Override\n    public void initialize(FlagValidator flagValidator) {\n        this.values = flagValidator.value();\n    }\n\n    @Override\n    public boolean isValid(Integer value, ConstraintValidatorContext constraintValidatorContext) {\n        boolean isValid = false;\n        if(value==null){\n            //当状态为空时使用默认值\n            return true;\n        }\n        for(int i=0;i<values.length;i++){\n            if(values[i].equals(String.valueOf(value))){\n                isValid = true;\n                break;\n            }\n        }\n        return isValid;\n    }\n}\n"
  },
  {
    "path": "mall-admin/src/main/resources/META-INF/MANIFEST.MF",
    "content": "Manifest-Version: 1.0\nMain-Class: com.macro.mall.MallAdminApplication\n\n"
  },
  {
    "path": "mall-admin/src/main/resources/application.yml",
    "content": "server:\n  port: 8080\nspring:\n  mvc:\n    pathmatch:\n      matching-strategy: ant_path_matcher\n  datasource:\n    url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false\n    username: root\n    password: root\n    druid:\n      initial-size: 5 #连接池初始化大小\n      min-idle: 10 #最小空闲连接数\n      max-active: 20 #最大连接数\n      web-stat-filter:\n        exclusions: \"*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*\" #不统计这些请求数据\n      stat-view-servlet: #访问监控网页的登录用户名和密码\n        login-username: druid\n        login-password: druid\n  data:\n    redis:\n      host: localhost # Redis服务器地址\n      database: 0 # Redis数据库索引（默认为0）\n      port: 6379 # Redis服务器连接端口\n      password:  # Redis服务器连接密码（默认为空）\n      timeout: 3000ms # 连接超时时间（毫秒）\n  servlet:\n    multipart:\n      enabled: true #开启文件上传\n      max-file-size: 10MB #限制文件上传大小为10M\nmybatis:\n  mapper-locations:\n    - classpath:dao/*.xml\n    - classpath*:com/**/mapper/*.xml\nmanagement:\n  endpoints:\n    web:\n      exposure:\n        include: '*' #暴露Actuator的监控端点\n  endpoint:\n    health:\n      show-details: always #显示健康的详细信息\n    env:\n      show-values: always #默认Actuator的环境变量会以****显示，这里开启显示\n    configprops:\n      show-values: always #默认Actuator的配置属性会以****显示，这里开启显示\n    info:\n      enabled: true\nredis:\n  database: mall-swarm\n  key:\n    admin: 'ums:admin'\n  expire:\n    common: 86400 # 24小时\naliyun:\n  oss:\n    endpoint: oss-cn-shenzhen.aliyuncs.com # oss对外服务的访问域名\n    accessKeyId: test # 访问身份验证中用到用户标识\n    accessKeySecret: test # 用户用于加密签名字符串和oss用来验证签名字符串的密钥\n    bucketName: macro-oss # oss的存储空间\n    policy:\n      expire: 300 # 签名有效期(S)\n    maxSize: 10 # 上传文件大小(M)\n    callback: http://39.98.190.128:8080/aliyun/oss/callback # 文件上传成功后的回调地址\n    dir:\n      prefix: mall/images/ # 上传文件夹路径前缀\nminio:\n  endpoint: http://locahost:9000 #MinIO服务所在地址\n  bucketName: mall #存储桶名称\n  accessKey: minioadmin #访问的key\n  secretKey: minioadmin #访问的秘钥\nspringdoc:\n  swagger-ui:\n    # 修改Swagger UI路径\n    path: /swagger-ui.html\n    # 开启Swagger UI界面\n    enabled: true\n    # 用于配置tag和operation的展开方式，这里配置为都不展开\n    doc-expansion: 'none'\n  api-docs:\n    # 修改api-docs路径\n    path: /v3/api-docs\n    # 开启api-docs\n    enabled: true\n  group-configs:\n    - group: 'default'\n      packages-to-scan: com.macro.mall.controller\n  default-flat-param-object: false\nsa-token:\n  # token名称 (同时也是cookie名称)\n  token-name: Authorization\n  # token有效期，单位秒，-1代表永不过期\n  timeout: 604800\n  # token临时有效期 (指定时间内无操作就视为token过期)，单位秒\n  active-timeout: -1\n  # 是否允许同一账号并发登录 (为false时新登录挤掉旧登录)\n  is-concurrent: true\n  # 在多人登录同一账号时，是否共用一个token (为false时每次登录新建一个token)\n  is-share: false\n  # token风格\n  token-style: uuid\n  # 是否输出操作日志\n  is-log: false\n  # 是否从cookie中读取token\n  is-read-cookie: false\n  # 是否从head中读取token\n  is-read-header: true\n  # token前缀\n  token-prefix: Bearer\n  # jwt秘钥\n  jwt-secret-key: sa-secret-key123\n  # 是否打印banner\n  is-print: false"
  },
  {
    "path": "mall-admin/src/main/resources/bootstrap-dev.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://localhost:8848\n      config:\n        server-addr: http://localhost:8848\n        file-extension: yaml"
  },
  {
    "path": "mall-admin/src/main/resources/bootstrap-prod.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://nacos-registry:8848\n      config:\n        server-addr: http://nacos-registry:8848\n        file-extension: yaml"
  },
  {
    "path": "mall-admin/src/main/resources/bootstrap.yml",
    "content": "spring:\n  profiles:\n    active: dev\n  application:\n    name: mall-admin"
  },
  {
    "path": "mall-admin/src/main/resources/dao/CmsPrefrenceAreaProductRelationDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.CmsPrefrenceAreaProductRelationDao\">\n    <insert id=\"insertList\">\n        insert into cms_prefrence_area_product_relation (prefrence_area_id, product_id) values\n        <foreach collection=\"list\" item=\"item\" separator=\",\" index=\"index\">\n            (#{item.prefrenceAreaId,jdbcType=BIGINT},\n            #{item.productId,jdbcType=BIGINT})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/CmsSubjectProductRelationDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.CmsSubjectProductRelationDao\">\n    <insert id=\"insertList\">\n        insert into cms_subject_product_relation (subject_id, product_id) values\n        <foreach collection=\"list\" item=\"item\" separator=\",\" index=\"index\">\n            (#{item.subjectId,jdbcType=BIGINT},\n            #{item.productId,jdbcType=BIGINT})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/OmsOrderDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.OmsOrderDao\">\n    <resultMap id=\"orderDetailResultMap\" type=\"com.macro.mall.dto.OmsOrderDetail\" extends=\"com.macro.mall.mapper.OmsOrderMapper.BaseResultMap\">\n        <collection property=\"orderItemList\" resultMap=\"com.macro.mall.mapper.OmsOrderItemMapper.BaseResultMap\" columnPrefix=\"item_\"/>\n        <collection property=\"historyList\" resultMap=\"com.macro.mall.mapper.OmsOrderOperateHistoryMapper.BaseResultMap\" columnPrefix=\"history_\"/>\n    </resultMap>\n    <select id=\"getList\" resultMap=\"com.macro.mall.mapper.OmsOrderMapper.BaseResultMap\">\n        SELECT *\n        FROM\n        oms_order\n        WHERE\n        delete_status = 0\n        <if test=\"queryParam.orderSn!=null and queryParam.orderSn!=''\">\n            AND order_sn = #{queryParam.orderSn}\n        </if>\n        <if test=\"queryParam.status!=null\">\n            AND `status` = #{queryParam.status}\n        </if>\n        <if test=\"queryParam.sourceType!=null\">\n            AND source_type = #{queryParam.sourceType}\n        </if>\n        <if test=\"queryParam.orderType!=null\">\n            AND order_type = #{queryParam.orderType}\n        </if>\n        <if test=\"queryParam.createTime!=null and queryParam.createTime!=''\">\n            AND create_time LIKE concat(#{queryParam.createTime},\"%\")\n        </if>\n        <if test=\"queryParam.receiverKeyword!=null and queryParam.receiverKeyword!=''\">\n            AND (\n            receiver_name LIKE concat(\"%\",#{queryParam.receiverKeyword},\"%\")\n            OR receiver_phone LIKE concat(\"%\",#{queryParam.receiverKeyword},\"%\")\n            )\n        </if>\n    </select>\n    <update id=\"delivery\">\n        UPDATE oms_order\n        SET\n        delivery_sn = CASE id\n        <foreach collection=\"list\" item=\"item\">\n            WHEN #{item.orderId} THEN #{item.deliverySn}\n        </foreach>\n        END,\n        delivery_company = CASE id\n        <foreach collection=\"list\" item=\"item\">\n            WHEN #{item.orderId} THEN #{item.deliveryCompany}\n        </foreach>\n        END,\n        delivery_time = CASE id\n        <foreach collection=\"list\" item=\"item\">\n            WHEN #{item.orderId} THEN now()\n        </foreach>\n        END,\n        `status` = CASE id\n        <foreach collection=\"list\" item=\"item\">\n            WHEN #{item.orderId} THEN 2\n        </foreach>\n        END\n        WHERE\n        id IN\n        <foreach collection=\"list\" item=\"item\" separator=\",\" open=\"(\" close=\")\">\n            #{item.orderId}\n        </foreach>\n        AND `status` = 1\n    </update>\n    <select id=\"getDetail\" resultMap=\"orderDetailResultMap\">\n        SELECT o.*,\n            oi.id item_id,\n            oi.product_id item_product_id,\n            oi.product_sn item_product_sn,\n            oi.product_pic item_product_pic,\n            oi.product_name item_product_name,\n            oi.product_brand item_product_brand,\n            oi.product_price item_product_price,\n            oi.product_quantity item_product_quantity,\n            oi.product_attr item_product_attr,\n            oh.id history_id,\n            oh.operate_man history_operate_man,\n            oh.create_time history_create_time,\n            oh.order_status history_order_status,\n            oh.note history_note\n        FROM\n            oms_order o\n            LEFT JOIN oms_order_item oi ON o.id = oi.order_id\n            LEFT JOIN oms_order_operate_history oh ON o.id = oh.order_id\n        WHERE\n            o.id = #{id}\n        ORDER BY oi.id ASC,oh.create_time DESC\n    </select>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/OmsOrderOperateHistoryDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.OmsOrderOperateHistoryDao\">\n    <insert id=\"insertList\">\n        INSERT INTO oms_order_operate_history (order_id, operate_man, create_time, order_status, note) VALUES\n        <foreach collection=\"list\" separator=\",\" item=\"item\" index=\"index\">\n            (#{item.orderId},\n            #{item.operateMan},\n            #{item.createTime,jdbcType=TIMESTAMP},\n            #{item.orderStatus},\n            #{item.note})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/OmsOrderReturnApplyDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.OmsOrderReturnApplyDao\">\n    <resultMap id=\"returnApplyDetailResultMap\" type=\"com.macro.mall.dto.OmsOrderReturnApplyResult\" extends=\"com.macro.mall.mapper.OmsOrderReturnApplyMapper.BaseResultMap\">\n        <association property=\"companyAddress\" resultMap=\"com.macro.mall.mapper.OmsCompanyAddressMapper.BaseResultMap\" columnPrefix=\"ca_\"/>\n    </resultMap>\n    <select id=\"getList\" resultMap=\"com.macro.mall.mapper.OmsOrderReturnApplyMapper.BaseResultMap\">\n        SELECT\n        id,\n        create_time,\n        member_username,\n        product_real_price,\n        product_count,\n        return_name,\n        status,\n        handle_time\n        FROM\n        oms_order_return_apply\n        WHERE\n        1 = 1\n        <if test=\"queryParam.id!=null\">\n            AND id = #{queryParam.id}\n        </if>\n        <if test=\"queryParam.status!=null\">\n            AND status = #{queryParam.status}\n        </if>\n        <if test=\"queryParam.status!=null\">\n            AND status = #{queryParam.status}\n        </if>\n        <if test=\"queryParam.handleMan!=null and queryParam.handleMan!=''\">\n            AND handle_man = #{queryParam.handleMan}\n        </if>\n        <if test=\"queryParam.createTime!=null and queryParam.createTime!=''\">\n            AND create_time LIKE CONCAT(#{queryParam.createTime}, '%')\n        </if>\n        <if test=\"queryParam.handleTime!=null and queryParam.handleTime!=''\">\n            AND handle_time LIKE CONCAT(#{queryParam.handleTime}, '%')\n        </if>\n        <if test=\"queryParam.receiverKeyword!=null and queryParam.receiverKeyword!=''\">\n            AND (return_name LIKE concat(\"%\",#{queryParam.receiverKeyword},\"%\")\n            OR return_phone LIKE concat(\"%\",#{queryParam.receiverKeyword},\"%\"))\n        </if>\n    </select>\n    <select id=\"getDetail\" resultMap=\"returnApplyDetailResultMap\">\n        SELECT\n            ra.*, ca.id ca_id,\n                  ca.address_name ca_address_name,\n                  ca.`name` ca_name,\n                  ca.phone ca_phone,\n                  ca.province ca_province,\n                  ca.city ca_city,\n                  ca.region ca_region,\n                  ca.detail_address ca_detail_address\n        FROM\n            oms_order_return_apply ra\n            LEFT JOIN oms_company_address ca ON ra.company_address_id = ca.id\n        WHERE ra.id=#{id};\n    </select>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/PmsMemberPriceDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.PmsMemberPriceDao\">\n    <!--批量新增回写主键支持-->\n    <insert id=\"insertList\">\n        INSERT INTO pms_member_price (product_id, member_level_id, member_price,member_level_name) VALUES\n        <foreach collection=\"list\" separator=\",\" item=\"item\" index=\"index\">\n            (#{item.productId,jdbcType=BIGINT},\n            #{item.memberLevelId,jdbcType=BIGINT},\n            #{item.memberPrice,jdbcType=DECIMAL},\n            #{item.memberLevelName,jdbcType=VARCHAR})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/PmsProductAttributeCategoryDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.PmsProductAttributeCategoryDao\">\n    <resultMap id=\"getListWithAttrMap\" type=\"com.macro.mall.dto.PmsProductAttributeCategoryItem\" extends=\"com.macro.mall.mapper.PmsProductAttributeCategoryMapper.BaseResultMap\">\n        <collection property=\"productAttributeList\" columnPrefix=\"attr_\" resultMap=\"com.macro.mall.mapper.PmsProductAttributeMapper.BaseResultMap\">\n        </collection>\n    </resultMap>\n    <select id=\"getListWithAttr\" resultMap=\"getListWithAttrMap\">\n        SELECT\n            pac.id,\n            pac.name,\n            pa.id attr_id,\n            pa.name attr_name\n        FROM\n            pms_product_attribute_category pac\n            LEFT JOIN pms_product_attribute pa ON pac.id = pa.product_attribute_category_id\n        AND pa.type=1;\n    </select>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/PmsProductAttributeDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.PmsProductAttributeDao\">\n    <select id=\"getProductAttrInfo\" resultType=\"com.macro.mall.dto.ProductAttrInfo\">\n        SELECT\n            pa.id  attributeId,\n            pac.id attributeCategoryId\n        FROM\n            pms_product_category_attribute_relation pcar\n            LEFT JOIN pms_product_attribute pa ON pa.id = pcar.product_attribute_id\n            LEFT JOIN pms_product_attribute_category pac ON pa.product_attribute_category_id = pac.id\n        WHERE\n            pcar.product_category_id = #{id}\n    </select>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/PmsProductAttributeValueDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.PmsProductAttributeValueDao\">\n    <insert id=\"insertList\">\n        insert into pms_product_attribute_value (product_id,product_attribute_id,value) values\n        <foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\">\n            (#{item.productId,jdbcType=BIGINT},\n            #{item.productAttributeId,jdbcType=BIGINT},\n            #{item.value,jdbcType=VARCHAR})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/PmsProductCategoryAttributeRelationDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.PmsProductCategoryAttributeRelationDao\">\n    <!--批量新增回写主键支持-->\n    <insert id=\"insertList\">\n        INSERT INTO pms_product_category_attribute_relation (product_category_id, product_attribute_id) VALUES\n        <foreach collection=\"list\" separator=\",\" item=\"item\" index=\"index\">\n            (#{item.productCategoryId,jdbcType=BIGINT},\n            #{item.productAttributeId,jdbcType=BIGINT})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/PmsProductCategoryDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.PmsProductCategoryDao\">\n    <resultMap id=\"listWithChildrenMap\" type=\"com.macro.mall.dto.PmsProductCategoryWithChildrenItem\"\n               extends=\"com.macro.mall.mapper.PmsProductCategoryMapper.BaseResultMap\">\n        <collection property=\"children\" resultMap=\"com.macro.mall.mapper.PmsProductCategoryMapper.BaseResultMap\"\n                    columnPrefix=\"child_\"></collection>\n    </resultMap>\n    <select id=\"listWithChildren\" resultMap=\"listWithChildrenMap\">\n        select\n            c1.id,\n            c1.name,\n            c2.id   child_id,\n            c2.name child_name\n        from pms_product_category c1 left join pms_product_category c2 on c1.id = c2.parent_id\n        where c1.parent_id = 0\n    </select>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/PmsProductDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.PmsProductDao\">\n    <resultMap id=\"updateInfoMap\" type=\"com.macro.mall.dto.PmsProductResult\" extends=\"com.macro.mall.mapper.PmsProductMapper.ResultMapWithBLOBs\">\n        <result column=\"cateParentId\" jdbcType=\"BIGINT\" property=\"cateParentId\" />\n        <collection property=\"productLadderList\" columnPrefix=\"ladder_\" resultMap=\"com.macro.mall.mapper.PmsProductLadderMapper.BaseResultMap\">\n        </collection>\n        <collection property=\"productFullReductionList\" columnPrefix=\"full_\" resultMap=\"com.macro.mall.mapper.PmsProductFullReductionMapper.BaseResultMap\">\n        </collection>\n        <collection property=\"memberPriceList\" columnPrefix=\"member_\" resultMap=\"com.macro.mall.mapper.PmsMemberPriceMapper.BaseResultMap\">\n        </collection>\n        <collection property=\"skuStockList\" columnPrefix=\"sku_\" resultMap=\"com.macro.mall.mapper.PmsSkuStockMapper.BaseResultMap\">\n        </collection>\n        <collection property=\"productAttributeValueList\" columnPrefix=\"attribute_\" resultMap=\"com.macro.mall.mapper.PmsProductAttributeValueMapper.BaseResultMap\">\n        </collection>\n        <collection property=\"subjectProductRelationList\" column=\"{productId=id}\" select=\"selectSubjectProductRelationByProductId\"/>\n        <collection property=\"prefrenceAreaProductRelationList\" column=\"{productId=id}\" select=\"selectPrefrenceAreaProductRelationByProductId\"/>\n\n    </resultMap>\n\n    <select id=\"getUpdateInfo\" resultMap=\"updateInfoMap\">\n        SELECT *,\n            pc.parent_id cateParentId,\n            l.id ladder_id,l.product_id ladder_product_id,l.discount ladder_discount,l.count ladder_count,l.price ladder_price,\n            pf.id full_id,pf.product_id full_product_id,pf.full_price full_full_price,pf.reduce_price full_reduce_price,\n            m.id member_id,m.product_id member_product_id,m.member_level_id member_member_level_id,m.member_price member_member_price,m.member_level_name member_member_level_name,\n            s.id sku_id,s.product_id sku_product_id,s.price sku_price,s.low_stock sku_low_stock,s.pic sku_pic,s.sale sku_sale,s.sku_code sku_sku_code,s.stock sku_stock,s.sp_data sku_sp_data,\n            a.id attribute_id,a.product_id attribute_product_id,a.product_attribute_id attribute_product_attribute_id,a.value attribute_value\n        FROM pms_product p\n        LEFT JOIN pms_product_category pc on pc.id = p.product_category_id\n        LEFT JOIN pms_product_ladder l ON p.id = l.product_id\n        LEFT JOIN pms_product_full_reduction pf ON pf.product_id=p.id\n        LEFT JOIN pms_member_price m ON m.product_id = p.id\n        LEFT JOIN pms_sku_stock s ON s.product_id = p.id\n        LEFT JOIN pms_product_attribute_value a ON a.product_id=p.id\n        WHERE p.id=#{id};\n    </select>\n    <select id=\"selectSubjectProductRelationByProductId\" resultMap=\"com.macro.mall.mapper.CmsSubjectProductRelationMapper.BaseResultMap\">\n        select * from cms_subject_product_relation where product_id=#{productId}\n    </select>\n    <select id=\"selectPrefrenceAreaProductRelationByProductId\" resultMap=\"com.macro.mall.mapper.CmsPrefrenceAreaProductRelationMapper.BaseResultMap\">\n        select * from cms_prefrence_area_product_relation where product_id=#{productId}\n    </select>\n\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/PmsProductFullReductionDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.PmsProductFullReductionDao\">\n    <insert id=\"insertList\">\n        INSERT INTO pms_product_full_reduction (product_id, full_price, reduce_price) VALUES\n        <foreach collection=\"list\" separator=\",\" item=\"item\" index=\"index\">\n            (#{item.productId,jdbcType=BIGINT},\n            #{item.fullPrice,jdbcType=DECIMAL},\n            #{item.reducePrice,jdbcType=DECIMAL})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/PmsProductLadderDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.PmsProductLadderDao\">\n    <insert id=\"insertList\">\n        INSERT INTO pms_product_ladder (product_id, count, discount, price) VALUES\n        <foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\">\n            (#{item.productId,jdbcType=BIGINT},\n            #{item.count,jdbcType=INTEGER},\n            #{item.discount,jdbcType=DECIMAL},\n            #{item.price,jdbcType=DECIMAL})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/PmsProductVertifyRecordDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.PmsProductVertifyRecordDao\">\n    <!--批量新增回写主键支持-->\n    <insert id=\"insertList\">\n        insert into pms_product_vertify_record (product_id, create_time, vertify_man,status, detail) values\n        <foreach collection=\"list\" separator=\",\" item=\"item\" index=\"index\">\n            (#{item.productId,jdbcType=BIGINT},\n            #{item.createTime,jdbcType=TIMESTAMP},\n            #{item.vertifyMan,jdbcType=VARCHAR},\n            #{item.status,jdbcType=INTEGER},\n            #{item.detail,jdbcType=VARCHAR})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/PmsSkuStockDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.PmsSkuStockDao\">\n    <insert id=\"insertList\">\n        INSERT INTO pms_sku_stock (product_id, sku_code, price, stock, low_stock, pic, sale, sp_data) VALUES\n        <foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\">\n            (#{item.productId,jdbcType=BIGINT},\n            #{item.skuCode,jdbcType=VARCHAR},\n            #{item.price,jdbcType=DECIMAL},\n            #{item.stock,jdbcType=INTEGER},\n            #{item.lowStock,jdbcType=INTEGER},\n            #{item.pic,jdbcType=VARCHAR},\n            #{item.sale,jdbcType=INTEGER},\n            #{item.spData,jdbcType=VARCHAR})\n        </foreach>\n    </insert>\n    <insert id=\"replaceList\">\n        REPLACE INTO pms_sku_stock (id,product_id, sku_code, price, stock, low_stock,pic, sale, sp_data) VALUES\n        <foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\">\n            (#{item.id,jdbcType=BIGINT},\n            #{item.productId,jdbcType=BIGINT},\n            #{item.skuCode,jdbcType=VARCHAR},\n            #{item.price,jdbcType=DECIMAL},\n            #{item.stock,jdbcType=INTEGER},\n            #{item.lowStock,jdbcType=INTEGER},\n            #{item.pic,jdbcType=VARCHAR},\n            #{item.sale,jdbcType=INTEGER},\n            #{item.spData,jdbcType=VARCHAR})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/SmsCouponDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.SmsCouponDao\">\n    <resultMap id=\"couponItemParam\" type=\"com.macro.mall.dto.SmsCouponParam\" extends=\"com.macro.mall.mapper.SmsCouponMapper.BaseResultMap\">\n        <collection property=\"productRelationList\" columnPrefix=\"cpr_\" resultMap=\"com.macro.mall.mapper.SmsCouponProductRelationMapper.BaseResultMap\">\n        </collection>\n        <collection property=\"productCategoryRelationList\" columnPrefix=\"cpcr_\" resultMap=\"com.macro.mall.mapper.SmsCouponProductCategoryRelationMapper.BaseResultMap\">\n        </collection>\n    </resultMap>\n    <select id=\"getItem\" resultMap=\"couponItemParam\">\n        SELECT\n            c.*,\n            cpr.id                   cpr_id,\n            cpr.product_id           cpr_product_id,\n            cpr.product_name         cpr_product_name,\n            cpr.product_sn           cpr_product_sn,\n            cpcr.id                  cpcr_id,\n            cpcr.product_category_id cpcr_product_category_id,\n            cpcr.product_category_name cpcr_product_category_name,\n            cpcr.parent_category_name cpcr_parent_category_name\n        FROM\n            sms_coupon c\n            LEFT JOIN sms_coupon_product_relation cpr ON c.id = cpr.coupon_id\n            LEFT JOIN sms_coupon_product_category_relation cpcr ON c.id = cpcr.coupon_id\n        WHERE\n            c.id = #{id}\n    </select>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/SmsCouponProductCategoryRelationDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.SmsCouponProductCategoryRelationDao\">\n    <insert id=\"insertList\">\n        INSERT INTO sms_coupon_product_category_relation (product_category_id,product_category_name,parent_category_name,coupon_id) VALUES\n        <foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\">\n            (#{item.productCategoryId,jdbcType=BIGINT},\n            #{item.productCategoryName,jdbcType=VARCHAR},\n            #{item.parentCategoryName,jdbcType=VARCHAR},\n            #{item.couponId,jdbcType=BIGINT})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/SmsCouponProductRelationDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.SmsCouponProductRelationDao\">\n    <insert id=\"insertList\">\n        INSERT INTO sms_coupon_product_relation (product_id,product_name,product_sn,coupon_id) VALUES\n        <foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\">\n            (#{item.productId,jdbcType=BIGINT},\n            #{item.productName,jdbcType=VARCHAR},\n            #{item.productSn,jdbcType=VARCHAR},\n            #{item.couponId,jdbcType=INTEGER})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/SmsFlashPromotionProductRelationDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.SmsFlashPromotionProductRelationDao\">\n    <resultMap id=\"flashProductMap\" type=\"com.macro.mall.dto.SmsFlashPromotionProduct\" extends=\"com.macro.mall.mapper.SmsFlashPromotionProductRelationMapper.BaseResultMap\">\n        <association property=\"product\" resultMap=\"com.macro.mall.mapper.PmsProductMapper.BaseResultMap\" columnPrefix=\"p_\"/>\n    </resultMap>\n    <select id=\"getList\" resultMap=\"flashProductMap\">\n        SELECT\n            r.id,\n            r.flash_promotion_price,\n            r.flash_promotion_count,\n            r.flash_promotion_limit,\n            r.flash_promotion_id,\n            r.flash_promotion_session_id,\n            r.product_id,\n            r.sort,\n            p.id p_id,\n            p.`name` p_name,\n            p.product_sn p_product_sn,\n            p.price p_price,\n            p.stock p_stock\n        FROM\n            sms_flash_promotion_product_relation r\n            LEFT JOIN pms_product p ON r.product_id = p.id\n        WHERE\n            r.flash_promotion_id = #{flashPromotionId}\n            AND r.flash_promotion_session_id = #{flashPromotionSessionId}\n        ORDER BY r.sort DESC\n    </select>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/UmsAdminRoleRelationDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.UmsAdminRoleRelationDao\">\n    <!--批量新增回写主键支持-->\n    <insert id=\"insertList\">\n        INSERT INTO ums_admin_role_relation (admin_id, role_id) VALUES\n        <foreach collection=\"list\" separator=\",\" item=\"item\" index=\"index\">\n            (#{item.adminId,jdbcType=BIGINT},\n            #{item.roleId,jdbcType=BIGINT})\n        </foreach>\n    </insert>\n    <select id=\"getRoleList\" resultMap=\"com.macro.mall.mapper.UmsRoleMapper.BaseResultMap\">\n        select r.*\n        from ums_admin_role_relation ar left join ums_role r on ar.role_id = r.id\n        where ar.admin_id = #{adminId}\n    </select>\n    <select id=\"getResourceList\" resultType=\"com.macro.mall.model.UmsResource\">\n        SELECT\n            ur.id id,\n            ur.create_time createTime,\n            ur.`name` `name`,\n            ur.url url,\n            ur.description description,\n            ur.category_id categoryId\n        FROM\n            ums_admin_role_relation ar\n        LEFT JOIN ums_role r ON ar.role_id = r.id\n        LEFT JOIN ums_role_resource_relation rrr ON r.id = rrr.role_id\n        LEFT JOIN ums_resource ur ON ur.id = rrr.resource_id\n        WHERE\n            ar.admin_id = #{adminId}\n        AND ur.id IS NOT NULL\n        GROUP BY\n            ur.id\n    </select>\n    <select id=\"getAdminIdList\" resultType=\"java.lang.Long\">\n        SELECT\n            DISTINCT ar.admin_id\n        FROM\n            ums_role_resource_relation rr\n                LEFT JOIN ums_admin_role_relation ar ON rr.role_id = ar.role_id\n        WHERE rr.resource_id=#{resourceId}\n    </select>\n</mapper>"
  },
  {
    "path": "mall-admin/src/main/resources/dao/UmsRoleDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.dao.UmsRoleDao\">\n\n    <select id=\"getMenuList\" resultType=\"com.macro.mall.model.UmsMenu\">\n        SELECT\n            m.id id,\n            m.parent_id parentId,\n            m.create_time createTime,\n            m.title title,\n            m.level level,\n            m.sort sort,\n            m.name name,\n            m.icon icon,\n            m.hidden hidden\n        FROM\n            ums_admin_role_relation arr\n                LEFT JOIN ums_role r ON arr.role_id = r.id\n                LEFT JOIN ums_role_menu_relation rmr ON r.id = rmr.role_id\n                LEFT JOIN ums_menu m ON rmr.menu_id = m.id\n        WHERE\n            arr.admin_id = #{adminId}\n          AND m.id IS NOT NULL\n        GROUP BY\n            m.id\n    </select>\n    <select id=\"getMenuListByRoleId\" resultType=\"com.macro.mall.model.UmsMenu\">\n        SELECT\n            m.id id,\n            m.parent_id parentId,\n            m.create_time createTime,\n            m.title title,\n            m.level level,\n            m.sort sort,\n            m.name name,\n            m.icon icon,\n            m.hidden hidden\n        FROM\n             ums_role_menu_relation rmr\n                LEFT JOIN ums_menu m ON rmr.menu_id = m.id\n        WHERE\n            rmr.role_id = #{roleId}\n          AND m.id IS NOT NULL\n        GROUP BY\n            m.id\n    </select>\n    <select id=\"getResourceListByRoleId\" resultType=\"com.macro.mall.model.UmsResource\">\n        SELECT\n            r.id id,\n            r.create_time createTime,\n            r.`name` `name`,\n            r.url url,\n            r.description description,\n            r.category_id categoryId\n        FROM\n            ums_role_resource_relation rrr\n                LEFT JOIN ums_resource r ON rrr.resource_id = r.id\n        WHERE\n            rrr.role_id = #{roleId}\n          AND r.id IS NOT NULL\n        GROUP BY\n            r.id\n    </select>\n</mapper>"
  },
  {
    "path": "mall-admin/src/test/com/macro/mall/PmsDaoTests.java",
    "content": "package com.macro.mall;\n\n\nimport cn.hutool.json.JSONUtil;\nimport com.macro.mall.dao.PmsMemberPriceDao;\nimport com.macro.mall.dao.PmsProductDao;\nimport com.macro.mall.dto.PmsProductResult;\nimport com.macro.mall.model.PmsMemberPrice;\nimport org.junit.jupiter.api.Test;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.boot.test.context.SpringBootTest;\nimport org.springframework.test.annotation.Rollback;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport static org.junit.jupiter.api.Assertions.assertEquals;\n\n@SpringBootTest\npublic class PmsDaoTests {\n    @Autowired\n    private PmsMemberPriceDao memberPriceDao;\n    @Autowired\n    private PmsProductDao productDao;\n    private static final Logger LOGGER = LoggerFactory.getLogger(PmsDaoTests.class);\n    @Test\n    @Transactional\n    @Rollback\n    public void testInsertBatch(){\n        List<PmsMemberPrice> list = new ArrayList<>();\n        for(int i=0;i<5;i++){\n            PmsMemberPrice memberPrice = new PmsMemberPrice();\n            memberPrice.setProductId(1L);\n            memberPrice.setMemberLevelId((long) (i+1));\n            memberPrice.setMemberPrice(new BigDecimal(\"22\"));\n            list.add(memberPrice);\n        }\n        int count = memberPriceDao.insertList(list);\n        assertEquals(5,count);\n    }\n\n    @Test\n    public void  testGetProductUpdateInfo(){\n        PmsProductResult productResult = productDao.getUpdateInfo(7L);\n        String json = JSONUtil.parse(productResult).toString();\n        LOGGER.info(json);\n    }\n}\n"
  },
  {
    "path": "mall-auth/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <groupId>com.macro.mall</groupId>\n    <artifactId>mall-auth</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <packaging>jar</packaging>\n\n    <name>mall-auth</name>\n    <description>mall-auth project for mall</description>\n\n    <parent>\n        <groupId>com.macro.mall</groupId>\n        <artifactId>mall-swarm</artifactId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.macro.mall</groupId>\n            <artifactId>mall-common</artifactId>\n            <exclusions>\n                <exclusion>\n                    <groupId>org.springframework.boot</groupId>\n                    <artifactId>spring-boot-starter-data-redis</artifactId>\n                </exclusion>\n            </exclusions>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-web</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.cloud</groupId>\n            <artifactId>spring-cloud-starter-openfeign</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>de.codecentric</groupId>\n            <artifactId>spring-boot-admin-starter-client</artifactId>\n        </dependency>\n    </dependencies>\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.springframework.boot</groupId>\n                <artifactId>spring-boot-maven-plugin</artifactId>\n            </plugin>\n            <plugin>\n                <groupId>io.fabric8</groupId>\n                <artifactId>docker-maven-plugin</artifactId>\n            </plugin>\n        </plugins>\n    </build>\n\n</project>"
  },
  {
    "path": "mall-auth/src/main/java/com/macro/mall/auth/MallAuthApplication.java",
    "content": "package com.macro.mall.auth;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.cloud.client.discovery.EnableDiscoveryClient;\nimport org.springframework.cloud.openfeign.EnableFeignClients;\n\n@EnableFeignClients\n@EnableDiscoveryClient\n@SpringBootApplication(scanBasePackages = \"com.macro.mall\")\npublic class MallAuthApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(MallAuthApplication.class, args);\n    }\n\n}\n"
  },
  {
    "path": "mall-auth/src/main/java/com/macro/mall/auth/config/SpringDocConfig.java",
    "content": "package com.macro.mall.auth.config;\n\nimport io.swagger.v3.oas.models.Components;\nimport io.swagger.v3.oas.models.ExternalDocumentation;\nimport io.swagger.v3.oas.models.OpenAPI;\nimport io.swagger.v3.oas.models.info.Info;\nimport io.swagger.v3.oas.models.info.License;\nimport io.swagger.v3.oas.models.security.SecurityRequirement;\nimport io.swagger.v3.oas.models.security.SecurityScheme;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.web.servlet.config.annotation.ViewControllerRegistry;\nimport org.springframework.web.servlet.config.annotation.WebMvcConfigurer;\n\n/**\n * SpringDoc相关配置\n * Created by macro on 2024/3/5.\n */\n@Configuration\npublic class SpringDocConfig implements WebMvcConfigurer {\n\n    private static final String SECURITY_SCHEME_NAME = \"Authorization\";\n\n    @Bean\n    public OpenAPI mallAuthOpenAPI() {\n        return new OpenAPI()\n                .info(new Info().title(\"mall认证中心\")\n                        .description(\"mall认证中心相关接口文档\")\n                        .version(\"v1.0.0\")\n                        .license(new License().name(\"Apache 2.0\")\n                                .url(\"https://github.com/macrozheng/mall-learning\")))\n                .externalDocs(new ExternalDocumentation()\n                        .description(\"SpringBoot实战电商项目mall（60K+Star）全套文档\")\n                        .url(\"http://www.macrozheng.com\"))\n                .addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME))\n                .components(new Components()\n                        .addSecuritySchemes(SECURITY_SCHEME_NAME,\n                                new SecurityScheme()\n                                        .name(SECURITY_SCHEME_NAME)\n                                        .type(SecurityScheme.Type.HTTP)\n                                        .scheme(\"bearer\")\n                                        .bearerFormat(\"JWT\")));\n    }\n\n    @Override\n    public void addViewControllers(ViewControllerRegistry registry) {\n        //配置访问`/swagger-ui/`路径时可以直接跳转到`/swagger-ui/index.html`\n        registry.addViewController(\"/swagger-ui/\").setViewName(\"redirect:/swagger-ui/index.html\");\n    }\n\n}\n\n"
  },
  {
    "path": "mall-auth/src/main/java/com/macro/mall/auth/controller/AuthController.java",
    "content": "package com.macro.mall.auth.controller;\n\nimport com.macro.mall.auth.domain.UmsAdminLoginParam;\nimport com.macro.mall.auth.service.UmsAdminService;\nimport com.macro.mall.auth.service.UmsMemberService;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.common.constant.AuthConstant;\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\n/**\n * @auther macrozheng\n * @description 统一认证授权接口\n * @date 2024/1/30\n * @github https://github.com/macrozheng\n */\n@Controller\n@Tag(name = \"AuthController\", description = \"统一认证授权接口\")\n@RequestMapping(\"/auth\")\npublic class AuthController {\n\n    @Autowired\n    private UmsAdminService adminService;\n\n    @Autowired\n    private UmsMemberService memberService;\n\n    @Operation(summary = \"登录以后返回token\")\n    @RequestMapping(value = \"/login\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult login(@RequestParam String clientId,\n                              @RequestParam String username,\n                              @RequestParam String password) {\n        if(AuthConstant.ADMIN_CLIENT_ID.equals(clientId)){\n            UmsAdminLoginParam loginParam = new UmsAdminLoginParam();\n            loginParam.setUsername(username);\n            loginParam.setPassword(password);\n            return adminService.login(loginParam);\n        }else if(AuthConstant.PORTAL_CLIENT_ID.equals(clientId)){\n            return memberService.login(username,password);\n        }else{\n            return CommonResult.failed(\"clientId不正确\");\n        }\n    }\n}\n"
  },
  {
    "path": "mall-auth/src/main/java/com/macro/mall/auth/domain/UmsAdminLoginParam.java",
    "content": "package com.macro.mall.auth.domain;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport jakarta.validation.constraints.NotEmpty;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\n/**\n * 用户登录参数\n * Created by macro on 2018/4/26.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class UmsAdminLoginParam {\n    @NotEmpty\n    @Schema(title = \"用户名\", required = true)\n    private String username;\n    @NotEmpty\n    @Schema(title = \"密码\", required = true)\n    private String password;\n}\n"
  },
  {
    "path": "mall-auth/src/main/java/com/macro/mall/auth/service/UmsAdminService.java",
    "content": "package com.macro.mall.auth.service;\n\nimport com.macro.mall.auth.domain.UmsAdminLoginParam;\nimport com.macro.mall.common.api.CommonResult;\nimport org.springframework.cloud.openfeign.FeignClient;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RequestParam;\n\n/**\n * @auther macrozheng\n * @description 后台用户服务远程调用Service\n * @date 2024/1/30\n * @github https://github.com/macrozheng\n */\n@FeignClient(\"mall-admin\")\npublic interface UmsAdminService {\n\n    @PostMapping(\"/admin/login\")\n    CommonResult login(@RequestBody UmsAdminLoginParam umsAdminLoginParam);\n}\n"
  },
  {
    "path": "mall-auth/src/main/java/com/macro/mall/auth/service/UmsMemberService.java",
    "content": "package com.macro.mall.auth.service;\n\nimport com.macro.mall.common.api.CommonResult;\nimport org.springframework.cloud.openfeign.FeignClient;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\n\n/**\n * @auther macrozheng\n * @description 前台会员服务远程调用Service\n * @date 2024/1/30\n * @github https://github.com/macrozheng\n */\n@FeignClient(\"mall-portal\")\npublic interface UmsMemberService {\n    @PostMapping(\"/sso/login\")\n    CommonResult login(@RequestParam(\"username\") String username, @RequestParam(\"password\") String password);\n}\n"
  },
  {
    "path": "mall-auth/src/main/resources/application.yml",
    "content": "server:\n  port: 8401\nspring:\n  mvc:\n    pathmatch:\n      matching-strategy: ant_path_matcher\nmanagement:\n  endpoints:\n    web:\n      exposure:\n        include: '*' #暴露Actuator的监控端点\n  endpoint:\n    health:\n      show-details: always #显示健康的详细信息\n    env:\n      show-values: always #默认Actuator的环境变量会以****显示，这里开启显示\n    configprops:\n      show-values: always #默认Actuator的配置属性会以****显示，这里开启显示\n    info:\n      enabled: true\nspringdoc:\n  swagger-ui:\n    # 修改Swagger UI路径\n    path: /swagger-ui.html\n    # 开启Swagger UI界面\n    enabled: true\n    tags-sorter: alpha\n    operations-sorter: alpha\n    show-extensions: true\n  api-docs:\n    # 修改api-docs路径\n    path: /v3/api-docs\n    # 开启api-docs\n    enabled: true\n  group-configs:\n    - group: 'default'\n      packages-to-scan: com.macro.mall.auth.controller\n  default-flat-param-object: false\n"
  },
  {
    "path": "mall-auth/src/main/resources/bootstrap-dev.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://localhost:8848\n      config:\n        server-addr: http://localhost:8848\n        file-extension: yaml\nlogging:\n  level:\n    root: debug"
  },
  {
    "path": "mall-auth/src/main/resources/bootstrap-prod.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://nacos-registry:8848\n      config:\n        server-addr: http://nacos-registry:8848\n        file-extension: yaml\nlogging:\n  level:\n    root: info"
  },
  {
    "path": "mall-auth/src/main/resources/bootstrap.yml",
    "content": "spring:\n  profiles:\n    active: dev\n  application:\n    name: mall-auth"
  },
  {
    "path": "mall-common/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n    <groupId>com.macro.mall</groupId>\n    <artifactId>mall-common</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <packaging>jar</packaging>\n\n    <name>mall-common</name>\n    <description>mall-common project for mall</description>\n\n    <parent>\n        <groupId>com.macro.mall</groupId>\n        <artifactId>mall-swarm</artifactId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.github.pagehelper</groupId>\n            <artifactId>pagehelper</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-web</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-data-redis</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.data</groupId>\n            <artifactId>spring-data-commons</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.github.xiaoymin</groupId>\n            <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>net.logstash.logback</groupId>\n            <artifactId>logstash-logback-encoder</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-validation</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.cloud</groupId>\n            <artifactId>spring-cloud-starter-bootstrap</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.cloud</groupId>\n            <artifactId>spring-cloud-starter-loadbalancer</artifactId>\n        </dependency>\n    </dependencies>\n\n</project>"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/annotation/CacheException.java",
    "content": "package com.macro.mall.common.annotation;\n\nimport java.lang.annotation.*;\n\n/**\n * 自定义注解，有该注解的缓存方法会抛出异常\n */\n@Documented\n@Target(ElementType.METHOD)\n@Retention(RetentionPolicy.RUNTIME)\npublic @interface CacheException {\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/api/CommonPage.java",
    "content": "package com.macro.mall.common.api;\n\nimport com.github.pagehelper.PageInfo;\nimport org.springframework.data.domain.Page;\n\nimport java.util.List;\n\n/**\n * 分页数据封装类\n * Created by macro on 2019/4/19.\n */\npublic class CommonPage<T> {\n    private Integer pageNum;\n    private Integer pageSize;\n    private Integer totalPage;\n    private Long total;\n    private List<T> list;\n\n    /**\n     * 将PageHelper分页后的list转为分页信息\n     */\n    public static <T> CommonPage<T> restPage(List<T> list) {\n        CommonPage<T> result = new CommonPage<T>();\n        PageInfo<T> pageInfo = new PageInfo<T>(list);\n        result.setTotalPage(pageInfo.getPages());\n        result.setPageNum(pageInfo.getPageNum());\n        result.setPageSize(pageInfo.getPageSize());\n        result.setTotal(pageInfo.getTotal());\n        result.setList(pageInfo.getList());\n        return result;\n    }\n\n    /**\n     * 将SpringData分页后的list转为分页信息\n     */\n    public static <T> CommonPage<T> restPage(Page<T> pageInfo) {\n        CommonPage<T> result = new CommonPage<T>();\n        result.setTotalPage(pageInfo.getTotalPages());\n        result.setPageNum(pageInfo.getNumber());\n        result.setPageSize(pageInfo.getSize());\n        result.setTotal(pageInfo.getTotalElements());\n        result.setList(pageInfo.getContent());\n        return result;\n    }\n\n    public Integer getPageNum() {\n        return pageNum;\n    }\n\n    public void setPageNum(Integer pageNum) {\n        this.pageNum = pageNum;\n    }\n\n    public Integer getPageSize() {\n        return pageSize;\n    }\n\n    public void setPageSize(Integer pageSize) {\n        this.pageSize = pageSize;\n    }\n\n    public Integer getTotalPage() {\n        return totalPage;\n    }\n\n    public void setTotalPage(Integer totalPage) {\n        this.totalPage = totalPage;\n    }\n\n    public List<T> getList() {\n        return list;\n    }\n\n    public void setList(List<T> list) {\n        this.list = list;\n    }\n\n    public Long getTotal() {\n        return total;\n    }\n\n    public void setTotal(Long total) {\n        this.total = total;\n    }\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/api/CommonResult.java",
    "content": "package com.macro.mall.common.api;\n\nimport cn.hutool.json.JSONUtil;\n\n/**\n * 通用返回对象\n * Created by macro on 2019/4/19.\n */\npublic class CommonResult<T> {\n    private long code;\n    private String message;\n    private T data;\n\n    protected CommonResult() {\n    }\n\n    protected CommonResult(long code, String message, T data) {\n        this.code = code;\n        this.message = message;\n        this.data = data;\n    }\n\n    /**\n     * 成功返回结果\n     *\n     * @param data 获取的数据\n     */\n    public static <T> CommonResult<T> success(T data) {\n        return new CommonResult<T>(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getMessage(), data);\n    }\n\n    /**\n     * 成功返回结果\n     *\n     * @param data 获取的数据\n     * @param  message 提示信息\n     */\n    public static <T> CommonResult<T> success(T data, String message) {\n        return new CommonResult<T>(ResultCode.SUCCESS.getCode(), message, data);\n    }\n\n    /**\n     * 失败返回结果\n     * @param errorCode 错误码\n     */\n    public static <T> CommonResult<T> failed(IErrorCode errorCode) {\n        return new CommonResult<T>(errorCode.getCode(), errorCode.getMessage(), null);\n    }\n\n    /**\n     * 失败返回结果\n     * @param errorCode 错误码\n     * @param message 错误信息\n     */\n    public static <T> CommonResult<T> failed(IErrorCode errorCode,String message) {\n        return new CommonResult<T>(errorCode.getCode(), message, null);\n    }\n\n    /**\n     * 失败返回结果\n     * @param message 提示信息\n     */\n    public static <T> CommonResult<T> failed(String message) {\n        return new CommonResult<T>(ResultCode.FAILED.getCode(), message, null);\n    }\n\n    /**\n     * 失败返回结果\n     */\n    public static <T> CommonResult<T> failed() {\n        return failed(ResultCode.FAILED);\n    }\n\n    /**\n     * 参数验证失败返回结果\n     */\n    public static <T> CommonResult<T> validateFailed() {\n        return failed(ResultCode.VALIDATE_FAILED);\n    }\n\n    /**\n     * 参数验证失败返回结果\n     * @param message 提示信息\n     */\n    public static <T> CommonResult<T> validateFailed(String message) {\n        return new CommonResult<T>(ResultCode.VALIDATE_FAILED.getCode(), message, null);\n    }\n\n    /**\n     * 未登录返回结果\n     */\n    public static <T> CommonResult<T> unauthorized(T data) {\n        return new CommonResult<T>(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getMessage(), data);\n    }\n\n    /**\n     * 未授权返回结果\n     */\n    public static <T> CommonResult<T> forbidden(T data) {\n        return new CommonResult<T>(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getMessage(), data);\n    }\n\n    public long getCode() {\n        return code;\n    }\n\n    public void setCode(long code) {\n        this.code = code;\n    }\n\n    public String getMessage() {\n        return message;\n    }\n\n    public void setMessage(String message) {\n        this.message = message;\n    }\n\n    public T getData() {\n        return data;\n    }\n\n    public void setData(T data) {\n        this.data = data;\n    }\n\n    @Override\n    public String toString() {\n        return JSONUtil.toJsonStr(this);\n    }\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/api/IErrorCode.java",
    "content": "package com.macro.mall.common.api;\n\n/**\n * 封装API的错误码\n * Created by macro on 2019/4/19.\n */\npublic interface IErrorCode {\n    long getCode();\n\n    String getMessage();\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/api/ResultCode.java",
    "content": "package com.macro.mall.common.api;\n\n/**\n * 枚举了一些常用API操作码\n * Created by macro on 2019/4/19.\n */\npublic enum ResultCode implements IErrorCode {\n    SUCCESS(200, \"操作成功\"),\n    FAILED(500, \"操作失败\"),\n    VALIDATE_FAILED(404, \"参数检验失败\"),\n    UNAUTHORIZED(401, \"暂未登录或token已经过期\"),\n    FORBIDDEN(403, \"没有相关权限\");\n    private long code;\n    private String message;\n\n    private ResultCode(long code, String message) {\n        this.code = code;\n        this.message = message;\n    }\n\n    public long getCode() {\n        return code;\n    }\n\n    public String getMessage() {\n        return message;\n    }\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/config/BaseRedisConfig.java",
    "content": "package com.macro.mall.common.config;\n\nimport com.fasterxml.jackson.annotation.JsonAutoDetect;\nimport com.fasterxml.jackson.annotation.PropertyAccessor;\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimport com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;\nimport com.macro.mall.common.service.RedisService;\nimport com.macro.mall.common.service.impl.RedisServiceImpl;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.data.redis.cache.RedisCacheConfiguration;\nimport org.springframework.data.redis.cache.RedisCacheManager;\nimport org.springframework.data.redis.cache.RedisCacheWriter;\nimport org.springframework.data.redis.connection.RedisConnectionFactory;\nimport org.springframework.data.redis.core.RedisTemplate;\nimport org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;\nimport org.springframework.data.redis.serializer.RedisSerializationContext;\nimport org.springframework.data.redis.serializer.RedisSerializer;\nimport org.springframework.data.redis.serializer.StringRedisSerializer;\n\nimport java.time.Duration;\n\n/**\n * Redis基础配置\n * Created by macro on 2020/6/19.\n */\npublic class BaseRedisConfig {\n\n    @Bean\n    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {\n        RedisSerializer<Object> serializer = redisSerializer();\n        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();\n        redisTemplate.setConnectionFactory(redisConnectionFactory);\n        redisTemplate.setKeySerializer(new StringRedisSerializer());\n        redisTemplate.setValueSerializer(serializer);\n        redisTemplate.setHashKeySerializer(new StringRedisSerializer());\n        redisTemplate.setHashValueSerializer(serializer);\n        redisTemplate.afterPropertiesSet();\n        return redisTemplate;\n    }\n\n    @Bean\n    public RedisSerializer<Object> redisSerializer() {\n        //创建JSON序列化器\n        Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);\n        ObjectMapper objectMapper = new ObjectMapper();\n        objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);\n        //必须设置，否则无法将JSON转化为对象，会转化成Map类型\n        objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL);\n        serializer.setObjectMapper(objectMapper);\n        return serializer;\n    }\n\n    @Bean\n    public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory) {\n        RedisCacheWriter redisCacheWriter = RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFactory);\n        //设置Redis缓存有效期为1天\n        RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()\n                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(redisSerializer())).entryTtl(Duration.ofDays(1));\n        return new RedisCacheManager(redisCacheWriter, redisCacheConfiguration);\n    }\n\n\n    @Bean\n    public RedisService redisService(){\n        return new RedisServiceImpl();\n    }\n\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/constant/AuthConstant.java",
    "content": "package com.macro.mall.common.constant;\n\n/**\n * 权限相关常量定义\n * Created by macro on 2020/6/19.\n */\npublic interface AuthConstant {\n\n    /**\n     * JWT存储权限前缀\n     */\n    String AUTHORITY_PREFIX = \"ROLE_\";\n\n    /**\n     * JWT存储权限属性\n     */\n    String AUTHORITY_CLAIM_NAME = \"authorities\";\n\n    /**\n     * 后台管理client_id\n     */\n    String ADMIN_CLIENT_ID = \"admin-app\";\n\n    /**\n     * 前台商城client_id\n     */\n    String PORTAL_CLIENT_ID = \"portal-app\";\n\n    /**\n     * 后台管理接口路径匹配\n     */\n    String ADMIN_URL_PATTERN = \"/mall-admin/**\";\n\n    /**\n     * Redis缓存权限规则（路径->资源）\n     */\n    String PATH_RESOURCE_MAP = \"auth:pathResourceMap\";\n\n    /**\n     * 认证信息Http请求头\n     */\n    String JWT_TOKEN_HEADER = \"Authorization\";\n\n    /**\n     * JWT令牌前缀\n     */\n    String JWT_TOKEN_PREFIX = \"Bearer \";\n\n    /**\n     * 用户信息Http请求头\n     */\n    String USER_TOKEN_HEADER = \"user\";\n\n    /**\n     * sa-token session中存储的会员信息\n     */\n    String STP_MEMBER_INFO = \"memberInfo\";\n\n    /**\n     * sa-token session中存储的后台管理员信息\n     */\n    String STP_ADMIN_INFO = \"adminInfo\";\n\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/domain/WebLog.java",
    "content": "package com.macro.mall.common.domain;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\n/**\n * Controller层的日志封装类\n * Created by macro on 2018/4/26.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class WebLog {\n    /**\n     * 操作描述\n     */\n    private String description;\n\n    /**\n     * 操作用户\n     */\n    private String username;\n\n    /**\n     * 操作时间\n     */\n    private Long startTime;\n\n    /**\n     * 消耗时间\n     */\n    private Integer spendTime;\n\n    /**\n     * 根路径\n     */\n    private String basePath;\n\n    /**\n     * URI\n     */\n    private String uri;\n\n    /**\n     * URL\n     */\n    private String url;\n\n    /**\n     * 请求类型\n     */\n    private String method;\n\n    /**\n     * IP地址\n     */\n    private String ip;\n\n    /**\n     * 请求参数\n     */\n    private Object parameter;\n\n    /**\n     * 返回结果\n     */\n    private Object result;\n\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/dto/UserDto.java",
    "content": "package com.macro.mall.common.dto;\n\nimport lombok.*;\n\nimport java.util.List;\n\n/**\n * @auther macrozheng\n * @description 权限框架中使用的用户信息封装类\n * @date 2024/1/30\n * @github https://github.com/macrozheng\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\n@NoArgsConstructor\n@AllArgsConstructor\n@Builder\npublic class UserDto {\n    private Long id;\n    private String username;\n    private String clientId;\n    private List<String> permissionList;\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/exception/ApiException.java",
    "content": "package com.macro.mall.common.exception;\n\nimport com.macro.mall.common.api.IErrorCode;\n\n/**\n * 自定义API异常\n * Created by macro on 2020/2/27.\n */\npublic class ApiException extends RuntimeException {\n    private IErrorCode errorCode;\n\n    public ApiException(IErrorCode errorCode) {\n        super(errorCode.getMessage());\n        this.errorCode = errorCode;\n    }\n\n    public ApiException(String message) {\n        super(message);\n    }\n\n    public ApiException(Throwable cause) {\n        super(cause);\n    }\n\n    public ApiException(String message, Throwable cause) {\n        super(message, cause);\n    }\n\n    public IErrorCode getErrorCode() {\n        return errorCode;\n    }\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/exception/Asserts.java",
    "content": "package com.macro.mall.common.exception;\n\nimport com.macro.mall.common.api.IErrorCode;\n\n/**\n * 断言处理类，用于抛出各种API异常\n * Created by macro on 2020/2/27.\n */\npublic class Asserts {\n    public static void fail(String message) {\n        throw new ApiException(message);\n    }\n\n    public static void fail(IErrorCode errorCode) {\n        throw new ApiException(errorCode);\n    }\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/exception/GlobalExceptionHandler.java",
    "content": "package com.macro.mall.common.exception;\n\nimport com.macro.mall.common.api.CommonResult;\nimport org.springframework.validation.BindException;\nimport org.springframework.validation.BindingResult;\nimport org.springframework.validation.FieldError;\nimport org.springframework.web.bind.MethodArgumentNotValidException;\nimport org.springframework.web.bind.annotation.ControllerAdvice;\nimport org.springframework.web.bind.annotation.ExceptionHandler;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\n/**\n * 全局异常处理\n * Created by macro on 2020/2/27.\n */\n@ControllerAdvice\npublic class GlobalExceptionHandler {\n\n    @ResponseBody\n    @ExceptionHandler(value = ApiException.class)\n    public CommonResult handle(ApiException e) {\n        if (e.getErrorCode() != null) {\n            return CommonResult.failed(e.getErrorCode());\n        }\n        return CommonResult.failed(e.getMessage());\n    }\n\n    @ResponseBody\n    @ExceptionHandler(value = MethodArgumentNotValidException.class)\n    public CommonResult handleValidException(MethodArgumentNotValidException e) {\n        BindingResult bindingResult = e.getBindingResult();\n        String message = null;\n        if (bindingResult.hasErrors()) {\n            FieldError fieldError = bindingResult.getFieldError();\n            if (fieldError != null) {\n                message = fieldError.getField()+fieldError.getDefaultMessage();\n            }\n        }\n        return CommonResult.validateFailed(message);\n    }\n\n    @ResponseBody\n    @ExceptionHandler(value = BindException.class)\n    public CommonResult handleValidException(BindException e) {\n        BindingResult bindingResult = e.getBindingResult();\n        String message = null;\n        if (bindingResult.hasErrors()) {\n            FieldError fieldError = bindingResult.getFieldError();\n            if (fieldError != null) {\n                message = fieldError.getField()+fieldError.getDefaultMessage();\n            }\n        }\n        return CommonResult.validateFailed(message);\n    }\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/log/WebLogAspect.java",
    "content": "package com.macro.mall.common.log;\n\nimport cn.hutool.core.util.StrUtil;\nimport cn.hutool.core.util.URLUtil;\nimport cn.hutool.json.JSONUtil;\nimport com.macro.mall.common.domain.WebLog;\nimport io.swagger.v3.oas.annotations.Operation;\nimport net.logstash.logback.marker.Markers;\nimport org.aspectj.lang.JoinPoint;\nimport org.aspectj.lang.ProceedingJoinPoint;\nimport org.aspectj.lang.Signature;\nimport org.aspectj.lang.annotation.*;\nimport org.aspectj.lang.reflect.MethodSignature;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.core.annotation.Order;\nimport org.springframework.stereotype.Component;\nimport org.springframework.util.StringUtils;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.context.request.RequestContextHolder;\nimport org.springframework.web.context.request.ServletRequestAttributes;\n\nimport jakarta.servlet.http.HttpServletRequest;\nimport java.lang.reflect.Method;\nimport java.lang.reflect.Parameter;\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\n\n/**\n * 统一日志处理切面\n * Created by macro on 2018/4/26.\n */\n@Aspect\n@Component\n@Order(1)\npublic class WebLogAspect {\n    private static final Logger LOGGER = LoggerFactory.getLogger(WebLogAspect.class);\n\n    @Pointcut(\"execution(public * com.macro.mall.controller.*.*(..))||execution(public * com.macro.mall.*.controller.*.*(..))\")\n    public void webLog() {\n    }\n\n    @Before(\"webLog()\")\n    public void doBefore(JoinPoint joinPoint) throws Throwable {\n    }\n\n    @AfterReturning(value = \"webLog()\", returning = \"ret\")\n    public void doAfterReturning(Object ret) throws Throwable {\n    }\n\n    @Around(\"webLog()\")\n    public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {\n        long startTime = System.currentTimeMillis();\n        //获取当前请求对象\n        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();\n        HttpServletRequest request = attributes.getRequest();\n        //记录请求信息(通过Logstash传入Elasticsearch)\n        WebLog webLog = new WebLog();\n        Object result = joinPoint.proceed();\n        Signature signature = joinPoint.getSignature();\n        MethodSignature methodSignature = (MethodSignature) signature;\n        Method method = methodSignature.getMethod();\n        if (method.isAnnotationPresent(Operation.class)) {\n            Operation log = method.getAnnotation(Operation.class);\n            webLog.setDescription(log.summary());\n        }\n        long endTime = System.currentTimeMillis();\n        String urlStr = request.getRequestURL().toString();\n        webLog.setBasePath(StrUtil.removeSuffix(urlStr, URLUtil.url(urlStr).getPath()));\n        webLog.setIp(request.getRemoteUser());\n        webLog.setMethod(request.getMethod());\n        webLog.setParameter(getParameter(method, joinPoint.getArgs()));\n        webLog.setResult(result);\n        webLog.setSpendTime((int) (endTime - startTime));\n        webLog.setStartTime(startTime);\n        webLog.setUri(request.getRequestURI());\n        webLog.setUrl(request.getRequestURL().toString());\n        Map<String,Object> logMap = new HashMap<>();\n        logMap.put(\"url\",webLog.getUrl());\n        logMap.put(\"method\",webLog.getMethod());\n        logMap.put(\"parameter\",webLog.getParameter());\n        logMap.put(\"spendTime\",webLog.getSpendTime());\n        logMap.put(\"description\",webLog.getDescription());\n//        LOGGER.info(\"{}\", JSONUtil.parse(webLog));\n        LOGGER.info(Markers.appendEntries(logMap), JSONUtil.parse(webLog).toString());\n        return result;\n    }\n\n    /**\n     * 根据方法和传入的参数获取请求参数\n     */\n    private Object getParameter(Method method, Object[] args) {\n        List<Object> argList = new ArrayList<>();\n        Parameter[] parameters = method.getParameters();\n        for (int i = 0; i < parameters.length; i++) {\n            //将RequestBody注解修饰的参数作为请求参数\n            RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class);\n            if (requestBody != null) {\n                argList.add(args[i]);\n            }\n            //将RequestParam注解修饰的参数作为请求参数\n            RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class);\n            if (requestParam != null) {\n                Map<String, Object> map = new HashMap<>();\n                String key = parameters[i].getName();\n                if (!StringUtils.isEmpty(requestParam.value())) {\n                    key = requestParam.value();\n                }\n                map.put(key, args[i]);\n                argList.add(map);\n            }\n        }\n        if (argList.size() == 0) {\n            return null;\n        } else if (argList.size() == 1) {\n            return argList.get(0);\n        } else {\n            return argList;\n        }\n    }\n}\n"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/service/RedisService.java",
    "content": "package com.macro.mall.common.service;\n\nimport java.util.List;\nimport java.util.Map;\nimport java.util.Set;\n\n/**\n * redis操作Service\n * Created by macro on 2020/3/3.\n */\npublic interface RedisService {\n\n    /**\n     * 保存属性\n     */\n    void set(String key, Object value, long time);\n\n    /**\n     * 保存属性\n     */\n    void set(String key, Object value);\n\n    /**\n     * 获取属性\n     */\n    Object get(String key);\n\n    /**\n     * 删除属性\n     */\n    Boolean del(String key);\n\n    /**\n     * 批量删除属性\n     */\n    Long del(List<String> keys);\n\n    /**\n     * 设置过期时间\n     */\n    Boolean expire(String key, long time);\n\n    /**\n     * 获取过期时间\n     */\n    Long getExpire(String key);\n\n    /**\n     * 判断是否有该属性\n     */\n    Boolean hasKey(String key);\n\n    /**\n     * 按delta递增\n     */\n    Long incr(String key, long delta);\n\n    /**\n     * 按delta递减\n     */\n    Long decr(String key, long delta);\n\n    /**\n     * 获取Hash结构中的属性\n     */\n    Object hGet(String key, String hashKey);\n\n    /**\n     * 向Hash结构中放入一个属性\n     */\n    Boolean hSet(String key, String hashKey, Object value, long time);\n\n    /**\n     * 向Hash结构中放入一个属性\n     */\n    void hSet(String key, String hashKey, Object value);\n\n    /**\n     * 直接获取整个Hash结构\n     */\n    Map<Object, Object> hGetAll(String key);\n\n    /**\n     * 直接设置整个Hash结构\n     */\n    Boolean hSetAll(String key, Map<String, Object> map, long time);\n\n    /**\n     * 直接设置整个Hash结构\n     */\n    void hSetAll(String key, Map<String, ?> map);\n\n    /**\n     * 删除Hash结构中的属性\n     */\n    void hDel(String key, Object... hashKey);\n\n    /**\n     * 判断Hash结构中是否有该属性\n     */\n    Boolean hHasKey(String key, String hashKey);\n\n    /**\n     * Hash结构中属性递增\n     */\n    Long hIncr(String key, String hashKey, Long delta);\n\n    /**\n     * Hash结构中属性递减\n     */\n    Long hDecr(String key, String hashKey, Long delta);\n\n    /**\n     * 获取Set结构\n     */\n    Set<Object> sMembers(String key);\n\n    /**\n     * 向Set结构中添加属性\n     */\n    Long sAdd(String key, Object... values);\n\n    /**\n     * 向Set结构中添加属性\n     */\n    Long sAdd(String key, long time, Object... values);\n\n    /**\n     * 是否为Set中的属性\n     */\n    Boolean sIsMember(String key, Object value);\n\n    /**\n     * 获取Set结构的长度\n     */\n    Long sSize(String key);\n\n    /**\n     * 删除Set结构中的属性\n     */\n    Long sRemove(String key, Object... values);\n\n    /**\n     * 获取List结构中的属性\n     */\n    List<Object> lRange(String key, long start, long end);\n\n    /**\n     * 获取List结构的长度\n     */\n    Long lSize(String key);\n\n    /**\n     * 根据索引获取List中的属性\n     */\n    Object lIndex(String key, long index);\n\n    /**\n     * 向List结构中添加属性\n     */\n    Long lPush(String key, Object value);\n\n    /**\n     * 向List结构中添加属性\n     */\n    Long lPush(String key, Object value, long time);\n\n    /**\n     * 向List结构中批量添加属性\n     */\n    Long lPushAll(String key, Object... values);\n\n    /**\n     * 向List结构中批量添加属性\n     */\n    Long lPushAll(String key, Long time, Object... values);\n\n    /**\n     * 从List结构中移除属性\n     */\n    Long lRemove(String key, long count, Object value);\n}"
  },
  {
    "path": "mall-common/src/main/java/com/macro/mall/common/service/impl/RedisServiceImpl.java",
    "content": "package com.macro.mall.common.service.impl;\n\nimport com.macro.mall.common.service.RedisService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.redis.core.RedisTemplate;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\nimport java.util.Map;\nimport java.util.Set;\nimport java.util.concurrent.TimeUnit;\n\n/**\n * redis操作实现类\n * Created by macro on 2020/3/3.\n */\npublic class RedisServiceImpl implements RedisService {\n    @Autowired\n    private RedisTemplate<String, Object> redisTemplate;\n\n    @Override\n    public void set(String key, Object value, long time) {\n        redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);\n    }\n\n    @Override\n    public void set(String key, Object value) {\n        redisTemplate.opsForValue().set(key, value);\n    }\n\n    @Override\n    public Object get(String key) {\n        return redisTemplate.opsForValue().get(key);\n    }\n\n    @Override\n    public Boolean del(String key) {\n        return redisTemplate.delete(key);\n    }\n\n    @Override\n    public Long del(List<String> keys) {\n        return redisTemplate.delete(keys);\n    }\n\n    @Override\n    public Boolean expire(String key, long time) {\n        return redisTemplate.expire(key, time, TimeUnit.SECONDS);\n    }\n\n    @Override\n    public Long getExpire(String key) {\n        return redisTemplate.getExpire(key, TimeUnit.SECONDS);\n    }\n\n    @Override\n    public Boolean hasKey(String key) {\n        return redisTemplate.hasKey(key);\n    }\n\n    @Override\n    public Long incr(String key, long delta) {\n        return redisTemplate.opsForValue().increment(key, delta);\n    }\n\n    @Override\n    public Long decr(String key, long delta) {\n        return redisTemplate.opsForValue().increment(key, -delta);\n    }\n\n    @Override\n    public Object hGet(String key, String hashKey) {\n        return redisTemplate.opsForHash().get(key, hashKey);\n    }\n\n    @Override\n    public Boolean hSet(String key, String hashKey, Object value, long time) {\n        redisTemplate.opsForHash().put(key, hashKey, value);\n        return expire(key, time);\n    }\n\n    @Override\n    public void hSet(String key, String hashKey, Object value) {\n        redisTemplate.opsForHash().put(key, hashKey, value);\n    }\n\n    @Override\n    public Map<Object, Object> hGetAll(String key) {\n        return redisTemplate.opsForHash().entries(key);\n    }\n\n    @Override\n    public Boolean hSetAll(String key, Map<String, Object> map, long time) {\n        redisTemplate.opsForHash().putAll(key, map);\n        return expire(key, time);\n    }\n\n    @Override\n    public void hSetAll(String key, Map<String, ?> map) {\n        redisTemplate.opsForHash().putAll(key, map);\n    }\n\n    @Override\n    public void hDel(String key, Object... hashKey) {\n        redisTemplate.opsForHash().delete(key, hashKey);\n    }\n\n    @Override\n    public Boolean hHasKey(String key, String hashKey) {\n        return redisTemplate.opsForHash().hasKey(key, hashKey);\n    }\n\n    @Override\n    public Long hIncr(String key, String hashKey, Long delta) {\n        return redisTemplate.opsForHash().increment(key, hashKey, delta);\n    }\n\n    @Override\n    public Long hDecr(String key, String hashKey, Long delta) {\n        return redisTemplate.opsForHash().increment(key, hashKey, -delta);\n    }\n\n    @Override\n    public Set<Object> sMembers(String key) {\n        return redisTemplate.opsForSet().members(key);\n    }\n\n    @Override\n    public Long sAdd(String key, Object... values) {\n        return redisTemplate.opsForSet().add(key, values);\n    }\n\n    @Override\n    public Long sAdd(String key, long time, Object... values) {\n        Long count = redisTemplate.opsForSet().add(key, values);\n        expire(key, time);\n        return count;\n    }\n\n    @Override\n    public Boolean sIsMember(String key, Object value) {\n        return redisTemplate.opsForSet().isMember(key, value);\n    }\n\n    @Override\n    public Long sSize(String key) {\n        return redisTemplate.opsForSet().size(key);\n    }\n\n    @Override\n    public Long sRemove(String key, Object... values) {\n        return redisTemplate.opsForSet().remove(key, values);\n    }\n\n    @Override\n    public List<Object> lRange(String key, long start, long end) {\n        return redisTemplate.opsForList().range(key, start, end);\n    }\n\n    @Override\n    public Long lSize(String key) {\n        return redisTemplate.opsForList().size(key);\n    }\n\n    @Override\n    public Object lIndex(String key, long index) {\n        return redisTemplate.opsForList().index(key, index);\n    }\n\n    @Override\n    public Long lPush(String key, Object value) {\n        return redisTemplate.opsForList().rightPush(key, value);\n    }\n\n    @Override\n    public Long lPush(String key, Object value, long time) {\n        Long index = redisTemplate.opsForList().rightPush(key, value);\n        expire(key, time);\n        return index;\n    }\n\n    @Override\n    public Long lPushAll(String key, Object... values) {\n        return redisTemplate.opsForList().rightPushAll(key, values);\n    }\n\n    @Override\n    public Long lPushAll(String key, Long time, Object... values) {\n        Long count = redisTemplate.opsForList().rightPushAll(key, values);\n        expire(key, time);\n        return count;\n    }\n\n    @Override\n    public Long lRemove(String key, long count, Object value) {\n        return redisTemplate.opsForList().remove(key, count, value);\n    }\n}\n"
  },
  {
    "path": "mall-common/src/main/resources/logback-spring.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE configuration>\n<configuration>\n    <!--引用默认日志配置-->\n    <include resource=\"org/springframework/boot/logging/logback/defaults.xml\"/>\n    <!--使用默认的控制台日志输出实现-->\n    <include resource=\"org/springframework/boot/logging/logback/console-appender.xml\"/>\n    <!--应用名称-->\n    <springProperty scope=\"context\" name=\"APP_NAME\" source=\"spring.application.name\" defaultValue=\"springBoot\"/>\n    <!--日志文件保存路径-->\n    <property name=\"LOG_FILE_PATH\" value=\"${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/logs}\"/>\n    <!--LogStash访问host-->\n    <springProperty name=\"LOG_STASH_HOST\" scope=\"context\" source=\"logstash.host\" defaultValue=\"localhost\"/>\n    <!--是否开启LogStash插件内部日志-->\n    <springProperty name=\"ENABLE_INNER_LOG\" scope=\"context\" source=\"logstash.enableInnerLog\" defaultValue=\"false\"/>\n    <!--配置不打印logback内部的状态信息，排查logback配置问题时可注释掉-->\n    <statusListener class=\"ch.qos.logback.core.status.NopStatusListener\" />\n    <!--DEBUG日志输出到文件-->\n    <appender name=\"FILE_DEBUG\"\n              class=\"ch.qos.logback.core.rolling.RollingFileAppender\">\n        <!--输出DEBUG以上级别日志-->\n        <filter class=\"ch.qos.logback.classic.filter.ThresholdFilter\">\n            <level>DEBUG</level>\n        </filter>\n        <encoder>\n            <!--设置为默认的文件日志格式-->\n            <pattern>${FILE_LOG_PATTERN}</pattern>\n            <charset>UTF-8</charset>\n        </encoder>\n        <rollingPolicy class=\"ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy\">\n            <!--设置文件命名格式-->\n            <fileNamePattern>${LOG_FILE_PATH}/debug/${APP_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>\n            <!--设置日志文件大小，超过就重新生成文件，默认10M-->\n            <maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>\n            <!--日志文件保留天数，默认30天-->\n            <maxHistory>${LOG_FILE_MAX_HISTORY:-30}</maxHistory>\n        </rollingPolicy>\n    </appender>\n\n    <!--ERROR日志输出到文件-->\n    <appender name=\"FILE_ERROR\"\n              class=\"ch.qos.logback.core.rolling.RollingFileAppender\">\n        <!--只输出ERROR级别的日志-->\n        <filter class=\"ch.qos.logback.classic.filter.LevelFilter\">\n            <level>ERROR</level>\n            <onMatch>ACCEPT</onMatch>\n            <onMismatch>DENY</onMismatch>\n        </filter>\n        <encoder>\n            <!--设置为默认的文件日志格式-->\n            <pattern>${FILE_LOG_PATTERN}</pattern>\n            <charset>UTF-8</charset>\n        </encoder>\n        <rollingPolicy class=\"ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy\">\n            <!--设置文件命名格式-->\n            <fileNamePattern>${LOG_FILE_PATH}/error/${APP_NAME}-%d{yyyy-MM-dd}-%i.log</fileNamePattern>\n            <!--设置日志文件大小，超过就重新生成文件，默认10M-->\n            <maxFileSize>${LOG_FILE_MAX_SIZE:-10MB}</maxFileSize>\n            <!--日志文件保留天数，默认30天-->\n            <maxHistory>${LOG_FILE_MAX_HISTORY:-30}</maxHistory>\n        </rollingPolicy>\n    </appender>\n\n    <!--DEBUG日志输出到LogStash-->\n    <appender name=\"LOG_STASH_DEBUG\" class=\"net.logstash.logback.appender.LogstashTcpSocketAppender\">\n        <filter class=\"ch.qos.logback.classic.filter.ThresholdFilter\">\n            <level>DEBUG</level>\n        </filter>\n        <destination>${LOG_STASH_HOST}:4560</destination>\n        <addDefaultStatusListener>${ENABLE_INNER_LOG}</addDefaultStatusListener>\n        <encoder charset=\"UTF-8\" class=\"net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder\">\n            <providers>\n                <timestamp>\n                    <timeZone>Asia/Shanghai</timeZone>\n                </timestamp>\n                <!--自定义日志输出格式-->\n                <pattern>\n                    <pattern>\n                        {\n                        \"project\": \"mall-swarm\",\n                        \"level\": \"%level\",\n                        \"service\": \"${APP_NAME:-}\",\n                        \"pid\": \"${PID:-}\",\n                        \"thread\": \"%thread\",\n                        \"class\": \"%logger\",\n                        \"message\": \"%message\",\n                        \"stack_trace\": \"%exception{20}\"\n                        }\n                    </pattern>\n                </pattern>\n            </providers>\n        </encoder>\n    </appender>\n\n    <!--ERROR日志输出到LogStash-->\n    <appender name=\"LOG_STASH_ERROR\" class=\"net.logstash.logback.appender.LogstashTcpSocketAppender\">\n        <filter class=\"ch.qos.logback.classic.filter.LevelFilter\">\n            <level>ERROR</level>\n            <onMatch>ACCEPT</onMatch>\n            <onMismatch>DENY</onMismatch>\n        </filter>\n        <destination>${LOG_STASH_HOST}:4561</destination>\n        <addDefaultStatusListener>${ENABLE_INNER_LOG}</addDefaultStatusListener>\n        <encoder charset=\"UTF-8\" class=\"net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder\">\n            <providers>\n                <timestamp>\n                    <timeZone>Asia/Shanghai</timeZone>\n                </timestamp>\n                <!--自定义日志输出格式-->\n                <pattern>\n                    <pattern>\n                        {\n                        \"project\": \"mall-swarm\",\n                        \"level\": \"%level\",\n                        \"service\": \"${APP_NAME:-}\",\n                        \"pid\": \"${PID:-}\",\n                        \"thread\": \"%thread\",\n                        \"class\": \"%logger\",\n                        \"message\": \"%message\",\n                        \"stack_trace\": \"%exception{20}\"\n                        }\n                    </pattern>\n                </pattern>\n            </providers>\n        </encoder>\n    </appender>\n\n    <!--业务日志输出到LogStash-->\n    <appender name=\"LOG_STASH_BUSINESS\" class=\"net.logstash.logback.appender.LogstashTcpSocketAppender\">\n        <destination>${LOG_STASH_HOST}:4562</destination>\n        <addDefaultStatusListener>${ENABLE_INNER_LOG}</addDefaultStatusListener>\n        <encoder charset=\"UTF-8\" class=\"net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder\">\n            <providers>\n                <timestamp>\n                    <timeZone>Asia/Shanghai</timeZone>\n                </timestamp>\n                <!--自定义日志输出格式-->\n                <pattern>\n                    <pattern>\n                        {\n                        \"project\": \"mall-swarm\",\n                        \"level\": \"%level\",\n                        \"service\": \"${APP_NAME:-}\",\n                        \"pid\": \"${PID:-}\",\n                        \"thread\": \"%thread\",\n                        \"class\": \"%logger\",\n                        \"message\": \"%message\",\n                        \"stack_trace\": \"%exception{20}\"\n                        }\n                    </pattern>\n                </pattern>\n            </providers>\n        </encoder>\n    </appender>\n\n    <!--接口访问记录日志输出到LogStash-->\n    <appender name=\"LOG_STASH_RECORD\" class=\"net.logstash.logback.appender.LogstashTcpSocketAppender\">\n        <destination>${LOG_STASH_HOST}:4563</destination>\n        <addDefaultStatusListener>${ENABLE_INNER_LOG}</addDefaultStatusListener>\n        <encoder charset=\"UTF-8\" class=\"net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder\">\n            <providers>\n                <timestamp>\n                    <timeZone>Asia/Shanghai</timeZone>\n                </timestamp>\n                <!--自定义日志输出格式-->\n                <pattern>\n                    <pattern>\n                        {\n                        \"project\": \"mall-swarm\",\n                        \"level\": \"%level\",\n                        \"service\": \"${APP_NAME:-}\",\n                        \"class\": \"%logger\",\n                        \"message\": \"%message\"\n                        }\n                    </pattern>\n                </pattern>\n            </providers>\n        </encoder>\n    </appender>\n\n    <!--控制框架输出日志-->\n    <logger name=\"org.slf4j\" level=\"INFO\"/>\n    <logger name=\"springfox\" level=\"INFO\"/>\n    <logger name=\"io.swagger\" level=\"INFO\"/>\n    <logger name=\"org.springframework\" level=\"INFO\"/>\n    <logger name=\"org.hibernate.validator\" level=\"INFO\"/>\n    <logger name=\"com.alibaba.nacos.client.naming\" level=\"INFO\"/>\n\n    <root level=\"DEBUG\">\n        <appender-ref ref=\"CONSOLE\"/>\n        <appender-ref ref=\"FILE_DEBUG\"/>\n        <appender-ref ref=\"FILE_ERROR\"/>\n        <appender-ref ref=\"LOG_STASH_DEBUG\"/>\n        <appender-ref ref=\"LOG_STASH_ERROR\"/>\n    </root>\n\n    <logger name=\"com.macro.mall.common.log.WebLogAspect\" level=\"DEBUG\">\n        <appender-ref ref=\"LOG_STASH_RECORD\"/>\n    </logger>\n\n    <logger name=\"com.macro.mall\" level=\"DEBUG\">\n        <appender-ref ref=\"LOG_STASH_BUSINESS\"/>\n    </logger>\n</configuration>\n"
  },
  {
    "path": "mall-demo/.gitignore",
    "content": "/target/\n!.mvn/wrapper/maven-wrapper.jar\n\n### STS ###\n.apt_generated\n.classpath\n.factorypath\n.project\n.settings\n.springBeans\n.sts4-cache\n\n### IntelliJ IDEA ###\n.idea\n*.iws\n*.iml\n*.ipr\n\n### NetBeans ###\n/nbproject/private/\n/build/\n/nbbuild/\n/dist/\n/nbdist/\n/.nb-gradle/"
  },
  {
    "path": "mall-demo/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <groupId>com.macro.mall</groupId>\n    <artifactId>mall-demo</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <packaging>jar</packaging>\n\n    <name>mall-demo</name>\n    <description>mall-demo project for mall</description>\n\n    <parent>\n        <groupId>com.macro.mall</groupId>\n        <artifactId>mall-swarm</artifactId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n    <dependencies>\n        <dependency>\n            <groupId>com.macro.mall</groupId>\n            <artifactId>mall-mbg</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-web</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.cloud</groupId>\n            <artifactId>spring-cloud-starter-openfeign</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>de.codecentric</groupId>\n            <artifactId>spring-boot-admin-starter-client</artifactId>\n        </dependency>\n    </dependencies>\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.springframework.boot</groupId>\n                <artifactId>spring-boot-maven-plugin</artifactId>\n            </plugin>\n        </plugins>\n    </build>\n\n</project>\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/MallDemoApplication.java",
    "content": "package com.macro.mall;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.cloud.client.discovery.EnableDiscoveryClient;\nimport org.springframework.cloud.openfeign.EnableFeignClients;\n\n@EnableFeignClients\n@EnableDiscoveryClient\n@SpringBootApplication\npublic class MallDemoApplication{\n\tpublic static void main(String[] args) {\n\t\tSpringApplication.run(MallDemoApplication.class, args);\n\t}\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/component/FeignRequestInterceptor.java",
    "content": "package com.macro.mall.demo.component;\n\nimport feign.RequestInterceptor;\nimport feign.RequestTemplate;\nimport jakarta.servlet.http.HttpServletRequest;\nimport org.springframework.web.context.request.RequestContextHolder;\nimport org.springframework.web.context.request.ServletRequestAttributes;\n\nimport java.util.Enumeration;\n\n/**\n * 用于Feign传递请求头的拦截器\n * Created by macro on 2019/10/18.\n */\npublic class FeignRequestInterceptor implements RequestInterceptor {\n    @Override\n    public void apply(RequestTemplate requestTemplate) {\n        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder\n                .getRequestAttributes();\n        if (attributes != null) {\n            HttpServletRequest request = attributes.getRequest();\n            Enumeration<String> headerNames = request.getHeaderNames();\n            //在调用需要认证请求的内部接口时，需要获取原认证头并设置到requestTemplate中去\n            if (headerNames != null) {\n                while (headerNames.hasMoreElements()) {\n                    String name = headerNames.nextElement();\n                    //传递content-length头会导致java.io.IOException: Incomplete output stream问题\n                    if (\"content-length\".equalsIgnoreCase(name)) {\n                        continue;\n                    }\n                    String values = request.getHeader(name);\n                    requestTemplate.header(name, values);\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/config/FeignConfig.java",
    "content": "package com.macro.mall.demo.config;\n\nimport com.macro.mall.demo.component.FeignRequestInterceptor;\nimport feign.Logger;\nimport feign.RequestInterceptor;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\n\n/**\n * Created by macro on 2019/9/5.\n */\n@Configuration\npublic class FeignConfig {\n    @Bean\n    Logger.Level feignLoggerLevel() {\n        return Logger.Level.FULL;\n    }\n\n    @Bean\n    RequestInterceptor requestInterceptor() {\n        return new FeignRequestInterceptor();\n    }\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/config/MyBatisConfig.java",
    "content": "package com.macro.mall.demo.config;\n\nimport org.mybatis.spring.annotation.MapperScan;\nimport org.springframework.context.annotation.Configuration;\n\n/**\n * MyBatis相关配置\n * Created by macro on 2019/4/8.\n */\n@Configuration\n@MapperScan(\"com.macro.mall.mapper\")\npublic class MyBatisConfig {\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/config/SpringDocConfig.java",
    "content": "package com.macro.mall.demo.config;\n\nimport io.swagger.v3.oas.models.Components;\nimport io.swagger.v3.oas.models.ExternalDocumentation;\nimport io.swagger.v3.oas.models.OpenAPI;\nimport io.swagger.v3.oas.models.info.Info;\nimport io.swagger.v3.oas.models.info.License;\nimport io.swagger.v3.oas.models.security.SecurityRequirement;\nimport io.swagger.v3.oas.models.security.SecurityScheme;\nimport org.springdoc.core.customizers.GlobalOpenApiCustomizer;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.web.servlet.config.annotation.ViewControllerRegistry;\nimport org.springframework.web.servlet.config.annotation.WebMvcConfigurer;\n\n/**\n * SpringDoc相关配置\n * Created by macro on 2024/3/5.\n */\n@Configuration\npublic class SpringDocConfig implements WebMvcConfigurer {\n\n    private static final String SECURITY_SCHEME_NAME = \"Authorization\";\n\n    @Bean\n    public OpenAPI mallAdminOpenAPI() {\n        return new OpenAPI()\n                .info(new Info().title(\"mall-demo系统\")\n                        .description(\"SpringBoot版本中的一些示例\")\n                        .version(\"v1.0.0\")\n                        .license(new License().name(\"Apache 2.0\")\n                                .url(\"https://github.com/macrozheng/mall-learning\")))\n                .externalDocs(new ExternalDocumentation()\n                        .description(\"SpringBoot实战电商项目mall（60K+Star）全套文档\")\n                        .url(\"http://www.macrozheng.com\"))\n                .addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME))\n                .components(new Components()\n                        .addSecuritySchemes(SECURITY_SCHEME_NAME,\n                                new SecurityScheme()\n                                        .name(SECURITY_SCHEME_NAME)\n                                        .type(SecurityScheme.Type.HTTP)\n                                        .scheme(\"bearer\")\n                                        .bearerFormat(\"JWT\")));\n    }\n\n    @Override\n    public void addViewControllers(ViewControllerRegistry registry) {\n        //配置访问`/swagger-ui/`路径时可以直接跳转到`/swagger-ui/index.html`\n        registry.addViewController(\"/swagger-ui/\").setViewName(\"redirect:/swagger-ui/index.html\");\n    }\n\n    @Bean\n    public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {\n        //解决Knife4j配置认证后无法自动添加认证头的问题\n        return openApi -> {\n            //全局添加鉴权参数\n            if (openApi.getPaths() != null) {\n                openApi.getPaths().forEach((s, pathItem) -> {\n                    pathItem.readOperations().forEach(operation -> {\n                        operation.addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME));\n                    });\n                });\n            }\n        };\n    }\n\n}\n\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/controller/DemoController.java",
    "content": "package com.macro.mall.demo.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.demo.dto.PmsBrandDto;\nimport com.macro.mall.demo.service.DemoService;\nimport com.macro.mall.model.PmsBrand;\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.validation.annotation.Validated;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 商品管理示例Controller\n */\n@Tag(name = \"DemoController\", description = \"商品管理示例接口\")\n@Controller\npublic class DemoController {\n    @Autowired\n    private DemoService demoService;\n\n    private static final Logger LOGGER = LoggerFactory.getLogger(DemoController.class);\n\n    @Operation(summary = \"获取全部品牌列表\")\n    @RequestMapping(value = \"/brand/listAll\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsBrand>> getBrandList() {\n        return CommonResult.success(demoService.listAllBrand());\n    }\n\n    @Operation(summary = \"添加品牌\")\n    @RequestMapping(value = \"/brand/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult createBrand(@Validated @RequestBody PmsBrandDto pmsBrand) {\n        CommonResult commonResult;\n        int count = demoService.createBrand(pmsBrand);\n        if (count == 1) {\n            commonResult = CommonResult.success(pmsBrand);\n            LOGGER.debug(\"createBrand success:{}\", pmsBrand);\n        } else {\n            commonResult = CommonResult.failed(\"操作失败\");\n            LOGGER.debug(\"createBrand failed:{}\", pmsBrand);\n        }\n        return commonResult;\n    }\n\n    @Operation(summary = \"更新品牌\")\n    @RequestMapping(value = \"/brand/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateBrand(@PathVariable(\"id\") Long id, @Validated @RequestBody PmsBrandDto pmsBrandDto) {\n        CommonResult commonResult;\n        int count = demoService.updateBrand(id, pmsBrandDto);\n        if (count == 1) {\n            commonResult = CommonResult.success(pmsBrandDto);\n            LOGGER.debug(\"updateBrand success:{}\", pmsBrandDto);\n        } else {\n            commonResult = CommonResult.failed(\"操作失败\");\n            LOGGER.debug(\"updateBrand failed:{}\", pmsBrandDto);\n        }\n        return commonResult;\n    }\n\n    @Operation(summary = \"删除品牌\")\n    @RequestMapping(value = \"/brand/delete/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult deleteBrand(@PathVariable(\"id\") Long id) {\n        int count = demoService.deleteBrand(id);\n        if (count == 1) {\n            LOGGER.debug(\"deleteBrand success :id={}\", id);\n            return CommonResult.success(null);\n        } else {\n            LOGGER.debug(\"deleteBrand failed :id={}\", id);\n            return CommonResult.failed(\"操作失败\");\n        }\n    }\n\n    @Operation(summary = \"分页获取品牌列表\")\n    @RequestMapping(value = \"/brand/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<PmsBrand>> listBrand(@RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum,\n                                                        @RequestParam(value = \"pageSize\", defaultValue = \"3\") Integer pageSize) {\n        List<PmsBrand> brandList = demoService.listBrand(pageNum, pageSize);\n        return CommonResult.success(CommonPage.restPage(brandList));\n    }\n\n    @Operation(summary = \"根据编号查询品牌信息\")\n    @RequestMapping(value = \"/brand/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<PmsBrand> brand(@PathVariable(\"id\") Long id) {\n        return CommonResult.success(demoService.getBrand(id));\n    }\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/controller/FeignAdminController.java",
    "content": "package com.macro.mall.demo.controller;\n\n/**\n * Created by macro on 2019/10/18.\n */\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.demo.dto.UmsAdminLoginParam;\nimport com.macro.mall.demo.service.FeignAdminService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.*;\n\n/**\n * Feign调用mall-admin接口示例\n */\n@Tag(name = \"FeignAdminController\", description = \"Feign调用mall-admin接口示例\")\n@RestController\n@RequestMapping(\"/feign/admin\")\npublic class FeignAdminController {\n    @Autowired\n    private FeignAdminService adminService;\n\n    @Operation(summary = \"后台管理员登录\")\n    @PostMapping(\"/login\")\n    public CommonResult login(@RequestBody UmsAdminLoginParam loginParam) {\n        return adminService.login(loginParam);\n    }\n\n    @Operation(summary = \"获取商品列表\")\n    @GetMapping(\"/getBrandList\")\n    public CommonResult getBrandList(){\n        return adminService.getList();\n    }\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/controller/FeignPortalController.java",
    "content": "package com.macro.mall.demo.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.demo.service.FeignPortalService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.*;\n\n/**\n * Feign调用mall-portal接口示例\n * Created by macro on 2019/10/18.\n */\n@Tag(name = \"FeignPortalController\", description = \"Feign调用mall-portal接口示例\")\n@RestController\n@RequestMapping(\"/feign/portal\")\npublic class FeignPortalController {\n\n    @Autowired\n    private FeignPortalService portalService;\n\n    @Operation(summary = \"前台会员列表登录\")\n    @PostMapping(\"/login\")\n    public CommonResult login(@RequestParam String username, @RequestParam String password) {\n        return portalService.login(username,password);\n    }\n\n    @Operation(summary = \"获取购物车列表\")\n    @GetMapping(\"/cartList\")\n    public CommonResult cartList() {\n        return portalService.list();\n    }\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/controller/FeignSearchController.java",
    "content": "package com.macro.mall.demo.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.demo.service.FeignSearchService;\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.*;\n\n/**\n * Feign调用mall-search接口示例\n * Created by macro on 2019/10/22.\n */\n@Tag(name = \"FeignSearchController\", description = \"Feign调用mall-search接口示例\")\n@RestController\n@RequestMapping(\"/feign/search\")\npublic class FeignSearchController {\n\n    @Autowired\n    private FeignSearchService feignSearchService;\n\n    @Operation(summary = \"简单商品搜索\")\n    @RequestMapping(value = \"/justSearch\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult search(@RequestParam(required = false) String keyword,\n                               @RequestParam(required = false, defaultValue = \"0\") Integer pageNum,\n                               @RequestParam(required = false, defaultValue = \"5\") Integer pageSize) {\n\n        return feignSearchService.search(keyword, pageNum, pageSize);\n    }\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/dto/PmsBrandDto.java",
    "content": "package com.macro.mall.demo.dto;\n\nimport com.macro.mall.demo.validator.FlagValidator;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport jakarta.validation.constraints.Min;\nimport jakarta.validation.constraints.NotNull;\n\n/**\n * 品牌传递参数\n */\npublic class PmsBrandDto {\n    @Schema(title = \"品牌名称\",required = true)\n    @NotNull(message = \"名称不能为空\")\n    private String name;\n    @Schema(title = \"品牌首字母\",required = true)\n    @NotNull(message = \"首字母不能为空\")\n    private String firstLetter;\n    @Schema(title = \"排序字段\")\n    @Min(value = 0, message = \"排序最小为0\")\n    private Integer sort;\n    @Schema(title = \"是否为厂家制造商\")\n    @FlagValidator(value = {\"0\",\"1\"}, message = \"厂家状态不正确\")\n    private Integer factoryStatus;\n    @Schema(title = \"是否进行显示\")\n    @FlagValidator(value = {\"0\",\"1\"}, message = \"显示状态不正确\")\n    private Integer showStatus;\n    @Schema(title = \"品牌logo\")\n    private String logo;\n    @Schema(title = \"品牌大图\")\n    private String bigPic;\n    @Schema(title = \"品牌故事\")\n    private String brandStory;\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getFirstLetter() {\n        return firstLetter;\n    }\n\n    public void setFirstLetter(String firstLetter) {\n        this.firstLetter = firstLetter;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    public Integer getFactoryStatus() {\n        return factoryStatus;\n    }\n\n    public void setFactoryStatus(Integer factoryStatus) {\n        this.factoryStatus = factoryStatus;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    public String getLogo() {\n        return logo;\n    }\n\n    public void setLogo(String logo) {\n        this.logo = logo;\n    }\n\n    public String getBigPic() {\n        return bigPic;\n    }\n\n    public void setBigPic(String bigPic) {\n        this.bigPic = bigPic;\n    }\n\n    public String getBrandStory() {\n        return brandStory;\n    }\n\n    public void setBrandStory(String brandStory) {\n        this.brandStory = brandStory;\n    }\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/dto/UmsAdminLoginParam.java",
    "content": "package com.macro.mall.demo.dto;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\n/**\n * 用户登录参数\n * Created by macro on 2018/4/26.\n */\n@Getter\n@Setter\npublic class UmsAdminLoginParam {\n    @Schema(title = \"用户名\", required = true)\n    private String username;\n    @Schema(title = \"密码\", required = true)\n    private String password;\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/service/DemoService.java",
    "content": "package com.macro.mall.demo.service;\n\nimport com.macro.mall.demo.dto.PmsBrandDto;\nimport com.macro.mall.model.PmsBrand;\n\nimport java.util.List;\n\n/**\n * DemoService接口\n */\npublic interface DemoService {\n    List<PmsBrand> listAllBrand();\n\n    int createBrand(PmsBrandDto pmsBrandDto);\n\n    int updateBrand(Long id, PmsBrandDto pmsBrandDto);\n\n    int deleteBrand(Long id);\n\n    List<PmsBrand> listBrand(int pageNum, int pageSize);\n\n    PmsBrand getBrand(Long id);\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/service/FeignAdminService.java",
    "content": "package com.macro.mall.demo.service;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.demo.dto.UmsAdminLoginParam;\nimport org.springframework.cloud.openfeign.FeignClient;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestBody;\n\n/**\n * Created by macro on 2019/10/18.\n */\n@FeignClient(\"mall-admin\")\npublic interface FeignAdminService {\n\n    @PostMapping(\"/admin/login\")\n    CommonResult login(@RequestBody UmsAdminLoginParam loginParam);\n\n    @GetMapping(\"/brand/listAll\")\n    CommonResult getList();\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/service/FeignPortalService.java",
    "content": "package com.macro.mall.demo.service;\n\nimport com.macro.mall.common.api.CommonResult;\nimport org.springframework.cloud.openfeign.FeignClient;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.PostMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\n\n/**\n * Created by macro on 2019/10/18.\n */\n@FeignClient(\"mall-portal\")\npublic interface FeignPortalService {\n\n    @PostMapping(\"/sso/login\")\n    CommonResult login(@RequestParam String username, @RequestParam String password);\n\n    @GetMapping(\"/cart/list\")\n    CommonResult list();\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/service/FeignSearchService.java",
    "content": "package com.macro.mall.demo.service;\n\nimport com.macro.mall.common.api.CommonResult;\nimport org.springframework.cloud.openfeign.FeignClient;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\n\n/**\n * Created by macro on 2019/10/22.\n */\n@FeignClient(\"mall-search\")\npublic interface FeignSearchService {\n\n    @GetMapping(\"/esProduct/search/simple\")\n    CommonResult search(@RequestParam(required = false) String keyword,\n                        @RequestParam(required = false, defaultValue = \"0\") Integer pageNum,\n                        @RequestParam(required = false, defaultValue = \"5\") Integer pageSize);\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/service/impl/DemoServiceImpl.java",
    "content": "package com.macro.mall.demo.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.demo.dto.PmsBrandDto;\nimport com.macro.mall.demo.service.DemoService;\nimport com.macro.mall.mapper.PmsBrandMapper;\nimport com.macro.mall.model.PmsBrand;\nimport com.macro.mall.model.PmsBrandExample;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * DemoService实现类\n */\n@Service\npublic class DemoServiceImpl implements DemoService {\n    @Autowired\n    private PmsBrandMapper brandMapper;\n\n    @Override\n    public List<PmsBrand> listAllBrand() {\n        return brandMapper.selectByExample(new PmsBrandExample());\n    }\n\n    @Override\n    public int createBrand(PmsBrandDto pmsBrandDto) {\n        PmsBrand pmsBrand = new PmsBrand();\n        BeanUtils.copyProperties(pmsBrandDto,pmsBrand);\n        return brandMapper.insertSelective(pmsBrand);\n    }\n\n    @Override\n    public int updateBrand(Long id, PmsBrandDto pmsBrandDto) {\n        PmsBrand pmsBrand = new PmsBrand();\n        BeanUtils.copyProperties(pmsBrandDto,pmsBrand);\n        pmsBrand.setId(id);\n        return brandMapper.updateByPrimaryKeySelective(pmsBrand);\n    }\n\n    @Override\n    public int deleteBrand(Long id) {\n        return brandMapper.deleteByPrimaryKey(id);\n    }\n\n    @Override\n    public List<PmsBrand> listBrand(int pageNum, int pageSize) {\n        PageHelper.startPage(pageNum, pageSize);\n        return brandMapper.selectByExample(new PmsBrandExample());\n    }\n\n    @Override\n    public PmsBrand getBrand(Long id) {\n        return brandMapper.selectByPrimaryKey(id);\n    }\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/validator/FlagValidator.java",
    "content": "package com.macro.mall.demo.validator;\n\nimport jakarta.validation.Constraint;\nimport jakarta.validation.Payload;\nimport java.lang.annotation.*;\n\n/**\n * 用户验证状态是否在指定范围内的注解\n */\n@Documented\n@Retention(RetentionPolicy.RUNTIME)\n@Target({ElementType.FIELD,ElementType.PARAMETER})\n@Constraint(validatedBy = FlagValidatorClass.class)\npublic @interface FlagValidator {\n    String[] value() default {};\n\n    String message() default \"flag is not found\";\n\n    Class<?>[] groups() default {};\n\n    Class<? extends Payload>[] payload() default {};\n}\n"
  },
  {
    "path": "mall-demo/src/main/java/com/macro/mall/demo/validator/FlagValidatorClass.java",
    "content": "package com.macro.mall.demo.validator;\n\nimport jakarta.validation.ConstraintValidator;\nimport jakarta.validation.ConstraintValidatorContext;\n\n/**\n * 状态标记校验器\n */\npublic class FlagValidatorClass implements ConstraintValidator<FlagValidator,Integer> {\n    private String[] values;\n    @Override\n    public void initialize(FlagValidator flagValidator) {\n        this.values = flagValidator.value();\n    }\n\n    @Override\n    public boolean isValid(Integer value, ConstraintValidatorContext constraintValidatorContext) {\n        boolean isValid = false;\n        for(int i=0;i<values.length;i++){\n            if(values[i].equals(String.valueOf(value))){\n                isValid = true;\n                break;\n            }\n        }\n        return isValid;\n    }\n}\n"
  },
  {
    "path": "mall-demo/src/main/resources/application.yml",
    "content": "server:\n  port: 8082\nspring:\n  mvc:\n    pathmatch:\n      matching-strategy: ant_path_matcher\n  datasource:\n    url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false\n    username: root\n    password: root\nmybatis:\n  mapper-locations:\n    - classpath:mapper/*.xml\n    - classpath*:com/**/mapper/*.xml\nmanagement:\n  endpoints:\n    web:\n      exposure:\n        include: '*' #暴露Actuator的监控端点\n  endpoint:\n    health:\n      show-details: always #显示健康的详细信息\n    env:\n      show-values: always #默认Actuator的环境变量会以****显示，这里开启显示\n    configprops:\n      show-values: always #默认Actuator的配置属性会以****显示，这里开启显示\n    info:\n      enabled: true\nspringdoc:\n  swagger-ui:\n    # 修改Swagger UI路径\n    path: /swagger-ui.html\n    # 开启Swagger UI界面\n    enabled: true\n    # 用于配置tag和operation的展开方式，这里配置为都不展开\n    doc-expansion: 'none'\n  api-docs:\n    # 修改api-docs路径\n    path: /v3/api-docs\n    # 开启api-docs\n    enabled: true\n  group-configs:\n    - group: 'mall-demo'\n      packages-to-scan: com.macro.mall.demo.controller\n"
  },
  {
    "path": "mall-demo/src/main/resources/bootstrap-dev.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://localhost:8848\n      config:\n        server-addr: http://localhost:8848\n        file-extension: yaml"
  },
  {
    "path": "mall-demo/src/main/resources/bootstrap-prod.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://nacos-registry:8848\n      config:\n        server-addr: http://nacos-registry:8848\n        file-extension: yaml"
  },
  {
    "path": "mall-demo/src/main/resources/bootstrap.yml",
    "content": "spring:\n  profiles:\n    active: dev\n  application:\n    name: mall-demo"
  },
  {
    "path": "mall-demo/src/test/java/com/macro/mall/MallDemoApplicationTests.java",
    "content": "package com.macro.mall;\n\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimport com.macro.mall.model.PmsProduct;\nimport org.junit.jupiter.api.Test;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.boot.test.context.SpringBootTest;\nimport org.springframework.test.context.junit4.SpringRunner;\n\n@SpringBootTest\npublic class MallDemoApplicationTests {\n\tprivate Logger logger = LoggerFactory.getLogger(MallDemoApplicationTests.class);\n\t@Test\n\tpublic void contextLoads() {\n\t}\n\n\t@Test\n\tpublic void testLogStash() throws Exception {\n\t\tObjectMapper mapper = new ObjectMapper();\n\t\tPmsProduct product = new PmsProduct();\n\t\tproduct.setId(1L);\n\t\tproduct.setName(\"小米手机\");\n\t\tproduct.setBrandName(\"小米\");\n\t\tlogger.info(mapper.writeValueAsString(product));\n\t\tlogger.error(mapper.writeValueAsString(product));\n\t}\n\n}\n"
  },
  {
    "path": "mall-gateway/.gitignore",
    "content": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n.factorypath\n.project\n.settings\n.springBeans\n.sts4-cache\n\n### IntelliJ IDEA ###\n.idea\n*.iws\n*.iml\n*.ipr\n\n### NetBeans ###\n/nbproject/private/\n/nbbuild/\n/dist/\n/nbdist/\n/.nb-gradle/\nbuild/\n\n### VS Code ###\n.vscode/\n"
  },
  {
    "path": "mall-gateway/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n    <groupId>com.macro.mall</groupId>\n    <artifactId>mall-gateway</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <name>mall-gateway</name>\n    <description>mall-gateway project for mall</description>\n\n    <parent>\n        <groupId>com.macro.mall</groupId>\n        <artifactId>mall-swarm</artifactId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.macro.mall</groupId>\n            <artifactId>mall-common</artifactId>\n            <exclusions>\n                <exclusion>\n                    <groupId>org.springframework.boot</groupId>\n                    <artifactId>spring-boot-starter-web</artifactId>\n                </exclusion>\n                <exclusion>\n                    <groupId>org.springframework.boot</groupId>\n                    <artifactId>spring-boot-starter-data-redis</artifactId>\n                </exclusion>\n            </exclusions>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.cloud</groupId>\n            <artifactId>spring-cloud-starter-gateway</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.github.xiaoymin</groupId>\n            <artifactId>knife4j-gateway-spring-boot-starter</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-data-redis</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>cn.dev33</groupId>\n            <artifactId>sa-token-reactor-spring-boot3-starter</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>cn.dev33</groupId>\n            <artifactId>sa-token-redis-jackson</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.apache.commons</groupId>\n            <artifactId>commons-pool2</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>cn.dev33</groupId>\n            <artifactId>sa-token-jwt</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>de.codecentric</groupId>\n            <artifactId>spring-boot-admin-starter-client</artifactId>\n        </dependency>\n    </dependencies>\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.springframework.boot</groupId>\n                <artifactId>spring-boot-maven-plugin</artifactId>\n            </plugin>\n            <plugin>\n                <groupId>io.fabric8</groupId>\n                <artifactId>docker-maven-plugin</artifactId>\n            </plugin>\n        </plugins>\n    </build>\n\n</project>\n"
  },
  {
    "path": "mall-gateway/src/main/java/com/macro/mall/MallGatewayApplication.java",
    "content": "package com.macro.mall;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.cloud.client.discovery.EnableDiscoveryClient;\n\n@EnableDiscoveryClient\n@SpringBootApplication\npublic class MallGatewayApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(MallGatewayApplication.class, args);\n    }\n\n}\n"
  },
  {
    "path": "mall-gateway/src/main/java/com/macro/mall/component/StpInterfaceImpl.java",
    "content": "package com.macro.mall.component;\n\nimport cn.dev33.satoken.stp.StpInterface;\nimport cn.dev33.satoken.stp.StpUtil;\nimport com.macro.mall.common.constant.AuthConstant;\nimport com.macro.mall.common.dto.UserDto;\nimport org.springframework.stereotype.Component;\n\nimport java.util.List;\n\n/**\n * @auther macrozheng\n * @description 自定义权限验证接口扩展\n * @date 2024/1/25\n * @github https://github.com/macrozheng\n */\n@Component\npublic class StpInterfaceImpl implements StpInterface {\n\n    @Override\n    public List<String> getPermissionList(Object loginId, String loginType) {\n        // 返回此loginId拥有的权限码列表\n        if(StpUtil.getLoginType().equals(loginType)){\n            //后台用户需返回\n            UserDto userdto = (UserDto) StpUtil.getSession().get(AuthConstant.STP_ADMIN_INFO);\n            return userdto.getPermissionList();\n        }else{\n            //前台用户无需返回\n            return null;\n        }\n    }\n\n    @Override\n    public List<String> getRoleList(Object loginId, String loginType) {\n        // 返回此 loginId 拥有的角色码列表\n        return null;\n    }\n\n}\n\n"
  },
  {
    "path": "mall-gateway/src/main/java/com/macro/mall/config/GlobalCorsConfig.java",
    "content": "package com.macro.mall.config;\n\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.web.cors.CorsConfiguration;\nimport org.springframework.web.cors.reactive.CorsWebFilter;\nimport org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;\nimport org.springframework.web.util.pattern.PathPatternParser;\n\n/**\n * 全局跨域配置\n * 注意：前端从网关进行调用时需要配置\n * Created by macro on 2019/7/27.\n */\n@Configuration\npublic class GlobalCorsConfig {\n\n    @Bean\n    public CorsWebFilter corsFilter() {\n        CorsConfiguration config = new CorsConfiguration();\n        config.addAllowedMethod(\"*\");\n        config.addAllowedOriginPattern(\"*\");\n        config.addAllowedHeader(\"*\");\n        config.setAllowCredentials(true);\n        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());\n        source.registerCorsConfiguration(\"/**\", config);\n\n        return new CorsWebFilter(source);\n    }\n\n}\n"
  },
  {
    "path": "mall-gateway/src/main/java/com/macro/mall/config/IgnoreUrlsConfig.java",
    "content": "package com.macro.mall.config;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport org.springframework.boot.context.properties.ConfigurationProperties;\nimport org.springframework.stereotype.Component;\n\nimport java.util.List;\n\n/**\n * 网关白名单配置\n * Created by macro on 2020/6/17.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\n@Component\n@ConfigurationProperties(prefix=\"secure.ignore\")\npublic class IgnoreUrlsConfig {\n    private List<String> urls;\n}\n"
  },
  {
    "path": "mall-gateway/src/main/java/com/macro/mall/config/RedisConfig.java",
    "content": "package com.macro.mall.config;\n\nimport com.macro.mall.common.config.BaseRedisConfig;\nimport org.springframework.context.annotation.Configuration;\n\n/**\n * Redis相关配置\n * Created by macro on 2020/6/19.\n */\n@Configuration\npublic class RedisConfig extends BaseRedisConfig {\n\n}\n"
  },
  {
    "path": "mall-gateway/src/main/java/com/macro/mall/config/SaTokenConfig.java",
    "content": "package com.macro.mall.config;\n\nimport cn.dev33.satoken.context.SaHolder;\nimport cn.dev33.satoken.exception.NotLoginException;\nimport cn.dev33.satoken.exception.NotPermissionException;\nimport cn.dev33.satoken.reactor.context.SaReactorSyncHolder;\nimport cn.dev33.satoken.reactor.filter.SaReactorFilter;\nimport cn.dev33.satoken.router.SaHttpMethod;\nimport cn.dev33.satoken.router.SaRouter;\nimport cn.dev33.satoken.stp.StpUtil;\nimport cn.hutool.core.collection.CollUtil;\nimport cn.hutool.core.convert.Convert;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.common.constant.AuthConstant;\nimport com.macro.mall.util.StpMemberUtil;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.data.redis.core.RedisTemplate;\nimport org.springframework.http.HttpHeaders;\nimport org.springframework.http.server.reactive.ServerHttpResponse;\nimport org.springframework.util.AntPathMatcher;\nimport org.springframework.util.PathMatcher;\nimport org.springframework.web.server.ServerWebExchange;\n\nimport java.util.*;\n\n/**\n * @auther macrozheng\n * @description Sa-Token相关配置\n * @date 2023/11/28\n * @github https://github.com/macrozheng\n */\n@Configuration\npublic class SaTokenConfig {\n\n    @Autowired\n    private RedisTemplate<String, Object> redisTemplate;\n\n    /**\n     * 注册Sa-Token全局过滤器\n     */\n    @Bean\n    public SaReactorFilter getSaReactorFilter(IgnoreUrlsConfig ignoreUrlsConfig) {\n        return new SaReactorFilter()\n                // 拦截地址\n                .addInclude(\"/**\")\n                // 配置白名单路径\n                .setExcludeList(ignoreUrlsConfig.getUrls())\n                // 鉴权方法：每次访问进入\n                .setAuth(obj -> {\n                    // 对于OPTIONS预检请求直接放行\n                    SaRouter.match(SaHttpMethod.OPTIONS).stop();\n                    // 登录认证：商城前台会员认证\n                    SaRouter.match(\"/mall-portal/**\", r -> StpMemberUtil.checkLogin()).stop();\n                    // 登录认证：管理后台用户认证\n                    SaRouter.match(\"/mall-admin/**\", r -> StpUtil.checkLogin());\n                    // 权限认证：管理后台用户权限校验\n                    // 获取Redis中缓存的各个接口路径所需权限规则\n                    Map<Object, Object> pathResourceMap = redisTemplate.opsForHash().entries(AuthConstant.PATH_RESOURCE_MAP);\n                    // 获取到访问当前接口所需权限（一个路径对应多个资源时，拥有任意一个资源都可以访问该路径）\n                    List<String> needPermissionList = new ArrayList<>();\n                    // 获取当前请求路径\n                    String requestPath = SaHolder.getRequest().getRequestPath();\n                    // 创建路径匹配器\n                    PathMatcher pathMatcher = new AntPathMatcher();\n                    Set<Map.Entry<Object, Object>> entrySet = pathResourceMap.entrySet();\n                    for (Map.Entry<Object, Object> entry : entrySet) {\n                        String pattern = (String) entry.getKey();\n                        if (pathMatcher.match(pattern, requestPath)) {\n                            needPermissionList.add((String) entry.getValue());\n                        }\n                    }\n                    // 接口需要权限时鉴权\n                    if(CollUtil.isNotEmpty(needPermissionList)){\n                        SaRouter.match(requestPath, r -> StpUtil.checkPermissionOr(Convert.toStrArray(needPermissionList)));\n                    }\n                })\n                // setAuth方法异常处理\n                .setError(this::handleException);\n    }\n\n    /**\n     * 自定义异常处理\n     */\n    private CommonResult handleException(Throwable e) {\n        //设置错误返回格式为JSON\n        ServerWebExchange exchange = SaReactorSyncHolder.getContext();\n        HttpHeaders headers = exchange.getResponse().getHeaders();\n        headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n        headers.set(\"Access-Control-Allow-Origin\", \"*\");\n        headers.set(\"Cache-Control\",\"no-cache\");\n        CommonResult result = null;\n        if(e instanceof NotLoginException){\n            result = CommonResult.unauthorized(null);\n        }else if(e instanceof NotPermissionException){\n            result = CommonResult.forbidden(null);\n        }else{\n            result = CommonResult.failed(e.getMessage());\n        }\n        return result;\n    }\n}\n\n"
  },
  {
    "path": "mall-gateway/src/main/java/com/macro/mall/util/StpMemberUtil.java",
    "content": "/*\n * Copyright 2020-2099 sa-token.cc\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\npackage com.macro.mall.util;\n\nimport cn.dev33.satoken.SaManager;\nimport cn.dev33.satoken.fun.SaFunction;\nimport cn.dev33.satoken.jwt.StpLogicJwtForSimple;\nimport cn.dev33.satoken.listener.SaTokenEventCenter;\nimport cn.dev33.satoken.session.SaSession;\nimport cn.dev33.satoken.session.TokenSign;\nimport cn.dev33.satoken.stp.SaLoginModel;\nimport cn.dev33.satoken.stp.SaTokenInfo;\nimport cn.dev33.satoken.stp.StpLogic;\n\nimport java.util.List;\n\n/**\n * @auther macrozheng\n * @description 前台商城用户登录认证工具类\n * 拷贝于默认的StpUtil，仅改动了TYPE\n * @date 2024/1/26\n * @github https://github.com/macrozheng\n */\npublic class StpMemberUtil {\n\n\tprivate StpMemberUtil() {}\n\t\n\t/**\n\t * 多账号体系下的类型标识\n\t */\n\tpublic static final String TYPE = \"memberLogin\";\n\t\n\t/**\n\t * 底层使用的 StpLogic 对象\n\t */\n\tpublic static StpLogic stpLogic = new StpLogicJwtForSimple(TYPE);\n\n\t/**\n\t * 获取当前 StpLogic 的账号类型\n\t *\n\t * @return /\n\t */\n\tpublic static String getLoginType(){\n\t\treturn stpLogic.getLoginType();\n\t}\n\n\t/**\n\t * 安全的重置 StpLogic 对象\n\t *\n\t * <br> 1、更改此账户的 StpLogic 对象 \n\t * <br> 2、put 到全局 StpLogic 集合中 \n\t * <br> 3、发送日志 \n\t * \n\t * @param newStpLogic / \n\t */\n\tpublic static void setStpLogic(StpLogic newStpLogic) {\n\t\t// 1、重置此账户的 StpLogic 对象\n\t\tstpLogic = newStpLogic;\n\t\t\n\t\t// 2、添加到全局 StpLogic 集合中\n\t\t//    以便可以通过 SaManager.getStpLogic(type) 的方式来全局获取到这个 StpLogic\n\t\tSaManager.putStpLogic(newStpLogic);\n\t\t\n\t\t// 3、$$ 发布事件：更新了 stpLogic 对象\n\t\tSaTokenEventCenter.doSetStpLogic(stpLogic);\n\t}\n\n\t/**\n\t * 获取 StpLogic 对象\n\t *\n\t * @return / \n\t */\n\tpublic static StpLogic getStpLogic() {\n\t\treturn stpLogic;\n\t}\n\t\n\t\n\t// ------------------- 获取 token 相关 -------------------\n\n\t/**\n\t * 返回 token 名称，此名称在以下地方体现：Cookie 保存 token 时的名称、提交 token 时参数的名称、存储 token 时的 key 前缀\n\t *\n\t * @return /\n\t */\n\tpublic static String getTokenName() {\n \t\treturn stpLogic.getTokenName();\n \t}\n\n\t/**\n\t * 在当前会话写入指定 token 值\n\t *\n\t * @param tokenValue token 值\n\t */\n\tpublic static void setTokenValue(String tokenValue){\n\t\tstpLogic.setTokenValue(tokenValue);\n\t}\n\n\t/**\n\t * 在当前会话写入指定 token 值\n\t *\n\t * @param tokenValue token 值\n\t * @param cookieTimeout Cookie存活时间(秒)\n\t */\n\tpublic static void setTokenValue(String tokenValue, int cookieTimeout){\n\t\tstpLogic.setTokenValue(tokenValue, cookieTimeout);\n\t}\n\n\t/**\n\t * 在当前会话写入指定 token 值\n\t *\n\t * @param tokenValue token 值\n\t * @param loginModel 登录参数\n\t */\n\tpublic static void setTokenValue(String tokenValue, SaLoginModel loginModel){\n\t\tstpLogic.setTokenValue(tokenValue, loginModel);\n\t}\n\n\t/**\n\t * 获取当前请求的 token 值\n\t *\n\t * @return 当前tokenValue\n\t */\n\tpublic static String getTokenValue() {\n\t\treturn stpLogic.getTokenValue();\n\t}\n\n\t/**\n\t * 获取当前请求的 token 值 （不裁剪前缀）\n\t *\n\t * @return / \n\t */\n\tpublic static String getTokenValueNotCut(){\n\t\treturn stpLogic.getTokenValueNotCut();\n\t}\n\n\t/**\n\t * 获取当前会话的 token 参数信息\n\t *\n\t * @return token 参数信息\n\t */\n\tpublic static SaTokenInfo getTokenInfo() {\n\t\treturn stpLogic.getTokenInfo();\n\t}\n\n\t\n\t// ------------------- 登录相关操作 -------------------\n\n\t// --- 登录 \n\n\t/**\n\t * 会话登录\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t */\n\tpublic static void login(Object id) {\n\t\tstpLogic.login(id);\n\t}\n\n\t/**\n\t * 会话登录，并指定登录设备类型\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t * @param device 设备类型\n\t */\n\tpublic static void login(Object id, String device) {\n\t\tstpLogic.login(id, device);\n\t}\n\n\t/**\n\t * 会话登录，并指定是否 [记住我]\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t * @param isLastingCookie 是否为持久Cookie，值为 true 时记住我，值为 false 时关闭浏览器需要重新登录\n\t */\n\tpublic static void login(Object id, boolean isLastingCookie) {\n\t\tstpLogic.login(id, isLastingCookie);\n\t}\n\n\t/**\n\t * 会话登录，并指定此次登录 token 的有效期, 单位:秒\n\t *\n\t * @param id      账号id，建议的类型：（long | int | String）\n\t * @param timeout 此次登录 token 的有效期, 单位:秒\n\t */\n\tpublic static void login(Object id, long timeout) {\n\t\tstpLogic.login(id, timeout);\n\t}\n\n\t/**\n\t * 会话登录，并指定所有登录参数 Model\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t * @param loginModel 此次登录的参数Model\n\t */\n\tpublic static void login(Object id, SaLoginModel loginModel) {\n\t\tstpLogic.login(id, loginModel);\n\t}\n\n\t/**\n\t * 创建指定账号 id 的登录会话数据\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t * @return 返回会话令牌\n\t */\n\tpublic static String createLoginSession(Object id) {\n\t\treturn stpLogic.createLoginSession(id);\n\t}\n\n\t/**\n\t * 创建指定账号 id 的登录会话数据\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t * @param loginModel 此次登录的参数Model \n\t * @return 返回会话令牌\n\t */\n\tpublic static String createLoginSession(Object id, SaLoginModel loginModel) {\n\t\treturn stpLogic.createLoginSession(id, loginModel);\n\t}\n\t\n\t// --- 注销 \n\n\t/**\n\t * 在当前客户端会话注销\n\t */\n\tpublic static void logout() {\n\t\tstpLogic.logout();\n\t}\n\n\t/**\n\t * 会话注销，根据账号id \n\t *\n\t * @param loginId 账号id\n\t */\n\tpublic static void logout(Object loginId) {\n\t\tstpLogic.logout(loginId);\n\t}\n\n\t/**\n\t * 会话注销，根据账号id 和 设备类型\n\t *\n\t * @param loginId 账号id \n\t * @param device 设备类型 (填 null 代表注销该账号的所有设备类型)\n\t */\n\tpublic static void logout(Object loginId, String device) {\n\t\tstpLogic.logout(loginId, device);\n\t}\n\n\t/**\n\t * 会话注销，根据指定 Token \n\t *\n\t * @param tokenValue 指定 token\n\t */\n\tpublic static void logoutByTokenValue(String tokenValue) {\n\t\tstpLogic.logoutByTokenValue(tokenValue);\n\t}\n\n\t/**\n\t * 踢人下线，根据账号id \n\t * <p> 当对方再次访问系统时，会抛出 NotLoginException 异常，场景值=-5 </p>\n\t *\n\t * @param loginId 账号id \n\t */\n\tpublic static void kickout(Object loginId) {\n\t\tstpLogic.kickout(loginId);\n\t}\n\n\t/**\n\t * 踢人下线，根据账号id 和 设备类型\n\t * <p> 当对方再次访问系统时，会抛出 NotLoginException 异常，场景值=-5 </p>\n\t *\n\t * @param loginId 账号id\n\t * @param device 设备类型 (填 null 代表踢出该账号的所有设备类型)\n\t */\n\tpublic static void kickout(Object loginId, String device) {\n\t\tstpLogic.kickout(loginId, device);\n\t}\n\n\t/**\n\t * 踢人下线，根据指定 token\n\t * <p> 当对方再次访问系统时，会抛出 NotLoginException 异常，场景值=-5 </p>\n\t *\n\t * @param tokenValue 指定 token\n\t */\n\tpublic static void kickoutByTokenValue(String tokenValue) {\n\t\tstpLogic.kickoutByTokenValue(tokenValue);\n\t}\n\n\t/**\n\t * 顶人下线，根据账号id 和 设备类型\n\t * <p> 当对方再次访问系统时，会抛出 NotLoginException 异常，场景值=-4 </p>\n\t *\n\t * @param loginId 账号id\n\t * @param device 设备类型 （填 null 代表顶替该账号的所有设备类型）\n\t */\n\tpublic static void replaced(Object loginId, String device) {\n\t\tstpLogic.replaced(loginId, device);\n\t}\n\n\t// 会话查询\n\n\t/**\n\t * 判断当前会话是否已经登录\n\t *\n\t * @return 已登录返回 true，未登录返回 false\n\t */\n\tpublic static boolean isLogin() {\n\t\treturn stpLogic.isLogin();\n\t}\n\n\t/**\n\t * 判断指定账号是否已经登录\n\t *\n\t * @return 已登录返回 true，未登录返回 false\n\t */\n\tpublic static boolean isLogin(Object loginId) {\n\t\treturn stpLogic.isLogin(loginId);\n\t}\n\n\t/**\n\t * 检验当前会话是否已经登录，如未登录，则抛出异常\n\t */\n \tpublic static void checkLogin() {\n \t\tstpLogic.checkLogin();\n \t}\n\n\t/**\n\t * 获取当前会话账号id，如果未登录，则抛出异常\n\t *\n\t * @return 账号id\n\t */\n\tpublic static Object getLoginId() {\n\t\treturn stpLogic.getLoginId();\n\t}\n\n\t/**\n\t * 获取当前会话账号id, 如果未登录，则返回默认值\n\t *\n\t * @param <T> 返回类型 \n\t * @param defaultValue 默认值\n\t * @return 登录id\n\t */\n\tpublic static <T> T getLoginId(T defaultValue) {\n\t\treturn stpLogic.getLoginId(defaultValue);\n\t}\n\n\t/**\n\t * 获取当前会话账号id, 如果未登录，则返回null\n\t *\n\t * @return 账号id\n\t */\n\tpublic static Object getLoginIdDefaultNull() {\n\t\treturn stpLogic.getLoginIdDefaultNull();\n \t}\n\n\t/**\n\t * 获取当前会话账号id, 并转换为 String 类型\n\t *\n\t * @return 账号id\n\t */\n\tpublic static String getLoginIdAsString() {\n\t\treturn stpLogic.getLoginIdAsString();\n\t}\n\n\t/**\n\t * 获取当前会话账号id, 并转换为 int 类型\n\t *\n\t * @return 账号id\n\t */\n\tpublic static int getLoginIdAsInt() {\n\t\treturn stpLogic.getLoginIdAsInt();\n\t}\n\n\t/**\n\t * 获取当前会话账号id, 并转换为 long 类型\n\t *\n\t * @return 账号id\n\t */\n\tpublic static long getLoginIdAsLong() {\n\t\treturn stpLogic.getLoginIdAsLong();\n\t}\n\n\t/**\n\t * 获取指定 token 对应的账号id，如果未登录，则返回 null\n\t *\n\t * @param tokenValue token\n\t * @return 账号id\n\t */\n \tpublic static Object getLoginIdByToken(String tokenValue) {\n \t\treturn stpLogic.getLoginIdByToken(tokenValue);\n \t}\n\n\t/**\n\t * 获取当前 Token 的扩展信息（此函数只在jwt模式下生效）\n\t *\n\t * @param key 键值 \n\t * @return 对应的扩展数据\n\t */\n\tpublic static Object getExtra(String key) {\n\t\treturn stpLogic.getExtra(key);\n\t}\n\n\t/**\n\t * 获取指定 Token 的扩展信息（此函数只在jwt模式下生效）\n\t *\n\t * @param tokenValue 指定的 Token 值\n\t * @param key 键值\n\t * @return 对应的扩展数据\n\t */\n\tpublic static Object getExtra(String tokenValue, String key) {\n\t\treturn stpLogic.getExtra(tokenValue, key);\n\t}\n \t\n \t\n\t// ------------------- Account-Session 相关 -------------------\n\n\t/**\n\t * 获取指定账号 id 的 Account-Session, 如果该 SaSession 尚未创建，isCreate=是否新建并返回\n\t *\n\t * @param loginId 账号id\n\t * @param isCreate 是否新建\n\t * @return SaSession 对象\n\t */\n\tpublic static SaSession getSessionByLoginId(Object loginId, boolean isCreate) {\n\t\treturn stpLogic.getSessionByLoginId(loginId, isCreate);\n\t}\n\n\t/**\n\t * 获取指定 key 的 SaSession, 如果该 SaSession 尚未创建，则返回 null\n\t *\n\t * @param sessionId SessionId\n\t * @return Session对象\n\t */\n\tpublic static SaSession getSessionBySessionId(String sessionId) {\n\t\treturn stpLogic.getSessionBySessionId(sessionId);\n\t}\n\n\t/**\n\t * 获取指定账号 id 的 Account-Session，如果该 SaSession 尚未创建，则新建并返回\n\t *\n\t * @param loginId 账号id\n\t * @return SaSession 对象\n\t */\n\tpublic static SaSession getSessionByLoginId(Object loginId) {\n\t\treturn stpLogic.getSessionByLoginId(loginId);\n\t}\n\n\t/**\n\t * 获取当前已登录账号的 Account-Session, 如果该 SaSession 尚未创建，isCreate=是否新建并返回\n\t *\n\t * @param isCreate 是否新建 \n\t * @return Session对象\n\t */\n\tpublic static SaSession getSession(boolean isCreate) {\n\t\treturn stpLogic.getSession(isCreate);\n\t}\n\n\t/**\n\t * 获取当前已登录账号的 Account-Session，如果该 SaSession 尚未创建，则新建并返回\n\t *\n\t * @return Session对象\n\t */\n\tpublic static SaSession getSession() {\n\t\treturn stpLogic.getSession();\n\t}\n\n\t\n\t// ------------------- Token-Session 相关 -------------------  \n\n\t/**\n\t * 获取指定 token 的 Token-Session，如果该 SaSession 尚未创建，则新建并返回\n\t *\n\t * @param tokenValue Token值\n\t * @return Session对象\n\t */\n\tpublic static SaSession getTokenSessionByToken(String tokenValue) {\n\t\treturn stpLogic.getTokenSessionByToken(tokenValue);\n\t}\n\n\t/**\n\t * 获取当前 token 的 Token-Session，如果该 SaSession 尚未创建，则新建并返回\n\t *\n\t * @return Session对象\n\t */\n\tpublic static SaSession getTokenSession() {\n\t\treturn stpLogic.getTokenSession();\n\t}\n\n\t/**\n\t * 获取当前匿名 Token-Session （可在未登录情况下使用的Token-Session）\n\t *\n\t * @return Token-Session 对象\n\t */\n\tpublic static SaSession getAnonTokenSession() {\n\t\treturn stpLogic.getAnonTokenSession();\n\t}\n\t\n\n\t// ------------------- Active-Timeout token 最低活跃度 验证相关 -------------------\n\n\t/**\n\t * 续签当前 token：(将 [最后操作时间] 更新为当前时间戳)\n\t * <h2>\n\t * \t\t请注意: 即使 token 已被冻结 也可续签成功，\n\t * \t\t如果此场景下需要提示续签失败，可在此之前调用 checkActiveTimeout() 强制检查是否冻结即可\n\t * </h2>\n\t */\n\tpublic static void updateLastActiveToNow() {\n\t\tstpLogic.updateLastActiveToNow();\n\t}\n\n\t/**\n\t * 检查当前 token 是否已被冻结，如果是则抛出异常\n\t */\n \tpublic static void checkActiveTimeout() {\n \t\tstpLogic.checkActiveTimeout();\n \t}\n\n\n\t// ------------------- 过期时间相关 -------------------  \n\n\t/**\n\t * 获取当前会话 token 剩余有效时间（单位: 秒，返回 -1 代表永久有效，-2 代表没有这个值）\n\t *\n\t * @return token剩余有效时间\n\t */\n \tpublic static long getTokenTimeout() {\n \t\treturn stpLogic.getTokenTimeout();\n \t}\n\n\t/**\n\t * 获取指定 token 剩余有效时间（单位: 秒，返回 -1 代表永久有效，-2 代表没有这个值）\n\t *\n\t * @param token 指定token\n\t * @return token剩余有效时间\n\t */\n\tpublic static long getTokenTimeout(String token) {\n\t\treturn stpLogic.getTokenTimeout(token);\n\t}\n\n\t/**\n\t * 获取当前登录账号的 Account-Session 剩余有效时间（单位: 秒，返回 -1 代表永久有效，-2 代表没有这个值）\n\t *\n\t * @return token剩余有效时间\n\t */\n \tpublic static long getSessionTimeout() {\n \t\treturn stpLogic.getSessionTimeout();\n \t}\n\n\t/**\n\t * 获取当前 token 的 Token-Session 剩余有效时间（单位: 秒，返回 -1 代表永久有效，-2 代表没有这个值）\n\t *\n\t * @return token剩余有效时间\n\t */\n \tpublic static long getTokenSessionTimeout() {\n \t\treturn stpLogic.getTokenSessionTimeout();\n \t}\n\n\t/**\n\t * 获取当前 token 剩余活跃有效期：当前 token 距离被冻结还剩多少时间（单位: 秒，返回 -1 代表永不冻结，-2 代表没有这个值或 token 已被冻结了）\n\t *\n\t * @return /\n\t */\n \tpublic static long getTokenActiveTimeout() {\n \t\treturn stpLogic.getTokenActiveTimeout();\n \t}\n\n\t/**\n\t * 对当前 token 的 timeout 值进行续期\n\t *\n\t * @param timeout 要修改成为的有效时间 (单位: 秒)\n\t */\n \tpublic static void renewTimeout(long timeout) {\n \t\tstpLogic.renewTimeout(timeout);\n \t}\n\n\t/**\n\t * 对指定 token 的 timeout 值进行续期\n\t *\n\t * @param tokenValue 指定 token\n\t * @param timeout 要修改成为的有效时间 (单位: 秒，填 -1 代表要续为永久有效)\n\t */\n \tpublic static void renewTimeout(String tokenValue, long timeout) {\n \t\tstpLogic.renewTimeout(tokenValue, timeout);\n \t}\n \t\n \t\n\t// ------------------- 角色认证操作 -------------------\n\n\t/**\n\t * 获取：当前账号的角色集合\n\t *\n\t * @return /\n\t */\n\tpublic static List<String> getRoleList() {\n\t\treturn stpLogic.getRoleList();\n\t}\n\n\t/**\n\t * 获取：指定账号的角色集合\n\t *\n\t * @param loginId 指定账号id \n\t * @return /\n\t */\n\tpublic static List<String> getRoleList(Object loginId) {\n\t\treturn stpLogic.getRoleList(loginId);\n\t}\n\n\t/**\n\t * 判断：当前账号是否拥有指定角色, 返回 true 或 false\n\t *\n\t * @param role 角色\n\t * @return /\n\t */\n \tpublic static boolean hasRole(String role) {\n \t\treturn stpLogic.hasRole(role);\n \t}\n\n\t/**\n\t * 判断：指定账号是否含有指定角色标识, 返回 true 或 false\n\t *\n\t * @param loginId 账号id\n\t * @param role 角色标识\n\t * @return 是否含有指定角色标识\n\t */\n \tpublic static boolean hasRole(Object loginId, String role) {\n \t\treturn stpLogic.hasRole(loginId, role);\n \t}\n\n\t/**\n\t * 判断：当前账号是否含有指定角色标识 [ 指定多个，必须全部验证通过 ]\n\t *\n\t * @param roleArray 角色标识数组\n\t * @return true或false\n\t */\n \tpublic static boolean hasRoleAnd(String... roleArray){\n \t\treturn stpLogic.hasRoleAnd(roleArray);\n \t}\n\n\t/**\n\t * 判断：当前账号是否含有指定角色标识 [ 指定多个，只要其一验证通过即可 ]\n\t *\n\t * @param roleArray 角色标识数组\n\t * @return true或false\n\t */\n \tpublic static boolean hasRoleOr(String... roleArray){\n \t\treturn stpLogic.hasRoleOr(roleArray);\n \t}\n\n\t/**\n\t * 校验：当前账号是否含有指定角色标识, 如果验证未通过，则抛出异常: NotRoleException\n\t *\n\t * @param role 角色标识\n\t */\n \tpublic static void checkRole(String role) {\n \t\tstpLogic.checkRole(role);\n \t}\n\n\t/**\n\t * 校验：当前账号是否含有指定角色标识 [ 指定多个，必须全部验证通过 ]\n\t *\n\t * @param roleArray 角色标识数组\n\t */\n \tpublic static void checkRoleAnd(String... roleArray){\n \t\tstpLogic.checkRoleAnd(roleArray);\n \t}\n\n\t/**\n\t * 校验：当前账号是否含有指定角色标识 [ 指定多个，只要其一验证通过即可 ]\n\t *\n\t * @param roleArray 角色标识数组\n\t */\n \tpublic static void checkRoleOr(String... roleArray){\n \t\tstpLogic.checkRoleOr(roleArray);\n \t}\n\n\t\n\t// ------------------- 权限认证操作 -------------------\n\n\t/**\n\t * 获取：当前账号的权限码集合\n\t *\n\t * @return / \n\t */\n\tpublic static List<String> getPermissionList() {\n\t\treturn stpLogic.getPermissionList();\n\t}\n\n\t/**\n\t * 获取：指定账号的权限码集合\n\t *\n\t * @param loginId 指定账号id\n\t * @return / \n\t */\n\tpublic static List<String> getPermissionList(Object loginId) {\n\t\treturn stpLogic.getPermissionList(loginId);\n\t}\n\n\t/**\n\t * 判断：当前账号是否含有指定权限, 返回 true 或 false\n\t *\n\t * @param permission 权限码\n\t * @return 是否含有指定权限\n\t */\n\tpublic static boolean hasPermission(String permission) {\n\t\treturn stpLogic.hasPermission(permission);\n\t}\n\n\t/**\n\t * 判断：指定账号 id 是否含有指定权限, 返回 true 或 false\n\t *\n\t * @param loginId 账号 id\n\t * @param permission 权限码\n\t * @return 是否含有指定权限\n\t */\n\tpublic static boolean hasPermission(Object loginId, String permission) {\n\t\treturn stpLogic.hasPermission(loginId, permission);\n\t}\n\n\t/**\n\t * 判断：当前账号是否含有指定权限 [ 指定多个，必须全部具有 ]\n\t *\n\t * @param permissionArray 权限码数组\n\t * @return true 或 false\n\t */\n \tpublic static boolean hasPermissionAnd(String... permissionArray){\n \t\treturn stpLogic.hasPermissionAnd(permissionArray);\n \t}\n\n\t/**\n\t * 判断：当前账号是否含有指定权限 [ 指定多个，只要其一验证通过即可 ]\n\t *\n\t * @param permissionArray 权限码数组\n\t * @return true 或 false\n\t */\n \tpublic static boolean hasPermissionOr(String... permissionArray){\n \t\treturn stpLogic.hasPermissionOr(permissionArray);\n \t}\n\n\t/**\n\t * 校验：当前账号是否含有指定权限, 如果验证未通过，则抛出异常: NotPermissionException\n\t *\n\t * @param permission 权限码\n\t */\n\tpublic static void checkPermission(String permission) {\n\t\tstpLogic.checkPermission(permission);\n\t}\n\n\t/**\n\t * 校验：当前账号是否含有指定权限 [ 指定多个，必须全部验证通过 ]\n\t *\n\t * @param permissionArray 权限码数组\n\t */\n\tpublic static void checkPermissionAnd(String... permissionArray) {\n\t\tstpLogic.checkPermissionAnd(permissionArray);\n\t}\n\n\t/**\n\t * 校验：当前账号是否含有指定权限 [ 指定多个，只要其一验证通过即可 ]\n\t *\n\t * @param permissionArray 权限码数组\n\t */\n\tpublic static void checkPermissionOr(String... permissionArray) {\n\t\tstpLogic.checkPermissionOr(permissionArray);\n\t}\n\n\n\t// ------------------- id 反查 token 相关操作 -------------------\n\n\t/**\n\t * 获取指定账号 id 的 token\n\t * <p>\n\t * \t\t在配置为允许并发登录时，此方法只会返回队列的最后一个 token，\n\t * \t\t如果你需要返回此账号 id 的所有 token，请调用 getTokenValueListByLoginId\n\t * </p>\n\t *\n\t * @param loginId 账号id\n\t * @return token值\n\t */\n\tpublic static String getTokenValueByLoginId(Object loginId) {\n\t\treturn stpLogic.getTokenValueByLoginId(loginId);\n\t}\n\n\t/**\n\t * 获取指定账号 id 指定设备类型端的 token\n\t * <p>\n\t * \t\t在配置为允许并发登录时，此方法只会返回队列的最后一个 token，\n\t * \t\t如果你需要返回此账号 id 的所有 token，请调用 getTokenValueListByLoginId\n\t * </p>\n\t *\n\t * @param loginId 账号id\n\t * @param device 设备类型，填 null 代表不限设备类型\n\t * @return token值\n\t */\n\tpublic static String getTokenValueByLoginId(Object loginId, String device) {\n\t\treturn stpLogic.getTokenValueByLoginId(loginId, device);\n\t}\n\n\t/**\n\t * 获取指定账号 id 的 token 集合\n\t *\n\t * @param loginId 账号id\n\t * @return 此 loginId 的所有相关 token\n\t */\n\tpublic static List<String> getTokenValueListByLoginId(Object loginId) {\n\t\treturn stpLogic.getTokenValueListByLoginId(loginId);\n\t}\n\n\t/**\n\t * 获取指定账号 id 指定设备类型端的 token 集合\n\t *\n\t * @param loginId 账号id\n\t * @param device 设备类型，填 null 代表不限设备类型\n\t * @return 此 loginId 的所有登录 token\n\t */\n\tpublic static List<String> getTokenValueListByLoginId(Object loginId, String device) {\n\t\treturn stpLogic.getTokenValueListByLoginId(loginId, device);\n\t}\n\n\t/**\n\t * 获取指定账号 id 指定设备类型端的 tokenSign 集合\n\t *\n\t * @param loginId 账号id\n\t * @param device 设备类型，填 null 代表不限设备类型\n\t * @return 此 loginId 的所有登录 tokenSign\n\t */\n\tpublic static List<TokenSign> getTokenSignListByLoginId(Object loginId, String device) {\n\t\treturn stpLogic.getTokenSignListByLoginId(loginId, device);\n\t}\n\n\t/**\n\t * 返回当前会话的登录设备类型\n\t *\n\t * @return 当前令牌的登录设备类型\n\t */\n\tpublic static String getLoginDevice() {\n\t\treturn stpLogic.getLoginDevice(); \n\t}\n\n\t\n\t// ------------------- 会话管理 -------------------  \n\n\t/**\n\t * 根据条件查询缓存中所有的 token\n\t *\n\t * @param keyword 关键字\n\t * @param start 开始处索引\n\t * @param size 获取数量 (-1代表一直获取到末尾)\n\t * @param sortType 排序类型（true=正序，false=反序）\n\t *\n\t * @return token集合\n\t */\n\tpublic static List<String> searchTokenValue(String keyword, int start, int size, boolean sortType) {\n\t\treturn stpLogic.searchTokenValue(keyword, start, size, sortType);\n\t}\n\n\t/**\n\t * 根据条件查询缓存中所有的 SessionId\n\t *\n\t * @param keyword 关键字\n\t * @param start 开始处索引\n\t * @param size 获取数量  (-1代表一直获取到末尾)\n\t * @param sortType 排序类型（true=正序，false=反序）\n\t *\n\t * @return sessionId集合\n\t */\n\tpublic static List<String> searchSessionId(String keyword, int start, int size, boolean sortType) {\n\t\treturn stpLogic.searchSessionId(keyword, start, size, sortType);\n\t}\n\n\t/**\n\t * 根据条件查询缓存中所有的 Token-Session-Id\n\t *\n\t * @param keyword 关键字\n\t * @param start 开始处索引\n\t * @param size 获取数量 (-1代表一直获取到末尾)\n\t * @param sortType 排序类型（true=正序，false=反序）\n\t *\n\t * @return sessionId集合\n\t */\n\tpublic static List<String> searchTokenSessionId(String keyword, int start, int size, boolean sortType) {\n\t\treturn stpLogic.searchTokenSessionId(keyword, start, size, sortType);\n\t}\n\n\t\n\t// ------------------- 账号封禁 -------------------  \n\n\t/**\n\t * 封禁：指定账号\n\t * <p> 此方法不会直接将此账号id踢下线，如需封禁后立即掉线，请追加调用 StpUtil.logout(id)\n\t *\n\t * @param loginId 指定账号id \n\t * @param time 封禁时间, 单位: 秒 （-1=永久封禁）\n\t */\n\tpublic static void disable(Object loginId, long time) {\n\t\tstpLogic.disable(loginId, time);\n\t}\n\n\t/**\n\t * 判断：指定账号是否已被封禁 (true=已被封禁, false=未被封禁) \n\t *\n\t * @param loginId 账号id\n\t * @return / \n\t */\n\tpublic static boolean isDisable(Object loginId) {\n\t\treturn stpLogic.isDisable(loginId);\n\t}\n\n\t/**\n\t * 校验：指定账号是否已被封禁，如果被封禁则抛出异常\n\t *\n\t * @param loginId 账号id\n\t */\n\tpublic static void checkDisable(Object loginId) {\n\t\tstpLogic.checkDisable(loginId);\n\t}\n\n\t/**\n\t * 获取：指定账号剩余封禁时间，单位：秒（-1=永久封禁，-2=未被封禁）\n\t *\n\t * @param loginId 账号id\n\t * @return / \n\t */\n\tpublic static long getDisableTime(Object loginId) {\n\t\treturn stpLogic.getDisableTime(loginId);\n\t}\n\n\t/**\n\t * 解封：指定账号\n\t *\n\t * @param loginId 账号id\n\t */\n\tpublic static void untieDisable(Object loginId) {\n\t\tstpLogic.untieDisable(loginId);\n\t}\n\n\t\n\t// ------------------- 分类封禁 -------------------  \n\n\t/**\n\t * 封禁：指定账号的指定服务 \n\t * <p> 此方法不会直接将此账号id踢下线，如需封禁后立即掉线，请追加调用 StpUtil.logout(id)\n\t *\n\t * @param loginId 指定账号id\n\t * @param service 指定服务 \n\t * @param time 封禁时间, 单位: 秒 （-1=永久封禁）\n\t */\n\tpublic static void disable(Object loginId, String service, long time) {\n\t\tstpLogic.disable(loginId, service, time);\n\t}\n\n\t/**\n\t * 判断：指定账号的指定服务 是否已被封禁（true=已被封禁, false=未被封禁）\n\t *\n\t * @param loginId 账号id\n\t * @param service 指定服务 \n\t * @return / \n\t */\n\tpublic static boolean isDisable(Object loginId, String service) {\n\t\treturn stpLogic.isDisable(loginId, service);\n\t}\n\n\t/**\n\t * 校验：指定账号 指定服务 是否已被封禁，如果被封禁则抛出异常\n\t *\n\t * @param loginId 账号id\n\t * @param services 指定服务，可以指定多个 \n\t */\n\tpublic static void checkDisable(Object loginId, String... services) {\n\t\tstpLogic.checkDisable(loginId, services);\n\t}\n\n\t/**\n\t * 获取：指定账号 指定服务 剩余封禁时间，单位：秒（-1=永久封禁，-2=未被封禁）\n\t *\n\t * @param loginId 账号id\n\t * @param service 指定服务 \n\t * @return see note \n\t */\n\tpublic static long getDisableTime(Object loginId, String service) {\n\t\treturn stpLogic.getDisableTime(loginId, service);\n\t}\n\n\t/**\n\t * 解封：指定账号、指定服务\n\t *\n\t * @param loginId 账号id\n\t * @param services 指定服务，可以指定多个 \n\t */\n\tpublic static void untieDisable(Object loginId, String... services) {\n\t\tstpLogic.untieDisable(loginId, services);\n\t}\n\n\n\t// ------------------- 阶梯封禁 -------------------  \n\n\t/**\n\t * 封禁：指定账号，并指定封禁等级\n\t *\n\t * @param loginId 指定账号id \n\t * @param level 指定封禁等级 \n\t * @param time 封禁时间, 单位: 秒 （-1=永久封禁）\n\t */\n\tpublic static void disableLevel(Object loginId, int level, long time) {\n\t\tstpLogic.disableLevel(loginId, level, time);\n\t}\n\n\t/**\n\t * 封禁：指定账号的指定服务，并指定封禁等级\n\t *\n\t * @param loginId 指定账号id \n\t * @param service 指定封禁服务 \n\t * @param level 指定封禁等级 \n\t * @param time 封禁时间, 单位: 秒 （-1=永久封禁）\n\t */\n\tpublic static void disableLevel(Object loginId, String service, int level, long time) {\n\t\tstpLogic.disableLevel(loginId, service, level, time);\n\t}\n\n\t/**\n\t * 判断：指定账号是否已被封禁到指定等级\n\t *\n\t * @param loginId 指定账号id \n\t * @param level 指定封禁等级 \n\t * @return / \n\t */\n\tpublic static boolean isDisableLevel(Object loginId, int level) {\n\t\treturn stpLogic.isDisableLevel(loginId, level);\n\t}\n\n\t/**\n\t * 判断：指定账号的指定服务，是否已被封禁到指定等级 \n\t *\n\t * @param loginId 指定账号id \n\t * @param service 指定封禁服务 \n\t * @param level 指定封禁等级 \n\t * @return / \n\t */\n\tpublic static boolean isDisableLevel(Object loginId, String service, int level) {\n\t\treturn stpLogic.isDisableLevel(loginId, service, level);\n\t}\n\n\t/**\n\t * 校验：指定账号是否已被封禁到指定等级（如果已经达到，则抛出异常）\n\t *\n\t * @param loginId 指定账号id \n\t * @param level 封禁等级 （只有 封禁等级 ≥ 此值 才会抛出异常）\n\t */\n\tpublic static void checkDisableLevel(Object loginId, int level) {\n\t\tstpLogic.checkDisableLevel(loginId, level);\n\t}\n\n\t/**\n\t * 校验：指定账号的指定服务，是否已被封禁到指定等级（如果已经达到，则抛出异常）\n\t *\n\t * @param loginId 指定账号id \n\t * @param service 指定封禁服务 \n\t * @param level 封禁等级 （只有 封禁等级 ≥ 此值 才会抛出异常）\n\t */\n\tpublic static void checkDisableLevel(Object loginId, String service, int level) {\n\t\tstpLogic.checkDisableLevel(loginId, service, level);\n\t}\n\n\t/**\n\t * 获取：指定账号被封禁的等级，如果未被封禁则返回-2 \n\t *\n\t * @param loginId 指定账号id \n\t * @return / \n\t */\n\tpublic static int getDisableLevel(Object loginId) {\n\t\treturn stpLogic.getDisableLevel(loginId);\n\t}\n\n\t/**\n\t * 获取：指定账号的 指定服务 被封禁的等级，如果未被封禁则返回-2 \n\t *\n\t * @param loginId 指定账号id \n\t * @param service 指定封禁服务 \n\t * @return / \n\t */\n\tpublic static int getDisableLevel(Object loginId, String service) {\n\t\treturn stpLogic.getDisableLevel(loginId, service);\n\t}\n\t\n\t\n\t// ------------------- 临时身份切换 -------------------\n\n\t/**\n\t * 临时切换身份为指定账号id\n\t *\n\t * @param loginId 指定loginId \n\t */\n\tpublic static void switchTo(Object loginId) {\n\t\tstpLogic.switchTo(loginId);\n\t}\n\n\t/**\n\t * 结束临时切换身份\n\t */\n\tpublic static void endSwitch() {\n\t\tstpLogic.endSwitch();\n\t}\n\n\t/**\n\t * 判断当前请求是否正处于 [ 身份临时切换 ] 中\n\t *\n\t * @return /\n\t */\n\tpublic static boolean isSwitch() {\n\t\treturn stpLogic.isSwitch();\n\t}\n\n\t/**\n\t * 在一个 lambda 代码段里，临时切换身份为指定账号id，lambda 结束后自动恢复\n\t *\n\t * @param loginId 指定账号id \n\t * @param function 要执行的方法 \n\t */\n\tpublic static void switchTo(Object loginId, SaFunction function) {\n\t\tstpLogic.switchTo(loginId, function);\n\t}\n\t\n\n\t// ------------------- 二级认证 -------------------  \n\n\t/**\n\t * 在当前会话 开启二级认证\n\t *\n\t * @param safeTime 维持时间 (单位: 秒) \n\t */\n\tpublic static void openSafe(long safeTime) {\n\t\tstpLogic.openSafe(safeTime);\n\t}\n\n\t/**\n\t * 在当前会话 开启二级认证\n\t *\n\t * @param service 业务标识  \n\t * @param safeTime 维持时间 (单位: 秒) \n\t */\n\tpublic static void openSafe(String service, long safeTime) {\n\t\tstpLogic.openSafe(service, safeTime);\n\t}\n\n\t/**\n\t * 判断：当前会话是否处于二级认证时间内\n\t *\n\t * @return true=二级认证已通过, false=尚未进行二级认证或认证已超时 \n\t */\n\tpublic static boolean isSafe() {\n\t\treturn stpLogic.isSafe();\n\t}\n\n\t/**\n\t * 判断：当前会话 是否处于指定业务的二级认证时间内\n\t *\n\t * @param service 业务标识  \n\t * @return true=二级认证已通过, false=尚未进行二级认证或认证已超时 \n\t */\n\tpublic static boolean isSafe(String service) {\n\t\treturn stpLogic.isSafe(service);\n\t}\n\n\t/**\n\t * 判断：指定 token 是否处于二级认证时间内\n\t *\n\t * @param tokenValue Token 值  \n\t * @param service 业务标识  \n\t * @return true=二级认证已通过, false=尚未进行二级认证或认证已超时 \n\t */\n\tpublic static boolean isSafe(String tokenValue, String service) {\n\t\treturn stpLogic.isSafe(tokenValue, service);\n\t}\n\n\t/**\n\t * 校验：当前会话是否已通过二级认证，如未通过则抛出异常\n\t */\n\tpublic static void checkSafe() {\n\t\tstpLogic.checkSafe();\n\t}\n\n\t/**\n\t * 校验：检查当前会话是否已通过指定业务的二级认证，如未通过则抛出异常\n\t *\n\t * @param service 业务标识  \n\t */\n\tpublic static void checkSafe(String service) {\n\t\tstpLogic.checkSafe(service);\n\t}\n\n\t/**\n\t * 获取：当前会话的二级认证剩余有效时间（单位: 秒, 返回-2代表尚未通过二级认证）\n\t *\n\t * @return 剩余有效时间\n\t */\n\tpublic static long getSafeTime() {\n\t\treturn stpLogic.getSafeTime();\n\t}\n\n\t/**\n\t * 获取：当前会话的二级认证剩余有效时间（单位: 秒, 返回-2代表尚未通过二级认证）\n\t *\n\t * @param service 业务标识  \n\t * @return 剩余有效时间\n\t */\n\tpublic static long getSafeTime(String service) {\n\t\treturn stpLogic.getSafeTime(service);\n\t}\n\n\t/**\n\t * 在当前会话 结束二级认证 \n\t */\n\tpublic static void closeSafe() {\n\t\tstpLogic.closeSafe();\n\t}\n\n\t/**\n\t * 在当前会话 结束指定业务标识的二级认证\n\t *\n\t * @param service 业务标识  \n\t */\n\tpublic static void closeSafe(String service) {\n\t\tstpLogic.closeSafe(service);\n\t}\n\n}\n"
  },
  {
    "path": "mall-gateway/src/main/resources/application.yml",
    "content": "server:\n  port: 8201\nspring:\n  mvc:\n    pathmatch:\n      matching-strategy: ant_path_matcher\n  cloud:\n    gateway:\n      discovery:\n        locator:\n          enabled: true\n          lower-case-service-id: true #使用小写service-id\n      routes: #配置路由路径\n        - id: mall-auth\n          uri: lb://mall-auth\n          predicates:\n            - Path=/mall-auth/**\n          filters:\n            - StripPrefix=1\n        - id: mall-admin\n          uri: lb://mall-admin\n          predicates:\n            - Path=/mall-admin/**\n          filters:\n            - StripPrefix=1\n        - id: mall-portal\n          uri: lb://mall-portal\n          predicates:\n            - Path=/mall-portal/**\n          filters:\n            - StripPrefix=1\n        - id: mall-search\n          uri: lb://mall-search\n          predicates:\n            - Path=/mall-search/**\n          filters:\n            - StripPrefix=1\n        - id: mall-demo\n          uri: lb://mall-demo\n          predicates:\n            - Path=/mall-demo/**\n          filters:\n            - StripPrefix=1\n  data:\n    redis:\n      database: 0\n      port: 6379\n      host: localhost\n      password:\nsecure:\n  ignore:\n    urls: #配置白名单路径\n      - \"/doc.html\"\n      - \"/v3/api-docs/swagger-config\"\n      - \"/*/v3/api-docs/default\"\n      - \"/*/v3/api-docs\"\n      - \"/*/swagger-ui/**\"\n      - \"/webjars/**\"\n      - \"/favicon.ico\"\n      - \"/webjars/**\"\n      - \"/actuator/**\"\n      - \"/mall-auth/**\"\n      - \"/mall-search/**\"\n      - \"/mall-portal/sso/login\"\n      - \"/mall-portal/sso/register\"\n      - \"/mall-portal/sso/getAuthCode\"\n      - \"/mall-portal/home/**\"\n      - \"/mall-portal/product/**\"\n      - \"/mall-portal/brand/**\"\n      - \"/mall-portal/alipay/**\"\n      - \"/mall-admin/admin/login\"\n      - \"/mall-admin/admin/register\"\n      - \"/mall-admin/minio/upload\"\nmanagement:\n  endpoints:\n    web:\n      exposure:\n        include: '*' #暴露Actuator的监控端点\n  endpoint:\n    health:\n      show-details: always #显示健康的详细信息\n    env:\n      show-values: always #默认Actuator的环境变量会以****显示，这里开启显示\n    configprops:\n      show-values: always #默认Actuator的配置属性会以****显示，这里开启显示\n    info:\n      enabled: true\nknife4j:\n  gateway:\n    enabled: true\n    strategy: discover #网关文档聚合方式：服务发现（自动聚合）\n    discover:\n      version: openapi3 #配置OpenAPI3规范\n      enabled: true #配置开启服务发现\n      excluded-services: mall-monitor #排除监控服务\n    tags-sorter: order #配置tag排序规则\n    operations-sorter: order #配置operation排序规则\nsa-token:\n  # token名称 (同时也是cookie名称)\n  token-name: Authorization\n  # token有效期，单位秒，-1代表永不过期\n  timeout: 2592000\n  # token临时有效期 (指定时间内无操作就视为token过期)，单位秒\n  active-timeout: -1\n  # 是否允许同一账号并发登录 (为false时新登录挤掉旧登录)\n  is-concurrent: true\n  # 在多人登录同一账号时，是否共用一个token (为false时每次登录新建一个token)\n  is-share: false\n  # token风格\n  token-style: uuid\n  # 是否输出操作日志\n  is-log: false\n  # 是否从cookie中读取token\n  is-read-cookie: false\n  # 是否从head中读取token\n  is-read-header: true\n  # token前缀\n  token-prefix: Bearer\n  # 是否打印banner\n  is-print: false\n\n"
  },
  {
    "path": "mall-gateway/src/main/resources/bootstrap-dev.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://localhost:8848\n      config:\n        server-addr: http://localhost:8848\n        file-extension: yaml"
  },
  {
    "path": "mall-gateway/src/main/resources/bootstrap-prod.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://nacos-registry:8848\n      config:\n        server-addr: http://nacos-registry:8848\n        file-extension: yaml"
  },
  {
    "path": "mall-gateway/src/main/resources/bootstrap.yml",
    "content": "spring:\n  profiles:\n    active: dev\n  application:\n    name: mall-gateway"
  },
  {
    "path": "mall-gateway/src/test/java/com/macro/mall/MallGatewayApplicationTests.java",
    "content": "package com.macro.mall;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.SpringBootTest;\nimport org.springframework.test.context.junit4.SpringRunner;\n\n@SpringBootTest\npublic class MallGatewayApplicationTests {\n\n    @Test\n    public void contextLoads() {\n    }\n\n}\n"
  },
  {
    "path": "mall-mbg/.gitignore",
    "content": "# MyBatis generate files #\nsrc\\main\\resources\\com\\macro\\mall\\mapper"
  },
  {
    "path": "mall-mbg/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <groupId>com.macro.mall</groupId>\n    <artifactId>mall-mbg</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <packaging>jar</packaging>\n\n    <name>mall-mbg</name>\n    <description>mall-mbg project for mall</description>\n\n    <parent>\n        <groupId>com.macro.mall</groupId>\n        <artifactId>mall-swarm</artifactId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.macro.mall</groupId>\n            <artifactId>mall-common</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.github.pagehelper</groupId>\n            <artifactId>pagehelper-spring-boot-starter</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.mybatis.spring.boot</groupId>\n            <artifactId>mybatis-spring-boot-starter</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba</groupId>\n            <artifactId>druid-spring-boot-starter</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.mybatis.generator</groupId>\n            <artifactId>mybatis-generator-core</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>mysql</groupId>\n            <artifactId>mysql-connector-java</artifactId>\n        </dependency>\n    </dependencies>\n\n</project>"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/CommentGenerator.java",
    "content": "package com.macro.mall;\n\nimport org.mybatis.generator.api.IntrospectedColumn;\nimport org.mybatis.generator.api.IntrospectedTable;\nimport org.mybatis.generator.api.dom.java.CompilationUnit;\nimport org.mybatis.generator.api.dom.java.Field;\nimport org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;\nimport org.mybatis.generator.internal.DefaultCommentGenerator;\nimport org.mybatis.generator.internal.util.StringUtility;\n\nimport java.util.Properties;\n\n/**\n * 自定义注释生成器\n * Created by macro on 2018/4/26.\n */\npublic class CommentGenerator extends DefaultCommentGenerator {\n    private boolean addRemarkComments = false;\n    private static final String EXAMPLE_SUFFIX=\"Example\";\n    private static final String MAPPER_SUFFIX=\"Mapper\";\n    private static final String API_MODEL_PROPERTY_FULL_CLASS_NAME=\"io.swagger.v3.oas.annotations.media.Schema\";\n\n    /**\n     * 设置用户配置的参数\n     */\n    @Override\n    public void addConfigurationProperties(Properties properties) {\n        super.addConfigurationProperties(properties);\n        this.addRemarkComments = StringUtility.isTrue(properties.getProperty(\"addRemarkComments\"));\n    }\n\n    /**\n     * 给字段添加注释\n     */\n    @Override\n    public void addFieldComment(Field field, IntrospectedTable introspectedTable,\n                                IntrospectedColumn introspectedColumn) {\n        String remarks = introspectedColumn.getRemarks();\n        //根据参数和备注信息判断是否添加swagger注解信息\n        if(addRemarkComments&&StringUtility.stringHasValue(remarks)){\n//            addFieldJavaDoc(field, remarks);\n            //数据库中特殊字符需要转义\n            if(remarks.contains(\"\\\"\")){\n                remarks = remarks.replace(\"\\\"\",\"'\");\n            }\n            //给model的字段添加swagger注解\n            field.addJavaDocLine(\"@Schema(title = \\\"\"+remarks+\"\\\")\");\n        }\n    }\n\n    /**\n     * 给model的字段添加注释\n     */\n    private void addFieldJavaDoc(Field field, String remarks) {\n        //文档注释开始\n        field.addJavaDocLine(\"/**\");\n        //获取数据库字段的备注信息\n        String[] remarkLines = remarks.split(System.getProperty(\"line.separator\"));\n        for(String remarkLine:remarkLines){\n            field.addJavaDocLine(\" * \"+remarkLine);\n        }\n        addJavadocTag(field, false);\n        field.addJavaDocLine(\" */\");\n    }\n\n    @Override\n    public void addJavaFileComment(CompilationUnit compilationUnit) {\n        super.addJavaFileComment(compilationUnit);\n        //只在model中添加swagger注解类的导入\n        if(!compilationUnit.getType().getFullyQualifiedName().contains(MAPPER_SUFFIX)&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){\n            compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME));\n        }\n    }\n}\n"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/Generator.java",
    "content": "package com.macro.mall;\n\nimport org.mybatis.generator.api.MyBatisGenerator;\nimport org.mybatis.generator.config.Configuration;\nimport org.mybatis.generator.config.xml.ConfigurationParser;\nimport org.mybatis.generator.internal.DefaultShellCallback;\n\nimport java.io.InputStream;\nimport java.util.ArrayList;\nimport java.util.List;\n\n/**\n * 用于生产MBG的代码\n * Created by macro on 2018/4/26.\n */\npublic class Generator {\n    public static void main(String[] args) throws Exception {\n        //MBG 执行过程中的警告信息\n        List<String> warnings = new ArrayList<String>();\n        //当生成的代码重复时，覆盖原代码\n        boolean overwrite = true;\n        //读取我们的 MBG 配置文件\n        InputStream is = Generator.class.getResourceAsStream(\"/generatorConfig.xml\");\n        ConfigurationParser cp = new ConfigurationParser(warnings);\n        Configuration config = cp.parseConfiguration(is);\n        is.close();\n\n        DefaultShellCallback callback = new DefaultShellCallback(overwrite);\n        //创建 MBG\n        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);\n        //执行生成代码\n        myBatisGenerator.generate(null);\n        //输出警告信息\n        for (String warning : warnings) {\n            System.out.println(warning);\n        }\n    }\n}\n"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsHelpCategoryMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsHelpCategory;\nimport com.macro.mall.model.CmsHelpCategoryExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsHelpCategoryMapper {\n    long countByExample(CmsHelpCategoryExample example);\n\n    int deleteByExample(CmsHelpCategoryExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(CmsHelpCategory row);\n\n    int insertSelective(CmsHelpCategory row);\n\n    List<CmsHelpCategory> selectByExample(CmsHelpCategoryExample example);\n\n    CmsHelpCategory selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") CmsHelpCategory row, @Param(\"example\") CmsHelpCategoryExample example);\n\n    int updateByExample(@Param(\"row\") CmsHelpCategory row, @Param(\"example\") CmsHelpCategoryExample example);\n\n    int updateByPrimaryKeySelective(CmsHelpCategory row);\n\n    int updateByPrimaryKey(CmsHelpCategory row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsHelpMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsHelp;\nimport com.macro.mall.model.CmsHelpExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsHelpMapper {\n    long countByExample(CmsHelpExample example);\n\n    int deleteByExample(CmsHelpExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(CmsHelp row);\n\n    int insertSelective(CmsHelp row);\n\n    List<CmsHelp> selectByExampleWithBLOBs(CmsHelpExample example);\n\n    List<CmsHelp> selectByExample(CmsHelpExample example);\n\n    CmsHelp selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") CmsHelp row, @Param(\"example\") CmsHelpExample example);\n\n    int updateByExampleWithBLOBs(@Param(\"row\") CmsHelp row, @Param(\"example\") CmsHelpExample example);\n\n    int updateByExample(@Param(\"row\") CmsHelp row, @Param(\"example\") CmsHelpExample example);\n\n    int updateByPrimaryKeySelective(CmsHelp row);\n\n    int updateByPrimaryKeyWithBLOBs(CmsHelp row);\n\n    int updateByPrimaryKey(CmsHelp row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsMemberReportMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsMemberReport;\nimport com.macro.mall.model.CmsMemberReportExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsMemberReportMapper {\n    long countByExample(CmsMemberReportExample example);\n\n    int deleteByExample(CmsMemberReportExample example);\n\n    int insert(CmsMemberReport row);\n\n    int insertSelective(CmsMemberReport row);\n\n    List<CmsMemberReport> selectByExample(CmsMemberReportExample example);\n\n    int updateByExampleSelective(@Param(\"row\") CmsMemberReport row, @Param(\"example\") CmsMemberReportExample example);\n\n    int updateByExample(@Param(\"row\") CmsMemberReport row, @Param(\"example\") CmsMemberReportExample example);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsPrefrenceAreaMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsPrefrenceArea;\nimport com.macro.mall.model.CmsPrefrenceAreaExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsPrefrenceAreaMapper {\n    long countByExample(CmsPrefrenceAreaExample example);\n\n    int deleteByExample(CmsPrefrenceAreaExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(CmsPrefrenceArea row);\n\n    int insertSelective(CmsPrefrenceArea row);\n\n    List<CmsPrefrenceArea> selectByExampleWithBLOBs(CmsPrefrenceAreaExample example);\n\n    List<CmsPrefrenceArea> selectByExample(CmsPrefrenceAreaExample example);\n\n    CmsPrefrenceArea selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") CmsPrefrenceArea row, @Param(\"example\") CmsPrefrenceAreaExample example);\n\n    int updateByExampleWithBLOBs(@Param(\"row\") CmsPrefrenceArea row, @Param(\"example\") CmsPrefrenceAreaExample example);\n\n    int updateByExample(@Param(\"row\") CmsPrefrenceArea row, @Param(\"example\") CmsPrefrenceAreaExample example);\n\n    int updateByPrimaryKeySelective(CmsPrefrenceArea row);\n\n    int updateByPrimaryKeyWithBLOBs(CmsPrefrenceArea row);\n\n    int updateByPrimaryKey(CmsPrefrenceArea row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsPrefrenceAreaProductRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsPrefrenceAreaProductRelation;\nimport com.macro.mall.model.CmsPrefrenceAreaProductRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsPrefrenceAreaProductRelationMapper {\n    long countByExample(CmsPrefrenceAreaProductRelationExample example);\n\n    int deleteByExample(CmsPrefrenceAreaProductRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(CmsPrefrenceAreaProductRelation row);\n\n    int insertSelective(CmsPrefrenceAreaProductRelation row);\n\n    List<CmsPrefrenceAreaProductRelation> selectByExample(CmsPrefrenceAreaProductRelationExample example);\n\n    CmsPrefrenceAreaProductRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") CmsPrefrenceAreaProductRelation row, @Param(\"example\") CmsPrefrenceAreaProductRelationExample example);\n\n    int updateByExample(@Param(\"row\") CmsPrefrenceAreaProductRelation row, @Param(\"example\") CmsPrefrenceAreaProductRelationExample example);\n\n    int updateByPrimaryKeySelective(CmsPrefrenceAreaProductRelation row);\n\n    int updateByPrimaryKey(CmsPrefrenceAreaProductRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsSubjectCategoryMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsSubjectCategory;\nimport com.macro.mall.model.CmsSubjectCategoryExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsSubjectCategoryMapper {\n    long countByExample(CmsSubjectCategoryExample example);\n\n    int deleteByExample(CmsSubjectCategoryExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(CmsSubjectCategory row);\n\n    int insertSelective(CmsSubjectCategory row);\n\n    List<CmsSubjectCategory> selectByExample(CmsSubjectCategoryExample example);\n\n    CmsSubjectCategory selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") CmsSubjectCategory row, @Param(\"example\") CmsSubjectCategoryExample example);\n\n    int updateByExample(@Param(\"row\") CmsSubjectCategory row, @Param(\"example\") CmsSubjectCategoryExample example);\n\n    int updateByPrimaryKeySelective(CmsSubjectCategory row);\n\n    int updateByPrimaryKey(CmsSubjectCategory row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsSubjectCommentMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsSubjectComment;\nimport com.macro.mall.model.CmsSubjectCommentExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsSubjectCommentMapper {\n    long countByExample(CmsSubjectCommentExample example);\n\n    int deleteByExample(CmsSubjectCommentExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(CmsSubjectComment row);\n\n    int insertSelective(CmsSubjectComment row);\n\n    List<CmsSubjectComment> selectByExample(CmsSubjectCommentExample example);\n\n    CmsSubjectComment selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") CmsSubjectComment row, @Param(\"example\") CmsSubjectCommentExample example);\n\n    int updateByExample(@Param(\"row\") CmsSubjectComment row, @Param(\"example\") CmsSubjectCommentExample example);\n\n    int updateByPrimaryKeySelective(CmsSubjectComment row);\n\n    int updateByPrimaryKey(CmsSubjectComment row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsSubjectMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsSubject;\nimport com.macro.mall.model.CmsSubjectExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsSubjectMapper {\n    long countByExample(CmsSubjectExample example);\n\n    int deleteByExample(CmsSubjectExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(CmsSubject row);\n\n    int insertSelective(CmsSubject row);\n\n    List<CmsSubject> selectByExampleWithBLOBs(CmsSubjectExample example);\n\n    List<CmsSubject> selectByExample(CmsSubjectExample example);\n\n    CmsSubject selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") CmsSubject row, @Param(\"example\") CmsSubjectExample example);\n\n    int updateByExampleWithBLOBs(@Param(\"row\") CmsSubject row, @Param(\"example\") CmsSubjectExample example);\n\n    int updateByExample(@Param(\"row\") CmsSubject row, @Param(\"example\") CmsSubjectExample example);\n\n    int updateByPrimaryKeySelective(CmsSubject row);\n\n    int updateByPrimaryKeyWithBLOBs(CmsSubject row);\n\n    int updateByPrimaryKey(CmsSubject row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsSubjectProductRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsSubjectProductRelation;\nimport com.macro.mall.model.CmsSubjectProductRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsSubjectProductRelationMapper {\n    long countByExample(CmsSubjectProductRelationExample example);\n\n    int deleteByExample(CmsSubjectProductRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(CmsSubjectProductRelation row);\n\n    int insertSelective(CmsSubjectProductRelation row);\n\n    List<CmsSubjectProductRelation> selectByExample(CmsSubjectProductRelationExample example);\n\n    CmsSubjectProductRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") CmsSubjectProductRelation row, @Param(\"example\") CmsSubjectProductRelationExample example);\n\n    int updateByExample(@Param(\"row\") CmsSubjectProductRelation row, @Param(\"example\") CmsSubjectProductRelationExample example);\n\n    int updateByPrimaryKeySelective(CmsSubjectProductRelation row);\n\n    int updateByPrimaryKey(CmsSubjectProductRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsTopicCategoryMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsTopicCategory;\nimport com.macro.mall.model.CmsTopicCategoryExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsTopicCategoryMapper {\n    long countByExample(CmsTopicCategoryExample example);\n\n    int deleteByExample(CmsTopicCategoryExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(CmsTopicCategory row);\n\n    int insertSelective(CmsTopicCategory row);\n\n    List<CmsTopicCategory> selectByExample(CmsTopicCategoryExample example);\n\n    CmsTopicCategory selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") CmsTopicCategory row, @Param(\"example\") CmsTopicCategoryExample example);\n\n    int updateByExample(@Param(\"row\") CmsTopicCategory row, @Param(\"example\") CmsTopicCategoryExample example);\n\n    int updateByPrimaryKeySelective(CmsTopicCategory row);\n\n    int updateByPrimaryKey(CmsTopicCategory row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsTopicCommentMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsTopicComment;\nimport com.macro.mall.model.CmsTopicCommentExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsTopicCommentMapper {\n    long countByExample(CmsTopicCommentExample example);\n\n    int deleteByExample(CmsTopicCommentExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(CmsTopicComment row);\n\n    int insertSelective(CmsTopicComment row);\n\n    List<CmsTopicComment> selectByExample(CmsTopicCommentExample example);\n\n    CmsTopicComment selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") CmsTopicComment row, @Param(\"example\") CmsTopicCommentExample example);\n\n    int updateByExample(@Param(\"row\") CmsTopicComment row, @Param(\"example\") CmsTopicCommentExample example);\n\n    int updateByPrimaryKeySelective(CmsTopicComment row);\n\n    int updateByPrimaryKey(CmsTopicComment row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/CmsTopicMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.CmsTopic;\nimport com.macro.mall.model.CmsTopicExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface CmsTopicMapper {\n    long countByExample(CmsTopicExample example);\n\n    int deleteByExample(CmsTopicExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(CmsTopic row);\n\n    int insertSelective(CmsTopic row);\n\n    List<CmsTopic> selectByExampleWithBLOBs(CmsTopicExample example);\n\n    List<CmsTopic> selectByExample(CmsTopicExample example);\n\n    CmsTopic selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") CmsTopic row, @Param(\"example\") CmsTopicExample example);\n\n    int updateByExampleWithBLOBs(@Param(\"row\") CmsTopic row, @Param(\"example\") CmsTopicExample example);\n\n    int updateByExample(@Param(\"row\") CmsTopic row, @Param(\"example\") CmsTopicExample example);\n\n    int updateByPrimaryKeySelective(CmsTopic row);\n\n    int updateByPrimaryKeyWithBLOBs(CmsTopic row);\n\n    int updateByPrimaryKey(CmsTopic row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/OmsCartItemMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.OmsCartItem;\nimport com.macro.mall.model.OmsCartItemExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface OmsCartItemMapper {\n    long countByExample(OmsCartItemExample example);\n\n    int deleteByExample(OmsCartItemExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(OmsCartItem row);\n\n    int insertSelective(OmsCartItem row);\n\n    List<OmsCartItem> selectByExample(OmsCartItemExample example);\n\n    OmsCartItem selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") OmsCartItem row, @Param(\"example\") OmsCartItemExample example);\n\n    int updateByExample(@Param(\"row\") OmsCartItem row, @Param(\"example\") OmsCartItemExample example);\n\n    int updateByPrimaryKeySelective(OmsCartItem row);\n\n    int updateByPrimaryKey(OmsCartItem row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/OmsCompanyAddressMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.OmsCompanyAddress;\nimport com.macro.mall.model.OmsCompanyAddressExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface OmsCompanyAddressMapper {\n    long countByExample(OmsCompanyAddressExample example);\n\n    int deleteByExample(OmsCompanyAddressExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(OmsCompanyAddress row);\n\n    int insertSelective(OmsCompanyAddress row);\n\n    List<OmsCompanyAddress> selectByExample(OmsCompanyAddressExample example);\n\n    OmsCompanyAddress selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") OmsCompanyAddress row, @Param(\"example\") OmsCompanyAddressExample example);\n\n    int updateByExample(@Param(\"row\") OmsCompanyAddress row, @Param(\"example\") OmsCompanyAddressExample example);\n\n    int updateByPrimaryKeySelective(OmsCompanyAddress row);\n\n    int updateByPrimaryKey(OmsCompanyAddress row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/OmsOrderItemMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.OmsOrderItem;\nimport com.macro.mall.model.OmsOrderItemExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface OmsOrderItemMapper {\n    long countByExample(OmsOrderItemExample example);\n\n    int deleteByExample(OmsOrderItemExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(OmsOrderItem row);\n\n    int insertSelective(OmsOrderItem row);\n\n    List<OmsOrderItem> selectByExample(OmsOrderItemExample example);\n\n    OmsOrderItem selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") OmsOrderItem row, @Param(\"example\") OmsOrderItemExample example);\n\n    int updateByExample(@Param(\"row\") OmsOrderItem row, @Param(\"example\") OmsOrderItemExample example);\n\n    int updateByPrimaryKeySelective(OmsOrderItem row);\n\n    int updateByPrimaryKey(OmsOrderItem row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/OmsOrderMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.OmsOrder;\nimport com.macro.mall.model.OmsOrderExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface OmsOrderMapper {\n    long countByExample(OmsOrderExample example);\n\n    int deleteByExample(OmsOrderExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(OmsOrder row);\n\n    int insertSelective(OmsOrder row);\n\n    List<OmsOrder> selectByExample(OmsOrderExample example);\n\n    OmsOrder selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") OmsOrder row, @Param(\"example\") OmsOrderExample example);\n\n    int updateByExample(@Param(\"row\") OmsOrder row, @Param(\"example\") OmsOrderExample example);\n\n    int updateByPrimaryKeySelective(OmsOrder row);\n\n    int updateByPrimaryKey(OmsOrder row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/OmsOrderOperateHistoryMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.OmsOrderOperateHistory;\nimport com.macro.mall.model.OmsOrderOperateHistoryExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface OmsOrderOperateHistoryMapper {\n    long countByExample(OmsOrderOperateHistoryExample example);\n\n    int deleteByExample(OmsOrderOperateHistoryExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(OmsOrderOperateHistory row);\n\n    int insertSelective(OmsOrderOperateHistory row);\n\n    List<OmsOrderOperateHistory> selectByExample(OmsOrderOperateHistoryExample example);\n\n    OmsOrderOperateHistory selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") OmsOrderOperateHistory row, @Param(\"example\") OmsOrderOperateHistoryExample example);\n\n    int updateByExample(@Param(\"row\") OmsOrderOperateHistory row, @Param(\"example\") OmsOrderOperateHistoryExample example);\n\n    int updateByPrimaryKeySelective(OmsOrderOperateHistory row);\n\n    int updateByPrimaryKey(OmsOrderOperateHistory row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/OmsOrderReturnApplyMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.OmsOrderReturnApply;\nimport com.macro.mall.model.OmsOrderReturnApplyExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface OmsOrderReturnApplyMapper {\n    long countByExample(OmsOrderReturnApplyExample example);\n\n    int deleteByExample(OmsOrderReturnApplyExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(OmsOrderReturnApply row);\n\n    int insertSelective(OmsOrderReturnApply row);\n\n    List<OmsOrderReturnApply> selectByExample(OmsOrderReturnApplyExample example);\n\n    OmsOrderReturnApply selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") OmsOrderReturnApply row, @Param(\"example\") OmsOrderReturnApplyExample example);\n\n    int updateByExample(@Param(\"row\") OmsOrderReturnApply row, @Param(\"example\") OmsOrderReturnApplyExample example);\n\n    int updateByPrimaryKeySelective(OmsOrderReturnApply row);\n\n    int updateByPrimaryKey(OmsOrderReturnApply row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/OmsOrderReturnReasonMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.OmsOrderReturnReason;\nimport com.macro.mall.model.OmsOrderReturnReasonExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface OmsOrderReturnReasonMapper {\n    long countByExample(OmsOrderReturnReasonExample example);\n\n    int deleteByExample(OmsOrderReturnReasonExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(OmsOrderReturnReason row);\n\n    int insertSelective(OmsOrderReturnReason row);\n\n    List<OmsOrderReturnReason> selectByExample(OmsOrderReturnReasonExample example);\n\n    OmsOrderReturnReason selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") OmsOrderReturnReason row, @Param(\"example\") OmsOrderReturnReasonExample example);\n\n    int updateByExample(@Param(\"row\") OmsOrderReturnReason row, @Param(\"example\") OmsOrderReturnReasonExample example);\n\n    int updateByPrimaryKeySelective(OmsOrderReturnReason row);\n\n    int updateByPrimaryKey(OmsOrderReturnReason row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/OmsOrderSettingMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.OmsOrderSetting;\nimport com.macro.mall.model.OmsOrderSettingExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface OmsOrderSettingMapper {\n    long countByExample(OmsOrderSettingExample example);\n\n    int deleteByExample(OmsOrderSettingExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(OmsOrderSetting row);\n\n    int insertSelective(OmsOrderSetting row);\n\n    List<OmsOrderSetting> selectByExample(OmsOrderSettingExample example);\n\n    OmsOrderSetting selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") OmsOrderSetting row, @Param(\"example\") OmsOrderSettingExample example);\n\n    int updateByExample(@Param(\"row\") OmsOrderSetting row, @Param(\"example\") OmsOrderSettingExample example);\n\n    int updateByPrimaryKeySelective(OmsOrderSetting row);\n\n    int updateByPrimaryKey(OmsOrderSetting row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsAlbumMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsAlbum;\nimport com.macro.mall.model.PmsAlbumExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsAlbumMapper {\n    long countByExample(PmsAlbumExample example);\n\n    int deleteByExample(PmsAlbumExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsAlbum row);\n\n    int insertSelective(PmsAlbum row);\n\n    List<PmsAlbum> selectByExample(PmsAlbumExample example);\n\n    PmsAlbum selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsAlbum row, @Param(\"example\") PmsAlbumExample example);\n\n    int updateByExample(@Param(\"row\") PmsAlbum row, @Param(\"example\") PmsAlbumExample example);\n\n    int updateByPrimaryKeySelective(PmsAlbum row);\n\n    int updateByPrimaryKey(PmsAlbum row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsAlbumPicMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsAlbumPic;\nimport com.macro.mall.model.PmsAlbumPicExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsAlbumPicMapper {\n    long countByExample(PmsAlbumPicExample example);\n\n    int deleteByExample(PmsAlbumPicExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsAlbumPic row);\n\n    int insertSelective(PmsAlbumPic row);\n\n    List<PmsAlbumPic> selectByExample(PmsAlbumPicExample example);\n\n    PmsAlbumPic selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsAlbumPic row, @Param(\"example\") PmsAlbumPicExample example);\n\n    int updateByExample(@Param(\"row\") PmsAlbumPic row, @Param(\"example\") PmsAlbumPicExample example);\n\n    int updateByPrimaryKeySelective(PmsAlbumPic row);\n\n    int updateByPrimaryKey(PmsAlbumPic row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsBrandMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsBrand;\nimport com.macro.mall.model.PmsBrandExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsBrandMapper {\n    long countByExample(PmsBrandExample example);\n\n    int deleteByExample(PmsBrandExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsBrand row);\n\n    int insertSelective(PmsBrand row);\n\n    List<PmsBrand> selectByExampleWithBLOBs(PmsBrandExample example);\n\n    List<PmsBrand> selectByExample(PmsBrandExample example);\n\n    PmsBrand selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsBrand row, @Param(\"example\") PmsBrandExample example);\n\n    int updateByExampleWithBLOBs(@Param(\"row\") PmsBrand row, @Param(\"example\") PmsBrandExample example);\n\n    int updateByExample(@Param(\"row\") PmsBrand row, @Param(\"example\") PmsBrandExample example);\n\n    int updateByPrimaryKeySelective(PmsBrand row);\n\n    int updateByPrimaryKeyWithBLOBs(PmsBrand row);\n\n    int updateByPrimaryKey(PmsBrand row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsCommentMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsComment;\nimport com.macro.mall.model.PmsCommentExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsCommentMapper {\n    long countByExample(PmsCommentExample example);\n\n    int deleteByExample(PmsCommentExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsComment row);\n\n    int insertSelective(PmsComment row);\n\n    List<PmsComment> selectByExampleWithBLOBs(PmsCommentExample example);\n\n    List<PmsComment> selectByExample(PmsCommentExample example);\n\n    PmsComment selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsComment row, @Param(\"example\") PmsCommentExample example);\n\n    int updateByExampleWithBLOBs(@Param(\"row\") PmsComment row, @Param(\"example\") PmsCommentExample example);\n\n    int updateByExample(@Param(\"row\") PmsComment row, @Param(\"example\") PmsCommentExample example);\n\n    int updateByPrimaryKeySelective(PmsComment row);\n\n    int updateByPrimaryKeyWithBLOBs(PmsComment row);\n\n    int updateByPrimaryKey(PmsComment row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsCommentReplayMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsCommentReplay;\nimport com.macro.mall.model.PmsCommentReplayExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsCommentReplayMapper {\n    long countByExample(PmsCommentReplayExample example);\n\n    int deleteByExample(PmsCommentReplayExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsCommentReplay row);\n\n    int insertSelective(PmsCommentReplay row);\n\n    List<PmsCommentReplay> selectByExample(PmsCommentReplayExample example);\n\n    PmsCommentReplay selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsCommentReplay row, @Param(\"example\") PmsCommentReplayExample example);\n\n    int updateByExample(@Param(\"row\") PmsCommentReplay row, @Param(\"example\") PmsCommentReplayExample example);\n\n    int updateByPrimaryKeySelective(PmsCommentReplay row);\n\n    int updateByPrimaryKey(PmsCommentReplay row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsFeightTemplateMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsFeightTemplate;\nimport com.macro.mall.model.PmsFeightTemplateExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsFeightTemplateMapper {\n    long countByExample(PmsFeightTemplateExample example);\n\n    int deleteByExample(PmsFeightTemplateExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsFeightTemplate row);\n\n    int insertSelective(PmsFeightTemplate row);\n\n    List<PmsFeightTemplate> selectByExample(PmsFeightTemplateExample example);\n\n    PmsFeightTemplate selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsFeightTemplate row, @Param(\"example\") PmsFeightTemplateExample example);\n\n    int updateByExample(@Param(\"row\") PmsFeightTemplate row, @Param(\"example\") PmsFeightTemplateExample example);\n\n    int updateByPrimaryKeySelective(PmsFeightTemplate row);\n\n    int updateByPrimaryKey(PmsFeightTemplate row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsMemberPriceMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsMemberPrice;\nimport com.macro.mall.model.PmsMemberPriceExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsMemberPriceMapper {\n    long countByExample(PmsMemberPriceExample example);\n\n    int deleteByExample(PmsMemberPriceExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsMemberPrice row);\n\n    int insertSelective(PmsMemberPrice row);\n\n    List<PmsMemberPrice> selectByExample(PmsMemberPriceExample example);\n\n    PmsMemberPrice selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsMemberPrice row, @Param(\"example\") PmsMemberPriceExample example);\n\n    int updateByExample(@Param(\"row\") PmsMemberPrice row, @Param(\"example\") PmsMemberPriceExample example);\n\n    int updateByPrimaryKeySelective(PmsMemberPrice row);\n\n    int updateByPrimaryKey(PmsMemberPrice row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsProductAttributeCategoryMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsProductAttributeCategory;\nimport com.macro.mall.model.PmsProductAttributeCategoryExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsProductAttributeCategoryMapper {\n    long countByExample(PmsProductAttributeCategoryExample example);\n\n    int deleteByExample(PmsProductAttributeCategoryExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsProductAttributeCategory row);\n\n    int insertSelective(PmsProductAttributeCategory row);\n\n    List<PmsProductAttributeCategory> selectByExample(PmsProductAttributeCategoryExample example);\n\n    PmsProductAttributeCategory selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsProductAttributeCategory row, @Param(\"example\") PmsProductAttributeCategoryExample example);\n\n    int updateByExample(@Param(\"row\") PmsProductAttributeCategory row, @Param(\"example\") PmsProductAttributeCategoryExample example);\n\n    int updateByPrimaryKeySelective(PmsProductAttributeCategory row);\n\n    int updateByPrimaryKey(PmsProductAttributeCategory row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsProductAttributeMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsProductAttribute;\nimport com.macro.mall.model.PmsProductAttributeExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsProductAttributeMapper {\n    long countByExample(PmsProductAttributeExample example);\n\n    int deleteByExample(PmsProductAttributeExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsProductAttribute row);\n\n    int insertSelective(PmsProductAttribute row);\n\n    List<PmsProductAttribute> selectByExample(PmsProductAttributeExample example);\n\n    PmsProductAttribute selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsProductAttribute row, @Param(\"example\") PmsProductAttributeExample example);\n\n    int updateByExample(@Param(\"row\") PmsProductAttribute row, @Param(\"example\") PmsProductAttributeExample example);\n\n    int updateByPrimaryKeySelective(PmsProductAttribute row);\n\n    int updateByPrimaryKey(PmsProductAttribute row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsProductAttributeValueMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsProductAttributeValue;\nimport com.macro.mall.model.PmsProductAttributeValueExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsProductAttributeValueMapper {\n    long countByExample(PmsProductAttributeValueExample example);\n\n    int deleteByExample(PmsProductAttributeValueExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsProductAttributeValue row);\n\n    int insertSelective(PmsProductAttributeValue row);\n\n    List<PmsProductAttributeValue> selectByExample(PmsProductAttributeValueExample example);\n\n    PmsProductAttributeValue selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsProductAttributeValue row, @Param(\"example\") PmsProductAttributeValueExample example);\n\n    int updateByExample(@Param(\"row\") PmsProductAttributeValue row, @Param(\"example\") PmsProductAttributeValueExample example);\n\n    int updateByPrimaryKeySelective(PmsProductAttributeValue row);\n\n    int updateByPrimaryKey(PmsProductAttributeValue row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsProductCategoryAttributeRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsProductCategoryAttributeRelation;\nimport com.macro.mall.model.PmsProductCategoryAttributeRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsProductCategoryAttributeRelationMapper {\n    long countByExample(PmsProductCategoryAttributeRelationExample example);\n\n    int deleteByExample(PmsProductCategoryAttributeRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsProductCategoryAttributeRelation row);\n\n    int insertSelective(PmsProductCategoryAttributeRelation row);\n\n    List<PmsProductCategoryAttributeRelation> selectByExample(PmsProductCategoryAttributeRelationExample example);\n\n    PmsProductCategoryAttributeRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsProductCategoryAttributeRelation row, @Param(\"example\") PmsProductCategoryAttributeRelationExample example);\n\n    int updateByExample(@Param(\"row\") PmsProductCategoryAttributeRelation row, @Param(\"example\") PmsProductCategoryAttributeRelationExample example);\n\n    int updateByPrimaryKeySelective(PmsProductCategoryAttributeRelation row);\n\n    int updateByPrimaryKey(PmsProductCategoryAttributeRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsProductCategoryMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsProductCategory;\nimport com.macro.mall.model.PmsProductCategoryExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsProductCategoryMapper {\n    long countByExample(PmsProductCategoryExample example);\n\n    int deleteByExample(PmsProductCategoryExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsProductCategory row);\n\n    int insertSelective(PmsProductCategory row);\n\n    List<PmsProductCategory> selectByExampleWithBLOBs(PmsProductCategoryExample example);\n\n    List<PmsProductCategory> selectByExample(PmsProductCategoryExample example);\n\n    PmsProductCategory selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsProductCategory row, @Param(\"example\") PmsProductCategoryExample example);\n\n    int updateByExampleWithBLOBs(@Param(\"row\") PmsProductCategory row, @Param(\"example\") PmsProductCategoryExample example);\n\n    int updateByExample(@Param(\"row\") PmsProductCategory row, @Param(\"example\") PmsProductCategoryExample example);\n\n    int updateByPrimaryKeySelective(PmsProductCategory row);\n\n    int updateByPrimaryKeyWithBLOBs(PmsProductCategory row);\n\n    int updateByPrimaryKey(PmsProductCategory row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsProductFullReductionMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsProductFullReduction;\nimport com.macro.mall.model.PmsProductFullReductionExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsProductFullReductionMapper {\n    long countByExample(PmsProductFullReductionExample example);\n\n    int deleteByExample(PmsProductFullReductionExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsProductFullReduction row);\n\n    int insertSelective(PmsProductFullReduction row);\n\n    List<PmsProductFullReduction> selectByExample(PmsProductFullReductionExample example);\n\n    PmsProductFullReduction selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsProductFullReduction row, @Param(\"example\") PmsProductFullReductionExample example);\n\n    int updateByExample(@Param(\"row\") PmsProductFullReduction row, @Param(\"example\") PmsProductFullReductionExample example);\n\n    int updateByPrimaryKeySelective(PmsProductFullReduction row);\n\n    int updateByPrimaryKey(PmsProductFullReduction row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsProductLadderMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsProductLadder;\nimport com.macro.mall.model.PmsProductLadderExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsProductLadderMapper {\n    long countByExample(PmsProductLadderExample example);\n\n    int deleteByExample(PmsProductLadderExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsProductLadder row);\n\n    int insertSelective(PmsProductLadder row);\n\n    List<PmsProductLadder> selectByExample(PmsProductLadderExample example);\n\n    PmsProductLadder selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsProductLadder row, @Param(\"example\") PmsProductLadderExample example);\n\n    int updateByExample(@Param(\"row\") PmsProductLadder row, @Param(\"example\") PmsProductLadderExample example);\n\n    int updateByPrimaryKeySelective(PmsProductLadder row);\n\n    int updateByPrimaryKey(PmsProductLadder row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsProductMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.model.PmsProductExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsProductMapper {\n    long countByExample(PmsProductExample example);\n\n    int deleteByExample(PmsProductExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsProduct row);\n\n    int insertSelective(PmsProduct row);\n\n    List<PmsProduct> selectByExampleWithBLOBs(PmsProductExample example);\n\n    List<PmsProduct> selectByExample(PmsProductExample example);\n\n    PmsProduct selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsProduct row, @Param(\"example\") PmsProductExample example);\n\n    int updateByExampleWithBLOBs(@Param(\"row\") PmsProduct row, @Param(\"example\") PmsProductExample example);\n\n    int updateByExample(@Param(\"row\") PmsProduct row, @Param(\"example\") PmsProductExample example);\n\n    int updateByPrimaryKeySelective(PmsProduct row);\n\n    int updateByPrimaryKeyWithBLOBs(PmsProduct row);\n\n    int updateByPrimaryKey(PmsProduct row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsProductOperateLogMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsProductOperateLog;\nimport com.macro.mall.model.PmsProductOperateLogExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsProductOperateLogMapper {\n    long countByExample(PmsProductOperateLogExample example);\n\n    int deleteByExample(PmsProductOperateLogExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsProductOperateLog row);\n\n    int insertSelective(PmsProductOperateLog row);\n\n    List<PmsProductOperateLog> selectByExample(PmsProductOperateLogExample example);\n\n    PmsProductOperateLog selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsProductOperateLog row, @Param(\"example\") PmsProductOperateLogExample example);\n\n    int updateByExample(@Param(\"row\") PmsProductOperateLog row, @Param(\"example\") PmsProductOperateLogExample example);\n\n    int updateByPrimaryKeySelective(PmsProductOperateLog row);\n\n    int updateByPrimaryKey(PmsProductOperateLog row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsProductVertifyRecordMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsProductVertifyRecord;\nimport com.macro.mall.model.PmsProductVertifyRecordExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsProductVertifyRecordMapper {\n    long countByExample(PmsProductVertifyRecordExample example);\n\n    int deleteByExample(PmsProductVertifyRecordExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsProductVertifyRecord row);\n\n    int insertSelective(PmsProductVertifyRecord row);\n\n    List<PmsProductVertifyRecord> selectByExample(PmsProductVertifyRecordExample example);\n\n    PmsProductVertifyRecord selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsProductVertifyRecord row, @Param(\"example\") PmsProductVertifyRecordExample example);\n\n    int updateByExample(@Param(\"row\") PmsProductVertifyRecord row, @Param(\"example\") PmsProductVertifyRecordExample example);\n\n    int updateByPrimaryKeySelective(PmsProductVertifyRecord row);\n\n    int updateByPrimaryKey(PmsProductVertifyRecord row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/PmsSkuStockMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.PmsSkuStock;\nimport com.macro.mall.model.PmsSkuStockExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface PmsSkuStockMapper {\n    long countByExample(PmsSkuStockExample example);\n\n    int deleteByExample(PmsSkuStockExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(PmsSkuStock row);\n\n    int insertSelective(PmsSkuStock row);\n\n    List<PmsSkuStock> selectByExample(PmsSkuStockExample example);\n\n    PmsSkuStock selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") PmsSkuStock row, @Param(\"example\") PmsSkuStockExample example);\n\n    int updateByExample(@Param(\"row\") PmsSkuStock row, @Param(\"example\") PmsSkuStockExample example);\n\n    int updateByPrimaryKeySelective(PmsSkuStock row);\n\n    int updateByPrimaryKey(PmsSkuStock row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsCouponHistoryMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsCouponHistory;\nimport com.macro.mall.model.SmsCouponHistoryExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsCouponHistoryMapper {\n    long countByExample(SmsCouponHistoryExample example);\n\n    int deleteByExample(SmsCouponHistoryExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsCouponHistory row);\n\n    int insertSelective(SmsCouponHistory row);\n\n    List<SmsCouponHistory> selectByExample(SmsCouponHistoryExample example);\n\n    SmsCouponHistory selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsCouponHistory row, @Param(\"example\") SmsCouponHistoryExample example);\n\n    int updateByExample(@Param(\"row\") SmsCouponHistory row, @Param(\"example\") SmsCouponHistoryExample example);\n\n    int updateByPrimaryKeySelective(SmsCouponHistory row);\n\n    int updateByPrimaryKey(SmsCouponHistory row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsCouponMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsCoupon;\nimport com.macro.mall.model.SmsCouponExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsCouponMapper {\n    long countByExample(SmsCouponExample example);\n\n    int deleteByExample(SmsCouponExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsCoupon row);\n\n    int insertSelective(SmsCoupon row);\n\n    List<SmsCoupon> selectByExample(SmsCouponExample example);\n\n    SmsCoupon selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsCoupon row, @Param(\"example\") SmsCouponExample example);\n\n    int updateByExample(@Param(\"row\") SmsCoupon row, @Param(\"example\") SmsCouponExample example);\n\n    int updateByPrimaryKeySelective(SmsCoupon row);\n\n    int updateByPrimaryKey(SmsCoupon row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsCouponProductCategoryRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsCouponProductCategoryRelation;\nimport com.macro.mall.model.SmsCouponProductCategoryRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsCouponProductCategoryRelationMapper {\n    long countByExample(SmsCouponProductCategoryRelationExample example);\n\n    int deleteByExample(SmsCouponProductCategoryRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsCouponProductCategoryRelation row);\n\n    int insertSelective(SmsCouponProductCategoryRelation row);\n\n    List<SmsCouponProductCategoryRelation> selectByExample(SmsCouponProductCategoryRelationExample example);\n\n    SmsCouponProductCategoryRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsCouponProductCategoryRelation row, @Param(\"example\") SmsCouponProductCategoryRelationExample example);\n\n    int updateByExample(@Param(\"row\") SmsCouponProductCategoryRelation row, @Param(\"example\") SmsCouponProductCategoryRelationExample example);\n\n    int updateByPrimaryKeySelective(SmsCouponProductCategoryRelation row);\n\n    int updateByPrimaryKey(SmsCouponProductCategoryRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsCouponProductRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsCouponProductRelation;\nimport com.macro.mall.model.SmsCouponProductRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsCouponProductRelationMapper {\n    long countByExample(SmsCouponProductRelationExample example);\n\n    int deleteByExample(SmsCouponProductRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsCouponProductRelation row);\n\n    int insertSelective(SmsCouponProductRelation row);\n\n    List<SmsCouponProductRelation> selectByExample(SmsCouponProductRelationExample example);\n\n    SmsCouponProductRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsCouponProductRelation row, @Param(\"example\") SmsCouponProductRelationExample example);\n\n    int updateByExample(@Param(\"row\") SmsCouponProductRelation row, @Param(\"example\") SmsCouponProductRelationExample example);\n\n    int updateByPrimaryKeySelective(SmsCouponProductRelation row);\n\n    int updateByPrimaryKey(SmsCouponProductRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsFlashPromotionLogMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsFlashPromotionLog;\nimport com.macro.mall.model.SmsFlashPromotionLogExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsFlashPromotionLogMapper {\n    long countByExample(SmsFlashPromotionLogExample example);\n\n    int deleteByExample(SmsFlashPromotionLogExample example);\n\n    int deleteByPrimaryKey(Integer id);\n\n    int insert(SmsFlashPromotionLog row);\n\n    int insertSelective(SmsFlashPromotionLog row);\n\n    List<SmsFlashPromotionLog> selectByExample(SmsFlashPromotionLogExample example);\n\n    SmsFlashPromotionLog selectByPrimaryKey(Integer id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsFlashPromotionLog row, @Param(\"example\") SmsFlashPromotionLogExample example);\n\n    int updateByExample(@Param(\"row\") SmsFlashPromotionLog row, @Param(\"example\") SmsFlashPromotionLogExample example);\n\n    int updateByPrimaryKeySelective(SmsFlashPromotionLog row);\n\n    int updateByPrimaryKey(SmsFlashPromotionLog row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsFlashPromotionMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsFlashPromotion;\nimport com.macro.mall.model.SmsFlashPromotionExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsFlashPromotionMapper {\n    long countByExample(SmsFlashPromotionExample example);\n\n    int deleteByExample(SmsFlashPromotionExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsFlashPromotion row);\n\n    int insertSelective(SmsFlashPromotion row);\n\n    List<SmsFlashPromotion> selectByExample(SmsFlashPromotionExample example);\n\n    SmsFlashPromotion selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsFlashPromotion row, @Param(\"example\") SmsFlashPromotionExample example);\n\n    int updateByExample(@Param(\"row\") SmsFlashPromotion row, @Param(\"example\") SmsFlashPromotionExample example);\n\n    int updateByPrimaryKeySelective(SmsFlashPromotion row);\n\n    int updateByPrimaryKey(SmsFlashPromotion row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsFlashPromotionProductRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsFlashPromotionProductRelation;\nimport com.macro.mall.model.SmsFlashPromotionProductRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsFlashPromotionProductRelationMapper {\n    long countByExample(SmsFlashPromotionProductRelationExample example);\n\n    int deleteByExample(SmsFlashPromotionProductRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsFlashPromotionProductRelation row);\n\n    int insertSelective(SmsFlashPromotionProductRelation row);\n\n    List<SmsFlashPromotionProductRelation> selectByExample(SmsFlashPromotionProductRelationExample example);\n\n    SmsFlashPromotionProductRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsFlashPromotionProductRelation row, @Param(\"example\") SmsFlashPromotionProductRelationExample example);\n\n    int updateByExample(@Param(\"row\") SmsFlashPromotionProductRelation row, @Param(\"example\") SmsFlashPromotionProductRelationExample example);\n\n    int updateByPrimaryKeySelective(SmsFlashPromotionProductRelation row);\n\n    int updateByPrimaryKey(SmsFlashPromotionProductRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsFlashPromotionSessionMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsFlashPromotionSession;\nimport com.macro.mall.model.SmsFlashPromotionSessionExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsFlashPromotionSessionMapper {\n    long countByExample(SmsFlashPromotionSessionExample example);\n\n    int deleteByExample(SmsFlashPromotionSessionExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsFlashPromotionSession row);\n\n    int insertSelective(SmsFlashPromotionSession row);\n\n    List<SmsFlashPromotionSession> selectByExample(SmsFlashPromotionSessionExample example);\n\n    SmsFlashPromotionSession selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsFlashPromotionSession row, @Param(\"example\") SmsFlashPromotionSessionExample example);\n\n    int updateByExample(@Param(\"row\") SmsFlashPromotionSession row, @Param(\"example\") SmsFlashPromotionSessionExample example);\n\n    int updateByPrimaryKeySelective(SmsFlashPromotionSession row);\n\n    int updateByPrimaryKey(SmsFlashPromotionSession row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsHomeAdvertiseMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsHomeAdvertise;\nimport com.macro.mall.model.SmsHomeAdvertiseExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsHomeAdvertiseMapper {\n    long countByExample(SmsHomeAdvertiseExample example);\n\n    int deleteByExample(SmsHomeAdvertiseExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsHomeAdvertise row);\n\n    int insertSelective(SmsHomeAdvertise row);\n\n    List<SmsHomeAdvertise> selectByExample(SmsHomeAdvertiseExample example);\n\n    SmsHomeAdvertise selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsHomeAdvertise row, @Param(\"example\") SmsHomeAdvertiseExample example);\n\n    int updateByExample(@Param(\"row\") SmsHomeAdvertise row, @Param(\"example\") SmsHomeAdvertiseExample example);\n\n    int updateByPrimaryKeySelective(SmsHomeAdvertise row);\n\n    int updateByPrimaryKey(SmsHomeAdvertise row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsHomeBrandMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsHomeBrand;\nimport com.macro.mall.model.SmsHomeBrandExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsHomeBrandMapper {\n    long countByExample(SmsHomeBrandExample example);\n\n    int deleteByExample(SmsHomeBrandExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsHomeBrand row);\n\n    int insertSelective(SmsHomeBrand row);\n\n    List<SmsHomeBrand> selectByExample(SmsHomeBrandExample example);\n\n    SmsHomeBrand selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsHomeBrand row, @Param(\"example\") SmsHomeBrandExample example);\n\n    int updateByExample(@Param(\"row\") SmsHomeBrand row, @Param(\"example\") SmsHomeBrandExample example);\n\n    int updateByPrimaryKeySelective(SmsHomeBrand row);\n\n    int updateByPrimaryKey(SmsHomeBrand row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsHomeNewProductMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsHomeNewProduct;\nimport com.macro.mall.model.SmsHomeNewProductExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsHomeNewProductMapper {\n    long countByExample(SmsHomeNewProductExample example);\n\n    int deleteByExample(SmsHomeNewProductExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsHomeNewProduct row);\n\n    int insertSelective(SmsHomeNewProduct row);\n\n    List<SmsHomeNewProduct> selectByExample(SmsHomeNewProductExample example);\n\n    SmsHomeNewProduct selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsHomeNewProduct row, @Param(\"example\") SmsHomeNewProductExample example);\n\n    int updateByExample(@Param(\"row\") SmsHomeNewProduct row, @Param(\"example\") SmsHomeNewProductExample example);\n\n    int updateByPrimaryKeySelective(SmsHomeNewProduct row);\n\n    int updateByPrimaryKey(SmsHomeNewProduct row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsHomeRecommendProductMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsHomeRecommendProduct;\nimport com.macro.mall.model.SmsHomeRecommendProductExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsHomeRecommendProductMapper {\n    long countByExample(SmsHomeRecommendProductExample example);\n\n    int deleteByExample(SmsHomeRecommendProductExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsHomeRecommendProduct row);\n\n    int insertSelective(SmsHomeRecommendProduct row);\n\n    List<SmsHomeRecommendProduct> selectByExample(SmsHomeRecommendProductExample example);\n\n    SmsHomeRecommendProduct selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsHomeRecommendProduct row, @Param(\"example\") SmsHomeRecommendProductExample example);\n\n    int updateByExample(@Param(\"row\") SmsHomeRecommendProduct row, @Param(\"example\") SmsHomeRecommendProductExample example);\n\n    int updateByPrimaryKeySelective(SmsHomeRecommendProduct row);\n\n    int updateByPrimaryKey(SmsHomeRecommendProduct row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/SmsHomeRecommendSubjectMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.SmsHomeRecommendSubject;\nimport com.macro.mall.model.SmsHomeRecommendSubjectExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface SmsHomeRecommendSubjectMapper {\n    long countByExample(SmsHomeRecommendSubjectExample example);\n\n    int deleteByExample(SmsHomeRecommendSubjectExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(SmsHomeRecommendSubject row);\n\n    int insertSelective(SmsHomeRecommendSubject row);\n\n    List<SmsHomeRecommendSubject> selectByExample(SmsHomeRecommendSubjectExample example);\n\n    SmsHomeRecommendSubject selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") SmsHomeRecommendSubject row, @Param(\"example\") SmsHomeRecommendSubjectExample example);\n\n    int updateByExample(@Param(\"row\") SmsHomeRecommendSubject row, @Param(\"example\") SmsHomeRecommendSubjectExample example);\n\n    int updateByPrimaryKeySelective(SmsHomeRecommendSubject row);\n\n    int updateByPrimaryKey(SmsHomeRecommendSubject row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsAdminLoginLogMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsAdminLoginLog;\nimport com.macro.mall.model.UmsAdminLoginLogExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsAdminLoginLogMapper {\n    long countByExample(UmsAdminLoginLogExample example);\n\n    int deleteByExample(UmsAdminLoginLogExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsAdminLoginLog row);\n\n    int insertSelective(UmsAdminLoginLog row);\n\n    List<UmsAdminLoginLog> selectByExample(UmsAdminLoginLogExample example);\n\n    UmsAdminLoginLog selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsAdminLoginLog row, @Param(\"example\") UmsAdminLoginLogExample example);\n\n    int updateByExample(@Param(\"row\") UmsAdminLoginLog row, @Param(\"example\") UmsAdminLoginLogExample example);\n\n    int updateByPrimaryKeySelective(UmsAdminLoginLog row);\n\n    int updateByPrimaryKey(UmsAdminLoginLog row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsAdminMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsAdmin;\nimport com.macro.mall.model.UmsAdminExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsAdminMapper {\n    long countByExample(UmsAdminExample example);\n\n    int deleteByExample(UmsAdminExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsAdmin row);\n\n    int insertSelective(UmsAdmin row);\n\n    List<UmsAdmin> selectByExample(UmsAdminExample example);\n\n    UmsAdmin selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsAdmin row, @Param(\"example\") UmsAdminExample example);\n\n    int updateByExample(@Param(\"row\") UmsAdmin row, @Param(\"example\") UmsAdminExample example);\n\n    int updateByPrimaryKeySelective(UmsAdmin row);\n\n    int updateByPrimaryKey(UmsAdmin row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsAdminPermissionRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsAdminPermissionRelation;\nimport com.macro.mall.model.UmsAdminPermissionRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsAdminPermissionRelationMapper {\n    long countByExample(UmsAdminPermissionRelationExample example);\n\n    int deleteByExample(UmsAdminPermissionRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsAdminPermissionRelation row);\n\n    int insertSelective(UmsAdminPermissionRelation row);\n\n    List<UmsAdminPermissionRelation> selectByExample(UmsAdminPermissionRelationExample example);\n\n    UmsAdminPermissionRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsAdminPermissionRelation row, @Param(\"example\") UmsAdminPermissionRelationExample example);\n\n    int updateByExample(@Param(\"row\") UmsAdminPermissionRelation row, @Param(\"example\") UmsAdminPermissionRelationExample example);\n\n    int updateByPrimaryKeySelective(UmsAdminPermissionRelation row);\n\n    int updateByPrimaryKey(UmsAdminPermissionRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsAdminRoleRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsAdminRoleRelation;\nimport com.macro.mall.model.UmsAdminRoleRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsAdminRoleRelationMapper {\n    long countByExample(UmsAdminRoleRelationExample example);\n\n    int deleteByExample(UmsAdminRoleRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsAdminRoleRelation row);\n\n    int insertSelective(UmsAdminRoleRelation row);\n\n    List<UmsAdminRoleRelation> selectByExample(UmsAdminRoleRelationExample example);\n\n    UmsAdminRoleRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsAdminRoleRelation row, @Param(\"example\") UmsAdminRoleRelationExample example);\n\n    int updateByExample(@Param(\"row\") UmsAdminRoleRelation row, @Param(\"example\") UmsAdminRoleRelationExample example);\n\n    int updateByPrimaryKeySelective(UmsAdminRoleRelation row);\n\n    int updateByPrimaryKey(UmsAdminRoleRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsGrowthChangeHistoryMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsGrowthChangeHistory;\nimport com.macro.mall.model.UmsGrowthChangeHistoryExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsGrowthChangeHistoryMapper {\n    long countByExample(UmsGrowthChangeHistoryExample example);\n\n    int deleteByExample(UmsGrowthChangeHistoryExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsGrowthChangeHistory row);\n\n    int insertSelective(UmsGrowthChangeHistory row);\n\n    List<UmsGrowthChangeHistory> selectByExample(UmsGrowthChangeHistoryExample example);\n\n    UmsGrowthChangeHistory selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsGrowthChangeHistory row, @Param(\"example\") UmsGrowthChangeHistoryExample example);\n\n    int updateByExample(@Param(\"row\") UmsGrowthChangeHistory row, @Param(\"example\") UmsGrowthChangeHistoryExample example);\n\n    int updateByPrimaryKeySelective(UmsGrowthChangeHistory row);\n\n    int updateByPrimaryKey(UmsGrowthChangeHistory row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsIntegrationChangeHistoryMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsIntegrationChangeHistory;\nimport com.macro.mall.model.UmsIntegrationChangeHistoryExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsIntegrationChangeHistoryMapper {\n    long countByExample(UmsIntegrationChangeHistoryExample example);\n\n    int deleteByExample(UmsIntegrationChangeHistoryExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsIntegrationChangeHistory row);\n\n    int insertSelective(UmsIntegrationChangeHistory row);\n\n    List<UmsIntegrationChangeHistory> selectByExample(UmsIntegrationChangeHistoryExample example);\n\n    UmsIntegrationChangeHistory selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsIntegrationChangeHistory row, @Param(\"example\") UmsIntegrationChangeHistoryExample example);\n\n    int updateByExample(@Param(\"row\") UmsIntegrationChangeHistory row, @Param(\"example\") UmsIntegrationChangeHistoryExample example);\n\n    int updateByPrimaryKeySelective(UmsIntegrationChangeHistory row);\n\n    int updateByPrimaryKey(UmsIntegrationChangeHistory row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsIntegrationConsumeSettingMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsIntegrationConsumeSetting;\nimport com.macro.mall.model.UmsIntegrationConsumeSettingExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsIntegrationConsumeSettingMapper {\n    long countByExample(UmsIntegrationConsumeSettingExample example);\n\n    int deleteByExample(UmsIntegrationConsumeSettingExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsIntegrationConsumeSetting row);\n\n    int insertSelective(UmsIntegrationConsumeSetting row);\n\n    List<UmsIntegrationConsumeSetting> selectByExample(UmsIntegrationConsumeSettingExample example);\n\n    UmsIntegrationConsumeSetting selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsIntegrationConsumeSetting row, @Param(\"example\") UmsIntegrationConsumeSettingExample example);\n\n    int updateByExample(@Param(\"row\") UmsIntegrationConsumeSetting row, @Param(\"example\") UmsIntegrationConsumeSettingExample example);\n\n    int updateByPrimaryKeySelective(UmsIntegrationConsumeSetting row);\n\n    int updateByPrimaryKey(UmsIntegrationConsumeSetting row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsMemberLevelMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsMemberLevel;\nimport com.macro.mall.model.UmsMemberLevelExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsMemberLevelMapper {\n    long countByExample(UmsMemberLevelExample example);\n\n    int deleteByExample(UmsMemberLevelExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsMemberLevel row);\n\n    int insertSelective(UmsMemberLevel row);\n\n    List<UmsMemberLevel> selectByExample(UmsMemberLevelExample example);\n\n    UmsMemberLevel selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsMemberLevel row, @Param(\"example\") UmsMemberLevelExample example);\n\n    int updateByExample(@Param(\"row\") UmsMemberLevel row, @Param(\"example\") UmsMemberLevelExample example);\n\n    int updateByPrimaryKeySelective(UmsMemberLevel row);\n\n    int updateByPrimaryKey(UmsMemberLevel row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsMemberLoginLogMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsMemberLoginLog;\nimport com.macro.mall.model.UmsMemberLoginLogExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsMemberLoginLogMapper {\n    long countByExample(UmsMemberLoginLogExample example);\n\n    int deleteByExample(UmsMemberLoginLogExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsMemberLoginLog row);\n\n    int insertSelective(UmsMemberLoginLog row);\n\n    List<UmsMemberLoginLog> selectByExample(UmsMemberLoginLogExample example);\n\n    UmsMemberLoginLog selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsMemberLoginLog row, @Param(\"example\") UmsMemberLoginLogExample example);\n\n    int updateByExample(@Param(\"row\") UmsMemberLoginLog row, @Param(\"example\") UmsMemberLoginLogExample example);\n\n    int updateByPrimaryKeySelective(UmsMemberLoginLog row);\n\n    int updateByPrimaryKey(UmsMemberLoginLog row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsMemberMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsMember;\nimport com.macro.mall.model.UmsMemberExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsMemberMapper {\n    long countByExample(UmsMemberExample example);\n\n    int deleteByExample(UmsMemberExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsMember row);\n\n    int insertSelective(UmsMember row);\n\n    List<UmsMember> selectByExample(UmsMemberExample example);\n\n    UmsMember selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsMember row, @Param(\"example\") UmsMemberExample example);\n\n    int updateByExample(@Param(\"row\") UmsMember row, @Param(\"example\") UmsMemberExample example);\n\n    int updateByPrimaryKeySelective(UmsMember row);\n\n    int updateByPrimaryKey(UmsMember row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsMemberMemberTagRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsMemberMemberTagRelation;\nimport com.macro.mall.model.UmsMemberMemberTagRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsMemberMemberTagRelationMapper {\n    long countByExample(UmsMemberMemberTagRelationExample example);\n\n    int deleteByExample(UmsMemberMemberTagRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsMemberMemberTagRelation row);\n\n    int insertSelective(UmsMemberMemberTagRelation row);\n\n    List<UmsMemberMemberTagRelation> selectByExample(UmsMemberMemberTagRelationExample example);\n\n    UmsMemberMemberTagRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsMemberMemberTagRelation row, @Param(\"example\") UmsMemberMemberTagRelationExample example);\n\n    int updateByExample(@Param(\"row\") UmsMemberMemberTagRelation row, @Param(\"example\") UmsMemberMemberTagRelationExample example);\n\n    int updateByPrimaryKeySelective(UmsMemberMemberTagRelation row);\n\n    int updateByPrimaryKey(UmsMemberMemberTagRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsMemberProductCategoryRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsMemberProductCategoryRelation;\nimport com.macro.mall.model.UmsMemberProductCategoryRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsMemberProductCategoryRelationMapper {\n    long countByExample(UmsMemberProductCategoryRelationExample example);\n\n    int deleteByExample(UmsMemberProductCategoryRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsMemberProductCategoryRelation row);\n\n    int insertSelective(UmsMemberProductCategoryRelation row);\n\n    List<UmsMemberProductCategoryRelation> selectByExample(UmsMemberProductCategoryRelationExample example);\n\n    UmsMemberProductCategoryRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsMemberProductCategoryRelation row, @Param(\"example\") UmsMemberProductCategoryRelationExample example);\n\n    int updateByExample(@Param(\"row\") UmsMemberProductCategoryRelation row, @Param(\"example\") UmsMemberProductCategoryRelationExample example);\n\n    int updateByPrimaryKeySelective(UmsMemberProductCategoryRelation row);\n\n    int updateByPrimaryKey(UmsMemberProductCategoryRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsMemberReceiveAddressMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsMemberReceiveAddress;\nimport com.macro.mall.model.UmsMemberReceiveAddressExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsMemberReceiveAddressMapper {\n    long countByExample(UmsMemberReceiveAddressExample example);\n\n    int deleteByExample(UmsMemberReceiveAddressExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsMemberReceiveAddress row);\n\n    int insertSelective(UmsMemberReceiveAddress row);\n\n    List<UmsMemberReceiveAddress> selectByExample(UmsMemberReceiveAddressExample example);\n\n    UmsMemberReceiveAddress selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsMemberReceiveAddress row, @Param(\"example\") UmsMemberReceiveAddressExample example);\n\n    int updateByExample(@Param(\"row\") UmsMemberReceiveAddress row, @Param(\"example\") UmsMemberReceiveAddressExample example);\n\n    int updateByPrimaryKeySelective(UmsMemberReceiveAddress row);\n\n    int updateByPrimaryKey(UmsMemberReceiveAddress row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsMemberRuleSettingMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsMemberRuleSetting;\nimport com.macro.mall.model.UmsMemberRuleSettingExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsMemberRuleSettingMapper {\n    long countByExample(UmsMemberRuleSettingExample example);\n\n    int deleteByExample(UmsMemberRuleSettingExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsMemberRuleSetting row);\n\n    int insertSelective(UmsMemberRuleSetting row);\n\n    List<UmsMemberRuleSetting> selectByExample(UmsMemberRuleSettingExample example);\n\n    UmsMemberRuleSetting selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsMemberRuleSetting row, @Param(\"example\") UmsMemberRuleSettingExample example);\n\n    int updateByExample(@Param(\"row\") UmsMemberRuleSetting row, @Param(\"example\") UmsMemberRuleSettingExample example);\n\n    int updateByPrimaryKeySelective(UmsMemberRuleSetting row);\n\n    int updateByPrimaryKey(UmsMemberRuleSetting row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsMemberStatisticsInfoMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsMemberStatisticsInfo;\nimport com.macro.mall.model.UmsMemberStatisticsInfoExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsMemberStatisticsInfoMapper {\n    long countByExample(UmsMemberStatisticsInfoExample example);\n\n    int deleteByExample(UmsMemberStatisticsInfoExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsMemberStatisticsInfo row);\n\n    int insertSelective(UmsMemberStatisticsInfo row);\n\n    List<UmsMemberStatisticsInfo> selectByExample(UmsMemberStatisticsInfoExample example);\n\n    UmsMemberStatisticsInfo selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsMemberStatisticsInfo row, @Param(\"example\") UmsMemberStatisticsInfoExample example);\n\n    int updateByExample(@Param(\"row\") UmsMemberStatisticsInfo row, @Param(\"example\") UmsMemberStatisticsInfoExample example);\n\n    int updateByPrimaryKeySelective(UmsMemberStatisticsInfo row);\n\n    int updateByPrimaryKey(UmsMemberStatisticsInfo row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsMemberTagMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsMemberTag;\nimport com.macro.mall.model.UmsMemberTagExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsMemberTagMapper {\n    long countByExample(UmsMemberTagExample example);\n\n    int deleteByExample(UmsMemberTagExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsMemberTag row);\n\n    int insertSelective(UmsMemberTag row);\n\n    List<UmsMemberTag> selectByExample(UmsMemberTagExample example);\n\n    UmsMemberTag selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsMemberTag row, @Param(\"example\") UmsMemberTagExample example);\n\n    int updateByExample(@Param(\"row\") UmsMemberTag row, @Param(\"example\") UmsMemberTagExample example);\n\n    int updateByPrimaryKeySelective(UmsMemberTag row);\n\n    int updateByPrimaryKey(UmsMemberTag row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsMemberTaskMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsMemberTask;\nimport com.macro.mall.model.UmsMemberTaskExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsMemberTaskMapper {\n    long countByExample(UmsMemberTaskExample example);\n\n    int deleteByExample(UmsMemberTaskExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsMemberTask row);\n\n    int insertSelective(UmsMemberTask row);\n\n    List<UmsMemberTask> selectByExample(UmsMemberTaskExample example);\n\n    UmsMemberTask selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsMemberTask row, @Param(\"example\") UmsMemberTaskExample example);\n\n    int updateByExample(@Param(\"row\") UmsMemberTask row, @Param(\"example\") UmsMemberTaskExample example);\n\n    int updateByPrimaryKeySelective(UmsMemberTask row);\n\n    int updateByPrimaryKey(UmsMemberTask row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsMenuMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsMenu;\nimport com.macro.mall.model.UmsMenuExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsMenuMapper {\n    long countByExample(UmsMenuExample example);\n\n    int deleteByExample(UmsMenuExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsMenu row);\n\n    int insertSelective(UmsMenu row);\n\n    List<UmsMenu> selectByExample(UmsMenuExample example);\n\n    UmsMenu selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsMenu row, @Param(\"example\") UmsMenuExample example);\n\n    int updateByExample(@Param(\"row\") UmsMenu row, @Param(\"example\") UmsMenuExample example);\n\n    int updateByPrimaryKeySelective(UmsMenu row);\n\n    int updateByPrimaryKey(UmsMenu row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsPermissionMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsPermission;\nimport com.macro.mall.model.UmsPermissionExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsPermissionMapper {\n    long countByExample(UmsPermissionExample example);\n\n    int deleteByExample(UmsPermissionExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsPermission row);\n\n    int insertSelective(UmsPermission row);\n\n    List<UmsPermission> selectByExample(UmsPermissionExample example);\n\n    UmsPermission selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsPermission row, @Param(\"example\") UmsPermissionExample example);\n\n    int updateByExample(@Param(\"row\") UmsPermission row, @Param(\"example\") UmsPermissionExample example);\n\n    int updateByPrimaryKeySelective(UmsPermission row);\n\n    int updateByPrimaryKey(UmsPermission row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsResourceCategoryMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsResourceCategory;\nimport com.macro.mall.model.UmsResourceCategoryExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsResourceCategoryMapper {\n    long countByExample(UmsResourceCategoryExample example);\n\n    int deleteByExample(UmsResourceCategoryExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsResourceCategory row);\n\n    int insertSelective(UmsResourceCategory row);\n\n    List<UmsResourceCategory> selectByExample(UmsResourceCategoryExample example);\n\n    UmsResourceCategory selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsResourceCategory row, @Param(\"example\") UmsResourceCategoryExample example);\n\n    int updateByExample(@Param(\"row\") UmsResourceCategory row, @Param(\"example\") UmsResourceCategoryExample example);\n\n    int updateByPrimaryKeySelective(UmsResourceCategory row);\n\n    int updateByPrimaryKey(UmsResourceCategory row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsResourceMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsResource;\nimport com.macro.mall.model.UmsResourceExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsResourceMapper {\n    long countByExample(UmsResourceExample example);\n\n    int deleteByExample(UmsResourceExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsResource row);\n\n    int insertSelective(UmsResource row);\n\n    List<UmsResource> selectByExample(UmsResourceExample example);\n\n    UmsResource selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsResource row, @Param(\"example\") UmsResourceExample example);\n\n    int updateByExample(@Param(\"row\") UmsResource row, @Param(\"example\") UmsResourceExample example);\n\n    int updateByPrimaryKeySelective(UmsResource row);\n\n    int updateByPrimaryKey(UmsResource row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsRoleMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsRole;\nimport com.macro.mall.model.UmsRoleExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsRoleMapper {\n    long countByExample(UmsRoleExample example);\n\n    int deleteByExample(UmsRoleExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsRole row);\n\n    int insertSelective(UmsRole row);\n\n    List<UmsRole> selectByExample(UmsRoleExample example);\n\n    UmsRole selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsRole row, @Param(\"example\") UmsRoleExample example);\n\n    int updateByExample(@Param(\"row\") UmsRole row, @Param(\"example\") UmsRoleExample example);\n\n    int updateByPrimaryKeySelective(UmsRole row);\n\n    int updateByPrimaryKey(UmsRole row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsRoleMenuRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsRoleMenuRelation;\nimport com.macro.mall.model.UmsRoleMenuRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsRoleMenuRelationMapper {\n    long countByExample(UmsRoleMenuRelationExample example);\n\n    int deleteByExample(UmsRoleMenuRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsRoleMenuRelation row);\n\n    int insertSelective(UmsRoleMenuRelation row);\n\n    List<UmsRoleMenuRelation> selectByExample(UmsRoleMenuRelationExample example);\n\n    UmsRoleMenuRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsRoleMenuRelation row, @Param(\"example\") UmsRoleMenuRelationExample example);\n\n    int updateByExample(@Param(\"row\") UmsRoleMenuRelation row, @Param(\"example\") UmsRoleMenuRelationExample example);\n\n    int updateByPrimaryKeySelective(UmsRoleMenuRelation row);\n\n    int updateByPrimaryKey(UmsRoleMenuRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsRolePermissionRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsRolePermissionRelation;\nimport com.macro.mall.model.UmsRolePermissionRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsRolePermissionRelationMapper {\n    long countByExample(UmsRolePermissionRelationExample example);\n\n    int deleteByExample(UmsRolePermissionRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsRolePermissionRelation row);\n\n    int insertSelective(UmsRolePermissionRelation row);\n\n    List<UmsRolePermissionRelation> selectByExample(UmsRolePermissionRelationExample example);\n\n    UmsRolePermissionRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsRolePermissionRelation row, @Param(\"example\") UmsRolePermissionRelationExample example);\n\n    int updateByExample(@Param(\"row\") UmsRolePermissionRelation row, @Param(\"example\") UmsRolePermissionRelationExample example);\n\n    int updateByPrimaryKeySelective(UmsRolePermissionRelation row);\n\n    int updateByPrimaryKey(UmsRolePermissionRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/mapper/UmsRoleResourceRelationMapper.java",
    "content": "package com.macro.mall.mapper;\n\nimport com.macro.mall.model.UmsRoleResourceRelation;\nimport com.macro.mall.model.UmsRoleResourceRelationExample;\nimport java.util.List;\nimport org.apache.ibatis.annotations.Param;\n\npublic interface UmsRoleResourceRelationMapper {\n    long countByExample(UmsRoleResourceRelationExample example);\n\n    int deleteByExample(UmsRoleResourceRelationExample example);\n\n    int deleteByPrimaryKey(Long id);\n\n    int insert(UmsRoleResourceRelation row);\n\n    int insertSelective(UmsRoleResourceRelation row);\n\n    List<UmsRoleResourceRelation> selectByExample(UmsRoleResourceRelationExample example);\n\n    UmsRoleResourceRelation selectByPrimaryKey(Long id);\n\n    int updateByExampleSelective(@Param(\"row\") UmsRoleResourceRelation row, @Param(\"example\") UmsRoleResourceRelationExample example);\n\n    int updateByExample(@Param(\"row\") UmsRoleResourceRelation row, @Param(\"example\") UmsRoleResourceRelationExample example);\n\n    int updateByPrimaryKeySelective(UmsRoleResourceRelation row);\n\n    int updateByPrimaryKey(UmsRoleResourceRelation row);\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsHelp.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class CmsHelp implements Serializable {\n    private Long id;\n\n    private Long categoryId;\n\n    private String icon;\n\n    private String title;\n\n    private Integer showStatus;\n\n    private Date createTime;\n\n    private Integer readCount;\n\n    private String content;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getCategoryId() {\n        return categoryId;\n    }\n\n    public void setCategoryId(Long categoryId) {\n        this.categoryId = categoryId;\n    }\n\n    public String getIcon() {\n        return icon;\n    }\n\n    public void setIcon(String icon) {\n        this.icon = icon;\n    }\n\n    public String getTitle() {\n        return title;\n    }\n\n    public void setTitle(String title) {\n        this.title = title;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getReadCount() {\n        return readCount;\n    }\n\n    public void setReadCount(Integer readCount) {\n        this.readCount = readCount;\n    }\n\n    public String getContent() {\n        return content;\n    }\n\n    public void setContent(String content) {\n        this.content = content;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", categoryId=\").append(categoryId);\n        sb.append(\", icon=\").append(icon);\n        sb.append(\", title=\").append(title);\n        sb.append(\", showStatus=\").append(showStatus);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", readCount=\").append(readCount);\n        sb.append(\", content=\").append(content);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsHelpCategory.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class CmsHelpCategory implements Serializable {\n    private Long id;\n\n    private String name;\n\n    @Schema(title = \"分类图标\")\n    private String icon;\n\n    @Schema(title = \"专题数量\")\n    private Integer helpCount;\n\n    private Integer showStatus;\n\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getIcon() {\n        return icon;\n    }\n\n    public void setIcon(String icon) {\n        this.icon = icon;\n    }\n\n    public Integer getHelpCount() {\n        return helpCount;\n    }\n\n    public void setHelpCount(Integer helpCount) {\n        this.helpCount = helpCount;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", icon=\").append(icon);\n        sb.append(\", helpCount=\").append(helpCount);\n        sb.append(\", showStatus=\").append(showStatus);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsHelpCategoryExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class CmsHelpCategoryExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsHelpCategoryExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNull() {\n            addCriterion(\"icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNotNull() {\n            addCriterion(\"icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconEqualTo(String value) {\n            addCriterion(\"icon =\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotEqualTo(String value) {\n            addCriterion(\"icon <>\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThan(String value) {\n            addCriterion(\"icon >\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"icon >=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThan(String value) {\n            addCriterion(\"icon <\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThanOrEqualTo(String value) {\n            addCriterion(\"icon <=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLike(String value) {\n            addCriterion(\"icon like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotLike(String value) {\n            addCriterion(\"icon not like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIn(List<String> values) {\n            addCriterion(\"icon in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotIn(List<String> values) {\n            addCriterion(\"icon not in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconBetween(String value1, String value2) {\n            addCriterion(\"icon between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotBetween(String value1, String value2) {\n            addCriterion(\"icon not between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountIsNull() {\n            addCriterion(\"help_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountIsNotNull() {\n            addCriterion(\"help_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountEqualTo(Integer value) {\n            addCriterion(\"help_count =\", value, \"helpCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountNotEqualTo(Integer value) {\n            addCriterion(\"help_count <>\", value, \"helpCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountGreaterThan(Integer value) {\n            addCriterion(\"help_count >\", value, \"helpCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"help_count >=\", value, \"helpCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountLessThan(Integer value) {\n            addCriterion(\"help_count <\", value, \"helpCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"help_count <=\", value, \"helpCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountIn(List<Integer> values) {\n            addCriterion(\"help_count in\", values, \"helpCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountNotIn(List<Integer> values) {\n            addCriterion(\"help_count not in\", values, \"helpCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"help_count between\", value1, value2, \"helpCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHelpCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"help_count not between\", value1, value2, \"helpCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNull() {\n            addCriterion(\"show_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNotNull() {\n            addCriterion(\"show_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusEqualTo(Integer value) {\n            addCriterion(\"show_status =\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotEqualTo(Integer value) {\n            addCriterion(\"show_status <>\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThan(Integer value) {\n            addCriterion(\"show_status >\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status >=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThan(Integer value) {\n            addCriterion(\"show_status <\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status <=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIn(List<Integer> values) {\n            addCriterion(\"show_status in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotIn(List<Integer> values) {\n            addCriterion(\"show_status not in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status not between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsHelpExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class CmsHelpExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsHelpExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIsNull() {\n            addCriterion(\"category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIsNotNull() {\n            addCriterion(\"category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdEqualTo(Long value) {\n            addCriterion(\"category_id =\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"category_id <>\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdGreaterThan(Long value) {\n            addCriterion(\"category_id >\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"category_id >=\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdLessThan(Long value) {\n            addCriterion(\"category_id <\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"category_id <=\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIn(List<Long> values) {\n            addCriterion(\"category_id in\", values, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"category_id not in\", values, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"category_id between\", value1, value2, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"category_id not between\", value1, value2, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNull() {\n            addCriterion(\"icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNotNull() {\n            addCriterion(\"icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconEqualTo(String value) {\n            addCriterion(\"icon =\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotEqualTo(String value) {\n            addCriterion(\"icon <>\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThan(String value) {\n            addCriterion(\"icon >\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"icon >=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThan(String value) {\n            addCriterion(\"icon <\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThanOrEqualTo(String value) {\n            addCriterion(\"icon <=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLike(String value) {\n            addCriterion(\"icon like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotLike(String value) {\n            addCriterion(\"icon not like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIn(List<String> values) {\n            addCriterion(\"icon in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotIn(List<String> values) {\n            addCriterion(\"icon not in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconBetween(String value1, String value2) {\n            addCriterion(\"icon between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotBetween(String value1, String value2) {\n            addCriterion(\"icon not between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNull() {\n            addCriterion(\"title is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNotNull() {\n            addCriterion(\"title is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleEqualTo(String value) {\n            addCriterion(\"title =\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotEqualTo(String value) {\n            addCriterion(\"title <>\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThan(String value) {\n            addCriterion(\"title >\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThanOrEqualTo(String value) {\n            addCriterion(\"title >=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThan(String value) {\n            addCriterion(\"title <\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThanOrEqualTo(String value) {\n            addCriterion(\"title <=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLike(String value) {\n            addCriterion(\"title like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotLike(String value) {\n            addCriterion(\"title not like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIn(List<String> values) {\n            addCriterion(\"title in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotIn(List<String> values) {\n            addCriterion(\"title not in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleBetween(String value1, String value2) {\n            addCriterion(\"title between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotBetween(String value1, String value2) {\n            addCriterion(\"title not between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNull() {\n            addCriterion(\"show_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNotNull() {\n            addCriterion(\"show_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusEqualTo(Integer value) {\n            addCriterion(\"show_status =\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotEqualTo(Integer value) {\n            addCriterion(\"show_status <>\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThan(Integer value) {\n            addCriterion(\"show_status >\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status >=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThan(Integer value) {\n            addCriterion(\"show_status <\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status <=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIn(List<Integer> values) {\n            addCriterion(\"show_status in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotIn(List<Integer> values) {\n            addCriterion(\"show_status not in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status not between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIsNull() {\n            addCriterion(\"read_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIsNotNull() {\n            addCriterion(\"read_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountEqualTo(Integer value) {\n            addCriterion(\"read_count =\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotEqualTo(Integer value) {\n            addCriterion(\"read_count <>\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountGreaterThan(Integer value) {\n            addCriterion(\"read_count >\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"read_count >=\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountLessThan(Integer value) {\n            addCriterion(\"read_count <\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"read_count <=\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIn(List<Integer> values) {\n            addCriterion(\"read_count in\", values, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotIn(List<Integer> values) {\n            addCriterion(\"read_count not in\", values, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"read_count between\", value1, value2, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"read_count not between\", value1, value2, \"readCount\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsMemberReport.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class CmsMemberReport implements Serializable {\n    private Long id;\n\n    @Schema(title = \"举报类型：0->商品评价；1->话题内容；2->用户评论\")\n    private Integer reportType;\n\n    @Schema(title = \"举报人\")\n    private String reportMemberName;\n\n    private Date createTime;\n\n    private String reportObject;\n\n    @Schema(title = \"举报状态：0->未处理；1->已处理\")\n    private Integer reportStatus;\n\n    @Schema(title = \"处理结果：0->无效；1->有效；2->恶意\")\n    private Integer handleStatus;\n\n    private String note;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Integer getReportType() {\n        return reportType;\n    }\n\n    public void setReportType(Integer reportType) {\n        this.reportType = reportType;\n    }\n\n    public String getReportMemberName() {\n        return reportMemberName;\n    }\n\n    public void setReportMemberName(String reportMemberName) {\n        this.reportMemberName = reportMemberName;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public String getReportObject() {\n        return reportObject;\n    }\n\n    public void setReportObject(String reportObject) {\n        this.reportObject = reportObject;\n    }\n\n    public Integer getReportStatus() {\n        return reportStatus;\n    }\n\n    public void setReportStatus(Integer reportStatus) {\n        this.reportStatus = reportStatus;\n    }\n\n    public Integer getHandleStatus() {\n        return handleStatus;\n    }\n\n    public void setHandleStatus(Integer handleStatus) {\n        this.handleStatus = handleStatus;\n    }\n\n    public String getNote() {\n        return note;\n    }\n\n    public void setNote(String note) {\n        this.note = note;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", reportType=\").append(reportType);\n        sb.append(\", reportMemberName=\").append(reportMemberName);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", reportObject=\").append(reportObject);\n        sb.append(\", reportStatus=\").append(reportStatus);\n        sb.append(\", handleStatus=\").append(handleStatus);\n        sb.append(\", note=\").append(note);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsMemberReportExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class CmsMemberReportExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsMemberReportExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeIsNull() {\n            addCriterion(\"report_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeIsNotNull() {\n            addCriterion(\"report_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeEqualTo(Integer value) {\n            addCriterion(\"report_type =\", value, \"reportType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeNotEqualTo(Integer value) {\n            addCriterion(\"report_type <>\", value, \"reportType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeGreaterThan(Integer value) {\n            addCriterion(\"report_type >\", value, \"reportType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"report_type >=\", value, \"reportType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeLessThan(Integer value) {\n            addCriterion(\"report_type <\", value, \"reportType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"report_type <=\", value, \"reportType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeIn(List<Integer> values) {\n            addCriterion(\"report_type in\", values, \"reportType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeNotIn(List<Integer> values) {\n            addCriterion(\"report_type not in\", values, \"reportType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"report_type between\", value1, value2, \"reportType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"report_type not between\", value1, value2, \"reportType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameIsNull() {\n            addCriterion(\"report_member_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameIsNotNull() {\n            addCriterion(\"report_member_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameEqualTo(String value) {\n            addCriterion(\"report_member_name =\", value, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameNotEqualTo(String value) {\n            addCriterion(\"report_member_name <>\", value, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameGreaterThan(String value) {\n            addCriterion(\"report_member_name >\", value, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"report_member_name >=\", value, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameLessThan(String value) {\n            addCriterion(\"report_member_name <\", value, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameLessThanOrEqualTo(String value) {\n            addCriterion(\"report_member_name <=\", value, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameLike(String value) {\n            addCriterion(\"report_member_name like\", value, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameNotLike(String value) {\n            addCriterion(\"report_member_name not like\", value, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameIn(List<String> values) {\n            addCriterion(\"report_member_name in\", values, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameNotIn(List<String> values) {\n            addCriterion(\"report_member_name not in\", values, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameBetween(String value1, String value2) {\n            addCriterion(\"report_member_name between\", value1, value2, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportMemberNameNotBetween(String value1, String value2) {\n            addCriterion(\"report_member_name not between\", value1, value2, \"reportMemberName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectIsNull() {\n            addCriterion(\"report_object is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectIsNotNull() {\n            addCriterion(\"report_object is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectEqualTo(String value) {\n            addCriterion(\"report_object =\", value, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectNotEqualTo(String value) {\n            addCriterion(\"report_object <>\", value, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectGreaterThan(String value) {\n            addCriterion(\"report_object >\", value, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectGreaterThanOrEqualTo(String value) {\n            addCriterion(\"report_object >=\", value, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectLessThan(String value) {\n            addCriterion(\"report_object <\", value, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectLessThanOrEqualTo(String value) {\n            addCriterion(\"report_object <=\", value, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectLike(String value) {\n            addCriterion(\"report_object like\", value, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectNotLike(String value) {\n            addCriterion(\"report_object not like\", value, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectIn(List<String> values) {\n            addCriterion(\"report_object in\", values, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectNotIn(List<String> values) {\n            addCriterion(\"report_object not in\", values, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectBetween(String value1, String value2) {\n            addCriterion(\"report_object between\", value1, value2, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportObjectNotBetween(String value1, String value2) {\n            addCriterion(\"report_object not between\", value1, value2, \"reportObject\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusIsNull() {\n            addCriterion(\"report_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusIsNotNull() {\n            addCriterion(\"report_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusEqualTo(Integer value) {\n            addCriterion(\"report_status =\", value, \"reportStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusNotEqualTo(Integer value) {\n            addCriterion(\"report_status <>\", value, \"reportStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusGreaterThan(Integer value) {\n            addCriterion(\"report_status >\", value, \"reportStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"report_status >=\", value, \"reportStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusLessThan(Integer value) {\n            addCriterion(\"report_status <\", value, \"reportStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"report_status <=\", value, \"reportStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusIn(List<Integer> values) {\n            addCriterion(\"report_status in\", values, \"reportStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusNotIn(List<Integer> values) {\n            addCriterion(\"report_status not in\", values, \"reportStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"report_status between\", value1, value2, \"reportStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReportStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"report_status not between\", value1, value2, \"reportStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusIsNull() {\n            addCriterion(\"handle_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusIsNotNull() {\n            addCriterion(\"handle_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusEqualTo(Integer value) {\n            addCriterion(\"handle_status =\", value, \"handleStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusNotEqualTo(Integer value) {\n            addCriterion(\"handle_status <>\", value, \"handleStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusGreaterThan(Integer value) {\n            addCriterion(\"handle_status >\", value, \"handleStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"handle_status >=\", value, \"handleStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusLessThan(Integer value) {\n            addCriterion(\"handle_status <\", value, \"handleStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"handle_status <=\", value, \"handleStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusIn(List<Integer> values) {\n            addCriterion(\"handle_status in\", values, \"handleStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusNotIn(List<Integer> values) {\n            addCriterion(\"handle_status not in\", values, \"handleStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"handle_status between\", value1, value2, \"handleStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"handle_status not between\", value1, value2, \"handleStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNull() {\n            addCriterion(\"note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNotNull() {\n            addCriterion(\"note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteEqualTo(String value) {\n            addCriterion(\"note =\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotEqualTo(String value) {\n            addCriterion(\"note <>\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThan(String value) {\n            addCriterion(\"note >\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"note >=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThan(String value) {\n            addCriterion(\"note <\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"note <=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLike(String value) {\n            addCriterion(\"note like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotLike(String value) {\n            addCriterion(\"note not like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIn(List<String> values) {\n            addCriterion(\"note in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotIn(List<String> values) {\n            addCriterion(\"note not in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteBetween(String value1, String value2) {\n            addCriterion(\"note between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotBetween(String value1, String value2) {\n            addCriterion(\"note not between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsPrefrenceArea.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class CmsPrefrenceArea implements Serializable {\n    private Long id;\n\n    private String name;\n\n    private String subTitle;\n\n    private Integer sort;\n\n    private Integer showStatus;\n\n    @Schema(title = \"展示图片\")\n    private byte[] pic;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getSubTitle() {\n        return subTitle;\n    }\n\n    public void setSubTitle(String subTitle) {\n        this.subTitle = subTitle;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    public byte[] getPic() {\n        return pic;\n    }\n\n    public void setPic(byte[] pic) {\n        this.pic = pic;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", subTitle=\").append(subTitle);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", showStatus=\").append(showStatus);\n        sb.append(\", pic=\").append(pic);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsPrefrenceAreaExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class CmsPrefrenceAreaExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsPrefrenceAreaExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleIsNull() {\n            addCriterion(\"sub_title is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleIsNotNull() {\n            addCriterion(\"sub_title is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleEqualTo(String value) {\n            addCriterion(\"sub_title =\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleNotEqualTo(String value) {\n            addCriterion(\"sub_title <>\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleGreaterThan(String value) {\n            addCriterion(\"sub_title >\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleGreaterThanOrEqualTo(String value) {\n            addCriterion(\"sub_title >=\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleLessThan(String value) {\n            addCriterion(\"sub_title <\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleLessThanOrEqualTo(String value) {\n            addCriterion(\"sub_title <=\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleLike(String value) {\n            addCriterion(\"sub_title like\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleNotLike(String value) {\n            addCriterion(\"sub_title not like\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleIn(List<String> values) {\n            addCriterion(\"sub_title in\", values, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleNotIn(List<String> values) {\n            addCriterion(\"sub_title not in\", values, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleBetween(String value1, String value2) {\n            addCriterion(\"sub_title between\", value1, value2, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleNotBetween(String value1, String value2) {\n            addCriterion(\"sub_title not between\", value1, value2, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNull() {\n            addCriterion(\"show_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNotNull() {\n            addCriterion(\"show_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusEqualTo(Integer value) {\n            addCriterion(\"show_status =\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotEqualTo(Integer value) {\n            addCriterion(\"show_status <>\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThan(Integer value) {\n            addCriterion(\"show_status >\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status >=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThan(Integer value) {\n            addCriterion(\"show_status <\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status <=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIn(List<Integer> values) {\n            addCriterion(\"show_status in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotIn(List<Integer> values) {\n            addCriterion(\"show_status not in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status not between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsPrefrenceAreaProductRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class CmsPrefrenceAreaProductRelation implements Serializable {\n    private Long id;\n\n    private Long prefrenceAreaId;\n\n    private Long productId;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getPrefrenceAreaId() {\n        return prefrenceAreaId;\n    }\n\n    public void setPrefrenceAreaId(Long prefrenceAreaId) {\n        this.prefrenceAreaId = prefrenceAreaId;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", prefrenceAreaId=\").append(prefrenceAreaId);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsPrefrenceAreaProductRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class CmsPrefrenceAreaProductRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsPrefrenceAreaProductRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdIsNull() {\n            addCriterion(\"prefrence_area_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdIsNotNull() {\n            addCriterion(\"prefrence_area_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdEqualTo(Long value) {\n            addCriterion(\"prefrence_area_id =\", value, \"prefrenceAreaId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdNotEqualTo(Long value) {\n            addCriterion(\"prefrence_area_id <>\", value, \"prefrenceAreaId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdGreaterThan(Long value) {\n            addCriterion(\"prefrence_area_id >\", value, \"prefrenceAreaId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"prefrence_area_id >=\", value, \"prefrenceAreaId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdLessThan(Long value) {\n            addCriterion(\"prefrence_area_id <\", value, \"prefrenceAreaId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"prefrence_area_id <=\", value, \"prefrenceAreaId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdIn(List<Long> values) {\n            addCriterion(\"prefrence_area_id in\", values, \"prefrenceAreaId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdNotIn(List<Long> values) {\n            addCriterion(\"prefrence_area_id not in\", values, \"prefrenceAreaId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdBetween(Long value1, Long value2) {\n            addCriterion(\"prefrence_area_id between\", value1, value2, \"prefrenceAreaId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPrefrenceAreaIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"prefrence_area_id not between\", value1, value2, \"prefrenceAreaId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubject.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class CmsSubject implements Serializable {\n    private Long id;\n\n    private Long categoryId;\n\n    private String title;\n\n    @Schema(title = \"专题主图\")\n    private String pic;\n\n    @Schema(title = \"关联产品数量\")\n    private Integer productCount;\n\n    private Integer recommendStatus;\n\n    private Date createTime;\n\n    private Integer collectCount;\n\n    private Integer readCount;\n\n    private Integer commentCount;\n\n    @Schema(title = \"画册图片用逗号分割\")\n    private String albumPics;\n\n    private String description;\n\n    @Schema(title = \"显示状态：0->不显示；1->显示\")\n    private Integer showStatus;\n\n    @Schema(title = \"转发数\")\n    private Integer forwardCount;\n\n    @Schema(title = \"专题分类名称\")\n    private String categoryName;\n\n    private String content;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getCategoryId() {\n        return categoryId;\n    }\n\n    public void setCategoryId(Long categoryId) {\n        this.categoryId = categoryId;\n    }\n\n    public String getTitle() {\n        return title;\n    }\n\n    public void setTitle(String title) {\n        this.title = title;\n    }\n\n    public String getPic() {\n        return pic;\n    }\n\n    public void setPic(String pic) {\n        this.pic = pic;\n    }\n\n    public Integer getProductCount() {\n        return productCount;\n    }\n\n    public void setProductCount(Integer productCount) {\n        this.productCount = productCount;\n    }\n\n    public Integer getRecommendStatus() {\n        return recommendStatus;\n    }\n\n    public void setRecommendStatus(Integer recommendStatus) {\n        this.recommendStatus = recommendStatus;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getCollectCount() {\n        return collectCount;\n    }\n\n    public void setCollectCount(Integer collectCount) {\n        this.collectCount = collectCount;\n    }\n\n    public Integer getReadCount() {\n        return readCount;\n    }\n\n    public void setReadCount(Integer readCount) {\n        this.readCount = readCount;\n    }\n\n    public Integer getCommentCount() {\n        return commentCount;\n    }\n\n    public void setCommentCount(Integer commentCount) {\n        this.commentCount = commentCount;\n    }\n\n    public String getAlbumPics() {\n        return albumPics;\n    }\n\n    public void setAlbumPics(String albumPics) {\n        this.albumPics = albumPics;\n    }\n\n    public String getDescription() {\n        return description;\n    }\n\n    public void setDescription(String description) {\n        this.description = description;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    public Integer getForwardCount() {\n        return forwardCount;\n    }\n\n    public void setForwardCount(Integer forwardCount) {\n        this.forwardCount = forwardCount;\n    }\n\n    public String getCategoryName() {\n        return categoryName;\n    }\n\n    public void setCategoryName(String categoryName) {\n        this.categoryName = categoryName;\n    }\n\n    public String getContent() {\n        return content;\n    }\n\n    public void setContent(String content) {\n        this.content = content;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", categoryId=\").append(categoryId);\n        sb.append(\", title=\").append(title);\n        sb.append(\", pic=\").append(pic);\n        sb.append(\", productCount=\").append(productCount);\n        sb.append(\", recommendStatus=\").append(recommendStatus);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", collectCount=\").append(collectCount);\n        sb.append(\", readCount=\").append(readCount);\n        sb.append(\", commentCount=\").append(commentCount);\n        sb.append(\", albumPics=\").append(albumPics);\n        sb.append(\", description=\").append(description);\n        sb.append(\", showStatus=\").append(showStatus);\n        sb.append(\", forwardCount=\").append(forwardCount);\n        sb.append(\", categoryName=\").append(categoryName);\n        sb.append(\", content=\").append(content);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectCategory.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class CmsSubjectCategory implements Serializable {\n    private Long id;\n\n    private String name;\n\n    @Schema(title = \"分类图标\")\n    private String icon;\n\n    @Schema(title = \"专题数量\")\n    private Integer subjectCount;\n\n    private Integer showStatus;\n\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getIcon() {\n        return icon;\n    }\n\n    public void setIcon(String icon) {\n        this.icon = icon;\n    }\n\n    public Integer getSubjectCount() {\n        return subjectCount;\n    }\n\n    public void setSubjectCount(Integer subjectCount) {\n        this.subjectCount = subjectCount;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", icon=\").append(icon);\n        sb.append(\", subjectCount=\").append(subjectCount);\n        sb.append(\", showStatus=\").append(showStatus);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectCategoryExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class CmsSubjectCategoryExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsSubjectCategoryExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNull() {\n            addCriterion(\"icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNotNull() {\n            addCriterion(\"icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconEqualTo(String value) {\n            addCriterion(\"icon =\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotEqualTo(String value) {\n            addCriterion(\"icon <>\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThan(String value) {\n            addCriterion(\"icon >\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"icon >=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThan(String value) {\n            addCriterion(\"icon <\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThanOrEqualTo(String value) {\n            addCriterion(\"icon <=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLike(String value) {\n            addCriterion(\"icon like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotLike(String value) {\n            addCriterion(\"icon not like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIn(List<String> values) {\n            addCriterion(\"icon in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotIn(List<String> values) {\n            addCriterion(\"icon not in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconBetween(String value1, String value2) {\n            addCriterion(\"icon between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotBetween(String value1, String value2) {\n            addCriterion(\"icon not between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountIsNull() {\n            addCriterion(\"subject_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountIsNotNull() {\n            addCriterion(\"subject_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountEqualTo(Integer value) {\n            addCriterion(\"subject_count =\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountNotEqualTo(Integer value) {\n            addCriterion(\"subject_count <>\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountGreaterThan(Integer value) {\n            addCriterion(\"subject_count >\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"subject_count >=\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountLessThan(Integer value) {\n            addCriterion(\"subject_count <\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"subject_count <=\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountIn(List<Integer> values) {\n            addCriterion(\"subject_count in\", values, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountNotIn(List<Integer> values) {\n            addCriterion(\"subject_count not in\", values, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"subject_count between\", value1, value2, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"subject_count not between\", value1, value2, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNull() {\n            addCriterion(\"show_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNotNull() {\n            addCriterion(\"show_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusEqualTo(Integer value) {\n            addCriterion(\"show_status =\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotEqualTo(Integer value) {\n            addCriterion(\"show_status <>\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThan(Integer value) {\n            addCriterion(\"show_status >\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status >=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThan(Integer value) {\n            addCriterion(\"show_status <\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status <=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIn(List<Integer> values) {\n            addCriterion(\"show_status in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotIn(List<Integer> values) {\n            addCriterion(\"show_status not in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status not between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectComment.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class CmsSubjectComment implements Serializable {\n    private Long id;\n\n    private Long subjectId;\n\n    private String memberNickName;\n\n    private String memberIcon;\n\n    private String content;\n\n    private Date createTime;\n\n    private Integer showStatus;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getSubjectId() {\n        return subjectId;\n    }\n\n    public void setSubjectId(Long subjectId) {\n        this.subjectId = subjectId;\n    }\n\n    public String getMemberNickName() {\n        return memberNickName;\n    }\n\n    public void setMemberNickName(String memberNickName) {\n        this.memberNickName = memberNickName;\n    }\n\n    public String getMemberIcon() {\n        return memberIcon;\n    }\n\n    public void setMemberIcon(String memberIcon) {\n        this.memberIcon = memberIcon;\n    }\n\n    public String getContent() {\n        return content;\n    }\n\n    public void setContent(String content) {\n        this.content = content;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", subjectId=\").append(subjectId);\n        sb.append(\", memberNickName=\").append(memberNickName);\n        sb.append(\", memberIcon=\").append(memberIcon);\n        sb.append(\", content=\").append(content);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", showStatus=\").append(showStatus);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectCommentExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class CmsSubjectCommentExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsSubjectCommentExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdIsNull() {\n            addCriterion(\"subject_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdIsNotNull() {\n            addCriterion(\"subject_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdEqualTo(Long value) {\n            addCriterion(\"subject_id =\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdNotEqualTo(Long value) {\n            addCriterion(\"subject_id <>\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdGreaterThan(Long value) {\n            addCriterion(\"subject_id >\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"subject_id >=\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdLessThan(Long value) {\n            addCriterion(\"subject_id <\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"subject_id <=\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdIn(List<Long> values) {\n            addCriterion(\"subject_id in\", values, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdNotIn(List<Long> values) {\n            addCriterion(\"subject_id not in\", values, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdBetween(Long value1, Long value2) {\n            addCriterion(\"subject_id between\", value1, value2, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"subject_id not between\", value1, value2, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIsNull() {\n            addCriterion(\"member_nick_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIsNotNull() {\n            addCriterion(\"member_nick_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameEqualTo(String value) {\n            addCriterion(\"member_nick_name =\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotEqualTo(String value) {\n            addCriterion(\"member_nick_name <>\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameGreaterThan(String value) {\n            addCriterion(\"member_nick_name >\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_nick_name >=\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLessThan(String value) {\n            addCriterion(\"member_nick_name <\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLessThanOrEqualTo(String value) {\n            addCriterion(\"member_nick_name <=\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLike(String value) {\n            addCriterion(\"member_nick_name like\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotLike(String value) {\n            addCriterion(\"member_nick_name not like\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIn(List<String> values) {\n            addCriterion(\"member_nick_name in\", values, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotIn(List<String> values) {\n            addCriterion(\"member_nick_name not in\", values, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameBetween(String value1, String value2) {\n            addCriterion(\"member_nick_name between\", value1, value2, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotBetween(String value1, String value2) {\n            addCriterion(\"member_nick_name not between\", value1, value2, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIsNull() {\n            addCriterion(\"member_icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIsNotNull() {\n            addCriterion(\"member_icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconEqualTo(String value) {\n            addCriterion(\"member_icon =\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotEqualTo(String value) {\n            addCriterion(\"member_icon <>\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconGreaterThan(String value) {\n            addCriterion(\"member_icon >\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_icon >=\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLessThan(String value) {\n            addCriterion(\"member_icon <\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLessThanOrEqualTo(String value) {\n            addCriterion(\"member_icon <=\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLike(String value) {\n            addCriterion(\"member_icon like\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotLike(String value) {\n            addCriterion(\"member_icon not like\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIn(List<String> values) {\n            addCriterion(\"member_icon in\", values, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotIn(List<String> values) {\n            addCriterion(\"member_icon not in\", values, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconBetween(String value1, String value2) {\n            addCriterion(\"member_icon between\", value1, value2, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotBetween(String value1, String value2) {\n            addCriterion(\"member_icon not between\", value1, value2, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIsNull() {\n            addCriterion(\"content is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIsNotNull() {\n            addCriterion(\"content is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentEqualTo(String value) {\n            addCriterion(\"content =\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotEqualTo(String value) {\n            addCriterion(\"content <>\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentGreaterThan(String value) {\n            addCriterion(\"content >\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentGreaterThanOrEqualTo(String value) {\n            addCriterion(\"content >=\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLessThan(String value) {\n            addCriterion(\"content <\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLessThanOrEqualTo(String value) {\n            addCriterion(\"content <=\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLike(String value) {\n            addCriterion(\"content like\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotLike(String value) {\n            addCriterion(\"content not like\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIn(List<String> values) {\n            addCriterion(\"content in\", values, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotIn(List<String> values) {\n            addCriterion(\"content not in\", values, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentBetween(String value1, String value2) {\n            addCriterion(\"content between\", value1, value2, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotBetween(String value1, String value2) {\n            addCriterion(\"content not between\", value1, value2, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNull() {\n            addCriterion(\"show_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNotNull() {\n            addCriterion(\"show_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusEqualTo(Integer value) {\n            addCriterion(\"show_status =\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotEqualTo(Integer value) {\n            addCriterion(\"show_status <>\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThan(Integer value) {\n            addCriterion(\"show_status >\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status >=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThan(Integer value) {\n            addCriterion(\"show_status <\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status <=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIn(List<Integer> values) {\n            addCriterion(\"show_status in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotIn(List<Integer> values) {\n            addCriterion(\"show_status not in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status not between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class CmsSubjectExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsSubjectExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIsNull() {\n            addCriterion(\"category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIsNotNull() {\n            addCriterion(\"category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdEqualTo(Long value) {\n            addCriterion(\"category_id =\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"category_id <>\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdGreaterThan(Long value) {\n            addCriterion(\"category_id >\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"category_id >=\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdLessThan(Long value) {\n            addCriterion(\"category_id <\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"category_id <=\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIn(List<Long> values) {\n            addCriterion(\"category_id in\", values, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"category_id not in\", values, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"category_id between\", value1, value2, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"category_id not between\", value1, value2, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNull() {\n            addCriterion(\"title is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNotNull() {\n            addCriterion(\"title is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleEqualTo(String value) {\n            addCriterion(\"title =\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotEqualTo(String value) {\n            addCriterion(\"title <>\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThan(String value) {\n            addCriterion(\"title >\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThanOrEqualTo(String value) {\n            addCriterion(\"title >=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThan(String value) {\n            addCriterion(\"title <\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThanOrEqualTo(String value) {\n            addCriterion(\"title <=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLike(String value) {\n            addCriterion(\"title like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotLike(String value) {\n            addCriterion(\"title not like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIn(List<String> values) {\n            addCriterion(\"title in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotIn(List<String> values) {\n            addCriterion(\"title not in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleBetween(String value1, String value2) {\n            addCriterion(\"title between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotBetween(String value1, String value2) {\n            addCriterion(\"title not between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIsNull() {\n            addCriterion(\"pic is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIsNotNull() {\n            addCriterion(\"pic is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicEqualTo(String value) {\n            addCriterion(\"pic =\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotEqualTo(String value) {\n            addCriterion(\"pic <>\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicGreaterThan(String value) {\n            addCriterion(\"pic >\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicGreaterThanOrEqualTo(String value) {\n            addCriterion(\"pic >=\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLessThan(String value) {\n            addCriterion(\"pic <\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLessThanOrEqualTo(String value) {\n            addCriterion(\"pic <=\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLike(String value) {\n            addCriterion(\"pic like\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotLike(String value) {\n            addCriterion(\"pic not like\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIn(List<String> values) {\n            addCriterion(\"pic in\", values, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotIn(List<String> values) {\n            addCriterion(\"pic not in\", values, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicBetween(String value1, String value2) {\n            addCriterion(\"pic between\", value1, value2, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotBetween(String value1, String value2) {\n            addCriterion(\"pic not between\", value1, value2, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIsNull() {\n            addCriterion(\"product_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIsNotNull() {\n            addCriterion(\"product_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountEqualTo(Integer value) {\n            addCriterion(\"product_count =\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotEqualTo(Integer value) {\n            addCriterion(\"product_count <>\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountGreaterThan(Integer value) {\n            addCriterion(\"product_count >\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"product_count >=\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountLessThan(Integer value) {\n            addCriterion(\"product_count <\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"product_count <=\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIn(List<Integer> values) {\n            addCriterion(\"product_count in\", values, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotIn(List<Integer> values) {\n            addCriterion(\"product_count not in\", values, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_count between\", value1, value2, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_count not between\", value1, value2, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIsNull() {\n            addCriterion(\"recommend_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIsNotNull() {\n            addCriterion(\"recommend_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusEqualTo(Integer value) {\n            addCriterion(\"recommend_status =\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotEqualTo(Integer value) {\n            addCriterion(\"recommend_status <>\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusGreaterThan(Integer value) {\n            addCriterion(\"recommend_status >\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"recommend_status >=\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusLessThan(Integer value) {\n            addCriterion(\"recommend_status <\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"recommend_status <=\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIn(List<Integer> values) {\n            addCriterion(\"recommend_status in\", values, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotIn(List<Integer> values) {\n            addCriterion(\"recommend_status not in\", values, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommend_status between\", value1, value2, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommend_status not between\", value1, value2, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountIsNull() {\n            addCriterion(\"collect_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountIsNotNull() {\n            addCriterion(\"collect_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountEqualTo(Integer value) {\n            addCriterion(\"collect_count =\", value, \"collectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountNotEqualTo(Integer value) {\n            addCriterion(\"collect_count <>\", value, \"collectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountGreaterThan(Integer value) {\n            addCriterion(\"collect_count >\", value, \"collectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_count >=\", value, \"collectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountLessThan(Integer value) {\n            addCriterion(\"collect_count <\", value, \"collectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_count <=\", value, \"collectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountIn(List<Integer> values) {\n            addCriterion(\"collect_count in\", values, \"collectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountNotIn(List<Integer> values) {\n            addCriterion(\"collect_count not in\", values, \"collectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_count between\", value1, value2, \"collectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_count not between\", value1, value2, \"collectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIsNull() {\n            addCriterion(\"read_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIsNotNull() {\n            addCriterion(\"read_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountEqualTo(Integer value) {\n            addCriterion(\"read_count =\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotEqualTo(Integer value) {\n            addCriterion(\"read_count <>\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountGreaterThan(Integer value) {\n            addCriterion(\"read_count >\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"read_count >=\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountLessThan(Integer value) {\n            addCriterion(\"read_count <\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"read_count <=\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIn(List<Integer> values) {\n            addCriterion(\"read_count in\", values, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotIn(List<Integer> values) {\n            addCriterion(\"read_count not in\", values, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"read_count between\", value1, value2, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"read_count not between\", value1, value2, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountIsNull() {\n            addCriterion(\"comment_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountIsNotNull() {\n            addCriterion(\"comment_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountEqualTo(Integer value) {\n            addCriterion(\"comment_count =\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountNotEqualTo(Integer value) {\n            addCriterion(\"comment_count <>\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountGreaterThan(Integer value) {\n            addCriterion(\"comment_count >\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"comment_count >=\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountLessThan(Integer value) {\n            addCriterion(\"comment_count <\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"comment_count <=\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountIn(List<Integer> values) {\n            addCriterion(\"comment_count in\", values, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountNotIn(List<Integer> values) {\n            addCriterion(\"comment_count not in\", values, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"comment_count between\", value1, value2, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"comment_count not between\", value1, value2, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsIsNull() {\n            addCriterion(\"album_pics is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsIsNotNull() {\n            addCriterion(\"album_pics is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsEqualTo(String value) {\n            addCriterion(\"album_pics =\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsNotEqualTo(String value) {\n            addCriterion(\"album_pics <>\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsGreaterThan(String value) {\n            addCriterion(\"album_pics >\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsGreaterThanOrEqualTo(String value) {\n            addCriterion(\"album_pics >=\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsLessThan(String value) {\n            addCriterion(\"album_pics <\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsLessThanOrEqualTo(String value) {\n            addCriterion(\"album_pics <=\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsLike(String value) {\n            addCriterion(\"album_pics like\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsNotLike(String value) {\n            addCriterion(\"album_pics not like\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsIn(List<String> values) {\n            addCriterion(\"album_pics in\", values, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsNotIn(List<String> values) {\n            addCriterion(\"album_pics not in\", values, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsBetween(String value1, String value2) {\n            addCriterion(\"album_pics between\", value1, value2, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsNotBetween(String value1, String value2) {\n            addCriterion(\"album_pics not between\", value1, value2, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIsNull() {\n            addCriterion(\"description is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIsNotNull() {\n            addCriterion(\"description is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionEqualTo(String value) {\n            addCriterion(\"description =\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotEqualTo(String value) {\n            addCriterion(\"description <>\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionGreaterThan(String value) {\n            addCriterion(\"description >\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {\n            addCriterion(\"description >=\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLessThan(String value) {\n            addCriterion(\"description <\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLessThanOrEqualTo(String value) {\n            addCriterion(\"description <=\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLike(String value) {\n            addCriterion(\"description like\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotLike(String value) {\n            addCriterion(\"description not like\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIn(List<String> values) {\n            addCriterion(\"description in\", values, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotIn(List<String> values) {\n            addCriterion(\"description not in\", values, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionBetween(String value1, String value2) {\n            addCriterion(\"description between\", value1, value2, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotBetween(String value1, String value2) {\n            addCriterion(\"description not between\", value1, value2, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNull() {\n            addCriterion(\"show_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNotNull() {\n            addCriterion(\"show_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusEqualTo(Integer value) {\n            addCriterion(\"show_status =\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotEqualTo(Integer value) {\n            addCriterion(\"show_status <>\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThan(Integer value) {\n            addCriterion(\"show_status >\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status >=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThan(Integer value) {\n            addCriterion(\"show_status <\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status <=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIn(List<Integer> values) {\n            addCriterion(\"show_status in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotIn(List<Integer> values) {\n            addCriterion(\"show_status not in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status not between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountIsNull() {\n            addCriterion(\"forward_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountIsNotNull() {\n            addCriterion(\"forward_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountEqualTo(Integer value) {\n            addCriterion(\"forward_count =\", value, \"forwardCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountNotEqualTo(Integer value) {\n            addCriterion(\"forward_count <>\", value, \"forwardCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountGreaterThan(Integer value) {\n            addCriterion(\"forward_count >\", value, \"forwardCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"forward_count >=\", value, \"forwardCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountLessThan(Integer value) {\n            addCriterion(\"forward_count <\", value, \"forwardCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"forward_count <=\", value, \"forwardCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountIn(List<Integer> values) {\n            addCriterion(\"forward_count in\", values, \"forwardCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountNotIn(List<Integer> values) {\n            addCriterion(\"forward_count not in\", values, \"forwardCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"forward_count between\", value1, value2, \"forwardCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andForwardCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"forward_count not between\", value1, value2, \"forwardCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameIsNull() {\n            addCriterion(\"category_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameIsNotNull() {\n            addCriterion(\"category_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameEqualTo(String value) {\n            addCriterion(\"category_name =\", value, \"categoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameNotEqualTo(String value) {\n            addCriterion(\"category_name <>\", value, \"categoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameGreaterThan(String value) {\n            addCriterion(\"category_name >\", value, \"categoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"category_name >=\", value, \"categoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameLessThan(String value) {\n            addCriterion(\"category_name <\", value, \"categoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameLessThanOrEqualTo(String value) {\n            addCriterion(\"category_name <=\", value, \"categoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameLike(String value) {\n            addCriterion(\"category_name like\", value, \"categoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameNotLike(String value) {\n            addCriterion(\"category_name not like\", value, \"categoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameIn(List<String> values) {\n            addCriterion(\"category_name in\", values, \"categoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameNotIn(List<String> values) {\n            addCriterion(\"category_name not in\", values, \"categoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameBetween(String value1, String value2) {\n            addCriterion(\"category_name between\", value1, value2, \"categoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryNameNotBetween(String value1, String value2) {\n            addCriterion(\"category_name not between\", value1, value2, \"categoryName\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectProductRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class CmsSubjectProductRelation implements Serializable {\n    private Long id;\n\n    private Long subjectId;\n\n    private Long productId;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getSubjectId() {\n        return subjectId;\n    }\n\n    public void setSubjectId(Long subjectId) {\n        this.subjectId = subjectId;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", subjectId=\").append(subjectId);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsSubjectProductRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class CmsSubjectProductRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsSubjectProductRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdIsNull() {\n            addCriterion(\"subject_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdIsNotNull() {\n            addCriterion(\"subject_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdEqualTo(Long value) {\n            addCriterion(\"subject_id =\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdNotEqualTo(Long value) {\n            addCriterion(\"subject_id <>\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdGreaterThan(Long value) {\n            addCriterion(\"subject_id >\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"subject_id >=\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdLessThan(Long value) {\n            addCriterion(\"subject_id <\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"subject_id <=\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdIn(List<Long> values) {\n            addCriterion(\"subject_id in\", values, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdNotIn(List<Long> values) {\n            addCriterion(\"subject_id not in\", values, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdBetween(Long value1, Long value2) {\n            addCriterion(\"subject_id between\", value1, value2, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"subject_id not between\", value1, value2, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopic.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class CmsTopic implements Serializable {\n    private Long id;\n\n    private Long categoryId;\n\n    private String name;\n\n    private Date createTime;\n\n    private Date startTime;\n\n    private Date endTime;\n\n    @Schema(title = \"参与人数\")\n    private Integer attendCount;\n\n    @Schema(title = \"关注人数\")\n    private Integer attentionCount;\n\n    private Integer readCount;\n\n    @Schema(title = \"奖品名称\")\n    private String awardName;\n\n    @Schema(title = \"参与方式\")\n    private String attendType;\n\n    @Schema(title = \"话题内容\")\n    private String content;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getCategoryId() {\n        return categoryId;\n    }\n\n    public void setCategoryId(Long categoryId) {\n        this.categoryId = categoryId;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Date getStartTime() {\n        return startTime;\n    }\n\n    public void setStartTime(Date startTime) {\n        this.startTime = startTime;\n    }\n\n    public Date getEndTime() {\n        return endTime;\n    }\n\n    public void setEndTime(Date endTime) {\n        this.endTime = endTime;\n    }\n\n    public Integer getAttendCount() {\n        return attendCount;\n    }\n\n    public void setAttendCount(Integer attendCount) {\n        this.attendCount = attendCount;\n    }\n\n    public Integer getAttentionCount() {\n        return attentionCount;\n    }\n\n    public void setAttentionCount(Integer attentionCount) {\n        this.attentionCount = attentionCount;\n    }\n\n    public Integer getReadCount() {\n        return readCount;\n    }\n\n    public void setReadCount(Integer readCount) {\n        this.readCount = readCount;\n    }\n\n    public String getAwardName() {\n        return awardName;\n    }\n\n    public void setAwardName(String awardName) {\n        this.awardName = awardName;\n    }\n\n    public String getAttendType() {\n        return attendType;\n    }\n\n    public void setAttendType(String attendType) {\n        this.attendType = attendType;\n    }\n\n    public String getContent() {\n        return content;\n    }\n\n    public void setContent(String content) {\n        this.content = content;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", categoryId=\").append(categoryId);\n        sb.append(\", name=\").append(name);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", startTime=\").append(startTime);\n        sb.append(\", endTime=\").append(endTime);\n        sb.append(\", attendCount=\").append(attendCount);\n        sb.append(\", attentionCount=\").append(attentionCount);\n        sb.append(\", readCount=\").append(readCount);\n        sb.append(\", awardName=\").append(awardName);\n        sb.append(\", attendType=\").append(attendType);\n        sb.append(\", content=\").append(content);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopicCategory.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class CmsTopicCategory implements Serializable {\n    private Long id;\n\n    private String name;\n\n    @Schema(title = \"分类图标\")\n    private String icon;\n\n    @Schema(title = \"专题数量\")\n    private Integer subjectCount;\n\n    private Integer showStatus;\n\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getIcon() {\n        return icon;\n    }\n\n    public void setIcon(String icon) {\n        this.icon = icon;\n    }\n\n    public Integer getSubjectCount() {\n        return subjectCount;\n    }\n\n    public void setSubjectCount(Integer subjectCount) {\n        this.subjectCount = subjectCount;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", icon=\").append(icon);\n        sb.append(\", subjectCount=\").append(subjectCount);\n        sb.append(\", showStatus=\").append(showStatus);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopicCategoryExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class CmsTopicCategoryExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsTopicCategoryExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNull() {\n            addCriterion(\"icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNotNull() {\n            addCriterion(\"icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconEqualTo(String value) {\n            addCriterion(\"icon =\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotEqualTo(String value) {\n            addCriterion(\"icon <>\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThan(String value) {\n            addCriterion(\"icon >\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"icon >=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThan(String value) {\n            addCriterion(\"icon <\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThanOrEqualTo(String value) {\n            addCriterion(\"icon <=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLike(String value) {\n            addCriterion(\"icon like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotLike(String value) {\n            addCriterion(\"icon not like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIn(List<String> values) {\n            addCriterion(\"icon in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotIn(List<String> values) {\n            addCriterion(\"icon not in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconBetween(String value1, String value2) {\n            addCriterion(\"icon between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotBetween(String value1, String value2) {\n            addCriterion(\"icon not between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountIsNull() {\n            addCriterion(\"subject_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountIsNotNull() {\n            addCriterion(\"subject_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountEqualTo(Integer value) {\n            addCriterion(\"subject_count =\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountNotEqualTo(Integer value) {\n            addCriterion(\"subject_count <>\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountGreaterThan(Integer value) {\n            addCriterion(\"subject_count >\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"subject_count >=\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountLessThan(Integer value) {\n            addCriterion(\"subject_count <\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"subject_count <=\", value, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountIn(List<Integer> values) {\n            addCriterion(\"subject_count in\", values, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountNotIn(List<Integer> values) {\n            addCriterion(\"subject_count not in\", values, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"subject_count between\", value1, value2, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"subject_count not between\", value1, value2, \"subjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNull() {\n            addCriterion(\"show_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNotNull() {\n            addCriterion(\"show_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusEqualTo(Integer value) {\n            addCriterion(\"show_status =\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotEqualTo(Integer value) {\n            addCriterion(\"show_status <>\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThan(Integer value) {\n            addCriterion(\"show_status >\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status >=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThan(Integer value) {\n            addCriterion(\"show_status <\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status <=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIn(List<Integer> values) {\n            addCriterion(\"show_status in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotIn(List<Integer> values) {\n            addCriterion(\"show_status not in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status not between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopicComment.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class CmsTopicComment implements Serializable {\n    private Long id;\n\n    private String memberNickName;\n\n    private Long topicId;\n\n    private String memberIcon;\n\n    private String content;\n\n    private Date createTime;\n\n    private Integer showStatus;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getMemberNickName() {\n        return memberNickName;\n    }\n\n    public void setMemberNickName(String memberNickName) {\n        this.memberNickName = memberNickName;\n    }\n\n    public Long getTopicId() {\n        return topicId;\n    }\n\n    public void setTopicId(Long topicId) {\n        this.topicId = topicId;\n    }\n\n    public String getMemberIcon() {\n        return memberIcon;\n    }\n\n    public void setMemberIcon(String memberIcon) {\n        this.memberIcon = memberIcon;\n    }\n\n    public String getContent() {\n        return content;\n    }\n\n    public void setContent(String content) {\n        this.content = content;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", memberNickName=\").append(memberNickName);\n        sb.append(\", topicId=\").append(topicId);\n        sb.append(\", memberIcon=\").append(memberIcon);\n        sb.append(\", content=\").append(content);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", showStatus=\").append(showStatus);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopicCommentExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class CmsTopicCommentExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsTopicCommentExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIsNull() {\n            addCriterion(\"member_nick_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIsNotNull() {\n            addCriterion(\"member_nick_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameEqualTo(String value) {\n            addCriterion(\"member_nick_name =\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotEqualTo(String value) {\n            addCriterion(\"member_nick_name <>\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameGreaterThan(String value) {\n            addCriterion(\"member_nick_name >\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_nick_name >=\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLessThan(String value) {\n            addCriterion(\"member_nick_name <\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLessThanOrEqualTo(String value) {\n            addCriterion(\"member_nick_name <=\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLike(String value) {\n            addCriterion(\"member_nick_name like\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotLike(String value) {\n            addCriterion(\"member_nick_name not like\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIn(List<String> values) {\n            addCriterion(\"member_nick_name in\", values, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotIn(List<String> values) {\n            addCriterion(\"member_nick_name not in\", values, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameBetween(String value1, String value2) {\n            addCriterion(\"member_nick_name between\", value1, value2, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotBetween(String value1, String value2) {\n            addCriterion(\"member_nick_name not between\", value1, value2, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdIsNull() {\n            addCriterion(\"topic_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdIsNotNull() {\n            addCriterion(\"topic_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdEqualTo(Long value) {\n            addCriterion(\"topic_id =\", value, \"topicId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdNotEqualTo(Long value) {\n            addCriterion(\"topic_id <>\", value, \"topicId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdGreaterThan(Long value) {\n            addCriterion(\"topic_id >\", value, \"topicId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"topic_id >=\", value, \"topicId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdLessThan(Long value) {\n            addCriterion(\"topic_id <\", value, \"topicId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"topic_id <=\", value, \"topicId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdIn(List<Long> values) {\n            addCriterion(\"topic_id in\", values, \"topicId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdNotIn(List<Long> values) {\n            addCriterion(\"topic_id not in\", values, \"topicId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdBetween(Long value1, Long value2) {\n            addCriterion(\"topic_id between\", value1, value2, \"topicId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTopicIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"topic_id not between\", value1, value2, \"topicId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIsNull() {\n            addCriterion(\"member_icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIsNotNull() {\n            addCriterion(\"member_icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconEqualTo(String value) {\n            addCriterion(\"member_icon =\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotEqualTo(String value) {\n            addCriterion(\"member_icon <>\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconGreaterThan(String value) {\n            addCriterion(\"member_icon >\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_icon >=\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLessThan(String value) {\n            addCriterion(\"member_icon <\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLessThanOrEqualTo(String value) {\n            addCriterion(\"member_icon <=\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLike(String value) {\n            addCriterion(\"member_icon like\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotLike(String value) {\n            addCriterion(\"member_icon not like\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIn(List<String> values) {\n            addCriterion(\"member_icon in\", values, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotIn(List<String> values) {\n            addCriterion(\"member_icon not in\", values, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconBetween(String value1, String value2) {\n            addCriterion(\"member_icon between\", value1, value2, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotBetween(String value1, String value2) {\n            addCriterion(\"member_icon not between\", value1, value2, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIsNull() {\n            addCriterion(\"content is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIsNotNull() {\n            addCriterion(\"content is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentEqualTo(String value) {\n            addCriterion(\"content =\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotEqualTo(String value) {\n            addCriterion(\"content <>\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentGreaterThan(String value) {\n            addCriterion(\"content >\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentGreaterThanOrEqualTo(String value) {\n            addCriterion(\"content >=\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLessThan(String value) {\n            addCriterion(\"content <\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLessThanOrEqualTo(String value) {\n            addCriterion(\"content <=\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLike(String value) {\n            addCriterion(\"content like\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotLike(String value) {\n            addCriterion(\"content not like\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIn(List<String> values) {\n            addCriterion(\"content in\", values, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotIn(List<String> values) {\n            addCriterion(\"content not in\", values, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentBetween(String value1, String value2) {\n            addCriterion(\"content between\", value1, value2, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotBetween(String value1, String value2) {\n            addCriterion(\"content not between\", value1, value2, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNull() {\n            addCriterion(\"show_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNotNull() {\n            addCriterion(\"show_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusEqualTo(Integer value) {\n            addCriterion(\"show_status =\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotEqualTo(Integer value) {\n            addCriterion(\"show_status <>\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThan(Integer value) {\n            addCriterion(\"show_status >\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status >=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThan(Integer value) {\n            addCriterion(\"show_status <\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status <=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIn(List<Integer> values) {\n            addCriterion(\"show_status in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotIn(List<Integer> values) {\n            addCriterion(\"show_status not in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status not between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/CmsTopicExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class CmsTopicExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public CmsTopicExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIsNull() {\n            addCriterion(\"category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIsNotNull() {\n            addCriterion(\"category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdEqualTo(Long value) {\n            addCriterion(\"category_id =\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"category_id <>\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdGreaterThan(Long value) {\n            addCriterion(\"category_id >\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"category_id >=\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdLessThan(Long value) {\n            addCriterion(\"category_id <\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"category_id <=\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIn(List<Long> values) {\n            addCriterion(\"category_id in\", values, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"category_id not in\", values, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"category_id between\", value1, value2, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"category_id not between\", value1, value2, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIsNull() {\n            addCriterion(\"start_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIsNotNull() {\n            addCriterion(\"start_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeEqualTo(Date value) {\n            addCriterion(\"start_time =\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotEqualTo(Date value) {\n            addCriterion(\"start_time <>\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeGreaterThan(Date value) {\n            addCriterion(\"start_time >\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"start_time >=\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeLessThan(Date value) {\n            addCriterion(\"start_time <\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"start_time <=\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIn(List<Date> values) {\n            addCriterion(\"start_time in\", values, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotIn(List<Date> values) {\n            addCriterion(\"start_time not in\", values, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeBetween(Date value1, Date value2) {\n            addCriterion(\"start_time between\", value1, value2, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"start_time not between\", value1, value2, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIsNull() {\n            addCriterion(\"end_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIsNotNull() {\n            addCriterion(\"end_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeEqualTo(Date value) {\n            addCriterion(\"end_time =\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotEqualTo(Date value) {\n            addCriterion(\"end_time <>\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeGreaterThan(Date value) {\n            addCriterion(\"end_time >\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"end_time >=\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeLessThan(Date value) {\n            addCriterion(\"end_time <\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"end_time <=\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIn(List<Date> values) {\n            addCriterion(\"end_time in\", values, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotIn(List<Date> values) {\n            addCriterion(\"end_time not in\", values, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeBetween(Date value1, Date value2) {\n            addCriterion(\"end_time between\", value1, value2, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"end_time not between\", value1, value2, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountIsNull() {\n            addCriterion(\"attend_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountIsNotNull() {\n            addCriterion(\"attend_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountEqualTo(Integer value) {\n            addCriterion(\"attend_count =\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountNotEqualTo(Integer value) {\n            addCriterion(\"attend_count <>\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountGreaterThan(Integer value) {\n            addCriterion(\"attend_count >\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"attend_count >=\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountLessThan(Integer value) {\n            addCriterion(\"attend_count <\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"attend_count <=\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountIn(List<Integer> values) {\n            addCriterion(\"attend_count in\", values, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountNotIn(List<Integer> values) {\n            addCriterion(\"attend_count not in\", values, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"attend_count between\", value1, value2, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"attend_count not between\", value1, value2, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountIsNull() {\n            addCriterion(\"attention_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountIsNotNull() {\n            addCriterion(\"attention_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountEqualTo(Integer value) {\n            addCriterion(\"attention_count =\", value, \"attentionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountNotEqualTo(Integer value) {\n            addCriterion(\"attention_count <>\", value, \"attentionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountGreaterThan(Integer value) {\n            addCriterion(\"attention_count >\", value, \"attentionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"attention_count >=\", value, \"attentionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountLessThan(Integer value) {\n            addCriterion(\"attention_count <\", value, \"attentionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"attention_count <=\", value, \"attentionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountIn(List<Integer> values) {\n            addCriterion(\"attention_count in\", values, \"attentionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountNotIn(List<Integer> values) {\n            addCriterion(\"attention_count not in\", values, \"attentionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"attention_count between\", value1, value2, \"attentionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttentionCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"attention_count not between\", value1, value2, \"attentionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIsNull() {\n            addCriterion(\"read_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIsNotNull() {\n            addCriterion(\"read_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountEqualTo(Integer value) {\n            addCriterion(\"read_count =\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotEqualTo(Integer value) {\n            addCriterion(\"read_count <>\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountGreaterThan(Integer value) {\n            addCriterion(\"read_count >\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"read_count >=\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountLessThan(Integer value) {\n            addCriterion(\"read_count <\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"read_count <=\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIn(List<Integer> values) {\n            addCriterion(\"read_count in\", values, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotIn(List<Integer> values) {\n            addCriterion(\"read_count not in\", values, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"read_count between\", value1, value2, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"read_count not between\", value1, value2, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameIsNull() {\n            addCriterion(\"award_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameIsNotNull() {\n            addCriterion(\"award_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameEqualTo(String value) {\n            addCriterion(\"award_name =\", value, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameNotEqualTo(String value) {\n            addCriterion(\"award_name <>\", value, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameGreaterThan(String value) {\n            addCriterion(\"award_name >\", value, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"award_name >=\", value, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameLessThan(String value) {\n            addCriterion(\"award_name <\", value, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameLessThanOrEqualTo(String value) {\n            addCriterion(\"award_name <=\", value, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameLike(String value) {\n            addCriterion(\"award_name like\", value, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameNotLike(String value) {\n            addCriterion(\"award_name not like\", value, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameIn(List<String> values) {\n            addCriterion(\"award_name in\", values, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameNotIn(List<String> values) {\n            addCriterion(\"award_name not in\", values, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameBetween(String value1, String value2) {\n            addCriterion(\"award_name between\", value1, value2, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAwardNameNotBetween(String value1, String value2) {\n            addCriterion(\"award_name not between\", value1, value2, \"awardName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeIsNull() {\n            addCriterion(\"attend_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeIsNotNull() {\n            addCriterion(\"attend_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeEqualTo(String value) {\n            addCriterion(\"attend_type =\", value, \"attendType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeNotEqualTo(String value) {\n            addCriterion(\"attend_type <>\", value, \"attendType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeGreaterThan(String value) {\n            addCriterion(\"attend_type >\", value, \"attendType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"attend_type >=\", value, \"attendType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeLessThan(String value) {\n            addCriterion(\"attend_type <\", value, \"attendType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeLessThanOrEqualTo(String value) {\n            addCriterion(\"attend_type <=\", value, \"attendType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeLike(String value) {\n            addCriterion(\"attend_type like\", value, \"attendType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeNotLike(String value) {\n            addCriterion(\"attend_type not like\", value, \"attendType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeIn(List<String> values) {\n            addCriterion(\"attend_type in\", values, \"attendType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeNotIn(List<String> values) {\n            addCriterion(\"attend_type not in\", values, \"attendType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeBetween(String value1, String value2) {\n            addCriterion(\"attend_type between\", value1, value2, \"attendType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendTypeNotBetween(String value1, String value2) {\n            addCriterion(\"attend_type not between\", value1, value2, \"attendType\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsCartItem.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\nimport java.util.Date;\n\npublic class OmsCartItem implements Serializable {\n    private Long id;\n\n    private Long productId;\n\n    private Long productSkuId;\n\n    private Long memberId;\n\n    @Schema(title = \"购买数量\")\n    private Integer quantity;\n\n    @Schema(title = \"添加到购物车的价格\")\n    private BigDecimal price;\n\n    @Schema(title = \"商品主图\")\n    private String productPic;\n\n    @Schema(title = \"商品名称\")\n    private String productName;\n\n    @Schema(title = \"商品副标题（卖点）\")\n    private String productSubTitle;\n\n    @Schema(title = \"商品sku条码\")\n    private String productSkuCode;\n\n    @Schema(title = \"会员昵称\")\n    private String memberNickname;\n\n    @Schema(title = \"创建时间\")\n    private Date createDate;\n\n    @Schema(title = \"修改时间\")\n    private Date modifyDate;\n\n    @Schema(title = \"是否删除\")\n    private Integer deleteStatus;\n\n    @Schema(title = \"商品分类\")\n    private Long productCategoryId;\n\n    private String productBrand;\n\n    private String productSn;\n\n    @Schema(title = \"商品销售属性:[{'key':'颜色','value':'颜色'},{'key':'容量','value':'4G'}]\")\n    private String productAttr;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public Long getProductSkuId() {\n        return productSkuId;\n    }\n\n    public void setProductSkuId(Long productSkuId) {\n        this.productSkuId = productSkuId;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public Integer getQuantity() {\n        return quantity;\n    }\n\n    public void setQuantity(Integer quantity) {\n        this.quantity = quantity;\n    }\n\n    public BigDecimal getPrice() {\n        return price;\n    }\n\n    public void setPrice(BigDecimal price) {\n        this.price = price;\n    }\n\n    public String getProductPic() {\n        return productPic;\n    }\n\n    public void setProductPic(String productPic) {\n        this.productPic = productPic;\n    }\n\n    public String getProductName() {\n        return productName;\n    }\n\n    public void setProductName(String productName) {\n        this.productName = productName;\n    }\n\n    public String getProductSubTitle() {\n        return productSubTitle;\n    }\n\n    public void setProductSubTitle(String productSubTitle) {\n        this.productSubTitle = productSubTitle;\n    }\n\n    public String getProductSkuCode() {\n        return productSkuCode;\n    }\n\n    public void setProductSkuCode(String productSkuCode) {\n        this.productSkuCode = productSkuCode;\n    }\n\n    public String getMemberNickname() {\n        return memberNickname;\n    }\n\n    public void setMemberNickname(String memberNickname) {\n        this.memberNickname = memberNickname;\n    }\n\n    public Date getCreateDate() {\n        return createDate;\n    }\n\n    public void setCreateDate(Date createDate) {\n        this.createDate = createDate;\n    }\n\n    public Date getModifyDate() {\n        return modifyDate;\n    }\n\n    public void setModifyDate(Date modifyDate) {\n        this.modifyDate = modifyDate;\n    }\n\n    public Integer getDeleteStatus() {\n        return deleteStatus;\n    }\n\n    public void setDeleteStatus(Integer deleteStatus) {\n        this.deleteStatus = deleteStatus;\n    }\n\n    public Long getProductCategoryId() {\n        return productCategoryId;\n    }\n\n    public void setProductCategoryId(Long productCategoryId) {\n        this.productCategoryId = productCategoryId;\n    }\n\n    public String getProductBrand() {\n        return productBrand;\n    }\n\n    public void setProductBrand(String productBrand) {\n        this.productBrand = productBrand;\n    }\n\n    public String getProductSn() {\n        return productSn;\n    }\n\n    public void setProductSn(String productSn) {\n        this.productSn = productSn;\n    }\n\n    public String getProductAttr() {\n        return productAttr;\n    }\n\n    public void setProductAttr(String productAttr) {\n        this.productAttr = productAttr;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", productSkuId=\").append(productSkuId);\n        sb.append(\", memberId=\").append(memberId);\n        sb.append(\", quantity=\").append(quantity);\n        sb.append(\", price=\").append(price);\n        sb.append(\", productPic=\").append(productPic);\n        sb.append(\", productName=\").append(productName);\n        sb.append(\", productSubTitle=\").append(productSubTitle);\n        sb.append(\", productSkuCode=\").append(productSkuCode);\n        sb.append(\", memberNickname=\").append(memberNickname);\n        sb.append(\", createDate=\").append(createDate);\n        sb.append(\", modifyDate=\").append(modifyDate);\n        sb.append(\", deleteStatus=\").append(deleteStatus);\n        sb.append(\", productCategoryId=\").append(productCategoryId);\n        sb.append(\", productBrand=\").append(productBrand);\n        sb.append(\", productSn=\").append(productSn);\n        sb.append(\", productAttr=\").append(productAttr);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsCartItemExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class OmsCartItemExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public OmsCartItemExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdIsNull() {\n            addCriterion(\"product_sku_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdIsNotNull() {\n            addCriterion(\"product_sku_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdEqualTo(Long value) {\n            addCriterion(\"product_sku_id =\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdNotEqualTo(Long value) {\n            addCriterion(\"product_sku_id <>\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdGreaterThan(Long value) {\n            addCriterion(\"product_sku_id >\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_sku_id >=\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdLessThan(Long value) {\n            addCriterion(\"product_sku_id <\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_sku_id <=\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdIn(List<Long> values) {\n            addCriterion(\"product_sku_id in\", values, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdNotIn(List<Long> values) {\n            addCriterion(\"product_sku_id not in\", values, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_sku_id between\", value1, value2, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_sku_id not between\", value1, value2, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNull() {\n            addCriterion(\"member_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNotNull() {\n            addCriterion(\"member_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdEqualTo(Long value) {\n            addCriterion(\"member_id =\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotEqualTo(Long value) {\n            addCriterion(\"member_id <>\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThan(Long value) {\n            addCriterion(\"member_id >\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_id >=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThan(Long value) {\n            addCriterion(\"member_id <\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_id <=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIn(List<Long> values) {\n            addCriterion(\"member_id in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotIn(List<Long> values) {\n            addCriterion(\"member_id not in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_id between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_id not between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityIsNull() {\n            addCriterion(\"quantity is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityIsNotNull() {\n            addCriterion(\"quantity is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityEqualTo(Integer value) {\n            addCriterion(\"quantity =\", value, \"quantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityNotEqualTo(Integer value) {\n            addCriterion(\"quantity <>\", value, \"quantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityGreaterThan(Integer value) {\n            addCriterion(\"quantity >\", value, \"quantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"quantity >=\", value, \"quantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityLessThan(Integer value) {\n            addCriterion(\"quantity <\", value, \"quantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityLessThanOrEqualTo(Integer value) {\n            addCriterion(\"quantity <=\", value, \"quantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityIn(List<Integer> values) {\n            addCriterion(\"quantity in\", values, \"quantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityNotIn(List<Integer> values) {\n            addCriterion(\"quantity not in\", values, \"quantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityBetween(Integer value1, Integer value2) {\n            addCriterion(\"quantity between\", value1, value2, \"quantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andQuantityNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"quantity not between\", value1, value2, \"quantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIsNull() {\n            addCriterion(\"price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIsNotNull() {\n            addCriterion(\"price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceEqualTo(BigDecimal value) {\n            addCriterion(\"price =\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"price <>\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"price >\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price >=\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceLessThan(BigDecimal value) {\n            addCriterion(\"price <\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price <=\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIn(List<BigDecimal> values) {\n            addCriterion(\"price in\", values, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"price not in\", values, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price between\", value1, value2, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price not between\", value1, value2, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicIsNull() {\n            addCriterion(\"product_pic is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicIsNotNull() {\n            addCriterion(\"product_pic is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicEqualTo(String value) {\n            addCriterion(\"product_pic =\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotEqualTo(String value) {\n            addCriterion(\"product_pic <>\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicGreaterThan(String value) {\n            addCriterion(\"product_pic >\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_pic >=\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicLessThan(String value) {\n            addCriterion(\"product_pic <\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicLessThanOrEqualTo(String value) {\n            addCriterion(\"product_pic <=\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicLike(String value) {\n            addCriterion(\"product_pic like\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotLike(String value) {\n            addCriterion(\"product_pic not like\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicIn(List<String> values) {\n            addCriterion(\"product_pic in\", values, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotIn(List<String> values) {\n            addCriterion(\"product_pic not in\", values, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicBetween(String value1, String value2) {\n            addCriterion(\"product_pic between\", value1, value2, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotBetween(String value1, String value2) {\n            addCriterion(\"product_pic not between\", value1, value2, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNull() {\n            addCriterion(\"product_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNotNull() {\n            addCriterion(\"product_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameEqualTo(String value) {\n            addCriterion(\"product_name =\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotEqualTo(String value) {\n            addCriterion(\"product_name <>\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThan(String value) {\n            addCriterion(\"product_name >\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_name >=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThan(String value) {\n            addCriterion(\"product_name <\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThanOrEqualTo(String value) {\n            addCriterion(\"product_name <=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLike(String value) {\n            addCriterion(\"product_name like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotLike(String value) {\n            addCriterion(\"product_name not like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIn(List<String> values) {\n            addCriterion(\"product_name in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotIn(List<String> values) {\n            addCriterion(\"product_name not in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameBetween(String value1, String value2) {\n            addCriterion(\"product_name between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotBetween(String value1, String value2) {\n            addCriterion(\"product_name not between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleIsNull() {\n            addCriterion(\"product_sub_title is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleIsNotNull() {\n            addCriterion(\"product_sub_title is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleEqualTo(String value) {\n            addCriterion(\"product_sub_title =\", value, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleNotEqualTo(String value) {\n            addCriterion(\"product_sub_title <>\", value, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleGreaterThan(String value) {\n            addCriterion(\"product_sub_title >\", value, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_sub_title >=\", value, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleLessThan(String value) {\n            addCriterion(\"product_sub_title <\", value, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleLessThanOrEqualTo(String value) {\n            addCriterion(\"product_sub_title <=\", value, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleLike(String value) {\n            addCriterion(\"product_sub_title like\", value, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleNotLike(String value) {\n            addCriterion(\"product_sub_title not like\", value, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleIn(List<String> values) {\n            addCriterion(\"product_sub_title in\", values, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleNotIn(List<String> values) {\n            addCriterion(\"product_sub_title not in\", values, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleBetween(String value1, String value2) {\n            addCriterion(\"product_sub_title between\", value1, value2, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSubTitleNotBetween(String value1, String value2) {\n            addCriterion(\"product_sub_title not between\", value1, value2, \"productSubTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeIsNull() {\n            addCriterion(\"product_sku_code is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeIsNotNull() {\n            addCriterion(\"product_sku_code is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeEqualTo(String value) {\n            addCriterion(\"product_sku_code =\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeNotEqualTo(String value) {\n            addCriterion(\"product_sku_code <>\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeGreaterThan(String value) {\n            addCriterion(\"product_sku_code >\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_sku_code >=\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeLessThan(String value) {\n            addCriterion(\"product_sku_code <\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeLessThanOrEqualTo(String value) {\n            addCriterion(\"product_sku_code <=\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeLike(String value) {\n            addCriterion(\"product_sku_code like\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeNotLike(String value) {\n            addCriterion(\"product_sku_code not like\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeIn(List<String> values) {\n            addCriterion(\"product_sku_code in\", values, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeNotIn(List<String> values) {\n            addCriterion(\"product_sku_code not in\", values, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeBetween(String value1, String value2) {\n            addCriterion(\"product_sku_code between\", value1, value2, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeNotBetween(String value1, String value2) {\n            addCriterion(\"product_sku_code not between\", value1, value2, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameIsNull() {\n            addCriterion(\"member_nickname is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameIsNotNull() {\n            addCriterion(\"member_nickname is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameEqualTo(String value) {\n            addCriterion(\"member_nickname =\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameNotEqualTo(String value) {\n            addCriterion(\"member_nickname <>\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameGreaterThan(String value) {\n            addCriterion(\"member_nickname >\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_nickname >=\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameLessThan(String value) {\n            addCriterion(\"member_nickname <\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameLessThanOrEqualTo(String value) {\n            addCriterion(\"member_nickname <=\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameLike(String value) {\n            addCriterion(\"member_nickname like\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameNotLike(String value) {\n            addCriterion(\"member_nickname not like\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameIn(List<String> values) {\n            addCriterion(\"member_nickname in\", values, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameNotIn(List<String> values) {\n            addCriterion(\"member_nickname not in\", values, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameBetween(String value1, String value2) {\n            addCriterion(\"member_nickname between\", value1, value2, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameNotBetween(String value1, String value2) {\n            addCriterion(\"member_nickname not between\", value1, value2, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateIsNull() {\n            addCriterion(\"create_date is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateIsNotNull() {\n            addCriterion(\"create_date is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateEqualTo(Date value) {\n            addCriterion(\"create_date =\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateNotEqualTo(Date value) {\n            addCriterion(\"create_date <>\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateGreaterThan(Date value) {\n            addCriterion(\"create_date >\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_date >=\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateLessThan(Date value) {\n            addCriterion(\"create_date <\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_date <=\", value, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateIn(List<Date> values) {\n            addCriterion(\"create_date in\", values, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateNotIn(List<Date> values) {\n            addCriterion(\"create_date not in\", values, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateBetween(Date value1, Date value2) {\n            addCriterion(\"create_date between\", value1, value2, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateDateNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_date not between\", value1, value2, \"createDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateIsNull() {\n            addCriterion(\"modify_date is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateIsNotNull() {\n            addCriterion(\"modify_date is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateEqualTo(Date value) {\n            addCriterion(\"modify_date =\", value, \"modifyDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateNotEqualTo(Date value) {\n            addCriterion(\"modify_date <>\", value, \"modifyDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateGreaterThan(Date value) {\n            addCriterion(\"modify_date >\", value, \"modifyDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"modify_date >=\", value, \"modifyDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateLessThan(Date value) {\n            addCriterion(\"modify_date <\", value, \"modifyDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateLessThanOrEqualTo(Date value) {\n            addCriterion(\"modify_date <=\", value, \"modifyDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateIn(List<Date> values) {\n            addCriterion(\"modify_date in\", values, \"modifyDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateNotIn(List<Date> values) {\n            addCriterion(\"modify_date not in\", values, \"modifyDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateBetween(Date value1, Date value2) {\n            addCriterion(\"modify_date between\", value1, value2, \"modifyDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyDateNotBetween(Date value1, Date value2) {\n            addCriterion(\"modify_date not between\", value1, value2, \"modifyDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusIsNull() {\n            addCriterion(\"delete_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusIsNotNull() {\n            addCriterion(\"delete_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusEqualTo(Integer value) {\n            addCriterion(\"delete_status =\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusNotEqualTo(Integer value) {\n            addCriterion(\"delete_status <>\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusGreaterThan(Integer value) {\n            addCriterion(\"delete_status >\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"delete_status >=\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusLessThan(Integer value) {\n            addCriterion(\"delete_status <\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"delete_status <=\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusIn(List<Integer> values) {\n            addCriterion(\"delete_status in\", values, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusNotIn(List<Integer> values) {\n            addCriterion(\"delete_status not in\", values, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"delete_status between\", value1, value2, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"delete_status not between\", value1, value2, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNull() {\n            addCriterion(\"product_category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNotNull() {\n            addCriterion(\"product_category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdEqualTo(Long value) {\n            addCriterion(\"product_category_id =\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"product_category_id <>\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThan(Long value) {\n            addCriterion(\"product_category_id >\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id >=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThan(Long value) {\n            addCriterion(\"product_category_id <\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id <=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIn(List<Long> values) {\n            addCriterion(\"product_category_id in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"product_category_id not in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id not between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandIsNull() {\n            addCriterion(\"product_brand is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandIsNotNull() {\n            addCriterion(\"product_brand is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandEqualTo(String value) {\n            addCriterion(\"product_brand =\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotEqualTo(String value) {\n            addCriterion(\"product_brand <>\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandGreaterThan(String value) {\n            addCriterion(\"product_brand >\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_brand >=\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandLessThan(String value) {\n            addCriterion(\"product_brand <\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandLessThanOrEqualTo(String value) {\n            addCriterion(\"product_brand <=\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandLike(String value) {\n            addCriterion(\"product_brand like\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotLike(String value) {\n            addCriterion(\"product_brand not like\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandIn(List<String> values) {\n            addCriterion(\"product_brand in\", values, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotIn(List<String> values) {\n            addCriterion(\"product_brand not in\", values, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandBetween(String value1, String value2) {\n            addCriterion(\"product_brand between\", value1, value2, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotBetween(String value1, String value2) {\n            addCriterion(\"product_brand not between\", value1, value2, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIsNull() {\n            addCriterion(\"product_sn is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIsNotNull() {\n            addCriterion(\"product_sn is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnEqualTo(String value) {\n            addCriterion(\"product_sn =\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotEqualTo(String value) {\n            addCriterion(\"product_sn <>\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnGreaterThan(String value) {\n            addCriterion(\"product_sn >\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_sn >=\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLessThan(String value) {\n            addCriterion(\"product_sn <\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLessThanOrEqualTo(String value) {\n            addCriterion(\"product_sn <=\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLike(String value) {\n            addCriterion(\"product_sn like\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotLike(String value) {\n            addCriterion(\"product_sn not like\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIn(List<String> values) {\n            addCriterion(\"product_sn in\", values, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotIn(List<String> values) {\n            addCriterion(\"product_sn not in\", values, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnBetween(String value1, String value2) {\n            addCriterion(\"product_sn between\", value1, value2, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotBetween(String value1, String value2) {\n            addCriterion(\"product_sn not between\", value1, value2, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrIsNull() {\n            addCriterion(\"product_attr is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrIsNotNull() {\n            addCriterion(\"product_attr is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrEqualTo(String value) {\n            addCriterion(\"product_attr =\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotEqualTo(String value) {\n            addCriterion(\"product_attr <>\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrGreaterThan(String value) {\n            addCriterion(\"product_attr >\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_attr >=\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrLessThan(String value) {\n            addCriterion(\"product_attr <\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrLessThanOrEqualTo(String value) {\n            addCriterion(\"product_attr <=\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrLike(String value) {\n            addCriterion(\"product_attr like\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotLike(String value) {\n            addCriterion(\"product_attr not like\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrIn(List<String> values) {\n            addCriterion(\"product_attr in\", values, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotIn(List<String> values) {\n            addCriterion(\"product_attr not in\", values, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrBetween(String value1, String value2) {\n            addCriterion(\"product_attr between\", value1, value2, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotBetween(String value1, String value2) {\n            addCriterion(\"product_attr not between\", value1, value2, \"productAttr\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsCompanyAddress.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class OmsCompanyAddress implements Serializable {\n    private Long id;\n\n    @Schema(title = \"地址名称\")\n    private String addressName;\n\n    @Schema(title = \"默认发货地址：0->否；1->是\")\n    private Integer sendStatus;\n\n    @Schema(title = \"是否默认收货地址：0->否；1->是\")\n    private Integer receiveStatus;\n\n    @Schema(title = \"收发货人姓名\")\n    private String name;\n\n    @Schema(title = \"收货人电话\")\n    private String phone;\n\n    @Schema(title = \"省/直辖市\")\n    private String province;\n\n    @Schema(title = \"市\")\n    private String city;\n\n    @Schema(title = \"区\")\n    private String region;\n\n    @Schema(title = \"详细地址\")\n    private String detailAddress;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getAddressName() {\n        return addressName;\n    }\n\n    public void setAddressName(String addressName) {\n        this.addressName = addressName;\n    }\n\n    public Integer getSendStatus() {\n        return sendStatus;\n    }\n\n    public void setSendStatus(Integer sendStatus) {\n        this.sendStatus = sendStatus;\n    }\n\n    public Integer getReceiveStatus() {\n        return receiveStatus;\n    }\n\n    public void setReceiveStatus(Integer receiveStatus) {\n        this.receiveStatus = receiveStatus;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getPhone() {\n        return phone;\n    }\n\n    public void setPhone(String phone) {\n        this.phone = phone;\n    }\n\n    public String getProvince() {\n        return province;\n    }\n\n    public void setProvince(String province) {\n        this.province = province;\n    }\n\n    public String getCity() {\n        return city;\n    }\n\n    public void setCity(String city) {\n        this.city = city;\n    }\n\n    public String getRegion() {\n        return region;\n    }\n\n    public void setRegion(String region) {\n        this.region = region;\n    }\n\n    public String getDetailAddress() {\n        return detailAddress;\n    }\n\n    public void setDetailAddress(String detailAddress) {\n        this.detailAddress = detailAddress;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", addressName=\").append(addressName);\n        sb.append(\", sendStatus=\").append(sendStatus);\n        sb.append(\", receiveStatus=\").append(receiveStatus);\n        sb.append(\", name=\").append(name);\n        sb.append(\", phone=\").append(phone);\n        sb.append(\", province=\").append(province);\n        sb.append(\", city=\").append(city);\n        sb.append(\", region=\").append(region);\n        sb.append(\", detailAddress=\").append(detailAddress);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsCompanyAddressExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class OmsCompanyAddressExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public OmsCompanyAddressExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameIsNull() {\n            addCriterion(\"address_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameIsNotNull() {\n            addCriterion(\"address_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameEqualTo(String value) {\n            addCriterion(\"address_name =\", value, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameNotEqualTo(String value) {\n            addCriterion(\"address_name <>\", value, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameGreaterThan(String value) {\n            addCriterion(\"address_name >\", value, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"address_name >=\", value, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameLessThan(String value) {\n            addCriterion(\"address_name <\", value, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameLessThanOrEqualTo(String value) {\n            addCriterion(\"address_name <=\", value, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameLike(String value) {\n            addCriterion(\"address_name like\", value, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameNotLike(String value) {\n            addCriterion(\"address_name not like\", value, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameIn(List<String> values) {\n            addCriterion(\"address_name in\", values, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameNotIn(List<String> values) {\n            addCriterion(\"address_name not in\", values, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameBetween(String value1, String value2) {\n            addCriterion(\"address_name between\", value1, value2, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNameNotBetween(String value1, String value2) {\n            addCriterion(\"address_name not between\", value1, value2, \"addressName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusIsNull() {\n            addCriterion(\"send_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusIsNotNull() {\n            addCriterion(\"send_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusEqualTo(Integer value) {\n            addCriterion(\"send_status =\", value, \"sendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusNotEqualTo(Integer value) {\n            addCriterion(\"send_status <>\", value, \"sendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusGreaterThan(Integer value) {\n            addCriterion(\"send_status >\", value, \"sendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"send_status >=\", value, \"sendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusLessThan(Integer value) {\n            addCriterion(\"send_status <\", value, \"sendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"send_status <=\", value, \"sendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusIn(List<Integer> values) {\n            addCriterion(\"send_status in\", values, \"sendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusNotIn(List<Integer> values) {\n            addCriterion(\"send_status not in\", values, \"sendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"send_status between\", value1, value2, \"sendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"send_status not between\", value1, value2, \"sendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusIsNull() {\n            addCriterion(\"receive_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusIsNotNull() {\n            addCriterion(\"receive_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusEqualTo(Integer value) {\n            addCriterion(\"receive_status =\", value, \"receiveStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusNotEqualTo(Integer value) {\n            addCriterion(\"receive_status <>\", value, \"receiveStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusGreaterThan(Integer value) {\n            addCriterion(\"receive_status >\", value, \"receiveStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"receive_status >=\", value, \"receiveStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusLessThan(Integer value) {\n            addCriterion(\"receive_status <\", value, \"receiveStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"receive_status <=\", value, \"receiveStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusIn(List<Integer> values) {\n            addCriterion(\"receive_status in\", values, \"receiveStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusNotIn(List<Integer> values) {\n            addCriterion(\"receive_status not in\", values, \"receiveStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"receive_status between\", value1, value2, \"receiveStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"receive_status not between\", value1, value2, \"receiveStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneIsNull() {\n            addCriterion(\"phone is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneIsNotNull() {\n            addCriterion(\"phone is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneEqualTo(String value) {\n            addCriterion(\"phone =\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNotEqualTo(String value) {\n            addCriterion(\"phone <>\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneGreaterThan(String value) {\n            addCriterion(\"phone >\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneGreaterThanOrEqualTo(String value) {\n            addCriterion(\"phone >=\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneLessThan(String value) {\n            addCriterion(\"phone <\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneLessThanOrEqualTo(String value) {\n            addCriterion(\"phone <=\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneLike(String value) {\n            addCriterion(\"phone like\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNotLike(String value) {\n            addCriterion(\"phone not like\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneIn(List<String> values) {\n            addCriterion(\"phone in\", values, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNotIn(List<String> values) {\n            addCriterion(\"phone not in\", values, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneBetween(String value1, String value2) {\n            addCriterion(\"phone between\", value1, value2, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNotBetween(String value1, String value2) {\n            addCriterion(\"phone not between\", value1, value2, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceIsNull() {\n            addCriterion(\"province is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceIsNotNull() {\n            addCriterion(\"province is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceEqualTo(String value) {\n            addCriterion(\"province =\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotEqualTo(String value) {\n            addCriterion(\"province <>\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceGreaterThan(String value) {\n            addCriterion(\"province >\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceGreaterThanOrEqualTo(String value) {\n            addCriterion(\"province >=\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceLessThan(String value) {\n            addCriterion(\"province <\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceLessThanOrEqualTo(String value) {\n            addCriterion(\"province <=\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceLike(String value) {\n            addCriterion(\"province like\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotLike(String value) {\n            addCriterion(\"province not like\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceIn(List<String> values) {\n            addCriterion(\"province in\", values, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotIn(List<String> values) {\n            addCriterion(\"province not in\", values, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceBetween(String value1, String value2) {\n            addCriterion(\"province between\", value1, value2, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotBetween(String value1, String value2) {\n            addCriterion(\"province not between\", value1, value2, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIsNull() {\n            addCriterion(\"city is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIsNotNull() {\n            addCriterion(\"city is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityEqualTo(String value) {\n            addCriterion(\"city =\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotEqualTo(String value) {\n            addCriterion(\"city <>\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityGreaterThan(String value) {\n            addCriterion(\"city >\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityGreaterThanOrEqualTo(String value) {\n            addCriterion(\"city >=\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLessThan(String value) {\n            addCriterion(\"city <\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLessThanOrEqualTo(String value) {\n            addCriterion(\"city <=\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLike(String value) {\n            addCriterion(\"city like\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotLike(String value) {\n            addCriterion(\"city not like\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIn(List<String> values) {\n            addCriterion(\"city in\", values, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotIn(List<String> values) {\n            addCriterion(\"city not in\", values, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityBetween(String value1, String value2) {\n            addCriterion(\"city between\", value1, value2, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotBetween(String value1, String value2) {\n            addCriterion(\"city not between\", value1, value2, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionIsNull() {\n            addCriterion(\"region is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionIsNotNull() {\n            addCriterion(\"region is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionEqualTo(String value) {\n            addCriterion(\"region =\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionNotEqualTo(String value) {\n            addCriterion(\"region <>\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionGreaterThan(String value) {\n            addCriterion(\"region >\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionGreaterThanOrEqualTo(String value) {\n            addCriterion(\"region >=\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionLessThan(String value) {\n            addCriterion(\"region <\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionLessThanOrEqualTo(String value) {\n            addCriterion(\"region <=\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionLike(String value) {\n            addCriterion(\"region like\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionNotLike(String value) {\n            addCriterion(\"region not like\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionIn(List<String> values) {\n            addCriterion(\"region in\", values, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionNotIn(List<String> values) {\n            addCriterion(\"region not in\", values, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionBetween(String value1, String value2) {\n            addCriterion(\"region between\", value1, value2, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionNotBetween(String value1, String value2) {\n            addCriterion(\"region not between\", value1, value2, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressIsNull() {\n            addCriterion(\"detail_address is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressIsNotNull() {\n            addCriterion(\"detail_address is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressEqualTo(String value) {\n            addCriterion(\"detail_address =\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressNotEqualTo(String value) {\n            addCriterion(\"detail_address <>\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressGreaterThan(String value) {\n            addCriterion(\"detail_address >\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressGreaterThanOrEqualTo(String value) {\n            addCriterion(\"detail_address >=\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressLessThan(String value) {\n            addCriterion(\"detail_address <\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressLessThanOrEqualTo(String value) {\n            addCriterion(\"detail_address <=\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressLike(String value) {\n            addCriterion(\"detail_address like\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressNotLike(String value) {\n            addCriterion(\"detail_address not like\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressIn(List<String> values) {\n            addCriterion(\"detail_address in\", values, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressNotIn(List<String> values) {\n            addCriterion(\"detail_address not in\", values, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressBetween(String value1, String value2) {\n            addCriterion(\"detail_address between\", value1, value2, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressNotBetween(String value1, String value2) {\n            addCriterion(\"detail_address not between\", value1, value2, \"detailAddress\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrder.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\nimport java.util.Date;\n\npublic class OmsOrder implements Serializable {\n    @Schema(title = \"订单id\")\n    private Long id;\n\n    private Long memberId;\n\n    private Long couponId;\n\n    @Schema(title = \"订单编号\")\n    private String orderSn;\n\n    @Schema(title = \"提交时间\")\n    private Date createTime;\n\n    @Schema(title = \"用户帐号\")\n    private String memberUsername;\n\n    @Schema(title = \"订单总金额\")\n    private BigDecimal totalAmount;\n\n    @Schema(title = \"应付金额（实际支付金额）\")\n    private BigDecimal payAmount;\n\n    @Schema(title = \"运费金额\")\n    private BigDecimal freightAmount;\n\n    @Schema(title = \"促销优化金额（促销价、满减、阶梯价）\")\n    private BigDecimal promotionAmount;\n\n    @Schema(title = \"积分抵扣金额\")\n    private BigDecimal integrationAmount;\n\n    @Schema(title = \"优惠券抵扣金额\")\n    private BigDecimal couponAmount;\n\n    @Schema(title = \"管理员后台调整订单使用的折扣金额\")\n    private BigDecimal discountAmount;\n\n    @Schema(title = \"支付方式：0->未支付；1->支付宝；2->微信\")\n    private Integer payType;\n\n    @Schema(title = \"订单来源：0->PC订单；1->app订单\")\n    private Integer sourceType;\n\n    @Schema(title = \"订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单\")\n    private Integer status;\n\n    @Schema(title = \"订单类型：0->正常订单；1->秒杀订单\")\n    private Integer orderType;\n\n    @Schema(title = \"物流公司(配送方式)\")\n    private String deliveryCompany;\n\n    @Schema(title = \"物流单号\")\n    private String deliverySn;\n\n    @Schema(title = \"自动确认时间（天）\")\n    private Integer autoConfirmDay;\n\n    @Schema(title = \"可以获得的积分\")\n    private Integer integration;\n\n    @Schema(title = \"可以活动的成长值\")\n    private Integer growth;\n\n    @Schema(title = \"活动信息\")\n    private String promotionInfo;\n\n    @Schema(title = \"发票类型：0->不开发票；1->电子发票；2->纸质发票\")\n    private Integer billType;\n\n    @Schema(title = \"发票抬头\")\n    private String billHeader;\n\n    @Schema(title = \"发票内容\")\n    private String billContent;\n\n    @Schema(title = \"收票人电话\")\n    private String billReceiverPhone;\n\n    @Schema(title = \"收票人邮箱\")\n    private String billReceiverEmail;\n\n    @Schema(title = \"收货人姓名\")\n    private String receiverName;\n\n    @Schema(title = \"收货人电话\")\n    private String receiverPhone;\n\n    @Schema(title = \"收货人邮编\")\n    private String receiverPostCode;\n\n    @Schema(title = \"省份/直辖市\")\n    private String receiverProvince;\n\n    @Schema(title = \"城市\")\n    private String receiverCity;\n\n    @Schema(title = \"区\")\n    private String receiverRegion;\n\n    @Schema(title = \"详细地址\")\n    private String receiverDetailAddress;\n\n    @Schema(title = \"订单备注\")\n    private String note;\n\n    @Schema(title = \"确认收货状态：0->未确认；1->已确认\")\n    private Integer confirmStatus;\n\n    @Schema(title = \"删除状态：0->未删除；1->已删除\")\n    private Integer deleteStatus;\n\n    @Schema(title = \"下单时使用的积分\")\n    private Integer useIntegration;\n\n    @Schema(title = \"支付时间\")\n    private Date paymentTime;\n\n    @Schema(title = \"发货时间\")\n    private Date deliveryTime;\n\n    @Schema(title = \"确认收货时间\")\n    private Date receiveTime;\n\n    @Schema(title = \"评价时间\")\n    private Date commentTime;\n\n    @Schema(title = \"修改时间\")\n    private Date modifyTime;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public Long getCouponId() {\n        return couponId;\n    }\n\n    public void setCouponId(Long couponId) {\n        this.couponId = couponId;\n    }\n\n    public String getOrderSn() {\n        return orderSn;\n    }\n\n    public void setOrderSn(String orderSn) {\n        this.orderSn = orderSn;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public String getMemberUsername() {\n        return memberUsername;\n    }\n\n    public void setMemberUsername(String memberUsername) {\n        this.memberUsername = memberUsername;\n    }\n\n    public BigDecimal getTotalAmount() {\n        return totalAmount;\n    }\n\n    public void setTotalAmount(BigDecimal totalAmount) {\n        this.totalAmount = totalAmount;\n    }\n\n    public BigDecimal getPayAmount() {\n        return payAmount;\n    }\n\n    public void setPayAmount(BigDecimal payAmount) {\n        this.payAmount = payAmount;\n    }\n\n    public BigDecimal getFreightAmount() {\n        return freightAmount;\n    }\n\n    public void setFreightAmount(BigDecimal freightAmount) {\n        this.freightAmount = freightAmount;\n    }\n\n    public BigDecimal getPromotionAmount() {\n        return promotionAmount;\n    }\n\n    public void setPromotionAmount(BigDecimal promotionAmount) {\n        this.promotionAmount = promotionAmount;\n    }\n\n    public BigDecimal getIntegrationAmount() {\n        return integrationAmount;\n    }\n\n    public void setIntegrationAmount(BigDecimal integrationAmount) {\n        this.integrationAmount = integrationAmount;\n    }\n\n    public BigDecimal getCouponAmount() {\n        return couponAmount;\n    }\n\n    public void setCouponAmount(BigDecimal couponAmount) {\n        this.couponAmount = couponAmount;\n    }\n\n    public BigDecimal getDiscountAmount() {\n        return discountAmount;\n    }\n\n    public void setDiscountAmount(BigDecimal discountAmount) {\n        this.discountAmount = discountAmount;\n    }\n\n    public Integer getPayType() {\n        return payType;\n    }\n\n    public void setPayType(Integer payType) {\n        this.payType = payType;\n    }\n\n    public Integer getSourceType() {\n        return sourceType;\n    }\n\n    public void setSourceType(Integer sourceType) {\n        this.sourceType = sourceType;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public Integer getOrderType() {\n        return orderType;\n    }\n\n    public void setOrderType(Integer orderType) {\n        this.orderType = orderType;\n    }\n\n    public String getDeliveryCompany() {\n        return deliveryCompany;\n    }\n\n    public void setDeliveryCompany(String deliveryCompany) {\n        this.deliveryCompany = deliveryCompany;\n    }\n\n    public String getDeliverySn() {\n        return deliverySn;\n    }\n\n    public void setDeliverySn(String deliverySn) {\n        this.deliverySn = deliverySn;\n    }\n\n    public Integer getAutoConfirmDay() {\n        return autoConfirmDay;\n    }\n\n    public void setAutoConfirmDay(Integer autoConfirmDay) {\n        this.autoConfirmDay = autoConfirmDay;\n    }\n\n    public Integer getIntegration() {\n        return integration;\n    }\n\n    public void setIntegration(Integer integration) {\n        this.integration = integration;\n    }\n\n    public Integer getGrowth() {\n        return growth;\n    }\n\n    public void setGrowth(Integer growth) {\n        this.growth = growth;\n    }\n\n    public String getPromotionInfo() {\n        return promotionInfo;\n    }\n\n    public void setPromotionInfo(String promotionInfo) {\n        this.promotionInfo = promotionInfo;\n    }\n\n    public Integer getBillType() {\n        return billType;\n    }\n\n    public void setBillType(Integer billType) {\n        this.billType = billType;\n    }\n\n    public String getBillHeader() {\n        return billHeader;\n    }\n\n    public void setBillHeader(String billHeader) {\n        this.billHeader = billHeader;\n    }\n\n    public String getBillContent() {\n        return billContent;\n    }\n\n    public void setBillContent(String billContent) {\n        this.billContent = billContent;\n    }\n\n    public String getBillReceiverPhone() {\n        return billReceiverPhone;\n    }\n\n    public void setBillReceiverPhone(String billReceiverPhone) {\n        this.billReceiverPhone = billReceiverPhone;\n    }\n\n    public String getBillReceiverEmail() {\n        return billReceiverEmail;\n    }\n\n    public void setBillReceiverEmail(String billReceiverEmail) {\n        this.billReceiverEmail = billReceiverEmail;\n    }\n\n    public String getReceiverName() {\n        return receiverName;\n    }\n\n    public void setReceiverName(String receiverName) {\n        this.receiverName = receiverName;\n    }\n\n    public String getReceiverPhone() {\n        return receiverPhone;\n    }\n\n    public void setReceiverPhone(String receiverPhone) {\n        this.receiverPhone = receiverPhone;\n    }\n\n    public String getReceiverPostCode() {\n        return receiverPostCode;\n    }\n\n    public void setReceiverPostCode(String receiverPostCode) {\n        this.receiverPostCode = receiverPostCode;\n    }\n\n    public String getReceiverProvince() {\n        return receiverProvince;\n    }\n\n    public void setReceiverProvince(String receiverProvince) {\n        this.receiverProvince = receiverProvince;\n    }\n\n    public String getReceiverCity() {\n        return receiverCity;\n    }\n\n    public void setReceiverCity(String receiverCity) {\n        this.receiverCity = receiverCity;\n    }\n\n    public String getReceiverRegion() {\n        return receiverRegion;\n    }\n\n    public void setReceiverRegion(String receiverRegion) {\n        this.receiverRegion = receiverRegion;\n    }\n\n    public String getReceiverDetailAddress() {\n        return receiverDetailAddress;\n    }\n\n    public void setReceiverDetailAddress(String receiverDetailAddress) {\n        this.receiverDetailAddress = receiverDetailAddress;\n    }\n\n    public String getNote() {\n        return note;\n    }\n\n    public void setNote(String note) {\n        this.note = note;\n    }\n\n    public Integer getConfirmStatus() {\n        return confirmStatus;\n    }\n\n    public void setConfirmStatus(Integer confirmStatus) {\n        this.confirmStatus = confirmStatus;\n    }\n\n    public Integer getDeleteStatus() {\n        return deleteStatus;\n    }\n\n    public void setDeleteStatus(Integer deleteStatus) {\n        this.deleteStatus = deleteStatus;\n    }\n\n    public Integer getUseIntegration() {\n        return useIntegration;\n    }\n\n    public void setUseIntegration(Integer useIntegration) {\n        this.useIntegration = useIntegration;\n    }\n\n    public Date getPaymentTime() {\n        return paymentTime;\n    }\n\n    public void setPaymentTime(Date paymentTime) {\n        this.paymentTime = paymentTime;\n    }\n\n    public Date getDeliveryTime() {\n        return deliveryTime;\n    }\n\n    public void setDeliveryTime(Date deliveryTime) {\n        this.deliveryTime = deliveryTime;\n    }\n\n    public Date getReceiveTime() {\n        return receiveTime;\n    }\n\n    public void setReceiveTime(Date receiveTime) {\n        this.receiveTime = receiveTime;\n    }\n\n    public Date getCommentTime() {\n        return commentTime;\n    }\n\n    public void setCommentTime(Date commentTime) {\n        this.commentTime = commentTime;\n    }\n\n    public Date getModifyTime() {\n        return modifyTime;\n    }\n\n    public void setModifyTime(Date modifyTime) {\n        this.modifyTime = modifyTime;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", memberId=\").append(memberId);\n        sb.append(\", couponId=\").append(couponId);\n        sb.append(\", orderSn=\").append(orderSn);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", memberUsername=\").append(memberUsername);\n        sb.append(\", totalAmount=\").append(totalAmount);\n        sb.append(\", payAmount=\").append(payAmount);\n        sb.append(\", freightAmount=\").append(freightAmount);\n        sb.append(\", promotionAmount=\").append(promotionAmount);\n        sb.append(\", integrationAmount=\").append(integrationAmount);\n        sb.append(\", couponAmount=\").append(couponAmount);\n        sb.append(\", discountAmount=\").append(discountAmount);\n        sb.append(\", payType=\").append(payType);\n        sb.append(\", sourceType=\").append(sourceType);\n        sb.append(\", status=\").append(status);\n        sb.append(\", orderType=\").append(orderType);\n        sb.append(\", deliveryCompany=\").append(deliveryCompany);\n        sb.append(\", deliverySn=\").append(deliverySn);\n        sb.append(\", autoConfirmDay=\").append(autoConfirmDay);\n        sb.append(\", integration=\").append(integration);\n        sb.append(\", growth=\").append(growth);\n        sb.append(\", promotionInfo=\").append(promotionInfo);\n        sb.append(\", billType=\").append(billType);\n        sb.append(\", billHeader=\").append(billHeader);\n        sb.append(\", billContent=\").append(billContent);\n        sb.append(\", billReceiverPhone=\").append(billReceiverPhone);\n        sb.append(\", billReceiverEmail=\").append(billReceiverEmail);\n        sb.append(\", receiverName=\").append(receiverName);\n        sb.append(\", receiverPhone=\").append(receiverPhone);\n        sb.append(\", receiverPostCode=\").append(receiverPostCode);\n        sb.append(\", receiverProvince=\").append(receiverProvince);\n        sb.append(\", receiverCity=\").append(receiverCity);\n        sb.append(\", receiverRegion=\").append(receiverRegion);\n        sb.append(\", receiverDetailAddress=\").append(receiverDetailAddress);\n        sb.append(\", note=\").append(note);\n        sb.append(\", confirmStatus=\").append(confirmStatus);\n        sb.append(\", deleteStatus=\").append(deleteStatus);\n        sb.append(\", useIntegration=\").append(useIntegration);\n        sb.append(\", paymentTime=\").append(paymentTime);\n        sb.append(\", deliveryTime=\").append(deliveryTime);\n        sb.append(\", receiveTime=\").append(receiveTime);\n        sb.append(\", commentTime=\").append(commentTime);\n        sb.append(\", modifyTime=\").append(modifyTime);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class OmsOrderExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public OmsOrderExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNull() {\n            addCriterion(\"member_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNotNull() {\n            addCriterion(\"member_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdEqualTo(Long value) {\n            addCriterion(\"member_id =\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotEqualTo(Long value) {\n            addCriterion(\"member_id <>\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThan(Long value) {\n            addCriterion(\"member_id >\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_id >=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThan(Long value) {\n            addCriterion(\"member_id <\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_id <=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIn(List<Long> values) {\n            addCriterion(\"member_id in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotIn(List<Long> values) {\n            addCriterion(\"member_id not in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_id between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_id not between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIsNull() {\n            addCriterion(\"coupon_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIsNotNull() {\n            addCriterion(\"coupon_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdEqualTo(Long value) {\n            addCriterion(\"coupon_id =\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotEqualTo(Long value) {\n            addCriterion(\"coupon_id <>\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdGreaterThan(Long value) {\n            addCriterion(\"coupon_id >\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"coupon_id >=\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdLessThan(Long value) {\n            addCriterion(\"coupon_id <\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"coupon_id <=\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIn(List<Long> values) {\n            addCriterion(\"coupon_id in\", values, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotIn(List<Long> values) {\n            addCriterion(\"coupon_id not in\", values, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdBetween(Long value1, Long value2) {\n            addCriterion(\"coupon_id between\", value1, value2, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"coupon_id not between\", value1, value2, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIsNull() {\n            addCriterion(\"order_sn is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIsNotNull() {\n            addCriterion(\"order_sn is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnEqualTo(String value) {\n            addCriterion(\"order_sn =\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotEqualTo(String value) {\n            addCriterion(\"order_sn <>\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnGreaterThan(String value) {\n            addCriterion(\"order_sn >\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnGreaterThanOrEqualTo(String value) {\n            addCriterion(\"order_sn >=\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLessThan(String value) {\n            addCriterion(\"order_sn <\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLessThanOrEqualTo(String value) {\n            addCriterion(\"order_sn <=\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLike(String value) {\n            addCriterion(\"order_sn like\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotLike(String value) {\n            addCriterion(\"order_sn not like\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIn(List<String> values) {\n            addCriterion(\"order_sn in\", values, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotIn(List<String> values) {\n            addCriterion(\"order_sn not in\", values, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnBetween(String value1, String value2) {\n            addCriterion(\"order_sn between\", value1, value2, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotBetween(String value1, String value2) {\n            addCriterion(\"order_sn not between\", value1, value2, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameIsNull() {\n            addCriterion(\"member_username is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameIsNotNull() {\n            addCriterion(\"member_username is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameEqualTo(String value) {\n            addCriterion(\"member_username =\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameNotEqualTo(String value) {\n            addCriterion(\"member_username <>\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameGreaterThan(String value) {\n            addCriterion(\"member_username >\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_username >=\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameLessThan(String value) {\n            addCriterion(\"member_username <\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameLessThanOrEqualTo(String value) {\n            addCriterion(\"member_username <=\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameLike(String value) {\n            addCriterion(\"member_username like\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameNotLike(String value) {\n            addCriterion(\"member_username not like\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameIn(List<String> values) {\n            addCriterion(\"member_username in\", values, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameNotIn(List<String> values) {\n            addCriterion(\"member_username not in\", values, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameBetween(String value1, String value2) {\n            addCriterion(\"member_username between\", value1, value2, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameNotBetween(String value1, String value2) {\n            addCriterion(\"member_username not between\", value1, value2, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountIsNull() {\n            addCriterion(\"total_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountIsNotNull() {\n            addCriterion(\"total_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountEqualTo(BigDecimal value) {\n            addCriterion(\"total_amount =\", value, \"totalAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"total_amount <>\", value, \"totalAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"total_amount >\", value, \"totalAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"total_amount >=\", value, \"totalAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountLessThan(BigDecimal value) {\n            addCriterion(\"total_amount <\", value, \"totalAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"total_amount <=\", value, \"totalAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountIn(List<BigDecimal> values) {\n            addCriterion(\"total_amount in\", values, \"totalAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"total_amount not in\", values, \"totalAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"total_amount between\", value1, value2, \"totalAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTotalAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"total_amount not between\", value1, value2, \"totalAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountIsNull() {\n            addCriterion(\"pay_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountIsNotNull() {\n            addCriterion(\"pay_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountEqualTo(BigDecimal value) {\n            addCriterion(\"pay_amount =\", value, \"payAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"pay_amount <>\", value, \"payAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"pay_amount >\", value, \"payAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"pay_amount >=\", value, \"payAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountLessThan(BigDecimal value) {\n            addCriterion(\"pay_amount <\", value, \"payAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"pay_amount <=\", value, \"payAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountIn(List<BigDecimal> values) {\n            addCriterion(\"pay_amount in\", values, \"payAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"pay_amount not in\", values, \"payAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"pay_amount between\", value1, value2, \"payAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"pay_amount not between\", value1, value2, \"payAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountIsNull() {\n            addCriterion(\"freight_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountIsNotNull() {\n            addCriterion(\"freight_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountEqualTo(BigDecimal value) {\n            addCriterion(\"freight_amount =\", value, \"freightAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"freight_amount <>\", value, \"freightAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"freight_amount >\", value, \"freightAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"freight_amount >=\", value, \"freightAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountLessThan(BigDecimal value) {\n            addCriterion(\"freight_amount <\", value, \"freightAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"freight_amount <=\", value, \"freightAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountIn(List<BigDecimal> values) {\n            addCriterion(\"freight_amount in\", values, \"freightAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"freight_amount not in\", values, \"freightAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"freight_amount between\", value1, value2, \"freightAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreightAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"freight_amount not between\", value1, value2, \"freightAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountIsNull() {\n            addCriterion(\"promotion_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountIsNotNull() {\n            addCriterion(\"promotion_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_amount =\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_amount <>\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"promotion_amount >\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_amount >=\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountLessThan(BigDecimal value) {\n            addCriterion(\"promotion_amount <\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_amount <=\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountIn(List<BigDecimal> values) {\n            addCriterion(\"promotion_amount in\", values, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"promotion_amount not in\", values, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"promotion_amount between\", value1, value2, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"promotion_amount not between\", value1, value2, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountIsNull() {\n            addCriterion(\"integration_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountIsNotNull() {\n            addCriterion(\"integration_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountEqualTo(BigDecimal value) {\n            addCriterion(\"integration_amount =\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"integration_amount <>\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"integration_amount >\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"integration_amount >=\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountLessThan(BigDecimal value) {\n            addCriterion(\"integration_amount <\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"integration_amount <=\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountIn(List<BigDecimal> values) {\n            addCriterion(\"integration_amount in\", values, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"integration_amount not in\", values, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"integration_amount between\", value1, value2, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"integration_amount not between\", value1, value2, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountIsNull() {\n            addCriterion(\"coupon_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountIsNotNull() {\n            addCriterion(\"coupon_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountEqualTo(BigDecimal value) {\n            addCriterion(\"coupon_amount =\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"coupon_amount <>\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"coupon_amount >\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"coupon_amount >=\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountLessThan(BigDecimal value) {\n            addCriterion(\"coupon_amount <\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"coupon_amount <=\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountIn(List<BigDecimal> values) {\n            addCriterion(\"coupon_amount in\", values, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"coupon_amount not in\", values, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"coupon_amount between\", value1, value2, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"coupon_amount not between\", value1, value2, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountIsNull() {\n            addCriterion(\"discount_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountIsNotNull() {\n            addCriterion(\"discount_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountEqualTo(BigDecimal value) {\n            addCriterion(\"discount_amount =\", value, \"discountAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"discount_amount <>\", value, \"discountAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"discount_amount >\", value, \"discountAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"discount_amount >=\", value, \"discountAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountLessThan(BigDecimal value) {\n            addCriterion(\"discount_amount <\", value, \"discountAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"discount_amount <=\", value, \"discountAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountIn(List<BigDecimal> values) {\n            addCriterion(\"discount_amount in\", values, \"discountAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"discount_amount not in\", values, \"discountAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"discount_amount between\", value1, value2, \"discountAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"discount_amount not between\", value1, value2, \"discountAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeIsNull() {\n            addCriterion(\"pay_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeIsNotNull() {\n            addCriterion(\"pay_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeEqualTo(Integer value) {\n            addCriterion(\"pay_type =\", value, \"payType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeNotEqualTo(Integer value) {\n            addCriterion(\"pay_type <>\", value, \"payType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeGreaterThan(Integer value) {\n            addCriterion(\"pay_type >\", value, \"payType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"pay_type >=\", value, \"payType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeLessThan(Integer value) {\n            addCriterion(\"pay_type <\", value, \"payType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"pay_type <=\", value, \"payType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeIn(List<Integer> values) {\n            addCriterion(\"pay_type in\", values, \"payType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeNotIn(List<Integer> values) {\n            addCriterion(\"pay_type not in\", values, \"payType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"pay_type between\", value1, value2, \"payType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPayTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"pay_type not between\", value1, value2, \"payType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIsNull() {\n            addCriterion(\"source_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIsNotNull() {\n            addCriterion(\"source_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeEqualTo(Integer value) {\n            addCriterion(\"source_type =\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotEqualTo(Integer value) {\n            addCriterion(\"source_type <>\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeGreaterThan(Integer value) {\n            addCriterion(\"source_type >\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"source_type >=\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeLessThan(Integer value) {\n            addCriterion(\"source_type <\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"source_type <=\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIn(List<Integer> values) {\n            addCriterion(\"source_type in\", values, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotIn(List<Integer> values) {\n            addCriterion(\"source_type not in\", values, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"source_type between\", value1, value2, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"source_type not between\", value1, value2, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeIsNull() {\n            addCriterion(\"order_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeIsNotNull() {\n            addCriterion(\"order_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeEqualTo(Integer value) {\n            addCriterion(\"order_type =\", value, \"orderType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeNotEqualTo(Integer value) {\n            addCriterion(\"order_type <>\", value, \"orderType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeGreaterThan(Integer value) {\n            addCriterion(\"order_type >\", value, \"orderType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"order_type >=\", value, \"orderType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeLessThan(Integer value) {\n            addCriterion(\"order_type <\", value, \"orderType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"order_type <=\", value, \"orderType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeIn(List<Integer> values) {\n            addCriterion(\"order_type in\", values, \"orderType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeNotIn(List<Integer> values) {\n            addCriterion(\"order_type not in\", values, \"orderType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"order_type between\", value1, value2, \"orderType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"order_type not between\", value1, value2, \"orderType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyIsNull() {\n            addCriterion(\"delivery_company is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyIsNotNull() {\n            addCriterion(\"delivery_company is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyEqualTo(String value) {\n            addCriterion(\"delivery_company =\", value, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyNotEqualTo(String value) {\n            addCriterion(\"delivery_company <>\", value, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyGreaterThan(String value) {\n            addCriterion(\"delivery_company >\", value, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyGreaterThanOrEqualTo(String value) {\n            addCriterion(\"delivery_company >=\", value, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyLessThan(String value) {\n            addCriterion(\"delivery_company <\", value, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyLessThanOrEqualTo(String value) {\n            addCriterion(\"delivery_company <=\", value, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyLike(String value) {\n            addCriterion(\"delivery_company like\", value, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyNotLike(String value) {\n            addCriterion(\"delivery_company not like\", value, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyIn(List<String> values) {\n            addCriterion(\"delivery_company in\", values, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyNotIn(List<String> values) {\n            addCriterion(\"delivery_company not in\", values, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyBetween(String value1, String value2) {\n            addCriterion(\"delivery_company between\", value1, value2, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryCompanyNotBetween(String value1, String value2) {\n            addCriterion(\"delivery_company not between\", value1, value2, \"deliveryCompany\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnIsNull() {\n            addCriterion(\"delivery_sn is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnIsNotNull() {\n            addCriterion(\"delivery_sn is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnEqualTo(String value) {\n            addCriterion(\"delivery_sn =\", value, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnNotEqualTo(String value) {\n            addCriterion(\"delivery_sn <>\", value, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnGreaterThan(String value) {\n            addCriterion(\"delivery_sn >\", value, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnGreaterThanOrEqualTo(String value) {\n            addCriterion(\"delivery_sn >=\", value, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnLessThan(String value) {\n            addCriterion(\"delivery_sn <\", value, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnLessThanOrEqualTo(String value) {\n            addCriterion(\"delivery_sn <=\", value, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnLike(String value) {\n            addCriterion(\"delivery_sn like\", value, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnNotLike(String value) {\n            addCriterion(\"delivery_sn not like\", value, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnIn(List<String> values) {\n            addCriterion(\"delivery_sn in\", values, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnNotIn(List<String> values) {\n            addCriterion(\"delivery_sn not in\", values, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnBetween(String value1, String value2) {\n            addCriterion(\"delivery_sn between\", value1, value2, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliverySnNotBetween(String value1, String value2) {\n            addCriterion(\"delivery_sn not between\", value1, value2, \"deliverySn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayIsNull() {\n            addCriterion(\"auto_confirm_day is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayIsNotNull() {\n            addCriterion(\"auto_confirm_day is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayEqualTo(Integer value) {\n            addCriterion(\"auto_confirm_day =\", value, \"autoConfirmDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayNotEqualTo(Integer value) {\n            addCriterion(\"auto_confirm_day <>\", value, \"autoConfirmDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayGreaterThan(Integer value) {\n            addCriterion(\"auto_confirm_day >\", value, \"autoConfirmDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"auto_confirm_day >=\", value, \"autoConfirmDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayLessThan(Integer value) {\n            addCriterion(\"auto_confirm_day <\", value, \"autoConfirmDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayLessThanOrEqualTo(Integer value) {\n            addCriterion(\"auto_confirm_day <=\", value, \"autoConfirmDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayIn(List<Integer> values) {\n            addCriterion(\"auto_confirm_day in\", values, \"autoConfirmDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayNotIn(List<Integer> values) {\n            addCriterion(\"auto_confirm_day not in\", values, \"autoConfirmDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayBetween(Integer value1, Integer value2) {\n            addCriterion(\"auto_confirm_day between\", value1, value2, \"autoConfirmDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAutoConfirmDayNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"auto_confirm_day not between\", value1, value2, \"autoConfirmDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationIsNull() {\n            addCriterion(\"integration is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationIsNotNull() {\n            addCriterion(\"integration is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationEqualTo(Integer value) {\n            addCriterion(\"integration =\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationNotEqualTo(Integer value) {\n            addCriterion(\"integration <>\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationGreaterThan(Integer value) {\n            addCriterion(\"integration >\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"integration >=\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationLessThan(Integer value) {\n            addCriterion(\"integration <\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationLessThanOrEqualTo(Integer value) {\n            addCriterion(\"integration <=\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationIn(List<Integer> values) {\n            addCriterion(\"integration in\", values, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationNotIn(List<Integer> values) {\n            addCriterion(\"integration not in\", values, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationBetween(Integer value1, Integer value2) {\n            addCriterion(\"integration between\", value1, value2, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"integration not between\", value1, value2, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthIsNull() {\n            addCriterion(\"growth is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthIsNotNull() {\n            addCriterion(\"growth is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthEqualTo(Integer value) {\n            addCriterion(\"growth =\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthNotEqualTo(Integer value) {\n            addCriterion(\"growth <>\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthGreaterThan(Integer value) {\n            addCriterion(\"growth >\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"growth >=\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthLessThan(Integer value) {\n            addCriterion(\"growth <\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthLessThanOrEqualTo(Integer value) {\n            addCriterion(\"growth <=\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthIn(List<Integer> values) {\n            addCriterion(\"growth in\", values, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthNotIn(List<Integer> values) {\n            addCriterion(\"growth not in\", values, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthBetween(Integer value1, Integer value2) {\n            addCriterion(\"growth between\", value1, value2, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"growth not between\", value1, value2, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoIsNull() {\n            addCriterion(\"promotion_info is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoIsNotNull() {\n            addCriterion(\"promotion_info is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoEqualTo(String value) {\n            addCriterion(\"promotion_info =\", value, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoNotEqualTo(String value) {\n            addCriterion(\"promotion_info <>\", value, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoGreaterThan(String value) {\n            addCriterion(\"promotion_info >\", value, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoGreaterThanOrEqualTo(String value) {\n            addCriterion(\"promotion_info >=\", value, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoLessThan(String value) {\n            addCriterion(\"promotion_info <\", value, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoLessThanOrEqualTo(String value) {\n            addCriterion(\"promotion_info <=\", value, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoLike(String value) {\n            addCriterion(\"promotion_info like\", value, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoNotLike(String value) {\n            addCriterion(\"promotion_info not like\", value, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoIn(List<String> values) {\n            addCriterion(\"promotion_info in\", values, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoNotIn(List<String> values) {\n            addCriterion(\"promotion_info not in\", values, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoBetween(String value1, String value2) {\n            addCriterion(\"promotion_info between\", value1, value2, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionInfoNotBetween(String value1, String value2) {\n            addCriterion(\"promotion_info not between\", value1, value2, \"promotionInfo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeIsNull() {\n            addCriterion(\"bill_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeIsNotNull() {\n            addCriterion(\"bill_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeEqualTo(Integer value) {\n            addCriterion(\"bill_type =\", value, \"billType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeNotEqualTo(Integer value) {\n            addCriterion(\"bill_type <>\", value, \"billType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeGreaterThan(Integer value) {\n            addCriterion(\"bill_type >\", value, \"billType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"bill_type >=\", value, \"billType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeLessThan(Integer value) {\n            addCriterion(\"bill_type <\", value, \"billType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"bill_type <=\", value, \"billType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeIn(List<Integer> values) {\n            addCriterion(\"bill_type in\", values, \"billType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeNotIn(List<Integer> values) {\n            addCriterion(\"bill_type not in\", values, \"billType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"bill_type between\", value1, value2, \"billType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"bill_type not between\", value1, value2, \"billType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderIsNull() {\n            addCriterion(\"bill_header is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderIsNotNull() {\n            addCriterion(\"bill_header is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderEqualTo(String value) {\n            addCriterion(\"bill_header =\", value, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderNotEqualTo(String value) {\n            addCriterion(\"bill_header <>\", value, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderGreaterThan(String value) {\n            addCriterion(\"bill_header >\", value, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderGreaterThanOrEqualTo(String value) {\n            addCriterion(\"bill_header >=\", value, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderLessThan(String value) {\n            addCriterion(\"bill_header <\", value, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderLessThanOrEqualTo(String value) {\n            addCriterion(\"bill_header <=\", value, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderLike(String value) {\n            addCriterion(\"bill_header like\", value, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderNotLike(String value) {\n            addCriterion(\"bill_header not like\", value, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderIn(List<String> values) {\n            addCriterion(\"bill_header in\", values, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderNotIn(List<String> values) {\n            addCriterion(\"bill_header not in\", values, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderBetween(String value1, String value2) {\n            addCriterion(\"bill_header between\", value1, value2, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillHeaderNotBetween(String value1, String value2) {\n            addCriterion(\"bill_header not between\", value1, value2, \"billHeader\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentIsNull() {\n            addCriterion(\"bill_content is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentIsNotNull() {\n            addCriterion(\"bill_content is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentEqualTo(String value) {\n            addCriterion(\"bill_content =\", value, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentNotEqualTo(String value) {\n            addCriterion(\"bill_content <>\", value, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentGreaterThan(String value) {\n            addCriterion(\"bill_content >\", value, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentGreaterThanOrEqualTo(String value) {\n            addCriterion(\"bill_content >=\", value, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentLessThan(String value) {\n            addCriterion(\"bill_content <\", value, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentLessThanOrEqualTo(String value) {\n            addCriterion(\"bill_content <=\", value, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentLike(String value) {\n            addCriterion(\"bill_content like\", value, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentNotLike(String value) {\n            addCriterion(\"bill_content not like\", value, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentIn(List<String> values) {\n            addCriterion(\"bill_content in\", values, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentNotIn(List<String> values) {\n            addCriterion(\"bill_content not in\", values, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentBetween(String value1, String value2) {\n            addCriterion(\"bill_content between\", value1, value2, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillContentNotBetween(String value1, String value2) {\n            addCriterion(\"bill_content not between\", value1, value2, \"billContent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneIsNull() {\n            addCriterion(\"bill_receiver_phone is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneIsNotNull() {\n            addCriterion(\"bill_receiver_phone is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneEqualTo(String value) {\n            addCriterion(\"bill_receiver_phone =\", value, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneNotEqualTo(String value) {\n            addCriterion(\"bill_receiver_phone <>\", value, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneGreaterThan(String value) {\n            addCriterion(\"bill_receiver_phone >\", value, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneGreaterThanOrEqualTo(String value) {\n            addCriterion(\"bill_receiver_phone >=\", value, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneLessThan(String value) {\n            addCriterion(\"bill_receiver_phone <\", value, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneLessThanOrEqualTo(String value) {\n            addCriterion(\"bill_receiver_phone <=\", value, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneLike(String value) {\n            addCriterion(\"bill_receiver_phone like\", value, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneNotLike(String value) {\n            addCriterion(\"bill_receiver_phone not like\", value, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneIn(List<String> values) {\n            addCriterion(\"bill_receiver_phone in\", values, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneNotIn(List<String> values) {\n            addCriterion(\"bill_receiver_phone not in\", values, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneBetween(String value1, String value2) {\n            addCriterion(\"bill_receiver_phone between\", value1, value2, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverPhoneNotBetween(String value1, String value2) {\n            addCriterion(\"bill_receiver_phone not between\", value1, value2, \"billReceiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailIsNull() {\n            addCriterion(\"bill_receiver_email is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailIsNotNull() {\n            addCriterion(\"bill_receiver_email is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailEqualTo(String value) {\n            addCriterion(\"bill_receiver_email =\", value, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailNotEqualTo(String value) {\n            addCriterion(\"bill_receiver_email <>\", value, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailGreaterThan(String value) {\n            addCriterion(\"bill_receiver_email >\", value, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailGreaterThanOrEqualTo(String value) {\n            addCriterion(\"bill_receiver_email >=\", value, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailLessThan(String value) {\n            addCriterion(\"bill_receiver_email <\", value, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailLessThanOrEqualTo(String value) {\n            addCriterion(\"bill_receiver_email <=\", value, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailLike(String value) {\n            addCriterion(\"bill_receiver_email like\", value, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailNotLike(String value) {\n            addCriterion(\"bill_receiver_email not like\", value, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailIn(List<String> values) {\n            addCriterion(\"bill_receiver_email in\", values, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailNotIn(List<String> values) {\n            addCriterion(\"bill_receiver_email not in\", values, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailBetween(String value1, String value2) {\n            addCriterion(\"bill_receiver_email between\", value1, value2, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBillReceiverEmailNotBetween(String value1, String value2) {\n            addCriterion(\"bill_receiver_email not between\", value1, value2, \"billReceiverEmail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameIsNull() {\n            addCriterion(\"receiver_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameIsNotNull() {\n            addCriterion(\"receiver_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameEqualTo(String value) {\n            addCriterion(\"receiver_name =\", value, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameNotEqualTo(String value) {\n            addCriterion(\"receiver_name <>\", value, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameGreaterThan(String value) {\n            addCriterion(\"receiver_name >\", value, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"receiver_name >=\", value, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameLessThan(String value) {\n            addCriterion(\"receiver_name <\", value, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameLessThanOrEqualTo(String value) {\n            addCriterion(\"receiver_name <=\", value, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameLike(String value) {\n            addCriterion(\"receiver_name like\", value, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameNotLike(String value) {\n            addCriterion(\"receiver_name not like\", value, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameIn(List<String> values) {\n            addCriterion(\"receiver_name in\", values, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameNotIn(List<String> values) {\n            addCriterion(\"receiver_name not in\", values, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameBetween(String value1, String value2) {\n            addCriterion(\"receiver_name between\", value1, value2, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverNameNotBetween(String value1, String value2) {\n            addCriterion(\"receiver_name not between\", value1, value2, \"receiverName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneIsNull() {\n            addCriterion(\"receiver_phone is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneIsNotNull() {\n            addCriterion(\"receiver_phone is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneEqualTo(String value) {\n            addCriterion(\"receiver_phone =\", value, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneNotEqualTo(String value) {\n            addCriterion(\"receiver_phone <>\", value, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneGreaterThan(String value) {\n            addCriterion(\"receiver_phone >\", value, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneGreaterThanOrEqualTo(String value) {\n            addCriterion(\"receiver_phone >=\", value, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneLessThan(String value) {\n            addCriterion(\"receiver_phone <\", value, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneLessThanOrEqualTo(String value) {\n            addCriterion(\"receiver_phone <=\", value, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneLike(String value) {\n            addCriterion(\"receiver_phone like\", value, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneNotLike(String value) {\n            addCriterion(\"receiver_phone not like\", value, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneIn(List<String> values) {\n            addCriterion(\"receiver_phone in\", values, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneNotIn(List<String> values) {\n            addCriterion(\"receiver_phone not in\", values, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneBetween(String value1, String value2) {\n            addCriterion(\"receiver_phone between\", value1, value2, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPhoneNotBetween(String value1, String value2) {\n            addCriterion(\"receiver_phone not between\", value1, value2, \"receiverPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeIsNull() {\n            addCriterion(\"receiver_post_code is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeIsNotNull() {\n            addCriterion(\"receiver_post_code is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeEqualTo(String value) {\n            addCriterion(\"receiver_post_code =\", value, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeNotEqualTo(String value) {\n            addCriterion(\"receiver_post_code <>\", value, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeGreaterThan(String value) {\n            addCriterion(\"receiver_post_code >\", value, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"receiver_post_code >=\", value, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeLessThan(String value) {\n            addCriterion(\"receiver_post_code <\", value, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeLessThanOrEqualTo(String value) {\n            addCriterion(\"receiver_post_code <=\", value, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeLike(String value) {\n            addCriterion(\"receiver_post_code like\", value, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeNotLike(String value) {\n            addCriterion(\"receiver_post_code not like\", value, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeIn(List<String> values) {\n            addCriterion(\"receiver_post_code in\", values, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeNotIn(List<String> values) {\n            addCriterion(\"receiver_post_code not in\", values, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeBetween(String value1, String value2) {\n            addCriterion(\"receiver_post_code between\", value1, value2, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverPostCodeNotBetween(String value1, String value2) {\n            addCriterion(\"receiver_post_code not between\", value1, value2, \"receiverPostCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceIsNull() {\n            addCriterion(\"receiver_province is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceIsNotNull() {\n            addCriterion(\"receiver_province is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceEqualTo(String value) {\n            addCriterion(\"receiver_province =\", value, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceNotEqualTo(String value) {\n            addCriterion(\"receiver_province <>\", value, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceGreaterThan(String value) {\n            addCriterion(\"receiver_province >\", value, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceGreaterThanOrEqualTo(String value) {\n            addCriterion(\"receiver_province >=\", value, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceLessThan(String value) {\n            addCriterion(\"receiver_province <\", value, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceLessThanOrEqualTo(String value) {\n            addCriterion(\"receiver_province <=\", value, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceLike(String value) {\n            addCriterion(\"receiver_province like\", value, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceNotLike(String value) {\n            addCriterion(\"receiver_province not like\", value, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceIn(List<String> values) {\n            addCriterion(\"receiver_province in\", values, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceNotIn(List<String> values) {\n            addCriterion(\"receiver_province not in\", values, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceBetween(String value1, String value2) {\n            addCriterion(\"receiver_province between\", value1, value2, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverProvinceNotBetween(String value1, String value2) {\n            addCriterion(\"receiver_province not between\", value1, value2, \"receiverProvince\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityIsNull() {\n            addCriterion(\"receiver_city is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityIsNotNull() {\n            addCriterion(\"receiver_city is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityEqualTo(String value) {\n            addCriterion(\"receiver_city =\", value, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityNotEqualTo(String value) {\n            addCriterion(\"receiver_city <>\", value, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityGreaterThan(String value) {\n            addCriterion(\"receiver_city >\", value, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityGreaterThanOrEqualTo(String value) {\n            addCriterion(\"receiver_city >=\", value, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityLessThan(String value) {\n            addCriterion(\"receiver_city <\", value, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityLessThanOrEqualTo(String value) {\n            addCriterion(\"receiver_city <=\", value, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityLike(String value) {\n            addCriterion(\"receiver_city like\", value, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityNotLike(String value) {\n            addCriterion(\"receiver_city not like\", value, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityIn(List<String> values) {\n            addCriterion(\"receiver_city in\", values, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityNotIn(List<String> values) {\n            addCriterion(\"receiver_city not in\", values, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityBetween(String value1, String value2) {\n            addCriterion(\"receiver_city between\", value1, value2, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverCityNotBetween(String value1, String value2) {\n            addCriterion(\"receiver_city not between\", value1, value2, \"receiverCity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionIsNull() {\n            addCriterion(\"receiver_region is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionIsNotNull() {\n            addCriterion(\"receiver_region is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionEqualTo(String value) {\n            addCriterion(\"receiver_region =\", value, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionNotEqualTo(String value) {\n            addCriterion(\"receiver_region <>\", value, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionGreaterThan(String value) {\n            addCriterion(\"receiver_region >\", value, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionGreaterThanOrEqualTo(String value) {\n            addCriterion(\"receiver_region >=\", value, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionLessThan(String value) {\n            addCriterion(\"receiver_region <\", value, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionLessThanOrEqualTo(String value) {\n            addCriterion(\"receiver_region <=\", value, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionLike(String value) {\n            addCriterion(\"receiver_region like\", value, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionNotLike(String value) {\n            addCriterion(\"receiver_region not like\", value, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionIn(List<String> values) {\n            addCriterion(\"receiver_region in\", values, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionNotIn(List<String> values) {\n            addCriterion(\"receiver_region not in\", values, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionBetween(String value1, String value2) {\n            addCriterion(\"receiver_region between\", value1, value2, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverRegionNotBetween(String value1, String value2) {\n            addCriterion(\"receiver_region not between\", value1, value2, \"receiverRegion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressIsNull() {\n            addCriterion(\"receiver_detail_address is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressIsNotNull() {\n            addCriterion(\"receiver_detail_address is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressEqualTo(String value) {\n            addCriterion(\"receiver_detail_address =\", value, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressNotEqualTo(String value) {\n            addCriterion(\"receiver_detail_address <>\", value, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressGreaterThan(String value) {\n            addCriterion(\"receiver_detail_address >\", value, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressGreaterThanOrEqualTo(String value) {\n            addCriterion(\"receiver_detail_address >=\", value, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressLessThan(String value) {\n            addCriterion(\"receiver_detail_address <\", value, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressLessThanOrEqualTo(String value) {\n            addCriterion(\"receiver_detail_address <=\", value, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressLike(String value) {\n            addCriterion(\"receiver_detail_address like\", value, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressNotLike(String value) {\n            addCriterion(\"receiver_detail_address not like\", value, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressIn(List<String> values) {\n            addCriterion(\"receiver_detail_address in\", values, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressNotIn(List<String> values) {\n            addCriterion(\"receiver_detail_address not in\", values, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressBetween(String value1, String value2) {\n            addCriterion(\"receiver_detail_address between\", value1, value2, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiverDetailAddressNotBetween(String value1, String value2) {\n            addCriterion(\"receiver_detail_address not between\", value1, value2, \"receiverDetailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNull() {\n            addCriterion(\"note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNotNull() {\n            addCriterion(\"note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteEqualTo(String value) {\n            addCriterion(\"note =\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotEqualTo(String value) {\n            addCriterion(\"note <>\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThan(String value) {\n            addCriterion(\"note >\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"note >=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThan(String value) {\n            addCriterion(\"note <\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"note <=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLike(String value) {\n            addCriterion(\"note like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotLike(String value) {\n            addCriterion(\"note not like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIn(List<String> values) {\n            addCriterion(\"note in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotIn(List<String> values) {\n            addCriterion(\"note not in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteBetween(String value1, String value2) {\n            addCriterion(\"note between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotBetween(String value1, String value2) {\n            addCriterion(\"note not between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusIsNull() {\n            addCriterion(\"confirm_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusIsNotNull() {\n            addCriterion(\"confirm_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusEqualTo(Integer value) {\n            addCriterion(\"confirm_status =\", value, \"confirmStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusNotEqualTo(Integer value) {\n            addCriterion(\"confirm_status <>\", value, \"confirmStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusGreaterThan(Integer value) {\n            addCriterion(\"confirm_status >\", value, \"confirmStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"confirm_status >=\", value, \"confirmStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusLessThan(Integer value) {\n            addCriterion(\"confirm_status <\", value, \"confirmStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"confirm_status <=\", value, \"confirmStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusIn(List<Integer> values) {\n            addCriterion(\"confirm_status in\", values, \"confirmStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusNotIn(List<Integer> values) {\n            addCriterion(\"confirm_status not in\", values, \"confirmStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"confirm_status between\", value1, value2, \"confirmStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"confirm_status not between\", value1, value2, \"confirmStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusIsNull() {\n            addCriterion(\"delete_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusIsNotNull() {\n            addCriterion(\"delete_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusEqualTo(Integer value) {\n            addCriterion(\"delete_status =\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusNotEqualTo(Integer value) {\n            addCriterion(\"delete_status <>\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusGreaterThan(Integer value) {\n            addCriterion(\"delete_status >\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"delete_status >=\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusLessThan(Integer value) {\n            addCriterion(\"delete_status <\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"delete_status <=\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusIn(List<Integer> values) {\n            addCriterion(\"delete_status in\", values, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusNotIn(List<Integer> values) {\n            addCriterion(\"delete_status not in\", values, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"delete_status between\", value1, value2, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"delete_status not between\", value1, value2, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationIsNull() {\n            addCriterion(\"use_integration is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationIsNotNull() {\n            addCriterion(\"use_integration is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationEqualTo(Integer value) {\n            addCriterion(\"use_integration =\", value, \"useIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationNotEqualTo(Integer value) {\n            addCriterion(\"use_integration <>\", value, \"useIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationGreaterThan(Integer value) {\n            addCriterion(\"use_integration >\", value, \"useIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"use_integration >=\", value, \"useIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationLessThan(Integer value) {\n            addCriterion(\"use_integration <\", value, \"useIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationLessThanOrEqualTo(Integer value) {\n            addCriterion(\"use_integration <=\", value, \"useIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationIn(List<Integer> values) {\n            addCriterion(\"use_integration in\", values, \"useIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationNotIn(List<Integer> values) {\n            addCriterion(\"use_integration not in\", values, \"useIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_integration between\", value1, value2, \"useIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseIntegrationNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_integration not between\", value1, value2, \"useIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeIsNull() {\n            addCriterion(\"payment_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeIsNotNull() {\n            addCriterion(\"payment_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeEqualTo(Date value) {\n            addCriterion(\"payment_time =\", value, \"paymentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeNotEqualTo(Date value) {\n            addCriterion(\"payment_time <>\", value, \"paymentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeGreaterThan(Date value) {\n            addCriterion(\"payment_time >\", value, \"paymentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"payment_time >=\", value, \"paymentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeLessThan(Date value) {\n            addCriterion(\"payment_time <\", value, \"paymentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"payment_time <=\", value, \"paymentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeIn(List<Date> values) {\n            addCriterion(\"payment_time in\", values, \"paymentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeNotIn(List<Date> values) {\n            addCriterion(\"payment_time not in\", values, \"paymentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeBetween(Date value1, Date value2) {\n            addCriterion(\"payment_time between\", value1, value2, \"paymentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPaymentTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"payment_time not between\", value1, value2, \"paymentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeIsNull() {\n            addCriterion(\"delivery_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeIsNotNull() {\n            addCriterion(\"delivery_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeEqualTo(Date value) {\n            addCriterion(\"delivery_time =\", value, \"deliveryTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeNotEqualTo(Date value) {\n            addCriterion(\"delivery_time <>\", value, \"deliveryTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeGreaterThan(Date value) {\n            addCriterion(\"delivery_time >\", value, \"deliveryTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"delivery_time >=\", value, \"deliveryTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeLessThan(Date value) {\n            addCriterion(\"delivery_time <\", value, \"deliveryTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"delivery_time <=\", value, \"deliveryTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeIn(List<Date> values) {\n            addCriterion(\"delivery_time in\", values, \"deliveryTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeNotIn(List<Date> values) {\n            addCriterion(\"delivery_time not in\", values, \"deliveryTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeBetween(Date value1, Date value2) {\n            addCriterion(\"delivery_time between\", value1, value2, \"deliveryTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeliveryTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"delivery_time not between\", value1, value2, \"deliveryTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeIsNull() {\n            addCriterion(\"receive_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeIsNotNull() {\n            addCriterion(\"receive_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeEqualTo(Date value) {\n            addCriterion(\"receive_time =\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeNotEqualTo(Date value) {\n            addCriterion(\"receive_time <>\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeGreaterThan(Date value) {\n            addCriterion(\"receive_time >\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"receive_time >=\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeLessThan(Date value) {\n            addCriterion(\"receive_time <\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"receive_time <=\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeIn(List<Date> values) {\n            addCriterion(\"receive_time in\", values, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeNotIn(List<Date> values) {\n            addCriterion(\"receive_time not in\", values, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeBetween(Date value1, Date value2) {\n            addCriterion(\"receive_time between\", value1, value2, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"receive_time not between\", value1, value2, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeIsNull() {\n            addCriterion(\"comment_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeIsNotNull() {\n            addCriterion(\"comment_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeEqualTo(Date value) {\n            addCriterion(\"comment_time =\", value, \"commentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeNotEqualTo(Date value) {\n            addCriterion(\"comment_time <>\", value, \"commentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeGreaterThan(Date value) {\n            addCriterion(\"comment_time >\", value, \"commentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"comment_time >=\", value, \"commentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeLessThan(Date value) {\n            addCriterion(\"comment_time <\", value, \"commentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"comment_time <=\", value, \"commentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeIn(List<Date> values) {\n            addCriterion(\"comment_time in\", values, \"commentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeNotIn(List<Date> values) {\n            addCriterion(\"comment_time not in\", values, \"commentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeBetween(Date value1, Date value2) {\n            addCriterion(\"comment_time between\", value1, value2, \"commentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"comment_time not between\", value1, value2, \"commentTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeIsNull() {\n            addCriterion(\"modify_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeIsNotNull() {\n            addCriterion(\"modify_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeEqualTo(Date value) {\n            addCriterion(\"modify_time =\", value, \"modifyTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeNotEqualTo(Date value) {\n            addCriterion(\"modify_time <>\", value, \"modifyTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeGreaterThan(Date value) {\n            addCriterion(\"modify_time >\", value, \"modifyTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"modify_time >=\", value, \"modifyTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeLessThan(Date value) {\n            addCriterion(\"modify_time <\", value, \"modifyTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"modify_time <=\", value, \"modifyTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeIn(List<Date> values) {\n            addCriterion(\"modify_time in\", values, \"modifyTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeNotIn(List<Date> values) {\n            addCriterion(\"modify_time not in\", values, \"modifyTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeBetween(Date value1, Date value2) {\n            addCriterion(\"modify_time between\", value1, value2, \"modifyTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andModifyTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"modify_time not between\", value1, value2, \"modifyTime\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItem.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\npublic class OmsOrderItem implements Serializable {\n    private Long id;\n\n    @Schema(title = \"订单id\")\n    private Long orderId;\n\n    @Schema(title = \"订单编号\")\n    private String orderSn;\n\n    private Long productId;\n\n    private String productPic;\n\n    private String productName;\n\n    private String productBrand;\n\n    private String productSn;\n\n    @Schema(title = \"销售价格\")\n    private BigDecimal productPrice;\n\n    @Schema(title = \"购买数量\")\n    private Integer productQuantity;\n\n    @Schema(title = \"商品sku编号\")\n    private Long productSkuId;\n\n    @Schema(title = \"商品sku条码\")\n    private String productSkuCode;\n\n    @Schema(title = \"商品分类id\")\n    private Long productCategoryId;\n\n    @Schema(title = \"商品促销名称\")\n    private String promotionName;\n\n    @Schema(title = \"商品促销分解金额\")\n    private BigDecimal promotionAmount;\n\n    @Schema(title = \"优惠券优惠分解金额\")\n    private BigDecimal couponAmount;\n\n    @Schema(title = \"积分优惠分解金额\")\n    private BigDecimal integrationAmount;\n\n    @Schema(title = \"该商品经过优惠后的分解金额\")\n    private BigDecimal realAmount;\n\n    private Integer giftIntegration;\n\n    private Integer giftGrowth;\n\n    @Schema(title = \"商品销售属性:[{'key':'颜色','value':'颜色'},{'key':'容量','value':'4G'}]\")\n    private String productAttr;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getOrderId() {\n        return orderId;\n    }\n\n    public void setOrderId(Long orderId) {\n        this.orderId = orderId;\n    }\n\n    public String getOrderSn() {\n        return orderSn;\n    }\n\n    public void setOrderSn(String orderSn) {\n        this.orderSn = orderSn;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public String getProductPic() {\n        return productPic;\n    }\n\n    public void setProductPic(String productPic) {\n        this.productPic = productPic;\n    }\n\n    public String getProductName() {\n        return productName;\n    }\n\n    public void setProductName(String productName) {\n        this.productName = productName;\n    }\n\n    public String getProductBrand() {\n        return productBrand;\n    }\n\n    public void setProductBrand(String productBrand) {\n        this.productBrand = productBrand;\n    }\n\n    public String getProductSn() {\n        return productSn;\n    }\n\n    public void setProductSn(String productSn) {\n        this.productSn = productSn;\n    }\n\n    public BigDecimal getProductPrice() {\n        return productPrice;\n    }\n\n    public void setProductPrice(BigDecimal productPrice) {\n        this.productPrice = productPrice;\n    }\n\n    public Integer getProductQuantity() {\n        return productQuantity;\n    }\n\n    public void setProductQuantity(Integer productQuantity) {\n        this.productQuantity = productQuantity;\n    }\n\n    public Long getProductSkuId() {\n        return productSkuId;\n    }\n\n    public void setProductSkuId(Long productSkuId) {\n        this.productSkuId = productSkuId;\n    }\n\n    public String getProductSkuCode() {\n        return productSkuCode;\n    }\n\n    public void setProductSkuCode(String productSkuCode) {\n        this.productSkuCode = productSkuCode;\n    }\n\n    public Long getProductCategoryId() {\n        return productCategoryId;\n    }\n\n    public void setProductCategoryId(Long productCategoryId) {\n        this.productCategoryId = productCategoryId;\n    }\n\n    public String getPromotionName() {\n        return promotionName;\n    }\n\n    public void setPromotionName(String promotionName) {\n        this.promotionName = promotionName;\n    }\n\n    public BigDecimal getPromotionAmount() {\n        return promotionAmount;\n    }\n\n    public void setPromotionAmount(BigDecimal promotionAmount) {\n        this.promotionAmount = promotionAmount;\n    }\n\n    public BigDecimal getCouponAmount() {\n        return couponAmount;\n    }\n\n    public void setCouponAmount(BigDecimal couponAmount) {\n        this.couponAmount = couponAmount;\n    }\n\n    public BigDecimal getIntegrationAmount() {\n        return integrationAmount;\n    }\n\n    public void setIntegrationAmount(BigDecimal integrationAmount) {\n        this.integrationAmount = integrationAmount;\n    }\n\n    public BigDecimal getRealAmount() {\n        return realAmount;\n    }\n\n    public void setRealAmount(BigDecimal realAmount) {\n        this.realAmount = realAmount;\n    }\n\n    public Integer getGiftIntegration() {\n        return giftIntegration;\n    }\n\n    public void setGiftIntegration(Integer giftIntegration) {\n        this.giftIntegration = giftIntegration;\n    }\n\n    public Integer getGiftGrowth() {\n        return giftGrowth;\n    }\n\n    public void setGiftGrowth(Integer giftGrowth) {\n        this.giftGrowth = giftGrowth;\n    }\n\n    public String getProductAttr() {\n        return productAttr;\n    }\n\n    public void setProductAttr(String productAttr) {\n        this.productAttr = productAttr;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", orderId=\").append(orderId);\n        sb.append(\", orderSn=\").append(orderSn);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", productPic=\").append(productPic);\n        sb.append(\", productName=\").append(productName);\n        sb.append(\", productBrand=\").append(productBrand);\n        sb.append(\", productSn=\").append(productSn);\n        sb.append(\", productPrice=\").append(productPrice);\n        sb.append(\", productQuantity=\").append(productQuantity);\n        sb.append(\", productSkuId=\").append(productSkuId);\n        sb.append(\", productSkuCode=\").append(productSkuCode);\n        sb.append(\", productCategoryId=\").append(productCategoryId);\n        sb.append(\", promotionName=\").append(promotionName);\n        sb.append(\", promotionAmount=\").append(promotionAmount);\n        sb.append(\", couponAmount=\").append(couponAmount);\n        sb.append(\", integrationAmount=\").append(integrationAmount);\n        sb.append(\", realAmount=\").append(realAmount);\n        sb.append(\", giftIntegration=\").append(giftIntegration);\n        sb.append(\", giftGrowth=\").append(giftGrowth);\n        sb.append(\", productAttr=\").append(productAttr);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderItemExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class OmsOrderItemExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public OmsOrderItemExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIsNull() {\n            addCriterion(\"order_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIsNotNull() {\n            addCriterion(\"order_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdEqualTo(Long value) {\n            addCriterion(\"order_id =\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotEqualTo(Long value) {\n            addCriterion(\"order_id <>\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdGreaterThan(Long value) {\n            addCriterion(\"order_id >\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"order_id >=\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdLessThan(Long value) {\n            addCriterion(\"order_id <\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"order_id <=\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIn(List<Long> values) {\n            addCriterion(\"order_id in\", values, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotIn(List<Long> values) {\n            addCriterion(\"order_id not in\", values, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdBetween(Long value1, Long value2) {\n            addCriterion(\"order_id between\", value1, value2, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"order_id not between\", value1, value2, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIsNull() {\n            addCriterion(\"order_sn is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIsNotNull() {\n            addCriterion(\"order_sn is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnEqualTo(String value) {\n            addCriterion(\"order_sn =\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotEqualTo(String value) {\n            addCriterion(\"order_sn <>\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnGreaterThan(String value) {\n            addCriterion(\"order_sn >\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnGreaterThanOrEqualTo(String value) {\n            addCriterion(\"order_sn >=\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLessThan(String value) {\n            addCriterion(\"order_sn <\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLessThanOrEqualTo(String value) {\n            addCriterion(\"order_sn <=\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLike(String value) {\n            addCriterion(\"order_sn like\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotLike(String value) {\n            addCriterion(\"order_sn not like\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIn(List<String> values) {\n            addCriterion(\"order_sn in\", values, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotIn(List<String> values) {\n            addCriterion(\"order_sn not in\", values, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnBetween(String value1, String value2) {\n            addCriterion(\"order_sn between\", value1, value2, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotBetween(String value1, String value2) {\n            addCriterion(\"order_sn not between\", value1, value2, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicIsNull() {\n            addCriterion(\"product_pic is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicIsNotNull() {\n            addCriterion(\"product_pic is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicEqualTo(String value) {\n            addCriterion(\"product_pic =\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotEqualTo(String value) {\n            addCriterion(\"product_pic <>\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicGreaterThan(String value) {\n            addCriterion(\"product_pic >\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_pic >=\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicLessThan(String value) {\n            addCriterion(\"product_pic <\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicLessThanOrEqualTo(String value) {\n            addCriterion(\"product_pic <=\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicLike(String value) {\n            addCriterion(\"product_pic like\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotLike(String value) {\n            addCriterion(\"product_pic not like\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicIn(List<String> values) {\n            addCriterion(\"product_pic in\", values, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotIn(List<String> values) {\n            addCriterion(\"product_pic not in\", values, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicBetween(String value1, String value2) {\n            addCriterion(\"product_pic between\", value1, value2, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotBetween(String value1, String value2) {\n            addCriterion(\"product_pic not between\", value1, value2, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNull() {\n            addCriterion(\"product_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNotNull() {\n            addCriterion(\"product_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameEqualTo(String value) {\n            addCriterion(\"product_name =\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotEqualTo(String value) {\n            addCriterion(\"product_name <>\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThan(String value) {\n            addCriterion(\"product_name >\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_name >=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThan(String value) {\n            addCriterion(\"product_name <\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThanOrEqualTo(String value) {\n            addCriterion(\"product_name <=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLike(String value) {\n            addCriterion(\"product_name like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotLike(String value) {\n            addCriterion(\"product_name not like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIn(List<String> values) {\n            addCriterion(\"product_name in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotIn(List<String> values) {\n            addCriterion(\"product_name not in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameBetween(String value1, String value2) {\n            addCriterion(\"product_name between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotBetween(String value1, String value2) {\n            addCriterion(\"product_name not between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandIsNull() {\n            addCriterion(\"product_brand is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandIsNotNull() {\n            addCriterion(\"product_brand is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandEqualTo(String value) {\n            addCriterion(\"product_brand =\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotEqualTo(String value) {\n            addCriterion(\"product_brand <>\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandGreaterThan(String value) {\n            addCriterion(\"product_brand >\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_brand >=\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandLessThan(String value) {\n            addCriterion(\"product_brand <\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandLessThanOrEqualTo(String value) {\n            addCriterion(\"product_brand <=\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandLike(String value) {\n            addCriterion(\"product_brand like\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotLike(String value) {\n            addCriterion(\"product_brand not like\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandIn(List<String> values) {\n            addCriterion(\"product_brand in\", values, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotIn(List<String> values) {\n            addCriterion(\"product_brand not in\", values, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandBetween(String value1, String value2) {\n            addCriterion(\"product_brand between\", value1, value2, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotBetween(String value1, String value2) {\n            addCriterion(\"product_brand not between\", value1, value2, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIsNull() {\n            addCriterion(\"product_sn is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIsNotNull() {\n            addCriterion(\"product_sn is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnEqualTo(String value) {\n            addCriterion(\"product_sn =\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotEqualTo(String value) {\n            addCriterion(\"product_sn <>\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnGreaterThan(String value) {\n            addCriterion(\"product_sn >\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_sn >=\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLessThan(String value) {\n            addCriterion(\"product_sn <\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLessThanOrEqualTo(String value) {\n            addCriterion(\"product_sn <=\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLike(String value) {\n            addCriterion(\"product_sn like\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotLike(String value) {\n            addCriterion(\"product_sn not like\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIn(List<String> values) {\n            addCriterion(\"product_sn in\", values, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotIn(List<String> values) {\n            addCriterion(\"product_sn not in\", values, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnBetween(String value1, String value2) {\n            addCriterion(\"product_sn between\", value1, value2, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotBetween(String value1, String value2) {\n            addCriterion(\"product_sn not between\", value1, value2, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceIsNull() {\n            addCriterion(\"product_price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceIsNotNull() {\n            addCriterion(\"product_price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceEqualTo(BigDecimal value) {\n            addCriterion(\"product_price =\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"product_price <>\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"product_price >\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"product_price >=\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceLessThan(BigDecimal value) {\n            addCriterion(\"product_price <\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"product_price <=\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceIn(List<BigDecimal> values) {\n            addCriterion(\"product_price in\", values, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"product_price not in\", values, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"product_price between\", value1, value2, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"product_price not between\", value1, value2, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityIsNull() {\n            addCriterion(\"product_quantity is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityIsNotNull() {\n            addCriterion(\"product_quantity is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityEqualTo(Integer value) {\n            addCriterion(\"product_quantity =\", value, \"productQuantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityNotEqualTo(Integer value) {\n            addCriterion(\"product_quantity <>\", value, \"productQuantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityGreaterThan(Integer value) {\n            addCriterion(\"product_quantity >\", value, \"productQuantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"product_quantity >=\", value, \"productQuantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityLessThan(Integer value) {\n            addCriterion(\"product_quantity <\", value, \"productQuantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityLessThanOrEqualTo(Integer value) {\n            addCriterion(\"product_quantity <=\", value, \"productQuantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityIn(List<Integer> values) {\n            addCriterion(\"product_quantity in\", values, \"productQuantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityNotIn(List<Integer> values) {\n            addCriterion(\"product_quantity not in\", values, \"productQuantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_quantity between\", value1, value2, \"productQuantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductQuantityNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_quantity not between\", value1, value2, \"productQuantity\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdIsNull() {\n            addCriterion(\"product_sku_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdIsNotNull() {\n            addCriterion(\"product_sku_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdEqualTo(Long value) {\n            addCriterion(\"product_sku_id =\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdNotEqualTo(Long value) {\n            addCriterion(\"product_sku_id <>\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdGreaterThan(Long value) {\n            addCriterion(\"product_sku_id >\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_sku_id >=\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdLessThan(Long value) {\n            addCriterion(\"product_sku_id <\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_sku_id <=\", value, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdIn(List<Long> values) {\n            addCriterion(\"product_sku_id in\", values, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdNotIn(List<Long> values) {\n            addCriterion(\"product_sku_id not in\", values, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_sku_id between\", value1, value2, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_sku_id not between\", value1, value2, \"productSkuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeIsNull() {\n            addCriterion(\"product_sku_code is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeIsNotNull() {\n            addCriterion(\"product_sku_code is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeEqualTo(String value) {\n            addCriterion(\"product_sku_code =\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeNotEqualTo(String value) {\n            addCriterion(\"product_sku_code <>\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeGreaterThan(String value) {\n            addCriterion(\"product_sku_code >\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_sku_code >=\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeLessThan(String value) {\n            addCriterion(\"product_sku_code <\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeLessThanOrEqualTo(String value) {\n            addCriterion(\"product_sku_code <=\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeLike(String value) {\n            addCriterion(\"product_sku_code like\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeNotLike(String value) {\n            addCriterion(\"product_sku_code not like\", value, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeIn(List<String> values) {\n            addCriterion(\"product_sku_code in\", values, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeNotIn(List<String> values) {\n            addCriterion(\"product_sku_code not in\", values, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeBetween(String value1, String value2) {\n            addCriterion(\"product_sku_code between\", value1, value2, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSkuCodeNotBetween(String value1, String value2) {\n            addCriterion(\"product_sku_code not between\", value1, value2, \"productSkuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNull() {\n            addCriterion(\"product_category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNotNull() {\n            addCriterion(\"product_category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdEqualTo(Long value) {\n            addCriterion(\"product_category_id =\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"product_category_id <>\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThan(Long value) {\n            addCriterion(\"product_category_id >\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id >=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThan(Long value) {\n            addCriterion(\"product_category_id <\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id <=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIn(List<Long> values) {\n            addCriterion(\"product_category_id in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"product_category_id not in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id not between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameIsNull() {\n            addCriterion(\"promotion_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameIsNotNull() {\n            addCriterion(\"promotion_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameEqualTo(String value) {\n            addCriterion(\"promotion_name =\", value, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameNotEqualTo(String value) {\n            addCriterion(\"promotion_name <>\", value, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameGreaterThan(String value) {\n            addCriterion(\"promotion_name >\", value, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"promotion_name >=\", value, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameLessThan(String value) {\n            addCriterion(\"promotion_name <\", value, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameLessThanOrEqualTo(String value) {\n            addCriterion(\"promotion_name <=\", value, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameLike(String value) {\n            addCriterion(\"promotion_name like\", value, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameNotLike(String value) {\n            addCriterion(\"promotion_name not like\", value, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameIn(List<String> values) {\n            addCriterion(\"promotion_name in\", values, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameNotIn(List<String> values) {\n            addCriterion(\"promotion_name not in\", values, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameBetween(String value1, String value2) {\n            addCriterion(\"promotion_name between\", value1, value2, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionNameNotBetween(String value1, String value2) {\n            addCriterion(\"promotion_name not between\", value1, value2, \"promotionName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountIsNull() {\n            addCriterion(\"promotion_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountIsNotNull() {\n            addCriterion(\"promotion_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_amount =\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_amount <>\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"promotion_amount >\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_amount >=\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountLessThan(BigDecimal value) {\n            addCriterion(\"promotion_amount <\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_amount <=\", value, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountIn(List<BigDecimal> values) {\n            addCriterion(\"promotion_amount in\", values, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"promotion_amount not in\", values, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"promotion_amount between\", value1, value2, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"promotion_amount not between\", value1, value2, \"promotionAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountIsNull() {\n            addCriterion(\"coupon_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountIsNotNull() {\n            addCriterion(\"coupon_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountEqualTo(BigDecimal value) {\n            addCriterion(\"coupon_amount =\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"coupon_amount <>\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"coupon_amount >\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"coupon_amount >=\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountLessThan(BigDecimal value) {\n            addCriterion(\"coupon_amount <\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"coupon_amount <=\", value, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountIn(List<BigDecimal> values) {\n            addCriterion(\"coupon_amount in\", values, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"coupon_amount not in\", values, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"coupon_amount between\", value1, value2, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"coupon_amount not between\", value1, value2, \"couponAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountIsNull() {\n            addCriterion(\"integration_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountIsNotNull() {\n            addCriterion(\"integration_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountEqualTo(BigDecimal value) {\n            addCriterion(\"integration_amount =\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"integration_amount <>\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"integration_amount >\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"integration_amount >=\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountLessThan(BigDecimal value) {\n            addCriterion(\"integration_amount <\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"integration_amount <=\", value, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountIn(List<BigDecimal> values) {\n            addCriterion(\"integration_amount in\", values, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"integration_amount not in\", values, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"integration_amount between\", value1, value2, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"integration_amount not between\", value1, value2, \"integrationAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountIsNull() {\n            addCriterion(\"real_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountIsNotNull() {\n            addCriterion(\"real_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountEqualTo(BigDecimal value) {\n            addCriterion(\"real_amount =\", value, \"realAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"real_amount <>\", value, \"realAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"real_amount >\", value, \"realAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"real_amount >=\", value, \"realAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountLessThan(BigDecimal value) {\n            addCriterion(\"real_amount <\", value, \"realAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"real_amount <=\", value, \"realAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountIn(List<BigDecimal> values) {\n            addCriterion(\"real_amount in\", values, \"realAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"real_amount not in\", values, \"realAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"real_amount between\", value1, value2, \"realAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRealAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"real_amount not between\", value1, value2, \"realAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationIsNull() {\n            addCriterion(\"gift_integration is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationIsNotNull() {\n            addCriterion(\"gift_integration is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationEqualTo(Integer value) {\n            addCriterion(\"gift_integration =\", value, \"giftIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationNotEqualTo(Integer value) {\n            addCriterion(\"gift_integration <>\", value, \"giftIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationGreaterThan(Integer value) {\n            addCriterion(\"gift_integration >\", value, \"giftIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_integration >=\", value, \"giftIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationLessThan(Integer value) {\n            addCriterion(\"gift_integration <\", value, \"giftIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationLessThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_integration <=\", value, \"giftIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationIn(List<Integer> values) {\n            addCriterion(\"gift_integration in\", values, \"giftIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationNotIn(List<Integer> values) {\n            addCriterion(\"gift_integration not in\", values, \"giftIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_integration between\", value1, value2, \"giftIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftIntegrationNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_integration not between\", value1, value2, \"giftIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthIsNull() {\n            addCriterion(\"gift_growth is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthIsNotNull() {\n            addCriterion(\"gift_growth is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthEqualTo(Integer value) {\n            addCriterion(\"gift_growth =\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthNotEqualTo(Integer value) {\n            addCriterion(\"gift_growth <>\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthGreaterThan(Integer value) {\n            addCriterion(\"gift_growth >\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_growth >=\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthLessThan(Integer value) {\n            addCriterion(\"gift_growth <\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthLessThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_growth <=\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthIn(List<Integer> values) {\n            addCriterion(\"gift_growth in\", values, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthNotIn(List<Integer> values) {\n            addCriterion(\"gift_growth not in\", values, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_growth between\", value1, value2, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_growth not between\", value1, value2, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrIsNull() {\n            addCriterion(\"product_attr is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrIsNotNull() {\n            addCriterion(\"product_attr is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrEqualTo(String value) {\n            addCriterion(\"product_attr =\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotEqualTo(String value) {\n            addCriterion(\"product_attr <>\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrGreaterThan(String value) {\n            addCriterion(\"product_attr >\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_attr >=\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrLessThan(String value) {\n            addCriterion(\"product_attr <\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrLessThanOrEqualTo(String value) {\n            addCriterion(\"product_attr <=\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrLike(String value) {\n            addCriterion(\"product_attr like\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotLike(String value) {\n            addCriterion(\"product_attr not like\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrIn(List<String> values) {\n            addCriterion(\"product_attr in\", values, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotIn(List<String> values) {\n            addCriterion(\"product_attr not in\", values, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrBetween(String value1, String value2) {\n            addCriterion(\"product_attr between\", value1, value2, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotBetween(String value1, String value2) {\n            addCriterion(\"product_attr not between\", value1, value2, \"productAttr\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderOperateHistory.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class OmsOrderOperateHistory implements Serializable {\n    private Long id;\n\n    @Schema(title = \"订单id\")\n    private Long orderId;\n\n    @Schema(title = \"操作人：用户；系统；后台管理员\")\n    private String operateMan;\n\n    @Schema(title = \"操作时间\")\n    private Date createTime;\n\n    @Schema(title = \"订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单\")\n    private Integer orderStatus;\n\n    @Schema(title = \"备注\")\n    private String note;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getOrderId() {\n        return orderId;\n    }\n\n    public void setOrderId(Long orderId) {\n        this.orderId = orderId;\n    }\n\n    public String getOperateMan() {\n        return operateMan;\n    }\n\n    public void setOperateMan(String operateMan) {\n        this.operateMan = operateMan;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getOrderStatus() {\n        return orderStatus;\n    }\n\n    public void setOrderStatus(Integer orderStatus) {\n        this.orderStatus = orderStatus;\n    }\n\n    public String getNote() {\n        return note;\n    }\n\n    public void setNote(String note) {\n        this.note = note;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", orderId=\").append(orderId);\n        sb.append(\", operateMan=\").append(operateMan);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", orderStatus=\").append(orderStatus);\n        sb.append(\", note=\").append(note);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderOperateHistoryExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class OmsOrderOperateHistoryExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public OmsOrderOperateHistoryExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIsNull() {\n            addCriterion(\"order_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIsNotNull() {\n            addCriterion(\"order_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdEqualTo(Long value) {\n            addCriterion(\"order_id =\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotEqualTo(Long value) {\n            addCriterion(\"order_id <>\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdGreaterThan(Long value) {\n            addCriterion(\"order_id >\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"order_id >=\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdLessThan(Long value) {\n            addCriterion(\"order_id <\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"order_id <=\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIn(List<Long> values) {\n            addCriterion(\"order_id in\", values, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotIn(List<Long> values) {\n            addCriterion(\"order_id not in\", values, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdBetween(Long value1, Long value2) {\n            addCriterion(\"order_id between\", value1, value2, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"order_id not between\", value1, value2, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIsNull() {\n            addCriterion(\"operate_man is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIsNotNull() {\n            addCriterion(\"operate_man is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManEqualTo(String value) {\n            addCriterion(\"operate_man =\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotEqualTo(String value) {\n            addCriterion(\"operate_man <>\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManGreaterThan(String value) {\n            addCriterion(\"operate_man >\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManGreaterThanOrEqualTo(String value) {\n            addCriterion(\"operate_man >=\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLessThan(String value) {\n            addCriterion(\"operate_man <\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLessThanOrEqualTo(String value) {\n            addCriterion(\"operate_man <=\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLike(String value) {\n            addCriterion(\"operate_man like\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotLike(String value) {\n            addCriterion(\"operate_man not like\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIn(List<String> values) {\n            addCriterion(\"operate_man in\", values, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotIn(List<String> values) {\n            addCriterion(\"operate_man not in\", values, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManBetween(String value1, String value2) {\n            addCriterion(\"operate_man between\", value1, value2, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotBetween(String value1, String value2) {\n            addCriterion(\"operate_man not between\", value1, value2, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusIsNull() {\n            addCriterion(\"order_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusIsNotNull() {\n            addCriterion(\"order_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusEqualTo(Integer value) {\n            addCriterion(\"order_status =\", value, \"orderStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusNotEqualTo(Integer value) {\n            addCriterion(\"order_status <>\", value, \"orderStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusGreaterThan(Integer value) {\n            addCriterion(\"order_status >\", value, \"orderStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"order_status >=\", value, \"orderStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusLessThan(Integer value) {\n            addCriterion(\"order_status <\", value, \"orderStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"order_status <=\", value, \"orderStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusIn(List<Integer> values) {\n            addCriterion(\"order_status in\", values, \"orderStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusNotIn(List<Integer> values) {\n            addCriterion(\"order_status not in\", values, \"orderStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"order_status between\", value1, value2, \"orderStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"order_status not between\", value1, value2, \"orderStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNull() {\n            addCriterion(\"note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNotNull() {\n            addCriterion(\"note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteEqualTo(String value) {\n            addCriterion(\"note =\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotEqualTo(String value) {\n            addCriterion(\"note <>\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThan(String value) {\n            addCriterion(\"note >\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"note >=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThan(String value) {\n            addCriterion(\"note <\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"note <=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLike(String value) {\n            addCriterion(\"note like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotLike(String value) {\n            addCriterion(\"note not like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIn(List<String> values) {\n            addCriterion(\"note in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotIn(List<String> values) {\n            addCriterion(\"note not in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteBetween(String value1, String value2) {\n            addCriterion(\"note between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotBetween(String value1, String value2) {\n            addCriterion(\"note not between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderReturnApply.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\nimport java.util.Date;\n\npublic class OmsOrderReturnApply implements Serializable {\n    private Long id;\n\n    @Schema(title = \"订单id\")\n    private Long orderId;\n\n    @Schema(title = \"收货地址表id\")\n    private Long companyAddressId;\n\n    @Schema(title = \"退货商品id\")\n    private Long productId;\n\n    @Schema(title = \"订单编号\")\n    private String orderSn;\n\n    @Schema(title = \"申请时间\")\n    private Date createTime;\n\n    @Schema(title = \"会员用户名\")\n    private String memberUsername;\n\n    @Schema(title = \"退款金额\")\n    private BigDecimal returnAmount;\n\n    @Schema(title = \"退货人姓名\")\n    private String returnName;\n\n    @Schema(title = \"退货人电话\")\n    private String returnPhone;\n\n    @Schema(title = \"申请状态：0->待处理；1->退货中；2->已完成；3->已拒绝\")\n    private Integer status;\n\n    @Schema(title = \"处理时间\")\n    private Date handleTime;\n\n    @Schema(title = \"商品图片\")\n    private String productPic;\n\n    @Schema(title = \"商品名称\")\n    private String productName;\n\n    @Schema(title = \"商品品牌\")\n    private String productBrand;\n\n    @Schema(title = \"商品销售属性：颜色：红色；尺码：xl;\")\n    private String productAttr;\n\n    @Schema(title = \"退货数量\")\n    private Integer productCount;\n\n    @Schema(title = \"商品单价\")\n    private BigDecimal productPrice;\n\n    @Schema(title = \"商品实际支付单价\")\n    private BigDecimal productRealPrice;\n\n    @Schema(title = \"原因\")\n    private String reason;\n\n    @Schema(title = \"描述\")\n    private String description;\n\n    @Schema(title = \"凭证图片，以逗号隔开\")\n    private String proofPics;\n\n    @Schema(title = \"处理备注\")\n    private String handleNote;\n\n    @Schema(title = \"处理人员\")\n    private String handleMan;\n\n    @Schema(title = \"收货人\")\n    private String receiveMan;\n\n    @Schema(title = \"收货时间\")\n    private Date receiveTime;\n\n    @Schema(title = \"收货备注\")\n    private String receiveNote;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getOrderId() {\n        return orderId;\n    }\n\n    public void setOrderId(Long orderId) {\n        this.orderId = orderId;\n    }\n\n    public Long getCompanyAddressId() {\n        return companyAddressId;\n    }\n\n    public void setCompanyAddressId(Long companyAddressId) {\n        this.companyAddressId = companyAddressId;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public String getOrderSn() {\n        return orderSn;\n    }\n\n    public void setOrderSn(String orderSn) {\n        this.orderSn = orderSn;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public String getMemberUsername() {\n        return memberUsername;\n    }\n\n    public void setMemberUsername(String memberUsername) {\n        this.memberUsername = memberUsername;\n    }\n\n    public BigDecimal getReturnAmount() {\n        return returnAmount;\n    }\n\n    public void setReturnAmount(BigDecimal returnAmount) {\n        this.returnAmount = returnAmount;\n    }\n\n    public String getReturnName() {\n        return returnName;\n    }\n\n    public void setReturnName(String returnName) {\n        this.returnName = returnName;\n    }\n\n    public String getReturnPhone() {\n        return returnPhone;\n    }\n\n    public void setReturnPhone(String returnPhone) {\n        this.returnPhone = returnPhone;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public Date getHandleTime() {\n        return handleTime;\n    }\n\n    public void setHandleTime(Date handleTime) {\n        this.handleTime = handleTime;\n    }\n\n    public String getProductPic() {\n        return productPic;\n    }\n\n    public void setProductPic(String productPic) {\n        this.productPic = productPic;\n    }\n\n    public String getProductName() {\n        return productName;\n    }\n\n    public void setProductName(String productName) {\n        this.productName = productName;\n    }\n\n    public String getProductBrand() {\n        return productBrand;\n    }\n\n    public void setProductBrand(String productBrand) {\n        this.productBrand = productBrand;\n    }\n\n    public String getProductAttr() {\n        return productAttr;\n    }\n\n    public void setProductAttr(String productAttr) {\n        this.productAttr = productAttr;\n    }\n\n    public Integer getProductCount() {\n        return productCount;\n    }\n\n    public void setProductCount(Integer productCount) {\n        this.productCount = productCount;\n    }\n\n    public BigDecimal getProductPrice() {\n        return productPrice;\n    }\n\n    public void setProductPrice(BigDecimal productPrice) {\n        this.productPrice = productPrice;\n    }\n\n    public BigDecimal getProductRealPrice() {\n        return productRealPrice;\n    }\n\n    public void setProductRealPrice(BigDecimal productRealPrice) {\n        this.productRealPrice = productRealPrice;\n    }\n\n    public String getReason() {\n        return reason;\n    }\n\n    public void setReason(String reason) {\n        this.reason = reason;\n    }\n\n    public String getDescription() {\n        return description;\n    }\n\n    public void setDescription(String description) {\n        this.description = description;\n    }\n\n    public String getProofPics() {\n        return proofPics;\n    }\n\n    public void setProofPics(String proofPics) {\n        this.proofPics = proofPics;\n    }\n\n    public String getHandleNote() {\n        return handleNote;\n    }\n\n    public void setHandleNote(String handleNote) {\n        this.handleNote = handleNote;\n    }\n\n    public String getHandleMan() {\n        return handleMan;\n    }\n\n    public void setHandleMan(String handleMan) {\n        this.handleMan = handleMan;\n    }\n\n    public String getReceiveMan() {\n        return receiveMan;\n    }\n\n    public void setReceiveMan(String receiveMan) {\n        this.receiveMan = receiveMan;\n    }\n\n    public Date getReceiveTime() {\n        return receiveTime;\n    }\n\n    public void setReceiveTime(Date receiveTime) {\n        this.receiveTime = receiveTime;\n    }\n\n    public String getReceiveNote() {\n        return receiveNote;\n    }\n\n    public void setReceiveNote(String receiveNote) {\n        this.receiveNote = receiveNote;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", orderId=\").append(orderId);\n        sb.append(\", companyAddressId=\").append(companyAddressId);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", orderSn=\").append(orderSn);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", memberUsername=\").append(memberUsername);\n        sb.append(\", returnAmount=\").append(returnAmount);\n        sb.append(\", returnName=\").append(returnName);\n        sb.append(\", returnPhone=\").append(returnPhone);\n        sb.append(\", status=\").append(status);\n        sb.append(\", handleTime=\").append(handleTime);\n        sb.append(\", productPic=\").append(productPic);\n        sb.append(\", productName=\").append(productName);\n        sb.append(\", productBrand=\").append(productBrand);\n        sb.append(\", productAttr=\").append(productAttr);\n        sb.append(\", productCount=\").append(productCount);\n        sb.append(\", productPrice=\").append(productPrice);\n        sb.append(\", productRealPrice=\").append(productRealPrice);\n        sb.append(\", reason=\").append(reason);\n        sb.append(\", description=\").append(description);\n        sb.append(\", proofPics=\").append(proofPics);\n        sb.append(\", handleNote=\").append(handleNote);\n        sb.append(\", handleMan=\").append(handleMan);\n        sb.append(\", receiveMan=\").append(receiveMan);\n        sb.append(\", receiveTime=\").append(receiveTime);\n        sb.append(\", receiveNote=\").append(receiveNote);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderReturnApplyExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class OmsOrderReturnApplyExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public OmsOrderReturnApplyExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIsNull() {\n            addCriterion(\"order_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIsNotNull() {\n            addCriterion(\"order_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdEqualTo(Long value) {\n            addCriterion(\"order_id =\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotEqualTo(Long value) {\n            addCriterion(\"order_id <>\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdGreaterThan(Long value) {\n            addCriterion(\"order_id >\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"order_id >=\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdLessThan(Long value) {\n            addCriterion(\"order_id <\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"order_id <=\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIn(List<Long> values) {\n            addCriterion(\"order_id in\", values, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotIn(List<Long> values) {\n            addCriterion(\"order_id not in\", values, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdBetween(Long value1, Long value2) {\n            addCriterion(\"order_id between\", value1, value2, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"order_id not between\", value1, value2, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdIsNull() {\n            addCriterion(\"company_address_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdIsNotNull() {\n            addCriterion(\"company_address_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdEqualTo(Long value) {\n            addCriterion(\"company_address_id =\", value, \"companyAddressId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdNotEqualTo(Long value) {\n            addCriterion(\"company_address_id <>\", value, \"companyAddressId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdGreaterThan(Long value) {\n            addCriterion(\"company_address_id >\", value, \"companyAddressId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"company_address_id >=\", value, \"companyAddressId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdLessThan(Long value) {\n            addCriterion(\"company_address_id <\", value, \"companyAddressId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"company_address_id <=\", value, \"companyAddressId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdIn(List<Long> values) {\n            addCriterion(\"company_address_id in\", values, \"companyAddressId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdNotIn(List<Long> values) {\n            addCriterion(\"company_address_id not in\", values, \"companyAddressId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdBetween(Long value1, Long value2) {\n            addCriterion(\"company_address_id between\", value1, value2, \"companyAddressId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCompanyAddressIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"company_address_id not between\", value1, value2, \"companyAddressId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIsNull() {\n            addCriterion(\"order_sn is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIsNotNull() {\n            addCriterion(\"order_sn is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnEqualTo(String value) {\n            addCriterion(\"order_sn =\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotEqualTo(String value) {\n            addCriterion(\"order_sn <>\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnGreaterThan(String value) {\n            addCriterion(\"order_sn >\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnGreaterThanOrEqualTo(String value) {\n            addCriterion(\"order_sn >=\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLessThan(String value) {\n            addCriterion(\"order_sn <\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLessThanOrEqualTo(String value) {\n            addCriterion(\"order_sn <=\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLike(String value) {\n            addCriterion(\"order_sn like\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotLike(String value) {\n            addCriterion(\"order_sn not like\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIn(List<String> values) {\n            addCriterion(\"order_sn in\", values, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotIn(List<String> values) {\n            addCriterion(\"order_sn not in\", values, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnBetween(String value1, String value2) {\n            addCriterion(\"order_sn between\", value1, value2, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotBetween(String value1, String value2) {\n            addCriterion(\"order_sn not between\", value1, value2, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameIsNull() {\n            addCriterion(\"member_username is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameIsNotNull() {\n            addCriterion(\"member_username is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameEqualTo(String value) {\n            addCriterion(\"member_username =\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameNotEqualTo(String value) {\n            addCriterion(\"member_username <>\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameGreaterThan(String value) {\n            addCriterion(\"member_username >\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_username >=\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameLessThan(String value) {\n            addCriterion(\"member_username <\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameLessThanOrEqualTo(String value) {\n            addCriterion(\"member_username <=\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameLike(String value) {\n            addCriterion(\"member_username like\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameNotLike(String value) {\n            addCriterion(\"member_username not like\", value, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameIn(List<String> values) {\n            addCriterion(\"member_username in\", values, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameNotIn(List<String> values) {\n            addCriterion(\"member_username not in\", values, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameBetween(String value1, String value2) {\n            addCriterion(\"member_username between\", value1, value2, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberUsernameNotBetween(String value1, String value2) {\n            addCriterion(\"member_username not between\", value1, value2, \"memberUsername\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountIsNull() {\n            addCriterion(\"return_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountIsNotNull() {\n            addCriterion(\"return_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountEqualTo(BigDecimal value) {\n            addCriterion(\"return_amount =\", value, \"returnAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"return_amount <>\", value, \"returnAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"return_amount >\", value, \"returnAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"return_amount >=\", value, \"returnAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountLessThan(BigDecimal value) {\n            addCriterion(\"return_amount <\", value, \"returnAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"return_amount <=\", value, \"returnAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountIn(List<BigDecimal> values) {\n            addCriterion(\"return_amount in\", values, \"returnAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"return_amount not in\", values, \"returnAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"return_amount between\", value1, value2, \"returnAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"return_amount not between\", value1, value2, \"returnAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameIsNull() {\n            addCriterion(\"return_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameIsNotNull() {\n            addCriterion(\"return_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameEqualTo(String value) {\n            addCriterion(\"return_name =\", value, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameNotEqualTo(String value) {\n            addCriterion(\"return_name <>\", value, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameGreaterThan(String value) {\n            addCriterion(\"return_name >\", value, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"return_name >=\", value, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameLessThan(String value) {\n            addCriterion(\"return_name <\", value, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameLessThanOrEqualTo(String value) {\n            addCriterion(\"return_name <=\", value, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameLike(String value) {\n            addCriterion(\"return_name like\", value, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameNotLike(String value) {\n            addCriterion(\"return_name not like\", value, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameIn(List<String> values) {\n            addCriterion(\"return_name in\", values, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameNotIn(List<String> values) {\n            addCriterion(\"return_name not in\", values, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameBetween(String value1, String value2) {\n            addCriterion(\"return_name between\", value1, value2, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnNameNotBetween(String value1, String value2) {\n            addCriterion(\"return_name not between\", value1, value2, \"returnName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneIsNull() {\n            addCriterion(\"return_phone is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneIsNotNull() {\n            addCriterion(\"return_phone is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneEqualTo(String value) {\n            addCriterion(\"return_phone =\", value, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneNotEqualTo(String value) {\n            addCriterion(\"return_phone <>\", value, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneGreaterThan(String value) {\n            addCriterion(\"return_phone >\", value, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneGreaterThanOrEqualTo(String value) {\n            addCriterion(\"return_phone >=\", value, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneLessThan(String value) {\n            addCriterion(\"return_phone <\", value, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneLessThanOrEqualTo(String value) {\n            addCriterion(\"return_phone <=\", value, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneLike(String value) {\n            addCriterion(\"return_phone like\", value, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneNotLike(String value) {\n            addCriterion(\"return_phone not like\", value, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneIn(List<String> values) {\n            addCriterion(\"return_phone in\", values, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneNotIn(List<String> values) {\n            addCriterion(\"return_phone not in\", values, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneBetween(String value1, String value2) {\n            addCriterion(\"return_phone between\", value1, value2, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnPhoneNotBetween(String value1, String value2) {\n            addCriterion(\"return_phone not between\", value1, value2, \"returnPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeIsNull() {\n            addCriterion(\"handle_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeIsNotNull() {\n            addCriterion(\"handle_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeEqualTo(Date value) {\n            addCriterion(\"handle_time =\", value, \"handleTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeNotEqualTo(Date value) {\n            addCriterion(\"handle_time <>\", value, \"handleTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeGreaterThan(Date value) {\n            addCriterion(\"handle_time >\", value, \"handleTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"handle_time >=\", value, \"handleTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeLessThan(Date value) {\n            addCriterion(\"handle_time <\", value, \"handleTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"handle_time <=\", value, \"handleTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeIn(List<Date> values) {\n            addCriterion(\"handle_time in\", values, \"handleTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeNotIn(List<Date> values) {\n            addCriterion(\"handle_time not in\", values, \"handleTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeBetween(Date value1, Date value2) {\n            addCriterion(\"handle_time between\", value1, value2, \"handleTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"handle_time not between\", value1, value2, \"handleTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicIsNull() {\n            addCriterion(\"product_pic is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicIsNotNull() {\n            addCriterion(\"product_pic is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicEqualTo(String value) {\n            addCriterion(\"product_pic =\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotEqualTo(String value) {\n            addCriterion(\"product_pic <>\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicGreaterThan(String value) {\n            addCriterion(\"product_pic >\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_pic >=\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicLessThan(String value) {\n            addCriterion(\"product_pic <\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicLessThanOrEqualTo(String value) {\n            addCriterion(\"product_pic <=\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicLike(String value) {\n            addCriterion(\"product_pic like\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotLike(String value) {\n            addCriterion(\"product_pic not like\", value, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicIn(List<String> values) {\n            addCriterion(\"product_pic in\", values, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotIn(List<String> values) {\n            addCriterion(\"product_pic not in\", values, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicBetween(String value1, String value2) {\n            addCriterion(\"product_pic between\", value1, value2, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPicNotBetween(String value1, String value2) {\n            addCriterion(\"product_pic not between\", value1, value2, \"productPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNull() {\n            addCriterion(\"product_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNotNull() {\n            addCriterion(\"product_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameEqualTo(String value) {\n            addCriterion(\"product_name =\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotEqualTo(String value) {\n            addCriterion(\"product_name <>\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThan(String value) {\n            addCriterion(\"product_name >\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_name >=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThan(String value) {\n            addCriterion(\"product_name <\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThanOrEqualTo(String value) {\n            addCriterion(\"product_name <=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLike(String value) {\n            addCriterion(\"product_name like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotLike(String value) {\n            addCriterion(\"product_name not like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIn(List<String> values) {\n            addCriterion(\"product_name in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotIn(List<String> values) {\n            addCriterion(\"product_name not in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameBetween(String value1, String value2) {\n            addCriterion(\"product_name between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotBetween(String value1, String value2) {\n            addCriterion(\"product_name not between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandIsNull() {\n            addCriterion(\"product_brand is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandIsNotNull() {\n            addCriterion(\"product_brand is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandEqualTo(String value) {\n            addCriterion(\"product_brand =\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotEqualTo(String value) {\n            addCriterion(\"product_brand <>\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandGreaterThan(String value) {\n            addCriterion(\"product_brand >\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_brand >=\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandLessThan(String value) {\n            addCriterion(\"product_brand <\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandLessThanOrEqualTo(String value) {\n            addCriterion(\"product_brand <=\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandLike(String value) {\n            addCriterion(\"product_brand like\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotLike(String value) {\n            addCriterion(\"product_brand not like\", value, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandIn(List<String> values) {\n            addCriterion(\"product_brand in\", values, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotIn(List<String> values) {\n            addCriterion(\"product_brand not in\", values, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandBetween(String value1, String value2) {\n            addCriterion(\"product_brand between\", value1, value2, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductBrandNotBetween(String value1, String value2) {\n            addCriterion(\"product_brand not between\", value1, value2, \"productBrand\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrIsNull() {\n            addCriterion(\"product_attr is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrIsNotNull() {\n            addCriterion(\"product_attr is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrEqualTo(String value) {\n            addCriterion(\"product_attr =\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotEqualTo(String value) {\n            addCriterion(\"product_attr <>\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrGreaterThan(String value) {\n            addCriterion(\"product_attr >\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_attr >=\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrLessThan(String value) {\n            addCriterion(\"product_attr <\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrLessThanOrEqualTo(String value) {\n            addCriterion(\"product_attr <=\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrLike(String value) {\n            addCriterion(\"product_attr like\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotLike(String value) {\n            addCriterion(\"product_attr not like\", value, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrIn(List<String> values) {\n            addCriterion(\"product_attr in\", values, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotIn(List<String> values) {\n            addCriterion(\"product_attr not in\", values, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrBetween(String value1, String value2) {\n            addCriterion(\"product_attr between\", value1, value2, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttrNotBetween(String value1, String value2) {\n            addCriterion(\"product_attr not between\", value1, value2, \"productAttr\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIsNull() {\n            addCriterion(\"product_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIsNotNull() {\n            addCriterion(\"product_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountEqualTo(Integer value) {\n            addCriterion(\"product_count =\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotEqualTo(Integer value) {\n            addCriterion(\"product_count <>\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountGreaterThan(Integer value) {\n            addCriterion(\"product_count >\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"product_count >=\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountLessThan(Integer value) {\n            addCriterion(\"product_count <\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"product_count <=\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIn(List<Integer> values) {\n            addCriterion(\"product_count in\", values, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotIn(List<Integer> values) {\n            addCriterion(\"product_count not in\", values, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_count between\", value1, value2, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_count not between\", value1, value2, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceIsNull() {\n            addCriterion(\"product_price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceIsNotNull() {\n            addCriterion(\"product_price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceEqualTo(BigDecimal value) {\n            addCriterion(\"product_price =\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"product_price <>\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"product_price >\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"product_price >=\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceLessThan(BigDecimal value) {\n            addCriterion(\"product_price <\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"product_price <=\", value, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceIn(List<BigDecimal> values) {\n            addCriterion(\"product_price in\", values, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"product_price not in\", values, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"product_price between\", value1, value2, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"product_price not between\", value1, value2, \"productPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceIsNull() {\n            addCriterion(\"product_real_price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceIsNotNull() {\n            addCriterion(\"product_real_price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceEqualTo(BigDecimal value) {\n            addCriterion(\"product_real_price =\", value, \"productRealPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"product_real_price <>\", value, \"productRealPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"product_real_price >\", value, \"productRealPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"product_real_price >=\", value, \"productRealPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceLessThan(BigDecimal value) {\n            addCriterion(\"product_real_price <\", value, \"productRealPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"product_real_price <=\", value, \"productRealPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceIn(List<BigDecimal> values) {\n            addCriterion(\"product_real_price in\", values, \"productRealPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"product_real_price not in\", values, \"productRealPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"product_real_price between\", value1, value2, \"productRealPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductRealPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"product_real_price not between\", value1, value2, \"productRealPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonIsNull() {\n            addCriterion(\"reason is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonIsNotNull() {\n            addCriterion(\"reason is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonEqualTo(String value) {\n            addCriterion(\"reason =\", value, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonNotEqualTo(String value) {\n            addCriterion(\"reason <>\", value, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonGreaterThan(String value) {\n            addCriterion(\"reason >\", value, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonGreaterThanOrEqualTo(String value) {\n            addCriterion(\"reason >=\", value, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonLessThan(String value) {\n            addCriterion(\"reason <\", value, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonLessThanOrEqualTo(String value) {\n            addCriterion(\"reason <=\", value, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonLike(String value) {\n            addCriterion(\"reason like\", value, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonNotLike(String value) {\n            addCriterion(\"reason not like\", value, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonIn(List<String> values) {\n            addCriterion(\"reason in\", values, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonNotIn(List<String> values) {\n            addCriterion(\"reason not in\", values, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonBetween(String value1, String value2) {\n            addCriterion(\"reason between\", value1, value2, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReasonNotBetween(String value1, String value2) {\n            addCriterion(\"reason not between\", value1, value2, \"reason\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIsNull() {\n            addCriterion(\"description is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIsNotNull() {\n            addCriterion(\"description is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionEqualTo(String value) {\n            addCriterion(\"description =\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotEqualTo(String value) {\n            addCriterion(\"description <>\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionGreaterThan(String value) {\n            addCriterion(\"description >\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {\n            addCriterion(\"description >=\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLessThan(String value) {\n            addCriterion(\"description <\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLessThanOrEqualTo(String value) {\n            addCriterion(\"description <=\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLike(String value) {\n            addCriterion(\"description like\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotLike(String value) {\n            addCriterion(\"description not like\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIn(List<String> values) {\n            addCriterion(\"description in\", values, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotIn(List<String> values) {\n            addCriterion(\"description not in\", values, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionBetween(String value1, String value2) {\n            addCriterion(\"description between\", value1, value2, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotBetween(String value1, String value2) {\n            addCriterion(\"description not between\", value1, value2, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsIsNull() {\n            addCriterion(\"proof_pics is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsIsNotNull() {\n            addCriterion(\"proof_pics is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsEqualTo(String value) {\n            addCriterion(\"proof_pics =\", value, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsNotEqualTo(String value) {\n            addCriterion(\"proof_pics <>\", value, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsGreaterThan(String value) {\n            addCriterion(\"proof_pics >\", value, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsGreaterThanOrEqualTo(String value) {\n            addCriterion(\"proof_pics >=\", value, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsLessThan(String value) {\n            addCriterion(\"proof_pics <\", value, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsLessThanOrEqualTo(String value) {\n            addCriterion(\"proof_pics <=\", value, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsLike(String value) {\n            addCriterion(\"proof_pics like\", value, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsNotLike(String value) {\n            addCriterion(\"proof_pics not like\", value, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsIn(List<String> values) {\n            addCriterion(\"proof_pics in\", values, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsNotIn(List<String> values) {\n            addCriterion(\"proof_pics not in\", values, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsBetween(String value1, String value2) {\n            addCriterion(\"proof_pics between\", value1, value2, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProofPicsNotBetween(String value1, String value2) {\n            addCriterion(\"proof_pics not between\", value1, value2, \"proofPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteIsNull() {\n            addCriterion(\"handle_note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteIsNotNull() {\n            addCriterion(\"handle_note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteEqualTo(String value) {\n            addCriterion(\"handle_note =\", value, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteNotEqualTo(String value) {\n            addCriterion(\"handle_note <>\", value, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteGreaterThan(String value) {\n            addCriterion(\"handle_note >\", value, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"handle_note >=\", value, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteLessThan(String value) {\n            addCriterion(\"handle_note <\", value, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"handle_note <=\", value, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteLike(String value) {\n            addCriterion(\"handle_note like\", value, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteNotLike(String value) {\n            addCriterion(\"handle_note not like\", value, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteIn(List<String> values) {\n            addCriterion(\"handle_note in\", values, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteNotIn(List<String> values) {\n            addCriterion(\"handle_note not in\", values, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteBetween(String value1, String value2) {\n            addCriterion(\"handle_note between\", value1, value2, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleNoteNotBetween(String value1, String value2) {\n            addCriterion(\"handle_note not between\", value1, value2, \"handleNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManIsNull() {\n            addCriterion(\"handle_man is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManIsNotNull() {\n            addCriterion(\"handle_man is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManEqualTo(String value) {\n            addCriterion(\"handle_man =\", value, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManNotEqualTo(String value) {\n            addCriterion(\"handle_man <>\", value, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManGreaterThan(String value) {\n            addCriterion(\"handle_man >\", value, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManGreaterThanOrEqualTo(String value) {\n            addCriterion(\"handle_man >=\", value, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManLessThan(String value) {\n            addCriterion(\"handle_man <\", value, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManLessThanOrEqualTo(String value) {\n            addCriterion(\"handle_man <=\", value, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManLike(String value) {\n            addCriterion(\"handle_man like\", value, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManNotLike(String value) {\n            addCriterion(\"handle_man not like\", value, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManIn(List<String> values) {\n            addCriterion(\"handle_man in\", values, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManNotIn(List<String> values) {\n            addCriterion(\"handle_man not in\", values, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManBetween(String value1, String value2) {\n            addCriterion(\"handle_man between\", value1, value2, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandleManNotBetween(String value1, String value2) {\n            addCriterion(\"handle_man not between\", value1, value2, \"handleMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManIsNull() {\n            addCriterion(\"receive_man is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManIsNotNull() {\n            addCriterion(\"receive_man is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManEqualTo(String value) {\n            addCriterion(\"receive_man =\", value, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManNotEqualTo(String value) {\n            addCriterion(\"receive_man <>\", value, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManGreaterThan(String value) {\n            addCriterion(\"receive_man >\", value, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManGreaterThanOrEqualTo(String value) {\n            addCriterion(\"receive_man >=\", value, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManLessThan(String value) {\n            addCriterion(\"receive_man <\", value, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManLessThanOrEqualTo(String value) {\n            addCriterion(\"receive_man <=\", value, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManLike(String value) {\n            addCriterion(\"receive_man like\", value, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManNotLike(String value) {\n            addCriterion(\"receive_man not like\", value, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManIn(List<String> values) {\n            addCriterion(\"receive_man in\", values, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManNotIn(List<String> values) {\n            addCriterion(\"receive_man not in\", values, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManBetween(String value1, String value2) {\n            addCriterion(\"receive_man between\", value1, value2, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveManNotBetween(String value1, String value2) {\n            addCriterion(\"receive_man not between\", value1, value2, \"receiveMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeIsNull() {\n            addCriterion(\"receive_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeIsNotNull() {\n            addCriterion(\"receive_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeEqualTo(Date value) {\n            addCriterion(\"receive_time =\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeNotEqualTo(Date value) {\n            addCriterion(\"receive_time <>\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeGreaterThan(Date value) {\n            addCriterion(\"receive_time >\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"receive_time >=\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeLessThan(Date value) {\n            addCriterion(\"receive_time <\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"receive_time <=\", value, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeIn(List<Date> values) {\n            addCriterion(\"receive_time in\", values, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeNotIn(List<Date> values) {\n            addCriterion(\"receive_time not in\", values, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeBetween(Date value1, Date value2) {\n            addCriterion(\"receive_time between\", value1, value2, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"receive_time not between\", value1, value2, \"receiveTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteIsNull() {\n            addCriterion(\"receive_note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteIsNotNull() {\n            addCriterion(\"receive_note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteEqualTo(String value) {\n            addCriterion(\"receive_note =\", value, \"receiveNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteNotEqualTo(String value) {\n            addCriterion(\"receive_note <>\", value, \"receiveNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteGreaterThan(String value) {\n            addCriterion(\"receive_note >\", value, \"receiveNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"receive_note >=\", value, \"receiveNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteLessThan(String value) {\n            addCriterion(\"receive_note <\", value, \"receiveNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"receive_note <=\", value, \"receiveNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteLike(String value) {\n            addCriterion(\"receive_note like\", value, \"receiveNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteNotLike(String value) {\n            addCriterion(\"receive_note not like\", value, \"receiveNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteIn(List<String> values) {\n            addCriterion(\"receive_note in\", values, \"receiveNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteNotIn(List<String> values) {\n            addCriterion(\"receive_note not in\", values, \"receiveNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteBetween(String value1, String value2) {\n            addCriterion(\"receive_note between\", value1, value2, \"receiveNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveNoteNotBetween(String value1, String value2) {\n            addCriterion(\"receive_note not between\", value1, value2, \"receiveNote\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderReturnReason.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class OmsOrderReturnReason implements Serializable {\n    private Long id;\n\n    @Schema(title = \"退货类型\")\n    private String name;\n\n    private Integer sort;\n\n    @Schema(title = \"状态：0->不启用；1->启用\")\n    private Integer status;\n\n    @Schema(title = \"添加时间\")\n    private Date createTime;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", status=\").append(status);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderReturnReasonExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class OmsOrderReturnReasonExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public OmsOrderReturnReasonExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderSetting.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class OmsOrderSetting implements Serializable {\n    private Long id;\n\n    @Schema(title = \"秒杀订单超时关闭时间(分)\")\n    private Integer flashOrderOvertime;\n\n    @Schema(title = \"正常订单超时时间(分)\")\n    private Integer normalOrderOvertime;\n\n    @Schema(title = \"发货后自动确认收货时间（天）\")\n    private Integer confirmOvertime;\n\n    @Schema(title = \"自动完成交易时间，不能申请售后（天）\")\n    private Integer finishOvertime;\n\n    @Schema(title = \"订单完成后自动好评时间（天）\")\n    private Integer commentOvertime;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Integer getFlashOrderOvertime() {\n        return flashOrderOvertime;\n    }\n\n    public void setFlashOrderOvertime(Integer flashOrderOvertime) {\n        this.flashOrderOvertime = flashOrderOvertime;\n    }\n\n    public Integer getNormalOrderOvertime() {\n        return normalOrderOvertime;\n    }\n\n    public void setNormalOrderOvertime(Integer normalOrderOvertime) {\n        this.normalOrderOvertime = normalOrderOvertime;\n    }\n\n    public Integer getConfirmOvertime() {\n        return confirmOvertime;\n    }\n\n    public void setConfirmOvertime(Integer confirmOvertime) {\n        this.confirmOvertime = confirmOvertime;\n    }\n\n    public Integer getFinishOvertime() {\n        return finishOvertime;\n    }\n\n    public void setFinishOvertime(Integer finishOvertime) {\n        this.finishOvertime = finishOvertime;\n    }\n\n    public Integer getCommentOvertime() {\n        return commentOvertime;\n    }\n\n    public void setCommentOvertime(Integer commentOvertime) {\n        this.commentOvertime = commentOvertime;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", flashOrderOvertime=\").append(flashOrderOvertime);\n        sb.append(\", normalOrderOvertime=\").append(normalOrderOvertime);\n        sb.append(\", confirmOvertime=\").append(confirmOvertime);\n        sb.append(\", finishOvertime=\").append(finishOvertime);\n        sb.append(\", commentOvertime=\").append(commentOvertime);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/OmsOrderSettingExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class OmsOrderSettingExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public OmsOrderSettingExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeIsNull() {\n            addCriterion(\"flash_order_overtime is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeIsNotNull() {\n            addCriterion(\"flash_order_overtime is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeEqualTo(Integer value) {\n            addCriterion(\"flash_order_overtime =\", value, \"flashOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeNotEqualTo(Integer value) {\n            addCriterion(\"flash_order_overtime <>\", value, \"flashOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeGreaterThan(Integer value) {\n            addCriterion(\"flash_order_overtime >\", value, \"flashOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"flash_order_overtime >=\", value, \"flashOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeLessThan(Integer value) {\n            addCriterion(\"flash_order_overtime <\", value, \"flashOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"flash_order_overtime <=\", value, \"flashOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeIn(List<Integer> values) {\n            addCriterion(\"flash_order_overtime in\", values, \"flashOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeNotIn(List<Integer> values) {\n            addCriterion(\"flash_order_overtime not in\", values, \"flashOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeBetween(Integer value1, Integer value2) {\n            addCriterion(\"flash_order_overtime between\", value1, value2, \"flashOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashOrderOvertimeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"flash_order_overtime not between\", value1, value2, \"flashOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeIsNull() {\n            addCriterion(\"normal_order_overtime is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeIsNotNull() {\n            addCriterion(\"normal_order_overtime is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeEqualTo(Integer value) {\n            addCriterion(\"normal_order_overtime =\", value, \"normalOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeNotEqualTo(Integer value) {\n            addCriterion(\"normal_order_overtime <>\", value, \"normalOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeGreaterThan(Integer value) {\n            addCriterion(\"normal_order_overtime >\", value, \"normalOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"normal_order_overtime >=\", value, \"normalOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeLessThan(Integer value) {\n            addCriterion(\"normal_order_overtime <\", value, \"normalOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"normal_order_overtime <=\", value, \"normalOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeIn(List<Integer> values) {\n            addCriterion(\"normal_order_overtime in\", values, \"normalOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeNotIn(List<Integer> values) {\n            addCriterion(\"normal_order_overtime not in\", values, \"normalOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeBetween(Integer value1, Integer value2) {\n            addCriterion(\"normal_order_overtime between\", value1, value2, \"normalOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNormalOrderOvertimeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"normal_order_overtime not between\", value1, value2, \"normalOrderOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeIsNull() {\n            addCriterion(\"confirm_overtime is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeIsNotNull() {\n            addCriterion(\"confirm_overtime is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeEqualTo(Integer value) {\n            addCriterion(\"confirm_overtime =\", value, \"confirmOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeNotEqualTo(Integer value) {\n            addCriterion(\"confirm_overtime <>\", value, \"confirmOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeGreaterThan(Integer value) {\n            addCriterion(\"confirm_overtime >\", value, \"confirmOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"confirm_overtime >=\", value, \"confirmOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeLessThan(Integer value) {\n            addCriterion(\"confirm_overtime <\", value, \"confirmOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"confirm_overtime <=\", value, \"confirmOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeIn(List<Integer> values) {\n            addCriterion(\"confirm_overtime in\", values, \"confirmOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeNotIn(List<Integer> values) {\n            addCriterion(\"confirm_overtime not in\", values, \"confirmOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeBetween(Integer value1, Integer value2) {\n            addCriterion(\"confirm_overtime between\", value1, value2, \"confirmOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConfirmOvertimeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"confirm_overtime not between\", value1, value2, \"confirmOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeIsNull() {\n            addCriterion(\"finish_overtime is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeIsNotNull() {\n            addCriterion(\"finish_overtime is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeEqualTo(Integer value) {\n            addCriterion(\"finish_overtime =\", value, \"finishOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeNotEqualTo(Integer value) {\n            addCriterion(\"finish_overtime <>\", value, \"finishOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeGreaterThan(Integer value) {\n            addCriterion(\"finish_overtime >\", value, \"finishOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"finish_overtime >=\", value, \"finishOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeLessThan(Integer value) {\n            addCriterion(\"finish_overtime <\", value, \"finishOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"finish_overtime <=\", value, \"finishOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeIn(List<Integer> values) {\n            addCriterion(\"finish_overtime in\", values, \"finishOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeNotIn(List<Integer> values) {\n            addCriterion(\"finish_overtime not in\", values, \"finishOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeBetween(Integer value1, Integer value2) {\n            addCriterion(\"finish_overtime between\", value1, value2, \"finishOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOvertimeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"finish_overtime not between\", value1, value2, \"finishOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeIsNull() {\n            addCriterion(\"comment_overtime is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeIsNotNull() {\n            addCriterion(\"comment_overtime is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeEqualTo(Integer value) {\n            addCriterion(\"comment_overtime =\", value, \"commentOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeNotEqualTo(Integer value) {\n            addCriterion(\"comment_overtime <>\", value, \"commentOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeGreaterThan(Integer value) {\n            addCriterion(\"comment_overtime >\", value, \"commentOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"comment_overtime >=\", value, \"commentOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeLessThan(Integer value) {\n            addCriterion(\"comment_overtime <\", value, \"commentOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"comment_overtime <=\", value, \"commentOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeIn(List<Integer> values) {\n            addCriterion(\"comment_overtime in\", values, \"commentOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeNotIn(List<Integer> values) {\n            addCriterion(\"comment_overtime not in\", values, \"commentOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeBetween(Integer value1, Integer value2) {\n            addCriterion(\"comment_overtime between\", value1, value2, \"commentOvertime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentOvertimeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"comment_overtime not between\", value1, value2, \"commentOvertime\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsAlbum.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class PmsAlbum implements Serializable {\n    private Long id;\n\n    private String name;\n\n    private String coverPic;\n\n    private Integer picCount;\n\n    private Integer sort;\n\n    private String description;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getCoverPic() {\n        return coverPic;\n    }\n\n    public void setCoverPic(String coverPic) {\n        this.coverPic = coverPic;\n    }\n\n    public Integer getPicCount() {\n        return picCount;\n    }\n\n    public void setPicCount(Integer picCount) {\n        this.picCount = picCount;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    public String getDescription() {\n        return description;\n    }\n\n    public void setDescription(String description) {\n        this.description = description;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", coverPic=\").append(coverPic);\n        sb.append(\", picCount=\").append(picCount);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", description=\").append(description);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsAlbumExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsAlbumExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsAlbumExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicIsNull() {\n            addCriterion(\"cover_pic is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicIsNotNull() {\n            addCriterion(\"cover_pic is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicEqualTo(String value) {\n            addCriterion(\"cover_pic =\", value, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicNotEqualTo(String value) {\n            addCriterion(\"cover_pic <>\", value, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicGreaterThan(String value) {\n            addCriterion(\"cover_pic >\", value, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicGreaterThanOrEqualTo(String value) {\n            addCriterion(\"cover_pic >=\", value, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicLessThan(String value) {\n            addCriterion(\"cover_pic <\", value, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicLessThanOrEqualTo(String value) {\n            addCriterion(\"cover_pic <=\", value, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicLike(String value) {\n            addCriterion(\"cover_pic like\", value, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicNotLike(String value) {\n            addCriterion(\"cover_pic not like\", value, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicIn(List<String> values) {\n            addCriterion(\"cover_pic in\", values, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicNotIn(List<String> values) {\n            addCriterion(\"cover_pic not in\", values, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicBetween(String value1, String value2) {\n            addCriterion(\"cover_pic between\", value1, value2, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCoverPicNotBetween(String value1, String value2) {\n            addCriterion(\"cover_pic not between\", value1, value2, \"coverPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountIsNull() {\n            addCriterion(\"pic_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountIsNotNull() {\n            addCriterion(\"pic_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountEqualTo(Integer value) {\n            addCriterion(\"pic_count =\", value, \"picCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountNotEqualTo(Integer value) {\n            addCriterion(\"pic_count <>\", value, \"picCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountGreaterThan(Integer value) {\n            addCriterion(\"pic_count >\", value, \"picCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"pic_count >=\", value, \"picCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountLessThan(Integer value) {\n            addCriterion(\"pic_count <\", value, \"picCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"pic_count <=\", value, \"picCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountIn(List<Integer> values) {\n            addCriterion(\"pic_count in\", values, \"picCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountNotIn(List<Integer> values) {\n            addCriterion(\"pic_count not in\", values, \"picCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"pic_count between\", value1, value2, \"picCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"pic_count not between\", value1, value2, \"picCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIsNull() {\n            addCriterion(\"description is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIsNotNull() {\n            addCriterion(\"description is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionEqualTo(String value) {\n            addCriterion(\"description =\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotEqualTo(String value) {\n            addCriterion(\"description <>\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionGreaterThan(String value) {\n            addCriterion(\"description >\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {\n            addCriterion(\"description >=\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLessThan(String value) {\n            addCriterion(\"description <\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLessThanOrEqualTo(String value) {\n            addCriterion(\"description <=\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLike(String value) {\n            addCriterion(\"description like\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotLike(String value) {\n            addCriterion(\"description not like\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIn(List<String> values) {\n            addCriterion(\"description in\", values, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotIn(List<String> values) {\n            addCriterion(\"description not in\", values, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionBetween(String value1, String value2) {\n            addCriterion(\"description between\", value1, value2, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotBetween(String value1, String value2) {\n            addCriterion(\"description not between\", value1, value2, \"description\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsAlbumPic.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class PmsAlbumPic implements Serializable {\n    private Long id;\n\n    private Long albumId;\n\n    private String pic;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getAlbumId() {\n        return albumId;\n    }\n\n    public void setAlbumId(Long albumId) {\n        this.albumId = albumId;\n    }\n\n    public String getPic() {\n        return pic;\n    }\n\n    public void setPic(String pic) {\n        this.pic = pic;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", albumId=\").append(albumId);\n        sb.append(\", pic=\").append(pic);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsAlbumPicExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsAlbumPicExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsAlbumPicExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdIsNull() {\n            addCriterion(\"album_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdIsNotNull() {\n            addCriterion(\"album_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdEqualTo(Long value) {\n            addCriterion(\"album_id =\", value, \"albumId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdNotEqualTo(Long value) {\n            addCriterion(\"album_id <>\", value, \"albumId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdGreaterThan(Long value) {\n            addCriterion(\"album_id >\", value, \"albumId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"album_id >=\", value, \"albumId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdLessThan(Long value) {\n            addCriterion(\"album_id <\", value, \"albumId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"album_id <=\", value, \"albumId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdIn(List<Long> values) {\n            addCriterion(\"album_id in\", values, \"albumId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdNotIn(List<Long> values) {\n            addCriterion(\"album_id not in\", values, \"albumId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdBetween(Long value1, Long value2) {\n            addCriterion(\"album_id between\", value1, value2, \"albumId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"album_id not between\", value1, value2, \"albumId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIsNull() {\n            addCriterion(\"pic is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIsNotNull() {\n            addCriterion(\"pic is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicEqualTo(String value) {\n            addCriterion(\"pic =\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotEqualTo(String value) {\n            addCriterion(\"pic <>\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicGreaterThan(String value) {\n            addCriterion(\"pic >\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicGreaterThanOrEqualTo(String value) {\n            addCriterion(\"pic >=\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLessThan(String value) {\n            addCriterion(\"pic <\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLessThanOrEqualTo(String value) {\n            addCriterion(\"pic <=\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLike(String value) {\n            addCriterion(\"pic like\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotLike(String value) {\n            addCriterion(\"pic not like\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIn(List<String> values) {\n            addCriterion(\"pic in\", values, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotIn(List<String> values) {\n            addCriterion(\"pic not in\", values, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicBetween(String value1, String value2) {\n            addCriterion(\"pic between\", value1, value2, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotBetween(String value1, String value2) {\n            addCriterion(\"pic not between\", value1, value2, \"pic\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsBrand.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class PmsBrand implements Serializable {\n    private Long id;\n\n    private String name;\n\n    @Schema(title = \"首字母\")\n    private String firstLetter;\n\n    private Integer sort;\n\n    @Schema(title = \"是否为品牌制造商：0->不是；1->是\")\n    private Integer factoryStatus;\n\n    private Integer showStatus;\n\n    @Schema(title = \"产品数量\")\n    private Integer productCount;\n\n    @Schema(title = \"产品评论数量\")\n    private Integer productCommentCount;\n\n    @Schema(title = \"品牌logo\")\n    private String logo;\n\n    @Schema(title = \"专区大图\")\n    private String bigPic;\n\n    @Schema(title = \"品牌故事\")\n    private String brandStory;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getFirstLetter() {\n        return firstLetter;\n    }\n\n    public void setFirstLetter(String firstLetter) {\n        this.firstLetter = firstLetter;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    public Integer getFactoryStatus() {\n        return factoryStatus;\n    }\n\n    public void setFactoryStatus(Integer factoryStatus) {\n        this.factoryStatus = factoryStatus;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    public Integer getProductCount() {\n        return productCount;\n    }\n\n    public void setProductCount(Integer productCount) {\n        this.productCount = productCount;\n    }\n\n    public Integer getProductCommentCount() {\n        return productCommentCount;\n    }\n\n    public void setProductCommentCount(Integer productCommentCount) {\n        this.productCommentCount = productCommentCount;\n    }\n\n    public String getLogo() {\n        return logo;\n    }\n\n    public void setLogo(String logo) {\n        this.logo = logo;\n    }\n\n    public String getBigPic() {\n        return bigPic;\n    }\n\n    public void setBigPic(String bigPic) {\n        this.bigPic = bigPic;\n    }\n\n    public String getBrandStory() {\n        return brandStory;\n    }\n\n    public void setBrandStory(String brandStory) {\n        this.brandStory = brandStory;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", firstLetter=\").append(firstLetter);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", factoryStatus=\").append(factoryStatus);\n        sb.append(\", showStatus=\").append(showStatus);\n        sb.append(\", productCount=\").append(productCount);\n        sb.append(\", productCommentCount=\").append(productCommentCount);\n        sb.append(\", logo=\").append(logo);\n        sb.append(\", bigPic=\").append(bigPic);\n        sb.append(\", brandStory=\").append(brandStory);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsBrandExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsBrandExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsBrandExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterIsNull() {\n            addCriterion(\"first_letter is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterIsNotNull() {\n            addCriterion(\"first_letter is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterEqualTo(String value) {\n            addCriterion(\"first_letter =\", value, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterNotEqualTo(String value) {\n            addCriterion(\"first_letter <>\", value, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterGreaterThan(String value) {\n            addCriterion(\"first_letter >\", value, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterGreaterThanOrEqualTo(String value) {\n            addCriterion(\"first_letter >=\", value, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterLessThan(String value) {\n            addCriterion(\"first_letter <\", value, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterLessThanOrEqualTo(String value) {\n            addCriterion(\"first_letter <=\", value, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterLike(String value) {\n            addCriterion(\"first_letter like\", value, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterNotLike(String value) {\n            addCriterion(\"first_letter not like\", value, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterIn(List<String> values) {\n            addCriterion(\"first_letter in\", values, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterNotIn(List<String> values) {\n            addCriterion(\"first_letter not in\", values, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterBetween(String value1, String value2) {\n            addCriterion(\"first_letter between\", value1, value2, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstLetterNotBetween(String value1, String value2) {\n            addCriterion(\"first_letter not between\", value1, value2, \"firstLetter\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusIsNull() {\n            addCriterion(\"factory_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusIsNotNull() {\n            addCriterion(\"factory_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusEqualTo(Integer value) {\n            addCriterion(\"factory_status =\", value, \"factoryStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusNotEqualTo(Integer value) {\n            addCriterion(\"factory_status <>\", value, \"factoryStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusGreaterThan(Integer value) {\n            addCriterion(\"factory_status >\", value, \"factoryStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"factory_status >=\", value, \"factoryStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusLessThan(Integer value) {\n            addCriterion(\"factory_status <\", value, \"factoryStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"factory_status <=\", value, \"factoryStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusIn(List<Integer> values) {\n            addCriterion(\"factory_status in\", values, \"factoryStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusNotIn(List<Integer> values) {\n            addCriterion(\"factory_status not in\", values, \"factoryStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"factory_status between\", value1, value2, \"factoryStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFactoryStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"factory_status not between\", value1, value2, \"factoryStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNull() {\n            addCriterion(\"show_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNotNull() {\n            addCriterion(\"show_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusEqualTo(Integer value) {\n            addCriterion(\"show_status =\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotEqualTo(Integer value) {\n            addCriterion(\"show_status <>\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThan(Integer value) {\n            addCriterion(\"show_status >\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status >=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThan(Integer value) {\n            addCriterion(\"show_status <\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status <=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIn(List<Integer> values) {\n            addCriterion(\"show_status in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotIn(List<Integer> values) {\n            addCriterion(\"show_status not in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status not between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIsNull() {\n            addCriterion(\"product_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIsNotNull() {\n            addCriterion(\"product_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountEqualTo(Integer value) {\n            addCriterion(\"product_count =\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotEqualTo(Integer value) {\n            addCriterion(\"product_count <>\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountGreaterThan(Integer value) {\n            addCriterion(\"product_count >\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"product_count >=\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountLessThan(Integer value) {\n            addCriterion(\"product_count <\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"product_count <=\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIn(List<Integer> values) {\n            addCriterion(\"product_count in\", values, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotIn(List<Integer> values) {\n            addCriterion(\"product_count not in\", values, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_count between\", value1, value2, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_count not between\", value1, value2, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountIsNull() {\n            addCriterion(\"product_comment_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountIsNotNull() {\n            addCriterion(\"product_comment_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountEqualTo(Integer value) {\n            addCriterion(\"product_comment_count =\", value, \"productCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountNotEqualTo(Integer value) {\n            addCriterion(\"product_comment_count <>\", value, \"productCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountGreaterThan(Integer value) {\n            addCriterion(\"product_comment_count >\", value, \"productCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"product_comment_count >=\", value, \"productCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountLessThan(Integer value) {\n            addCriterion(\"product_comment_count <\", value, \"productCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"product_comment_count <=\", value, \"productCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountIn(List<Integer> values) {\n            addCriterion(\"product_comment_count in\", values, \"productCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountNotIn(List<Integer> values) {\n            addCriterion(\"product_comment_count not in\", values, \"productCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_comment_count between\", value1, value2, \"productCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCommentCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_comment_count not between\", value1, value2, \"productCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoIsNull() {\n            addCriterion(\"logo is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoIsNotNull() {\n            addCriterion(\"logo is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoEqualTo(String value) {\n            addCriterion(\"logo =\", value, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoNotEqualTo(String value) {\n            addCriterion(\"logo <>\", value, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoGreaterThan(String value) {\n            addCriterion(\"logo >\", value, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoGreaterThanOrEqualTo(String value) {\n            addCriterion(\"logo >=\", value, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoLessThan(String value) {\n            addCriterion(\"logo <\", value, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoLessThanOrEqualTo(String value) {\n            addCriterion(\"logo <=\", value, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoLike(String value) {\n            addCriterion(\"logo like\", value, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoNotLike(String value) {\n            addCriterion(\"logo not like\", value, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoIn(List<String> values) {\n            addCriterion(\"logo in\", values, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoNotIn(List<String> values) {\n            addCriterion(\"logo not in\", values, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoBetween(String value1, String value2) {\n            addCriterion(\"logo between\", value1, value2, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLogoNotBetween(String value1, String value2) {\n            addCriterion(\"logo not between\", value1, value2, \"logo\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicIsNull() {\n            addCriterion(\"big_pic is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicIsNotNull() {\n            addCriterion(\"big_pic is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicEqualTo(String value) {\n            addCriterion(\"big_pic =\", value, \"bigPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicNotEqualTo(String value) {\n            addCriterion(\"big_pic <>\", value, \"bigPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicGreaterThan(String value) {\n            addCriterion(\"big_pic >\", value, \"bigPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicGreaterThanOrEqualTo(String value) {\n            addCriterion(\"big_pic >=\", value, \"bigPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicLessThan(String value) {\n            addCriterion(\"big_pic <\", value, \"bigPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicLessThanOrEqualTo(String value) {\n            addCriterion(\"big_pic <=\", value, \"bigPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicLike(String value) {\n            addCriterion(\"big_pic like\", value, \"bigPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicNotLike(String value) {\n            addCriterion(\"big_pic not like\", value, \"bigPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicIn(List<String> values) {\n            addCriterion(\"big_pic in\", values, \"bigPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicNotIn(List<String> values) {\n            addCriterion(\"big_pic not in\", values, \"bigPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicBetween(String value1, String value2) {\n            addCriterion(\"big_pic between\", value1, value2, \"bigPic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBigPicNotBetween(String value1, String value2) {\n            addCriterion(\"big_pic not between\", value1, value2, \"bigPic\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsComment.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class PmsComment implements Serializable {\n    private Long id;\n\n    private Long productId;\n\n    private String memberNickName;\n\n    private String productName;\n\n    @Schema(title = \"评价星数：0->5\")\n    private Integer star;\n\n    @Schema(title = \"评价的ip\")\n    private String memberIp;\n\n    private Date createTime;\n\n    private Integer showStatus;\n\n    @Schema(title = \"购买时的商品属性\")\n    private String productAttribute;\n\n    private Integer collectCouont;\n\n    private Integer readCount;\n\n    @Schema(title = \"上传图片地址，以逗号隔开\")\n    private String pics;\n\n    @Schema(title = \"评论用户头像\")\n    private String memberIcon;\n\n    private Integer replayCount;\n\n    private String content;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public String getMemberNickName() {\n        return memberNickName;\n    }\n\n    public void setMemberNickName(String memberNickName) {\n        this.memberNickName = memberNickName;\n    }\n\n    public String getProductName() {\n        return productName;\n    }\n\n    public void setProductName(String productName) {\n        this.productName = productName;\n    }\n\n    public Integer getStar() {\n        return star;\n    }\n\n    public void setStar(Integer star) {\n        this.star = star;\n    }\n\n    public String getMemberIp() {\n        return memberIp;\n    }\n\n    public void setMemberIp(String memberIp) {\n        this.memberIp = memberIp;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    public String getProductAttribute() {\n        return productAttribute;\n    }\n\n    public void setProductAttribute(String productAttribute) {\n        this.productAttribute = productAttribute;\n    }\n\n    public Integer getCollectCouont() {\n        return collectCouont;\n    }\n\n    public void setCollectCouont(Integer collectCouont) {\n        this.collectCouont = collectCouont;\n    }\n\n    public Integer getReadCount() {\n        return readCount;\n    }\n\n    public void setReadCount(Integer readCount) {\n        this.readCount = readCount;\n    }\n\n    public String getPics() {\n        return pics;\n    }\n\n    public void setPics(String pics) {\n        this.pics = pics;\n    }\n\n    public String getMemberIcon() {\n        return memberIcon;\n    }\n\n    public void setMemberIcon(String memberIcon) {\n        this.memberIcon = memberIcon;\n    }\n\n    public Integer getReplayCount() {\n        return replayCount;\n    }\n\n    public void setReplayCount(Integer replayCount) {\n        this.replayCount = replayCount;\n    }\n\n    public String getContent() {\n        return content;\n    }\n\n    public void setContent(String content) {\n        this.content = content;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", memberNickName=\").append(memberNickName);\n        sb.append(\", productName=\").append(productName);\n        sb.append(\", star=\").append(star);\n        sb.append(\", memberIp=\").append(memberIp);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", showStatus=\").append(showStatus);\n        sb.append(\", productAttribute=\").append(productAttribute);\n        sb.append(\", collectCouont=\").append(collectCouont);\n        sb.append(\", readCount=\").append(readCount);\n        sb.append(\", pics=\").append(pics);\n        sb.append(\", memberIcon=\").append(memberIcon);\n        sb.append(\", replayCount=\").append(replayCount);\n        sb.append(\", content=\").append(content);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsCommentExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class PmsCommentExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsCommentExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIsNull() {\n            addCriterion(\"member_nick_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIsNotNull() {\n            addCriterion(\"member_nick_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameEqualTo(String value) {\n            addCriterion(\"member_nick_name =\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotEqualTo(String value) {\n            addCriterion(\"member_nick_name <>\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameGreaterThan(String value) {\n            addCriterion(\"member_nick_name >\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_nick_name >=\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLessThan(String value) {\n            addCriterion(\"member_nick_name <\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLessThanOrEqualTo(String value) {\n            addCriterion(\"member_nick_name <=\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLike(String value) {\n            addCriterion(\"member_nick_name like\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotLike(String value) {\n            addCriterion(\"member_nick_name not like\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIn(List<String> values) {\n            addCriterion(\"member_nick_name in\", values, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotIn(List<String> values) {\n            addCriterion(\"member_nick_name not in\", values, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameBetween(String value1, String value2) {\n            addCriterion(\"member_nick_name between\", value1, value2, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotBetween(String value1, String value2) {\n            addCriterion(\"member_nick_name not between\", value1, value2, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNull() {\n            addCriterion(\"product_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNotNull() {\n            addCriterion(\"product_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameEqualTo(String value) {\n            addCriterion(\"product_name =\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotEqualTo(String value) {\n            addCriterion(\"product_name <>\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThan(String value) {\n            addCriterion(\"product_name >\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_name >=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThan(String value) {\n            addCriterion(\"product_name <\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThanOrEqualTo(String value) {\n            addCriterion(\"product_name <=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLike(String value) {\n            addCriterion(\"product_name like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotLike(String value) {\n            addCriterion(\"product_name not like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIn(List<String> values) {\n            addCriterion(\"product_name in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotIn(List<String> values) {\n            addCriterion(\"product_name not in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameBetween(String value1, String value2) {\n            addCriterion(\"product_name between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotBetween(String value1, String value2) {\n            addCriterion(\"product_name not between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarIsNull() {\n            addCriterion(\"star is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarIsNotNull() {\n            addCriterion(\"star is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarEqualTo(Integer value) {\n            addCriterion(\"star =\", value, \"star\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarNotEqualTo(Integer value) {\n            addCriterion(\"star <>\", value, \"star\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarGreaterThan(Integer value) {\n            addCriterion(\"star >\", value, \"star\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"star >=\", value, \"star\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarLessThan(Integer value) {\n            addCriterion(\"star <\", value, \"star\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarLessThanOrEqualTo(Integer value) {\n            addCriterion(\"star <=\", value, \"star\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarIn(List<Integer> values) {\n            addCriterion(\"star in\", values, \"star\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarNotIn(List<Integer> values) {\n            addCriterion(\"star not in\", values, \"star\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarBetween(Integer value1, Integer value2) {\n            addCriterion(\"star between\", value1, value2, \"star\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStarNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"star not between\", value1, value2, \"star\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpIsNull() {\n            addCriterion(\"member_ip is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpIsNotNull() {\n            addCriterion(\"member_ip is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpEqualTo(String value) {\n            addCriterion(\"member_ip =\", value, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpNotEqualTo(String value) {\n            addCriterion(\"member_ip <>\", value, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpGreaterThan(String value) {\n            addCriterion(\"member_ip >\", value, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_ip >=\", value, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpLessThan(String value) {\n            addCriterion(\"member_ip <\", value, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpLessThanOrEqualTo(String value) {\n            addCriterion(\"member_ip <=\", value, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpLike(String value) {\n            addCriterion(\"member_ip like\", value, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpNotLike(String value) {\n            addCriterion(\"member_ip not like\", value, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpIn(List<String> values) {\n            addCriterion(\"member_ip in\", values, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpNotIn(List<String> values) {\n            addCriterion(\"member_ip not in\", values, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpBetween(String value1, String value2) {\n            addCriterion(\"member_ip between\", value1, value2, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIpNotBetween(String value1, String value2) {\n            addCriterion(\"member_ip not between\", value1, value2, \"memberIp\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNull() {\n            addCriterion(\"show_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNotNull() {\n            addCriterion(\"show_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusEqualTo(Integer value) {\n            addCriterion(\"show_status =\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotEqualTo(Integer value) {\n            addCriterion(\"show_status <>\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThan(Integer value) {\n            addCriterion(\"show_status >\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status >=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThan(Integer value) {\n            addCriterion(\"show_status <\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status <=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIn(List<Integer> values) {\n            addCriterion(\"show_status in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotIn(List<Integer> values) {\n            addCriterion(\"show_status not in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status not between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIsNull() {\n            addCriterion(\"product_attribute is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIsNotNull() {\n            addCriterion(\"product_attribute is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeEqualTo(String value) {\n            addCriterion(\"product_attribute =\", value, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeNotEqualTo(String value) {\n            addCriterion(\"product_attribute <>\", value, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeGreaterThan(String value) {\n            addCriterion(\"product_attribute >\", value, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_attribute >=\", value, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeLessThan(String value) {\n            addCriterion(\"product_attribute <\", value, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeLessThanOrEqualTo(String value) {\n            addCriterion(\"product_attribute <=\", value, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeLike(String value) {\n            addCriterion(\"product_attribute like\", value, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeNotLike(String value) {\n            addCriterion(\"product_attribute not like\", value, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIn(List<String> values) {\n            addCriterion(\"product_attribute in\", values, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeNotIn(List<String> values) {\n            addCriterion(\"product_attribute not in\", values, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeBetween(String value1, String value2) {\n            addCriterion(\"product_attribute between\", value1, value2, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeNotBetween(String value1, String value2) {\n            addCriterion(\"product_attribute not between\", value1, value2, \"productAttribute\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontIsNull() {\n            addCriterion(\"collect_couont is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontIsNotNull() {\n            addCriterion(\"collect_couont is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontEqualTo(Integer value) {\n            addCriterion(\"collect_couont =\", value, \"collectCouont\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontNotEqualTo(Integer value) {\n            addCriterion(\"collect_couont <>\", value, \"collectCouont\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontGreaterThan(Integer value) {\n            addCriterion(\"collect_couont >\", value, \"collectCouont\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_couont >=\", value, \"collectCouont\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontLessThan(Integer value) {\n            addCriterion(\"collect_couont <\", value, \"collectCouont\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontLessThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_couont <=\", value, \"collectCouont\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontIn(List<Integer> values) {\n            addCriterion(\"collect_couont in\", values, \"collectCouont\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontNotIn(List<Integer> values) {\n            addCriterion(\"collect_couont not in\", values, \"collectCouont\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_couont between\", value1, value2, \"collectCouont\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCouontNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_couont not between\", value1, value2, \"collectCouont\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIsNull() {\n            addCriterion(\"read_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIsNotNull() {\n            addCriterion(\"read_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountEqualTo(Integer value) {\n            addCriterion(\"read_count =\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotEqualTo(Integer value) {\n            addCriterion(\"read_count <>\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountGreaterThan(Integer value) {\n            addCriterion(\"read_count >\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"read_count >=\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountLessThan(Integer value) {\n            addCriterion(\"read_count <\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"read_count <=\", value, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountIn(List<Integer> values) {\n            addCriterion(\"read_count in\", values, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotIn(List<Integer> values) {\n            addCriterion(\"read_count not in\", values, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"read_count between\", value1, value2, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReadCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"read_count not between\", value1, value2, \"readCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsIsNull() {\n            addCriterion(\"pics is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsIsNotNull() {\n            addCriterion(\"pics is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsEqualTo(String value) {\n            addCriterion(\"pics =\", value, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsNotEqualTo(String value) {\n            addCriterion(\"pics <>\", value, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsGreaterThan(String value) {\n            addCriterion(\"pics >\", value, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsGreaterThanOrEqualTo(String value) {\n            addCriterion(\"pics >=\", value, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsLessThan(String value) {\n            addCriterion(\"pics <\", value, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsLessThanOrEqualTo(String value) {\n            addCriterion(\"pics <=\", value, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsLike(String value) {\n            addCriterion(\"pics like\", value, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsNotLike(String value) {\n            addCriterion(\"pics not like\", value, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsIn(List<String> values) {\n            addCriterion(\"pics in\", values, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsNotIn(List<String> values) {\n            addCriterion(\"pics not in\", values, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsBetween(String value1, String value2) {\n            addCriterion(\"pics between\", value1, value2, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicsNotBetween(String value1, String value2) {\n            addCriterion(\"pics not between\", value1, value2, \"pics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIsNull() {\n            addCriterion(\"member_icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIsNotNull() {\n            addCriterion(\"member_icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconEqualTo(String value) {\n            addCriterion(\"member_icon =\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotEqualTo(String value) {\n            addCriterion(\"member_icon <>\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconGreaterThan(String value) {\n            addCriterion(\"member_icon >\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_icon >=\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLessThan(String value) {\n            addCriterion(\"member_icon <\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLessThanOrEqualTo(String value) {\n            addCriterion(\"member_icon <=\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLike(String value) {\n            addCriterion(\"member_icon like\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotLike(String value) {\n            addCriterion(\"member_icon not like\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIn(List<String> values) {\n            addCriterion(\"member_icon in\", values, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotIn(List<String> values) {\n            addCriterion(\"member_icon not in\", values, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconBetween(String value1, String value2) {\n            addCriterion(\"member_icon between\", value1, value2, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotBetween(String value1, String value2) {\n            addCriterion(\"member_icon not between\", value1, value2, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountIsNull() {\n            addCriterion(\"replay_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountIsNotNull() {\n            addCriterion(\"replay_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountEqualTo(Integer value) {\n            addCriterion(\"replay_count =\", value, \"replayCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountNotEqualTo(Integer value) {\n            addCriterion(\"replay_count <>\", value, \"replayCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountGreaterThan(Integer value) {\n            addCriterion(\"replay_count >\", value, \"replayCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"replay_count >=\", value, \"replayCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountLessThan(Integer value) {\n            addCriterion(\"replay_count <\", value, \"replayCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"replay_count <=\", value, \"replayCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountIn(List<Integer> values) {\n            addCriterion(\"replay_count in\", values, \"replayCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountNotIn(List<Integer> values) {\n            addCriterion(\"replay_count not in\", values, \"replayCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"replay_count between\", value1, value2, \"replayCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReplayCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"replay_count not between\", value1, value2, \"replayCount\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsCommentReplay.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class PmsCommentReplay implements Serializable {\n    private Long id;\n\n    private Long commentId;\n\n    private String memberNickName;\n\n    private String memberIcon;\n\n    private String content;\n\n    private Date createTime;\n\n    @Schema(title = \"评论人员类型；0->会员；1->管理员\")\n    private Integer type;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getCommentId() {\n        return commentId;\n    }\n\n    public void setCommentId(Long commentId) {\n        this.commentId = commentId;\n    }\n\n    public String getMemberNickName() {\n        return memberNickName;\n    }\n\n    public void setMemberNickName(String memberNickName) {\n        this.memberNickName = memberNickName;\n    }\n\n    public String getMemberIcon() {\n        return memberIcon;\n    }\n\n    public void setMemberIcon(String memberIcon) {\n        this.memberIcon = memberIcon;\n    }\n\n    public String getContent() {\n        return content;\n    }\n\n    public void setContent(String content) {\n        this.content = content;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getType() {\n        return type;\n    }\n\n    public void setType(Integer type) {\n        this.type = type;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", commentId=\").append(commentId);\n        sb.append(\", memberNickName=\").append(memberNickName);\n        sb.append(\", memberIcon=\").append(memberIcon);\n        sb.append(\", content=\").append(content);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", type=\").append(type);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsCommentReplayExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class PmsCommentReplayExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsCommentReplayExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdIsNull() {\n            addCriterion(\"comment_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdIsNotNull() {\n            addCriterion(\"comment_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdEqualTo(Long value) {\n            addCriterion(\"comment_id =\", value, \"commentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdNotEqualTo(Long value) {\n            addCriterion(\"comment_id <>\", value, \"commentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdGreaterThan(Long value) {\n            addCriterion(\"comment_id >\", value, \"commentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"comment_id >=\", value, \"commentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdLessThan(Long value) {\n            addCriterion(\"comment_id <\", value, \"commentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"comment_id <=\", value, \"commentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdIn(List<Long> values) {\n            addCriterion(\"comment_id in\", values, \"commentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdNotIn(List<Long> values) {\n            addCriterion(\"comment_id not in\", values, \"commentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdBetween(Long value1, Long value2) {\n            addCriterion(\"comment_id between\", value1, value2, \"commentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"comment_id not between\", value1, value2, \"commentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIsNull() {\n            addCriterion(\"member_nick_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIsNotNull() {\n            addCriterion(\"member_nick_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameEqualTo(String value) {\n            addCriterion(\"member_nick_name =\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotEqualTo(String value) {\n            addCriterion(\"member_nick_name <>\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameGreaterThan(String value) {\n            addCriterion(\"member_nick_name >\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_nick_name >=\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLessThan(String value) {\n            addCriterion(\"member_nick_name <\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLessThanOrEqualTo(String value) {\n            addCriterion(\"member_nick_name <=\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameLike(String value) {\n            addCriterion(\"member_nick_name like\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotLike(String value) {\n            addCriterion(\"member_nick_name not like\", value, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameIn(List<String> values) {\n            addCriterion(\"member_nick_name in\", values, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotIn(List<String> values) {\n            addCriterion(\"member_nick_name not in\", values, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameBetween(String value1, String value2) {\n            addCriterion(\"member_nick_name between\", value1, value2, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNickNameNotBetween(String value1, String value2) {\n            addCriterion(\"member_nick_name not between\", value1, value2, \"memberNickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIsNull() {\n            addCriterion(\"member_icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIsNotNull() {\n            addCriterion(\"member_icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconEqualTo(String value) {\n            addCriterion(\"member_icon =\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotEqualTo(String value) {\n            addCriterion(\"member_icon <>\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconGreaterThan(String value) {\n            addCriterion(\"member_icon >\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_icon >=\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLessThan(String value) {\n            addCriterion(\"member_icon <\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLessThanOrEqualTo(String value) {\n            addCriterion(\"member_icon <=\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconLike(String value) {\n            addCriterion(\"member_icon like\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotLike(String value) {\n            addCriterion(\"member_icon not like\", value, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconIn(List<String> values) {\n            addCriterion(\"member_icon in\", values, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotIn(List<String> values) {\n            addCriterion(\"member_icon not in\", values, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconBetween(String value1, String value2) {\n            addCriterion(\"member_icon between\", value1, value2, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIconNotBetween(String value1, String value2) {\n            addCriterion(\"member_icon not between\", value1, value2, \"memberIcon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIsNull() {\n            addCriterion(\"content is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIsNotNull() {\n            addCriterion(\"content is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentEqualTo(String value) {\n            addCriterion(\"content =\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotEqualTo(String value) {\n            addCriterion(\"content <>\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentGreaterThan(String value) {\n            addCriterion(\"content >\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentGreaterThanOrEqualTo(String value) {\n            addCriterion(\"content >=\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLessThan(String value) {\n            addCriterion(\"content <\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLessThanOrEqualTo(String value) {\n            addCriterion(\"content <=\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentLike(String value) {\n            addCriterion(\"content like\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotLike(String value) {\n            addCriterion(\"content not like\", value, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentIn(List<String> values) {\n            addCriterion(\"content in\", values, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotIn(List<String> values) {\n            addCriterion(\"content not in\", values, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentBetween(String value1, String value2) {\n            addCriterion(\"content between\", value1, value2, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContentNotBetween(String value1, String value2) {\n            addCriterion(\"content not between\", value1, value2, \"content\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNull() {\n            addCriterion(\"type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNotNull() {\n            addCriterion(\"type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeEqualTo(Integer value) {\n            addCriterion(\"type =\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotEqualTo(Integer value) {\n            addCriterion(\"type <>\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThan(Integer value) {\n            addCriterion(\"type >\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"type >=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThan(Integer value) {\n            addCriterion(\"type <\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"type <=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIn(List<Integer> values) {\n            addCriterion(\"type in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotIn(List<Integer> values) {\n            addCriterion(\"type not in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"type between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"type not between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsFeightTemplate.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\npublic class PmsFeightTemplate implements Serializable {\n    private Long id;\n\n    private String name;\n\n    @Schema(title = \"计费类型:0->按重量；1->按件数\")\n    private Integer chargeType;\n\n    @Schema(title = \"首重kg\")\n    private BigDecimal firstWeight;\n\n    @Schema(title = \"首费（元）\")\n    private BigDecimal firstFee;\n\n    private BigDecimal continueWeight;\n\n    private BigDecimal continmeFee;\n\n    @Schema(title = \"目的地（省、市）\")\n    private String dest;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getChargeType() {\n        return chargeType;\n    }\n\n    public void setChargeType(Integer chargeType) {\n        this.chargeType = chargeType;\n    }\n\n    public BigDecimal getFirstWeight() {\n        return firstWeight;\n    }\n\n    public void setFirstWeight(BigDecimal firstWeight) {\n        this.firstWeight = firstWeight;\n    }\n\n    public BigDecimal getFirstFee() {\n        return firstFee;\n    }\n\n    public void setFirstFee(BigDecimal firstFee) {\n        this.firstFee = firstFee;\n    }\n\n    public BigDecimal getContinueWeight() {\n        return continueWeight;\n    }\n\n    public void setContinueWeight(BigDecimal continueWeight) {\n        this.continueWeight = continueWeight;\n    }\n\n    public BigDecimal getContinmeFee() {\n        return continmeFee;\n    }\n\n    public void setContinmeFee(BigDecimal continmeFee) {\n        this.continmeFee = continmeFee;\n    }\n\n    public String getDest() {\n        return dest;\n    }\n\n    public void setDest(String dest) {\n        this.dest = dest;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", chargeType=\").append(chargeType);\n        sb.append(\", firstWeight=\").append(firstWeight);\n        sb.append(\", firstFee=\").append(firstFee);\n        sb.append(\", continueWeight=\").append(continueWeight);\n        sb.append(\", continmeFee=\").append(continmeFee);\n        sb.append(\", dest=\").append(dest);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsFeightTemplateExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsFeightTemplateExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsFeightTemplateExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeIsNull() {\n            addCriterion(\"charge_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeIsNotNull() {\n            addCriterion(\"charge_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeEqualTo(Integer value) {\n            addCriterion(\"charge_type =\", value, \"chargeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeNotEqualTo(Integer value) {\n            addCriterion(\"charge_type <>\", value, \"chargeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeGreaterThan(Integer value) {\n            addCriterion(\"charge_type >\", value, \"chargeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"charge_type >=\", value, \"chargeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeLessThan(Integer value) {\n            addCriterion(\"charge_type <\", value, \"chargeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"charge_type <=\", value, \"chargeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeIn(List<Integer> values) {\n            addCriterion(\"charge_type in\", values, \"chargeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeNotIn(List<Integer> values) {\n            addCriterion(\"charge_type not in\", values, \"chargeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"charge_type between\", value1, value2, \"chargeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChargeTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"charge_type not between\", value1, value2, \"chargeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightIsNull() {\n            addCriterion(\"first_weight is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightIsNotNull() {\n            addCriterion(\"first_weight is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightEqualTo(BigDecimal value) {\n            addCriterion(\"first_weight =\", value, \"firstWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightNotEqualTo(BigDecimal value) {\n            addCriterion(\"first_weight <>\", value, \"firstWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightGreaterThan(BigDecimal value) {\n            addCriterion(\"first_weight >\", value, \"firstWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"first_weight >=\", value, \"firstWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightLessThan(BigDecimal value) {\n            addCriterion(\"first_weight <\", value, \"firstWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"first_weight <=\", value, \"firstWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightIn(List<BigDecimal> values) {\n            addCriterion(\"first_weight in\", values, \"firstWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightNotIn(List<BigDecimal> values) {\n            addCriterion(\"first_weight not in\", values, \"firstWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"first_weight between\", value1, value2, \"firstWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstWeightNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"first_weight not between\", value1, value2, \"firstWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeIsNull() {\n            addCriterion(\"first_fee is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeIsNotNull() {\n            addCriterion(\"first_fee is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeEqualTo(BigDecimal value) {\n            addCriterion(\"first_fee =\", value, \"firstFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeNotEqualTo(BigDecimal value) {\n            addCriterion(\"first_fee <>\", value, \"firstFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeGreaterThan(BigDecimal value) {\n            addCriterion(\"first_fee >\", value, \"firstFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"first_fee >=\", value, \"firstFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeLessThan(BigDecimal value) {\n            addCriterion(\"first_fee <\", value, \"firstFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"first_fee <=\", value, \"firstFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeIn(List<BigDecimal> values) {\n            addCriterion(\"first_fee in\", values, \"firstFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeNotIn(List<BigDecimal> values) {\n            addCriterion(\"first_fee not in\", values, \"firstFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"first_fee between\", value1, value2, \"firstFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFirstFeeNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"first_fee not between\", value1, value2, \"firstFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightIsNull() {\n            addCriterion(\"continue_weight is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightIsNotNull() {\n            addCriterion(\"continue_weight is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightEqualTo(BigDecimal value) {\n            addCriterion(\"continue_weight =\", value, \"continueWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightNotEqualTo(BigDecimal value) {\n            addCriterion(\"continue_weight <>\", value, \"continueWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightGreaterThan(BigDecimal value) {\n            addCriterion(\"continue_weight >\", value, \"continueWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"continue_weight >=\", value, \"continueWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightLessThan(BigDecimal value) {\n            addCriterion(\"continue_weight <\", value, \"continueWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"continue_weight <=\", value, \"continueWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightIn(List<BigDecimal> values) {\n            addCriterion(\"continue_weight in\", values, \"continueWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightNotIn(List<BigDecimal> values) {\n            addCriterion(\"continue_weight not in\", values, \"continueWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"continue_weight between\", value1, value2, \"continueWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueWeightNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"continue_weight not between\", value1, value2, \"continueWeight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeIsNull() {\n            addCriterion(\"continme_fee is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeIsNotNull() {\n            addCriterion(\"continme_fee is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeEqualTo(BigDecimal value) {\n            addCriterion(\"continme_fee =\", value, \"continmeFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeNotEqualTo(BigDecimal value) {\n            addCriterion(\"continme_fee <>\", value, \"continmeFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeGreaterThan(BigDecimal value) {\n            addCriterion(\"continme_fee >\", value, \"continmeFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"continme_fee >=\", value, \"continmeFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeLessThan(BigDecimal value) {\n            addCriterion(\"continme_fee <\", value, \"continmeFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"continme_fee <=\", value, \"continmeFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeIn(List<BigDecimal> values) {\n            addCriterion(\"continme_fee in\", values, \"continmeFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeNotIn(List<BigDecimal> values) {\n            addCriterion(\"continme_fee not in\", values, \"continmeFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"continme_fee between\", value1, value2, \"continmeFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinmeFeeNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"continme_fee not between\", value1, value2, \"continmeFee\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestIsNull() {\n            addCriterion(\"dest is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestIsNotNull() {\n            addCriterion(\"dest is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestEqualTo(String value) {\n            addCriterion(\"dest =\", value, \"dest\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestNotEqualTo(String value) {\n            addCriterion(\"dest <>\", value, \"dest\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestGreaterThan(String value) {\n            addCriterion(\"dest >\", value, \"dest\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestGreaterThanOrEqualTo(String value) {\n            addCriterion(\"dest >=\", value, \"dest\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestLessThan(String value) {\n            addCriterion(\"dest <\", value, \"dest\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestLessThanOrEqualTo(String value) {\n            addCriterion(\"dest <=\", value, \"dest\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestLike(String value) {\n            addCriterion(\"dest like\", value, \"dest\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestNotLike(String value) {\n            addCriterion(\"dest not like\", value, \"dest\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestIn(List<String> values) {\n            addCriterion(\"dest in\", values, \"dest\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestNotIn(List<String> values) {\n            addCriterion(\"dest not in\", values, \"dest\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestBetween(String value1, String value2) {\n            addCriterion(\"dest between\", value1, value2, \"dest\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDestNotBetween(String value1, String value2) {\n            addCriterion(\"dest not between\", value1, value2, \"dest\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsMemberPrice.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\npublic class PmsMemberPrice implements Serializable {\n    private Long id;\n\n    private Long productId;\n\n    private Long memberLevelId;\n\n    @Schema(title = \"会员价格\")\n    private BigDecimal memberPrice;\n\n    private String memberLevelName;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public Long getMemberLevelId() {\n        return memberLevelId;\n    }\n\n    public void setMemberLevelId(Long memberLevelId) {\n        this.memberLevelId = memberLevelId;\n    }\n\n    public BigDecimal getMemberPrice() {\n        return memberPrice;\n    }\n\n    public void setMemberPrice(BigDecimal memberPrice) {\n        this.memberPrice = memberPrice;\n    }\n\n    public String getMemberLevelName() {\n        return memberLevelName;\n    }\n\n    public void setMemberLevelName(String memberLevelName) {\n        this.memberLevelName = memberLevelName;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", memberLevelId=\").append(memberLevelId);\n        sb.append(\", memberPrice=\").append(memberPrice);\n        sb.append(\", memberLevelName=\").append(memberLevelName);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsMemberPriceExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsMemberPriceExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsMemberPriceExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdIsNull() {\n            addCriterion(\"member_level_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdIsNotNull() {\n            addCriterion(\"member_level_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdEqualTo(Long value) {\n            addCriterion(\"member_level_id =\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdNotEqualTo(Long value) {\n            addCriterion(\"member_level_id <>\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdGreaterThan(Long value) {\n            addCriterion(\"member_level_id >\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_level_id >=\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdLessThan(Long value) {\n            addCriterion(\"member_level_id <\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_level_id <=\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdIn(List<Long> values) {\n            addCriterion(\"member_level_id in\", values, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdNotIn(List<Long> values) {\n            addCriterion(\"member_level_id not in\", values, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_level_id between\", value1, value2, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_level_id not between\", value1, value2, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceIsNull() {\n            addCriterion(\"member_price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceIsNotNull() {\n            addCriterion(\"member_price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceEqualTo(BigDecimal value) {\n            addCriterion(\"member_price =\", value, \"memberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"member_price <>\", value, \"memberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"member_price >\", value, \"memberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"member_price >=\", value, \"memberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceLessThan(BigDecimal value) {\n            addCriterion(\"member_price <\", value, \"memberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"member_price <=\", value, \"memberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceIn(List<BigDecimal> values) {\n            addCriterion(\"member_price in\", values, \"memberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"member_price not in\", values, \"memberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"member_price between\", value1, value2, \"memberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"member_price not between\", value1, value2, \"memberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameIsNull() {\n            addCriterion(\"member_level_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameIsNotNull() {\n            addCriterion(\"member_level_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameEqualTo(String value) {\n            addCriterion(\"member_level_name =\", value, \"memberLevelName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameNotEqualTo(String value) {\n            addCriterion(\"member_level_name <>\", value, \"memberLevelName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameGreaterThan(String value) {\n            addCriterion(\"member_level_name >\", value, \"memberLevelName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_level_name >=\", value, \"memberLevelName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameLessThan(String value) {\n            addCriterion(\"member_level_name <\", value, \"memberLevelName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameLessThanOrEqualTo(String value) {\n            addCriterion(\"member_level_name <=\", value, \"memberLevelName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameLike(String value) {\n            addCriterion(\"member_level_name like\", value, \"memberLevelName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameNotLike(String value) {\n            addCriterion(\"member_level_name not like\", value, \"memberLevelName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameIn(List<String> values) {\n            addCriterion(\"member_level_name in\", values, \"memberLevelName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameNotIn(List<String> values) {\n            addCriterion(\"member_level_name not in\", values, \"memberLevelName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameBetween(String value1, String value2) {\n            addCriterion(\"member_level_name between\", value1, value2, \"memberLevelName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNameNotBetween(String value1, String value2) {\n            addCriterion(\"member_level_name not between\", value1, value2, \"memberLevelName\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProduct.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\nimport java.util.Date;\n\npublic class PmsProduct implements Serializable {\n    private Long id;\n\n    private Long brandId;\n\n    private Long productCategoryId;\n\n    private Long feightTemplateId;\n\n    private Long productAttributeCategoryId;\n\n    private String name;\n\n    private String pic;\n\n    @Schema(title = \"货号\")\n    private String productSn;\n\n    @Schema(title = \"删除状态：0->未删除；1->已删除\")\n    private Integer deleteStatus;\n\n    @Schema(title = \"上架状态：0->下架；1->上架\")\n    private Integer publishStatus;\n\n    @Schema(title = \"新品状态:0->不是新品；1->新品\")\n    private Integer newStatus;\n\n    @Schema(title = \"推荐状态；0->不推荐；1->推荐\")\n    private Integer recommandStatus;\n\n    @Schema(title = \"审核状态：0->未审核；1->审核通过\")\n    private Integer verifyStatus;\n\n    @Schema(title = \"排序\")\n    private Integer sort;\n\n    @Schema(title = \"销量\")\n    private Integer sale;\n\n    private BigDecimal price;\n\n    @Schema(title = \"促销价格\")\n    private BigDecimal promotionPrice;\n\n    @Schema(title = \"赠送的成长值\")\n    private Integer giftGrowth;\n\n    @Schema(title = \"赠送的积分\")\n    private Integer giftPoint;\n\n    @Schema(title = \"限制使用的积分数\")\n    private Integer usePointLimit;\n\n    @Schema(title = \"副标题\")\n    private String subTitle;\n\n    @Schema(title = \"市场价\")\n    private BigDecimal originalPrice;\n\n    @Schema(title = \"库存\")\n    private Integer stock;\n\n    @Schema(title = \"库存预警值\")\n    private Integer lowStock;\n\n    @Schema(title = \"单位\")\n    private String unit;\n\n    @Schema(title = \"商品重量，默认为克\")\n    private BigDecimal weight;\n\n    @Schema(title = \"是否为预告商品：0->不是；1->是\")\n    private Integer previewStatus;\n\n    @Schema(title = \"以逗号分割的产品服务：1->无忧退货；2->快速退款；3->免费包邮\")\n    private String serviceIds;\n\n    private String keywords;\n\n    private String note;\n\n    @Schema(title = \"画册图片，连产品图片限制为5张，以逗号分割\")\n    private String albumPics;\n\n    private String detailTitle;\n\n    @Schema(title = \"促销开始时间\")\n    private Date promotionStartTime;\n\n    @Schema(title = \"促销结束时间\")\n    private Date promotionEndTime;\n\n    @Schema(title = \"活动限购数量\")\n    private Integer promotionPerLimit;\n\n    @Schema(title = \"促销类型：0->没有促销使用原价;1->使用促销价；2->使用会员价；3->使用阶梯价格；4->使用满减价格；5->限时购\")\n    private Integer promotionType;\n\n    @Schema(title = \"品牌名称\")\n    private String brandName;\n\n    @Schema(title = \"商品分类名称\")\n    private String productCategoryName;\n\n    @Schema(title = \"商品描述\")\n    private String description;\n\n    private String detailDesc;\n\n    @Schema(title = \"产品详情网页内容\")\n    private String detailHtml;\n\n    @Schema(title = \"移动端网页详情\")\n    private String detailMobileHtml;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getBrandId() {\n        return brandId;\n    }\n\n    public void setBrandId(Long brandId) {\n        this.brandId = brandId;\n    }\n\n    public Long getProductCategoryId() {\n        return productCategoryId;\n    }\n\n    public void setProductCategoryId(Long productCategoryId) {\n        this.productCategoryId = productCategoryId;\n    }\n\n    public Long getFeightTemplateId() {\n        return feightTemplateId;\n    }\n\n    public void setFeightTemplateId(Long feightTemplateId) {\n        this.feightTemplateId = feightTemplateId;\n    }\n\n    public Long getProductAttributeCategoryId() {\n        return productAttributeCategoryId;\n    }\n\n    public void setProductAttributeCategoryId(Long productAttributeCategoryId) {\n        this.productAttributeCategoryId = productAttributeCategoryId;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getPic() {\n        return pic;\n    }\n\n    public void setPic(String pic) {\n        this.pic = pic;\n    }\n\n    public String getProductSn() {\n        return productSn;\n    }\n\n    public void setProductSn(String productSn) {\n        this.productSn = productSn;\n    }\n\n    public Integer getDeleteStatus() {\n        return deleteStatus;\n    }\n\n    public void setDeleteStatus(Integer deleteStatus) {\n        this.deleteStatus = deleteStatus;\n    }\n\n    public Integer getPublishStatus() {\n        return publishStatus;\n    }\n\n    public void setPublishStatus(Integer publishStatus) {\n        this.publishStatus = publishStatus;\n    }\n\n    public Integer getNewStatus() {\n        return newStatus;\n    }\n\n    public void setNewStatus(Integer newStatus) {\n        this.newStatus = newStatus;\n    }\n\n    public Integer getRecommandStatus() {\n        return recommandStatus;\n    }\n\n    public void setRecommandStatus(Integer recommandStatus) {\n        this.recommandStatus = recommandStatus;\n    }\n\n    public Integer getVerifyStatus() {\n        return verifyStatus;\n    }\n\n    public void setVerifyStatus(Integer verifyStatus) {\n        this.verifyStatus = verifyStatus;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    public Integer getSale() {\n        return sale;\n    }\n\n    public void setSale(Integer sale) {\n        this.sale = sale;\n    }\n\n    public BigDecimal getPrice() {\n        return price;\n    }\n\n    public void setPrice(BigDecimal price) {\n        this.price = price;\n    }\n\n    public BigDecimal getPromotionPrice() {\n        return promotionPrice;\n    }\n\n    public void setPromotionPrice(BigDecimal promotionPrice) {\n        this.promotionPrice = promotionPrice;\n    }\n\n    public Integer getGiftGrowth() {\n        return giftGrowth;\n    }\n\n    public void setGiftGrowth(Integer giftGrowth) {\n        this.giftGrowth = giftGrowth;\n    }\n\n    public Integer getGiftPoint() {\n        return giftPoint;\n    }\n\n    public void setGiftPoint(Integer giftPoint) {\n        this.giftPoint = giftPoint;\n    }\n\n    public Integer getUsePointLimit() {\n        return usePointLimit;\n    }\n\n    public void setUsePointLimit(Integer usePointLimit) {\n        this.usePointLimit = usePointLimit;\n    }\n\n    public String getSubTitle() {\n        return subTitle;\n    }\n\n    public void setSubTitle(String subTitle) {\n        this.subTitle = subTitle;\n    }\n\n    public BigDecimal getOriginalPrice() {\n        return originalPrice;\n    }\n\n    public void setOriginalPrice(BigDecimal originalPrice) {\n        this.originalPrice = originalPrice;\n    }\n\n    public Integer getStock() {\n        return stock;\n    }\n\n    public void setStock(Integer stock) {\n        this.stock = stock;\n    }\n\n    public Integer getLowStock() {\n        return lowStock;\n    }\n\n    public void setLowStock(Integer lowStock) {\n        this.lowStock = lowStock;\n    }\n\n    public String getUnit() {\n        return unit;\n    }\n\n    public void setUnit(String unit) {\n        this.unit = unit;\n    }\n\n    public BigDecimal getWeight() {\n        return weight;\n    }\n\n    public void setWeight(BigDecimal weight) {\n        this.weight = weight;\n    }\n\n    public Integer getPreviewStatus() {\n        return previewStatus;\n    }\n\n    public void setPreviewStatus(Integer previewStatus) {\n        this.previewStatus = previewStatus;\n    }\n\n    public String getServiceIds() {\n        return serviceIds;\n    }\n\n    public void setServiceIds(String serviceIds) {\n        this.serviceIds = serviceIds;\n    }\n\n    public String getKeywords() {\n        return keywords;\n    }\n\n    public void setKeywords(String keywords) {\n        this.keywords = keywords;\n    }\n\n    public String getNote() {\n        return note;\n    }\n\n    public void setNote(String note) {\n        this.note = note;\n    }\n\n    public String getAlbumPics() {\n        return albumPics;\n    }\n\n    public void setAlbumPics(String albumPics) {\n        this.albumPics = albumPics;\n    }\n\n    public String getDetailTitle() {\n        return detailTitle;\n    }\n\n    public void setDetailTitle(String detailTitle) {\n        this.detailTitle = detailTitle;\n    }\n\n    public Date getPromotionStartTime() {\n        return promotionStartTime;\n    }\n\n    public void setPromotionStartTime(Date promotionStartTime) {\n        this.promotionStartTime = promotionStartTime;\n    }\n\n    public Date getPromotionEndTime() {\n        return promotionEndTime;\n    }\n\n    public void setPromotionEndTime(Date promotionEndTime) {\n        this.promotionEndTime = promotionEndTime;\n    }\n\n    public Integer getPromotionPerLimit() {\n        return promotionPerLimit;\n    }\n\n    public void setPromotionPerLimit(Integer promotionPerLimit) {\n        this.promotionPerLimit = promotionPerLimit;\n    }\n\n    public Integer getPromotionType() {\n        return promotionType;\n    }\n\n    public void setPromotionType(Integer promotionType) {\n        this.promotionType = promotionType;\n    }\n\n    public String getBrandName() {\n        return brandName;\n    }\n\n    public void setBrandName(String brandName) {\n        this.brandName = brandName;\n    }\n\n    public String getProductCategoryName() {\n        return productCategoryName;\n    }\n\n    public void setProductCategoryName(String productCategoryName) {\n        this.productCategoryName = productCategoryName;\n    }\n\n    public String getDescription() {\n        return description;\n    }\n\n    public void setDescription(String description) {\n        this.description = description;\n    }\n\n    public String getDetailDesc() {\n        return detailDesc;\n    }\n\n    public void setDetailDesc(String detailDesc) {\n        this.detailDesc = detailDesc;\n    }\n\n    public String getDetailHtml() {\n        return detailHtml;\n    }\n\n    public void setDetailHtml(String detailHtml) {\n        this.detailHtml = detailHtml;\n    }\n\n    public String getDetailMobileHtml() {\n        return detailMobileHtml;\n    }\n\n    public void setDetailMobileHtml(String detailMobileHtml) {\n        this.detailMobileHtml = detailMobileHtml;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", brandId=\").append(brandId);\n        sb.append(\", productCategoryId=\").append(productCategoryId);\n        sb.append(\", feightTemplateId=\").append(feightTemplateId);\n        sb.append(\", productAttributeCategoryId=\").append(productAttributeCategoryId);\n        sb.append(\", name=\").append(name);\n        sb.append(\", pic=\").append(pic);\n        sb.append(\", productSn=\").append(productSn);\n        sb.append(\", deleteStatus=\").append(deleteStatus);\n        sb.append(\", publishStatus=\").append(publishStatus);\n        sb.append(\", newStatus=\").append(newStatus);\n        sb.append(\", recommandStatus=\").append(recommandStatus);\n        sb.append(\", verifyStatus=\").append(verifyStatus);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", sale=\").append(sale);\n        sb.append(\", price=\").append(price);\n        sb.append(\", promotionPrice=\").append(promotionPrice);\n        sb.append(\", giftGrowth=\").append(giftGrowth);\n        sb.append(\", giftPoint=\").append(giftPoint);\n        sb.append(\", usePointLimit=\").append(usePointLimit);\n        sb.append(\", subTitle=\").append(subTitle);\n        sb.append(\", originalPrice=\").append(originalPrice);\n        sb.append(\", stock=\").append(stock);\n        sb.append(\", lowStock=\").append(lowStock);\n        sb.append(\", unit=\").append(unit);\n        sb.append(\", weight=\").append(weight);\n        sb.append(\", previewStatus=\").append(previewStatus);\n        sb.append(\", serviceIds=\").append(serviceIds);\n        sb.append(\", keywords=\").append(keywords);\n        sb.append(\", note=\").append(note);\n        sb.append(\", albumPics=\").append(albumPics);\n        sb.append(\", detailTitle=\").append(detailTitle);\n        sb.append(\", promotionStartTime=\").append(promotionStartTime);\n        sb.append(\", promotionEndTime=\").append(promotionEndTime);\n        sb.append(\", promotionPerLimit=\").append(promotionPerLimit);\n        sb.append(\", promotionType=\").append(promotionType);\n        sb.append(\", brandName=\").append(brandName);\n        sb.append(\", productCategoryName=\").append(productCategoryName);\n        sb.append(\", description=\").append(description);\n        sb.append(\", detailDesc=\").append(detailDesc);\n        sb.append(\", detailHtml=\").append(detailHtml);\n        sb.append(\", detailMobileHtml=\").append(detailMobileHtml);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttribute.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class PmsProductAttribute implements Serializable {\n    private Long id;\n\n    private Long productAttributeCategoryId;\n\n    private String name;\n\n    @Schema(title = \"属性选择类型：0->唯一；1->单选；2->多选\")\n    private Integer selectType;\n\n    @Schema(title = \"属性录入方式：0->手工录入；1->从列表中选取\")\n    private Integer inputType;\n\n    @Schema(title = \"可选值列表，以逗号隔开\")\n    private String inputList;\n\n    @Schema(title = \"排序字段：最高的可以单独上传图片\")\n    private Integer sort;\n\n    @Schema(title = \"分类筛选样式：1->普通；1->颜色\")\n    private Integer filterType;\n\n    @Schema(title = \"检索类型；0->不需要进行检索；1->关键字检索；2->范围检索\")\n    private Integer searchType;\n\n    @Schema(title = \"相同属性产品是否关联；0->不关联；1->关联\")\n    private Integer relatedStatus;\n\n    @Schema(title = \"是否支持手动新增；0->不支持；1->支持\")\n    private Integer handAddStatus;\n\n    @Schema(title = \"属性的类型；0->规格；1->参数\")\n    private Integer type;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductAttributeCategoryId() {\n        return productAttributeCategoryId;\n    }\n\n    public void setProductAttributeCategoryId(Long productAttributeCategoryId) {\n        this.productAttributeCategoryId = productAttributeCategoryId;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getSelectType() {\n        return selectType;\n    }\n\n    public void setSelectType(Integer selectType) {\n        this.selectType = selectType;\n    }\n\n    public Integer getInputType() {\n        return inputType;\n    }\n\n    public void setInputType(Integer inputType) {\n        this.inputType = inputType;\n    }\n\n    public String getInputList() {\n        return inputList;\n    }\n\n    public void setInputList(String inputList) {\n        this.inputList = inputList;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    public Integer getFilterType() {\n        return filterType;\n    }\n\n    public void setFilterType(Integer filterType) {\n        this.filterType = filterType;\n    }\n\n    public Integer getSearchType() {\n        return searchType;\n    }\n\n    public void setSearchType(Integer searchType) {\n        this.searchType = searchType;\n    }\n\n    public Integer getRelatedStatus() {\n        return relatedStatus;\n    }\n\n    public void setRelatedStatus(Integer relatedStatus) {\n        this.relatedStatus = relatedStatus;\n    }\n\n    public Integer getHandAddStatus() {\n        return handAddStatus;\n    }\n\n    public void setHandAddStatus(Integer handAddStatus) {\n        this.handAddStatus = handAddStatus;\n    }\n\n    public Integer getType() {\n        return type;\n    }\n\n    public void setType(Integer type) {\n        this.type = type;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productAttributeCategoryId=\").append(productAttributeCategoryId);\n        sb.append(\", name=\").append(name);\n        sb.append(\", selectType=\").append(selectType);\n        sb.append(\", inputType=\").append(inputType);\n        sb.append(\", inputList=\").append(inputList);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", filterType=\").append(filterType);\n        sb.append(\", searchType=\").append(searchType);\n        sb.append(\", relatedStatus=\").append(relatedStatus);\n        sb.append(\", handAddStatus=\").append(handAddStatus);\n        sb.append(\", type=\").append(type);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttributeCategory.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class PmsProductAttributeCategory implements Serializable {\n    private Long id;\n\n    private String name;\n\n    @Schema(title = \"属性数量\")\n    private Integer attributeCount;\n\n    @Schema(title = \"参数数量\")\n    private Integer paramCount;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getAttributeCount() {\n        return attributeCount;\n    }\n\n    public void setAttributeCount(Integer attributeCount) {\n        this.attributeCount = attributeCount;\n    }\n\n    public Integer getParamCount() {\n        return paramCount;\n    }\n\n    public void setParamCount(Integer paramCount) {\n        this.paramCount = paramCount;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", attributeCount=\").append(attributeCount);\n        sb.append(\", paramCount=\").append(paramCount);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttributeCategoryExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsProductAttributeCategoryExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsProductAttributeCategoryExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountIsNull() {\n            addCriterion(\"attribute_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountIsNotNull() {\n            addCriterion(\"attribute_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountEqualTo(Integer value) {\n            addCriterion(\"attribute_count =\", value, \"attributeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountNotEqualTo(Integer value) {\n            addCriterion(\"attribute_count <>\", value, \"attributeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountGreaterThan(Integer value) {\n            addCriterion(\"attribute_count >\", value, \"attributeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"attribute_count >=\", value, \"attributeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountLessThan(Integer value) {\n            addCriterion(\"attribute_count <\", value, \"attributeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"attribute_count <=\", value, \"attributeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountIn(List<Integer> values) {\n            addCriterion(\"attribute_count in\", values, \"attributeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountNotIn(List<Integer> values) {\n            addCriterion(\"attribute_count not in\", values, \"attributeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"attribute_count between\", value1, value2, \"attributeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttributeCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"attribute_count not between\", value1, value2, \"attributeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountIsNull() {\n            addCriterion(\"param_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountIsNotNull() {\n            addCriterion(\"param_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountEqualTo(Integer value) {\n            addCriterion(\"param_count =\", value, \"paramCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountNotEqualTo(Integer value) {\n            addCriterion(\"param_count <>\", value, \"paramCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountGreaterThan(Integer value) {\n            addCriterion(\"param_count >\", value, \"paramCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"param_count >=\", value, \"paramCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountLessThan(Integer value) {\n            addCriterion(\"param_count <\", value, \"paramCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"param_count <=\", value, \"paramCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountIn(List<Integer> values) {\n            addCriterion(\"param_count in\", values, \"paramCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountNotIn(List<Integer> values) {\n            addCriterion(\"param_count not in\", values, \"paramCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"param_count between\", value1, value2, \"paramCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParamCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"param_count not between\", value1, value2, \"paramCount\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttributeExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsProductAttributeExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsProductAttributeExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdIsNull() {\n            addCriterion(\"product_attribute_category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdIsNotNull() {\n            addCriterion(\"product_attribute_category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdEqualTo(Long value) {\n            addCriterion(\"product_attribute_category_id =\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"product_attribute_category_id <>\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdGreaterThan(Long value) {\n            addCriterion(\"product_attribute_category_id >\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_attribute_category_id >=\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdLessThan(Long value) {\n            addCriterion(\"product_attribute_category_id <\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_attribute_category_id <=\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdIn(List<Long> values) {\n            addCriterion(\"product_attribute_category_id in\", values, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"product_attribute_category_id not in\", values, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_attribute_category_id between\", value1, value2, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_attribute_category_id not between\", value1, value2, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeIsNull() {\n            addCriterion(\"select_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeIsNotNull() {\n            addCriterion(\"select_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeEqualTo(Integer value) {\n            addCriterion(\"select_type =\", value, \"selectType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeNotEqualTo(Integer value) {\n            addCriterion(\"select_type <>\", value, \"selectType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeGreaterThan(Integer value) {\n            addCriterion(\"select_type >\", value, \"selectType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"select_type >=\", value, \"selectType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeLessThan(Integer value) {\n            addCriterion(\"select_type <\", value, \"selectType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"select_type <=\", value, \"selectType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeIn(List<Integer> values) {\n            addCriterion(\"select_type in\", values, \"selectType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeNotIn(List<Integer> values) {\n            addCriterion(\"select_type not in\", values, \"selectType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"select_type between\", value1, value2, \"selectType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSelectTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"select_type not between\", value1, value2, \"selectType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeIsNull() {\n            addCriterion(\"input_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeIsNotNull() {\n            addCriterion(\"input_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeEqualTo(Integer value) {\n            addCriterion(\"input_type =\", value, \"inputType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeNotEqualTo(Integer value) {\n            addCriterion(\"input_type <>\", value, \"inputType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeGreaterThan(Integer value) {\n            addCriterion(\"input_type >\", value, \"inputType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"input_type >=\", value, \"inputType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeLessThan(Integer value) {\n            addCriterion(\"input_type <\", value, \"inputType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"input_type <=\", value, \"inputType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeIn(List<Integer> values) {\n            addCriterion(\"input_type in\", values, \"inputType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeNotIn(List<Integer> values) {\n            addCriterion(\"input_type not in\", values, \"inputType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"input_type between\", value1, value2, \"inputType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"input_type not between\", value1, value2, \"inputType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListIsNull() {\n            addCriterion(\"input_list is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListIsNotNull() {\n            addCriterion(\"input_list is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListEqualTo(String value) {\n            addCriterion(\"input_list =\", value, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListNotEqualTo(String value) {\n            addCriterion(\"input_list <>\", value, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListGreaterThan(String value) {\n            addCriterion(\"input_list >\", value, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListGreaterThanOrEqualTo(String value) {\n            addCriterion(\"input_list >=\", value, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListLessThan(String value) {\n            addCriterion(\"input_list <\", value, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListLessThanOrEqualTo(String value) {\n            addCriterion(\"input_list <=\", value, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListLike(String value) {\n            addCriterion(\"input_list like\", value, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListNotLike(String value) {\n            addCriterion(\"input_list not like\", value, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListIn(List<String> values) {\n            addCriterion(\"input_list in\", values, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListNotIn(List<String> values) {\n            addCriterion(\"input_list not in\", values, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListBetween(String value1, String value2) {\n            addCriterion(\"input_list between\", value1, value2, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInputListNotBetween(String value1, String value2) {\n            addCriterion(\"input_list not between\", value1, value2, \"inputList\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeIsNull() {\n            addCriterion(\"filter_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeIsNotNull() {\n            addCriterion(\"filter_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeEqualTo(Integer value) {\n            addCriterion(\"filter_type =\", value, \"filterType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeNotEqualTo(Integer value) {\n            addCriterion(\"filter_type <>\", value, \"filterType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeGreaterThan(Integer value) {\n            addCriterion(\"filter_type >\", value, \"filterType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"filter_type >=\", value, \"filterType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeLessThan(Integer value) {\n            addCriterion(\"filter_type <\", value, \"filterType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"filter_type <=\", value, \"filterType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeIn(List<Integer> values) {\n            addCriterion(\"filter_type in\", values, \"filterType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeNotIn(List<Integer> values) {\n            addCriterion(\"filter_type not in\", values, \"filterType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"filter_type between\", value1, value2, \"filterType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFilterTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"filter_type not between\", value1, value2, \"filterType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeIsNull() {\n            addCriterion(\"search_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeIsNotNull() {\n            addCriterion(\"search_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeEqualTo(Integer value) {\n            addCriterion(\"search_type =\", value, \"searchType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeNotEqualTo(Integer value) {\n            addCriterion(\"search_type <>\", value, \"searchType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeGreaterThan(Integer value) {\n            addCriterion(\"search_type >\", value, \"searchType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"search_type >=\", value, \"searchType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeLessThan(Integer value) {\n            addCriterion(\"search_type <\", value, \"searchType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"search_type <=\", value, \"searchType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeIn(List<Integer> values) {\n            addCriterion(\"search_type in\", values, \"searchType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeNotIn(List<Integer> values) {\n            addCriterion(\"search_type not in\", values, \"searchType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"search_type between\", value1, value2, \"searchType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSearchTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"search_type not between\", value1, value2, \"searchType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusIsNull() {\n            addCriterion(\"related_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusIsNotNull() {\n            addCriterion(\"related_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusEqualTo(Integer value) {\n            addCriterion(\"related_status =\", value, \"relatedStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusNotEqualTo(Integer value) {\n            addCriterion(\"related_status <>\", value, \"relatedStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusGreaterThan(Integer value) {\n            addCriterion(\"related_status >\", value, \"relatedStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"related_status >=\", value, \"relatedStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusLessThan(Integer value) {\n            addCriterion(\"related_status <\", value, \"relatedStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"related_status <=\", value, \"relatedStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusIn(List<Integer> values) {\n            addCriterion(\"related_status in\", values, \"relatedStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusNotIn(List<Integer> values) {\n            addCriterion(\"related_status not in\", values, \"relatedStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"related_status between\", value1, value2, \"relatedStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRelatedStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"related_status not between\", value1, value2, \"relatedStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusIsNull() {\n            addCriterion(\"hand_add_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusIsNotNull() {\n            addCriterion(\"hand_add_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusEqualTo(Integer value) {\n            addCriterion(\"hand_add_status =\", value, \"handAddStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusNotEqualTo(Integer value) {\n            addCriterion(\"hand_add_status <>\", value, \"handAddStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusGreaterThan(Integer value) {\n            addCriterion(\"hand_add_status >\", value, \"handAddStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"hand_add_status >=\", value, \"handAddStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusLessThan(Integer value) {\n            addCriterion(\"hand_add_status <\", value, \"handAddStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"hand_add_status <=\", value, \"handAddStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusIn(List<Integer> values) {\n            addCriterion(\"hand_add_status in\", values, \"handAddStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusNotIn(List<Integer> values) {\n            addCriterion(\"hand_add_status not in\", values, \"handAddStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"hand_add_status between\", value1, value2, \"handAddStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHandAddStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"hand_add_status not between\", value1, value2, \"handAddStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNull() {\n            addCriterion(\"type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNotNull() {\n            addCriterion(\"type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeEqualTo(Integer value) {\n            addCriterion(\"type =\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotEqualTo(Integer value) {\n            addCriterion(\"type <>\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThan(Integer value) {\n            addCriterion(\"type >\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"type >=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThan(Integer value) {\n            addCriterion(\"type <\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"type <=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIn(List<Integer> values) {\n            addCriterion(\"type in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotIn(List<Integer> values) {\n            addCriterion(\"type not in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"type between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"type not between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttributeValue.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class PmsProductAttributeValue implements Serializable {\n    private Long id;\n\n    private Long productId;\n\n    private Long productAttributeId;\n\n    @Schema(title = \"手动添加规格或参数的值，参数单值，规格有多个时以逗号隔开\")\n    private String value;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public Long getProductAttributeId() {\n        return productAttributeId;\n    }\n\n    public void setProductAttributeId(Long productAttributeId) {\n        this.productAttributeId = productAttributeId;\n    }\n\n    public String getValue() {\n        return value;\n    }\n\n    public void setValue(String value) {\n        this.value = value;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", productAttributeId=\").append(productAttributeId);\n        sb.append(\", value=\").append(value);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductAttributeValueExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsProductAttributeValueExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsProductAttributeValueExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdIsNull() {\n            addCriterion(\"product_attribute_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdIsNotNull() {\n            addCriterion(\"product_attribute_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdEqualTo(Long value) {\n            addCriterion(\"product_attribute_id =\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdNotEqualTo(Long value) {\n            addCriterion(\"product_attribute_id <>\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdGreaterThan(Long value) {\n            addCriterion(\"product_attribute_id >\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_attribute_id >=\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdLessThan(Long value) {\n            addCriterion(\"product_attribute_id <\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_attribute_id <=\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdIn(List<Long> values) {\n            addCriterion(\"product_attribute_id in\", values, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdNotIn(List<Long> values) {\n            addCriterion(\"product_attribute_id not in\", values, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_attribute_id between\", value1, value2, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_attribute_id not between\", value1, value2, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueIsNull() {\n            addCriterion(\"value is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueIsNotNull() {\n            addCriterion(\"value is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueEqualTo(String value) {\n            addCriterion(\"value =\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueNotEqualTo(String value) {\n            addCriterion(\"value <>\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueGreaterThan(String value) {\n            addCriterion(\"value >\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueGreaterThanOrEqualTo(String value) {\n            addCriterion(\"value >=\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueLessThan(String value) {\n            addCriterion(\"value <\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueLessThanOrEqualTo(String value) {\n            addCriterion(\"value <=\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueLike(String value) {\n            addCriterion(\"value like\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueNotLike(String value) {\n            addCriterion(\"value not like\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueIn(List<String> values) {\n            addCriterion(\"value in\", values, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueNotIn(List<String> values) {\n            addCriterion(\"value not in\", values, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueBetween(String value1, String value2) {\n            addCriterion(\"value between\", value1, value2, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueNotBetween(String value1, String value2) {\n            addCriterion(\"value not between\", value1, value2, \"value\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductCategory.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class PmsProductCategory implements Serializable {\n    private Long id;\n\n    @Schema(title = \"上机分类的编号：0表示一级分类\")\n    private Long parentId;\n\n    private String name;\n\n    @Schema(title = \"分类级别：0->1级；1->2级\")\n    private Integer level;\n\n    private Integer productCount;\n\n    private String productUnit;\n\n    @Schema(title = \"是否显示在导航栏：0->不显示；1->显示\")\n    private Integer navStatus;\n\n    @Schema(title = \"显示状态：0->不显示；1->显示\")\n    private Integer showStatus;\n\n    private Integer sort;\n\n    @Schema(title = \"图标\")\n    private String icon;\n\n    private String keywords;\n\n    @Schema(title = \"描述\")\n    private String description;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getParentId() {\n        return parentId;\n    }\n\n    public void setParentId(Long parentId) {\n        this.parentId = parentId;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getLevel() {\n        return level;\n    }\n\n    public void setLevel(Integer level) {\n        this.level = level;\n    }\n\n    public Integer getProductCount() {\n        return productCount;\n    }\n\n    public void setProductCount(Integer productCount) {\n        this.productCount = productCount;\n    }\n\n    public String getProductUnit() {\n        return productUnit;\n    }\n\n    public void setProductUnit(String productUnit) {\n        this.productUnit = productUnit;\n    }\n\n    public Integer getNavStatus() {\n        return navStatus;\n    }\n\n    public void setNavStatus(Integer navStatus) {\n        this.navStatus = navStatus;\n    }\n\n    public Integer getShowStatus() {\n        return showStatus;\n    }\n\n    public void setShowStatus(Integer showStatus) {\n        this.showStatus = showStatus;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    public String getIcon() {\n        return icon;\n    }\n\n    public void setIcon(String icon) {\n        this.icon = icon;\n    }\n\n    public String getKeywords() {\n        return keywords;\n    }\n\n    public void setKeywords(String keywords) {\n        this.keywords = keywords;\n    }\n\n    public String getDescription() {\n        return description;\n    }\n\n    public void setDescription(String description) {\n        this.description = description;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", parentId=\").append(parentId);\n        sb.append(\", name=\").append(name);\n        sb.append(\", level=\").append(level);\n        sb.append(\", productCount=\").append(productCount);\n        sb.append(\", productUnit=\").append(productUnit);\n        sb.append(\", navStatus=\").append(navStatus);\n        sb.append(\", showStatus=\").append(showStatus);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", icon=\").append(icon);\n        sb.append(\", keywords=\").append(keywords);\n        sb.append(\", description=\").append(description);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductCategoryAttributeRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class PmsProductCategoryAttributeRelation implements Serializable {\n    private Long id;\n\n    private Long productCategoryId;\n\n    private Long productAttributeId;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductCategoryId() {\n        return productCategoryId;\n    }\n\n    public void setProductCategoryId(Long productCategoryId) {\n        this.productCategoryId = productCategoryId;\n    }\n\n    public Long getProductAttributeId() {\n        return productAttributeId;\n    }\n\n    public void setProductAttributeId(Long productAttributeId) {\n        this.productAttributeId = productAttributeId;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productCategoryId=\").append(productCategoryId);\n        sb.append(\", productAttributeId=\").append(productAttributeId);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductCategoryAttributeRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsProductCategoryAttributeRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsProductCategoryAttributeRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNull() {\n            addCriterion(\"product_category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNotNull() {\n            addCriterion(\"product_category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdEqualTo(Long value) {\n            addCriterion(\"product_category_id =\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"product_category_id <>\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThan(Long value) {\n            addCriterion(\"product_category_id >\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id >=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThan(Long value) {\n            addCriterion(\"product_category_id <\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id <=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIn(List<Long> values) {\n            addCriterion(\"product_category_id in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"product_category_id not in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id not between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdIsNull() {\n            addCriterion(\"product_attribute_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdIsNotNull() {\n            addCriterion(\"product_attribute_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdEqualTo(Long value) {\n            addCriterion(\"product_attribute_id =\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdNotEqualTo(Long value) {\n            addCriterion(\"product_attribute_id <>\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdGreaterThan(Long value) {\n            addCriterion(\"product_attribute_id >\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_attribute_id >=\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdLessThan(Long value) {\n            addCriterion(\"product_attribute_id <\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_attribute_id <=\", value, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdIn(List<Long> values) {\n            addCriterion(\"product_attribute_id in\", values, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdNotIn(List<Long> values) {\n            addCriterion(\"product_attribute_id not in\", values, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_attribute_id between\", value1, value2, \"productAttributeId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_attribute_id not between\", value1, value2, \"productAttributeId\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductCategoryExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsProductCategoryExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsProductCategoryExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdIsNull() {\n            addCriterion(\"parent_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdIsNotNull() {\n            addCriterion(\"parent_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdEqualTo(Long value) {\n            addCriterion(\"parent_id =\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdNotEqualTo(Long value) {\n            addCriterion(\"parent_id <>\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdGreaterThan(Long value) {\n            addCriterion(\"parent_id >\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"parent_id >=\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdLessThan(Long value) {\n            addCriterion(\"parent_id <\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"parent_id <=\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdIn(List<Long> values) {\n            addCriterion(\"parent_id in\", values, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdNotIn(List<Long> values) {\n            addCriterion(\"parent_id not in\", values, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdBetween(Long value1, Long value2) {\n            addCriterion(\"parent_id between\", value1, value2, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"parent_id not between\", value1, value2, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelIsNull() {\n            addCriterion(\"level is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelIsNotNull() {\n            addCriterion(\"level is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelEqualTo(Integer value) {\n            addCriterion(\"level =\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelNotEqualTo(Integer value) {\n            addCriterion(\"level <>\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelGreaterThan(Integer value) {\n            addCriterion(\"level >\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"level >=\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelLessThan(Integer value) {\n            addCriterion(\"level <\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelLessThanOrEqualTo(Integer value) {\n            addCriterion(\"level <=\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelIn(List<Integer> values) {\n            addCriterion(\"level in\", values, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelNotIn(List<Integer> values) {\n            addCriterion(\"level not in\", values, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelBetween(Integer value1, Integer value2) {\n            addCriterion(\"level between\", value1, value2, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"level not between\", value1, value2, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIsNull() {\n            addCriterion(\"product_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIsNotNull() {\n            addCriterion(\"product_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountEqualTo(Integer value) {\n            addCriterion(\"product_count =\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotEqualTo(Integer value) {\n            addCriterion(\"product_count <>\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountGreaterThan(Integer value) {\n            addCriterion(\"product_count >\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"product_count >=\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountLessThan(Integer value) {\n            addCriterion(\"product_count <\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"product_count <=\", value, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountIn(List<Integer> values) {\n            addCriterion(\"product_count in\", values, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotIn(List<Integer> values) {\n            addCriterion(\"product_count not in\", values, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_count between\", value1, value2, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"product_count not between\", value1, value2, \"productCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitIsNull() {\n            addCriterion(\"product_unit is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitIsNotNull() {\n            addCriterion(\"product_unit is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitEqualTo(String value) {\n            addCriterion(\"product_unit =\", value, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitNotEqualTo(String value) {\n            addCriterion(\"product_unit <>\", value, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitGreaterThan(String value) {\n            addCriterion(\"product_unit >\", value, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_unit >=\", value, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitLessThan(String value) {\n            addCriterion(\"product_unit <\", value, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitLessThanOrEqualTo(String value) {\n            addCriterion(\"product_unit <=\", value, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitLike(String value) {\n            addCriterion(\"product_unit like\", value, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitNotLike(String value) {\n            addCriterion(\"product_unit not like\", value, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitIn(List<String> values) {\n            addCriterion(\"product_unit in\", values, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitNotIn(List<String> values) {\n            addCriterion(\"product_unit not in\", values, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitBetween(String value1, String value2) {\n            addCriterion(\"product_unit between\", value1, value2, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductUnitNotBetween(String value1, String value2) {\n            addCriterion(\"product_unit not between\", value1, value2, \"productUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusIsNull() {\n            addCriterion(\"nav_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusIsNotNull() {\n            addCriterion(\"nav_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusEqualTo(Integer value) {\n            addCriterion(\"nav_status =\", value, \"navStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusNotEqualTo(Integer value) {\n            addCriterion(\"nav_status <>\", value, \"navStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusGreaterThan(Integer value) {\n            addCriterion(\"nav_status >\", value, \"navStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"nav_status >=\", value, \"navStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusLessThan(Integer value) {\n            addCriterion(\"nav_status <\", value, \"navStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"nav_status <=\", value, \"navStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusIn(List<Integer> values) {\n            addCriterion(\"nav_status in\", values, \"navStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusNotIn(List<Integer> values) {\n            addCriterion(\"nav_status not in\", values, \"navStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"nav_status between\", value1, value2, \"navStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNavStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"nav_status not between\", value1, value2, \"navStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNull() {\n            addCriterion(\"show_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIsNotNull() {\n            addCriterion(\"show_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusEqualTo(Integer value) {\n            addCriterion(\"show_status =\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotEqualTo(Integer value) {\n            addCriterion(\"show_status <>\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThan(Integer value) {\n            addCriterion(\"show_status >\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status >=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThan(Integer value) {\n            addCriterion(\"show_status <\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"show_status <=\", value, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusIn(List<Integer> values) {\n            addCriterion(\"show_status in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotIn(List<Integer> values) {\n            addCriterion(\"show_status not in\", values, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andShowStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"show_status not between\", value1, value2, \"showStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNull() {\n            addCriterion(\"icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNotNull() {\n            addCriterion(\"icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconEqualTo(String value) {\n            addCriterion(\"icon =\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotEqualTo(String value) {\n            addCriterion(\"icon <>\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThan(String value) {\n            addCriterion(\"icon >\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"icon >=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThan(String value) {\n            addCriterion(\"icon <\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThanOrEqualTo(String value) {\n            addCriterion(\"icon <=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLike(String value) {\n            addCriterion(\"icon like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotLike(String value) {\n            addCriterion(\"icon not like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIn(List<String> values) {\n            addCriterion(\"icon in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotIn(List<String> values) {\n            addCriterion(\"icon not in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconBetween(String value1, String value2) {\n            addCriterion(\"icon between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotBetween(String value1, String value2) {\n            addCriterion(\"icon not between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsIsNull() {\n            addCriterion(\"keywords is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsIsNotNull() {\n            addCriterion(\"keywords is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsEqualTo(String value) {\n            addCriterion(\"keywords =\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsNotEqualTo(String value) {\n            addCriterion(\"keywords <>\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsGreaterThan(String value) {\n            addCriterion(\"keywords >\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsGreaterThanOrEqualTo(String value) {\n            addCriterion(\"keywords >=\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsLessThan(String value) {\n            addCriterion(\"keywords <\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsLessThanOrEqualTo(String value) {\n            addCriterion(\"keywords <=\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsLike(String value) {\n            addCriterion(\"keywords like\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsNotLike(String value) {\n            addCriterion(\"keywords not like\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsIn(List<String> values) {\n            addCriterion(\"keywords in\", values, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsNotIn(List<String> values) {\n            addCriterion(\"keywords not in\", values, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsBetween(String value1, String value2) {\n            addCriterion(\"keywords between\", value1, value2, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsNotBetween(String value1, String value2) {\n            addCriterion(\"keywords not between\", value1, value2, \"keywords\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class PmsProductExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsProductExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdIsNull() {\n            addCriterion(\"brand_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdIsNotNull() {\n            addCriterion(\"brand_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdEqualTo(Long value) {\n            addCriterion(\"brand_id =\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdNotEqualTo(Long value) {\n            addCriterion(\"brand_id <>\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdGreaterThan(Long value) {\n            addCriterion(\"brand_id >\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"brand_id >=\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdLessThan(Long value) {\n            addCriterion(\"brand_id <\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"brand_id <=\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdIn(List<Long> values) {\n            addCriterion(\"brand_id in\", values, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdNotIn(List<Long> values) {\n            addCriterion(\"brand_id not in\", values, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdBetween(Long value1, Long value2) {\n            addCriterion(\"brand_id between\", value1, value2, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"brand_id not between\", value1, value2, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNull() {\n            addCriterion(\"product_category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNotNull() {\n            addCriterion(\"product_category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdEqualTo(Long value) {\n            addCriterion(\"product_category_id =\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"product_category_id <>\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThan(Long value) {\n            addCriterion(\"product_category_id >\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id >=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThan(Long value) {\n            addCriterion(\"product_category_id <\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id <=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIn(List<Long> values) {\n            addCriterion(\"product_category_id in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"product_category_id not in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id not between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdIsNull() {\n            addCriterion(\"feight_template_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdIsNotNull() {\n            addCriterion(\"feight_template_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdEqualTo(Long value) {\n            addCriterion(\"feight_template_id =\", value, \"feightTemplateId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdNotEqualTo(Long value) {\n            addCriterion(\"feight_template_id <>\", value, \"feightTemplateId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdGreaterThan(Long value) {\n            addCriterion(\"feight_template_id >\", value, \"feightTemplateId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"feight_template_id >=\", value, \"feightTemplateId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdLessThan(Long value) {\n            addCriterion(\"feight_template_id <\", value, \"feightTemplateId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"feight_template_id <=\", value, \"feightTemplateId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdIn(List<Long> values) {\n            addCriterion(\"feight_template_id in\", values, \"feightTemplateId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdNotIn(List<Long> values) {\n            addCriterion(\"feight_template_id not in\", values, \"feightTemplateId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdBetween(Long value1, Long value2) {\n            addCriterion(\"feight_template_id between\", value1, value2, \"feightTemplateId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFeightTemplateIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"feight_template_id not between\", value1, value2, \"feightTemplateId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdIsNull() {\n            addCriterion(\"product_attribute_category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdIsNotNull() {\n            addCriterion(\"product_attribute_category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdEqualTo(Long value) {\n            addCriterion(\"product_attribute_category_id =\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"product_attribute_category_id <>\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdGreaterThan(Long value) {\n            addCriterion(\"product_attribute_category_id >\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_attribute_category_id >=\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdLessThan(Long value) {\n            addCriterion(\"product_attribute_category_id <\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_attribute_category_id <=\", value, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdIn(List<Long> values) {\n            addCriterion(\"product_attribute_category_id in\", values, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"product_attribute_category_id not in\", values, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_attribute_category_id between\", value1, value2, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductAttributeCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_attribute_category_id not between\", value1, value2, \"productAttributeCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIsNull() {\n            addCriterion(\"pic is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIsNotNull() {\n            addCriterion(\"pic is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicEqualTo(String value) {\n            addCriterion(\"pic =\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotEqualTo(String value) {\n            addCriterion(\"pic <>\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicGreaterThan(String value) {\n            addCriterion(\"pic >\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicGreaterThanOrEqualTo(String value) {\n            addCriterion(\"pic >=\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLessThan(String value) {\n            addCriterion(\"pic <\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLessThanOrEqualTo(String value) {\n            addCriterion(\"pic <=\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLike(String value) {\n            addCriterion(\"pic like\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotLike(String value) {\n            addCriterion(\"pic not like\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIn(List<String> values) {\n            addCriterion(\"pic in\", values, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotIn(List<String> values) {\n            addCriterion(\"pic not in\", values, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicBetween(String value1, String value2) {\n            addCriterion(\"pic between\", value1, value2, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotBetween(String value1, String value2) {\n            addCriterion(\"pic not between\", value1, value2, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIsNull() {\n            addCriterion(\"product_sn is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIsNotNull() {\n            addCriterion(\"product_sn is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnEqualTo(String value) {\n            addCriterion(\"product_sn =\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotEqualTo(String value) {\n            addCriterion(\"product_sn <>\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnGreaterThan(String value) {\n            addCriterion(\"product_sn >\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_sn >=\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLessThan(String value) {\n            addCriterion(\"product_sn <\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLessThanOrEqualTo(String value) {\n            addCriterion(\"product_sn <=\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLike(String value) {\n            addCriterion(\"product_sn like\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotLike(String value) {\n            addCriterion(\"product_sn not like\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIn(List<String> values) {\n            addCriterion(\"product_sn in\", values, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotIn(List<String> values) {\n            addCriterion(\"product_sn not in\", values, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnBetween(String value1, String value2) {\n            addCriterion(\"product_sn between\", value1, value2, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotBetween(String value1, String value2) {\n            addCriterion(\"product_sn not between\", value1, value2, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusIsNull() {\n            addCriterion(\"delete_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusIsNotNull() {\n            addCriterion(\"delete_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusEqualTo(Integer value) {\n            addCriterion(\"delete_status =\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusNotEqualTo(Integer value) {\n            addCriterion(\"delete_status <>\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusGreaterThan(Integer value) {\n            addCriterion(\"delete_status >\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"delete_status >=\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusLessThan(Integer value) {\n            addCriterion(\"delete_status <\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"delete_status <=\", value, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusIn(List<Integer> values) {\n            addCriterion(\"delete_status in\", values, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusNotIn(List<Integer> values) {\n            addCriterion(\"delete_status not in\", values, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"delete_status between\", value1, value2, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeleteStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"delete_status not between\", value1, value2, \"deleteStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusIsNull() {\n            addCriterion(\"publish_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusIsNotNull() {\n            addCriterion(\"publish_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusEqualTo(Integer value) {\n            addCriterion(\"publish_status =\", value, \"publishStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusNotEqualTo(Integer value) {\n            addCriterion(\"publish_status <>\", value, \"publishStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusGreaterThan(Integer value) {\n            addCriterion(\"publish_status >\", value, \"publishStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"publish_status >=\", value, \"publishStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusLessThan(Integer value) {\n            addCriterion(\"publish_status <\", value, \"publishStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"publish_status <=\", value, \"publishStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusIn(List<Integer> values) {\n            addCriterion(\"publish_status in\", values, \"publishStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusNotIn(List<Integer> values) {\n            addCriterion(\"publish_status not in\", values, \"publishStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"publish_status between\", value1, value2, \"publishStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"publish_status not between\", value1, value2, \"publishStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusIsNull() {\n            addCriterion(\"new_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusIsNotNull() {\n            addCriterion(\"new_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusEqualTo(Integer value) {\n            addCriterion(\"new_status =\", value, \"newStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusNotEqualTo(Integer value) {\n            addCriterion(\"new_status <>\", value, \"newStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusGreaterThan(Integer value) {\n            addCriterion(\"new_status >\", value, \"newStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"new_status >=\", value, \"newStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusLessThan(Integer value) {\n            addCriterion(\"new_status <\", value, \"newStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"new_status <=\", value, \"newStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusIn(List<Integer> values) {\n            addCriterion(\"new_status in\", values, \"newStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusNotIn(List<Integer> values) {\n            addCriterion(\"new_status not in\", values, \"newStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"new_status between\", value1, value2, \"newStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNewStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"new_status not between\", value1, value2, \"newStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusIsNull() {\n            addCriterion(\"recommand_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusIsNotNull() {\n            addCriterion(\"recommand_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusEqualTo(Integer value) {\n            addCriterion(\"recommand_status =\", value, \"recommandStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusNotEqualTo(Integer value) {\n            addCriterion(\"recommand_status <>\", value, \"recommandStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusGreaterThan(Integer value) {\n            addCriterion(\"recommand_status >\", value, \"recommandStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"recommand_status >=\", value, \"recommandStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusLessThan(Integer value) {\n            addCriterion(\"recommand_status <\", value, \"recommandStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"recommand_status <=\", value, \"recommandStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusIn(List<Integer> values) {\n            addCriterion(\"recommand_status in\", values, \"recommandStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusNotIn(List<Integer> values) {\n            addCriterion(\"recommand_status not in\", values, \"recommandStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommand_status between\", value1, value2, \"recommandStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommandStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommand_status not between\", value1, value2, \"recommandStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusIsNull() {\n            addCriterion(\"verify_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusIsNotNull() {\n            addCriterion(\"verify_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusEqualTo(Integer value) {\n            addCriterion(\"verify_status =\", value, \"verifyStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusNotEqualTo(Integer value) {\n            addCriterion(\"verify_status <>\", value, \"verifyStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusGreaterThan(Integer value) {\n            addCriterion(\"verify_status >\", value, \"verifyStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"verify_status >=\", value, \"verifyStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusLessThan(Integer value) {\n            addCriterion(\"verify_status <\", value, \"verifyStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"verify_status <=\", value, \"verifyStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusIn(List<Integer> values) {\n            addCriterion(\"verify_status in\", values, \"verifyStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusNotIn(List<Integer> values) {\n            addCriterion(\"verify_status not in\", values, \"verifyStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"verify_status between\", value1, value2, \"verifyStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVerifyStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"verify_status not between\", value1, value2, \"verifyStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleIsNull() {\n            addCriterion(\"sale is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleIsNotNull() {\n            addCriterion(\"sale is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleEqualTo(Integer value) {\n            addCriterion(\"sale =\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleNotEqualTo(Integer value) {\n            addCriterion(\"sale <>\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleGreaterThan(Integer value) {\n            addCriterion(\"sale >\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sale >=\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleLessThan(Integer value) {\n            addCriterion(\"sale <\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sale <=\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleIn(List<Integer> values) {\n            addCriterion(\"sale in\", values, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleNotIn(List<Integer> values) {\n            addCriterion(\"sale not in\", values, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleBetween(Integer value1, Integer value2) {\n            addCriterion(\"sale between\", value1, value2, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sale not between\", value1, value2, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIsNull() {\n            addCriterion(\"price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIsNotNull() {\n            addCriterion(\"price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceEqualTo(BigDecimal value) {\n            addCriterion(\"price =\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"price <>\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"price >\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price >=\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceLessThan(BigDecimal value) {\n            addCriterion(\"price <\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price <=\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIn(List<BigDecimal> values) {\n            addCriterion(\"price in\", values, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"price not in\", values, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price between\", value1, value2, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price not between\", value1, value2, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceIsNull() {\n            addCriterion(\"promotion_price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceIsNotNull() {\n            addCriterion(\"promotion_price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_price =\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_price <>\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"promotion_price >\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_price >=\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceLessThan(BigDecimal value) {\n            addCriterion(\"promotion_price <\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_price <=\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceIn(List<BigDecimal> values) {\n            addCriterion(\"promotion_price in\", values, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"promotion_price not in\", values, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"promotion_price between\", value1, value2, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"promotion_price not between\", value1, value2, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthIsNull() {\n            addCriterion(\"gift_growth is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthIsNotNull() {\n            addCriterion(\"gift_growth is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthEqualTo(Integer value) {\n            addCriterion(\"gift_growth =\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthNotEqualTo(Integer value) {\n            addCriterion(\"gift_growth <>\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthGreaterThan(Integer value) {\n            addCriterion(\"gift_growth >\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_growth >=\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthLessThan(Integer value) {\n            addCriterion(\"gift_growth <\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthLessThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_growth <=\", value, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthIn(List<Integer> values) {\n            addCriterion(\"gift_growth in\", values, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthNotIn(List<Integer> values) {\n            addCriterion(\"gift_growth not in\", values, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_growth between\", value1, value2, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftGrowthNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_growth not between\", value1, value2, \"giftGrowth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointIsNull() {\n            addCriterion(\"gift_point is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointIsNotNull() {\n            addCriterion(\"gift_point is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointEqualTo(Integer value) {\n            addCriterion(\"gift_point =\", value, \"giftPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNotEqualTo(Integer value) {\n            addCriterion(\"gift_point <>\", value, \"giftPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointGreaterThan(Integer value) {\n            addCriterion(\"gift_point >\", value, \"giftPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_point >=\", value, \"giftPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointLessThan(Integer value) {\n            addCriterion(\"gift_point <\", value, \"giftPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointLessThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_point <=\", value, \"giftPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointIn(List<Integer> values) {\n            addCriterion(\"gift_point in\", values, \"giftPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNotIn(List<Integer> values) {\n            addCriterion(\"gift_point not in\", values, \"giftPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_point between\", value1, value2, \"giftPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_point not between\", value1, value2, \"giftPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitIsNull() {\n            addCriterion(\"use_point_limit is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitIsNotNull() {\n            addCriterion(\"use_point_limit is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitEqualTo(Integer value) {\n            addCriterion(\"use_point_limit =\", value, \"usePointLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNotEqualTo(Integer value) {\n            addCriterion(\"use_point_limit <>\", value, \"usePointLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitGreaterThan(Integer value) {\n            addCriterion(\"use_point_limit >\", value, \"usePointLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"use_point_limit >=\", value, \"usePointLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitLessThan(Integer value) {\n            addCriterion(\"use_point_limit <\", value, \"usePointLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitLessThanOrEqualTo(Integer value) {\n            addCriterion(\"use_point_limit <=\", value, \"usePointLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitIn(List<Integer> values) {\n            addCriterion(\"use_point_limit in\", values, \"usePointLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNotIn(List<Integer> values) {\n            addCriterion(\"use_point_limit not in\", values, \"usePointLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_point_limit between\", value1, value2, \"usePointLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_point_limit not between\", value1, value2, \"usePointLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleIsNull() {\n            addCriterion(\"sub_title is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleIsNotNull() {\n            addCriterion(\"sub_title is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleEqualTo(String value) {\n            addCriterion(\"sub_title =\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleNotEqualTo(String value) {\n            addCriterion(\"sub_title <>\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleGreaterThan(String value) {\n            addCriterion(\"sub_title >\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleGreaterThanOrEqualTo(String value) {\n            addCriterion(\"sub_title >=\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleLessThan(String value) {\n            addCriterion(\"sub_title <\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleLessThanOrEqualTo(String value) {\n            addCriterion(\"sub_title <=\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleLike(String value) {\n            addCriterion(\"sub_title like\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleNotLike(String value) {\n            addCriterion(\"sub_title not like\", value, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleIn(List<String> values) {\n            addCriterion(\"sub_title in\", values, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleNotIn(List<String> values) {\n            addCriterion(\"sub_title not in\", values, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleBetween(String value1, String value2) {\n            addCriterion(\"sub_title between\", value1, value2, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubTitleNotBetween(String value1, String value2) {\n            addCriterion(\"sub_title not between\", value1, value2, \"subTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceIsNull() {\n            addCriterion(\"original_price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceIsNotNull() {\n            addCriterion(\"original_price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceEqualTo(BigDecimal value) {\n            addCriterion(\"original_price =\", value, \"originalPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"original_price <>\", value, \"originalPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"original_price >\", value, \"originalPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"original_price >=\", value, \"originalPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceLessThan(BigDecimal value) {\n            addCriterion(\"original_price <\", value, \"originalPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"original_price <=\", value, \"originalPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceIn(List<BigDecimal> values) {\n            addCriterion(\"original_price in\", values, \"originalPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"original_price not in\", values, \"originalPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"original_price between\", value1, value2, \"originalPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOriginalPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"original_price not between\", value1, value2, \"originalPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockIsNull() {\n            addCriterion(\"stock is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockIsNotNull() {\n            addCriterion(\"stock is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockEqualTo(Integer value) {\n            addCriterion(\"stock =\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockNotEqualTo(Integer value) {\n            addCriterion(\"stock <>\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockGreaterThan(Integer value) {\n            addCriterion(\"stock >\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"stock >=\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockLessThan(Integer value) {\n            addCriterion(\"stock <\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockLessThanOrEqualTo(Integer value) {\n            addCriterion(\"stock <=\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockIn(List<Integer> values) {\n            addCriterion(\"stock in\", values, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockNotIn(List<Integer> values) {\n            addCriterion(\"stock not in\", values, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockBetween(Integer value1, Integer value2) {\n            addCriterion(\"stock between\", value1, value2, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"stock not between\", value1, value2, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockIsNull() {\n            addCriterion(\"low_stock is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockIsNotNull() {\n            addCriterion(\"low_stock is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockEqualTo(Integer value) {\n            addCriterion(\"low_stock =\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockNotEqualTo(Integer value) {\n            addCriterion(\"low_stock <>\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockGreaterThan(Integer value) {\n            addCriterion(\"low_stock >\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"low_stock >=\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockLessThan(Integer value) {\n            addCriterion(\"low_stock <\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockLessThanOrEqualTo(Integer value) {\n            addCriterion(\"low_stock <=\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockIn(List<Integer> values) {\n            addCriterion(\"low_stock in\", values, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockNotIn(List<Integer> values) {\n            addCriterion(\"low_stock not in\", values, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockBetween(Integer value1, Integer value2) {\n            addCriterion(\"low_stock between\", value1, value2, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"low_stock not between\", value1, value2, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitIsNull() {\n            addCriterion(\"unit is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitIsNotNull() {\n            addCriterion(\"unit is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitEqualTo(String value) {\n            addCriterion(\"unit =\", value, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitNotEqualTo(String value) {\n            addCriterion(\"unit <>\", value, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitGreaterThan(String value) {\n            addCriterion(\"unit >\", value, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitGreaterThanOrEqualTo(String value) {\n            addCriterion(\"unit >=\", value, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitLessThan(String value) {\n            addCriterion(\"unit <\", value, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitLessThanOrEqualTo(String value) {\n            addCriterion(\"unit <=\", value, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitLike(String value) {\n            addCriterion(\"unit like\", value, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitNotLike(String value) {\n            addCriterion(\"unit not like\", value, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitIn(List<String> values) {\n            addCriterion(\"unit in\", values, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitNotIn(List<String> values) {\n            addCriterion(\"unit not in\", values, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitBetween(String value1, String value2) {\n            addCriterion(\"unit between\", value1, value2, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUnitNotBetween(String value1, String value2) {\n            addCriterion(\"unit not between\", value1, value2, \"unit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightIsNull() {\n            addCriterion(\"weight is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightIsNotNull() {\n            addCriterion(\"weight is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightEqualTo(BigDecimal value) {\n            addCriterion(\"weight =\", value, \"weight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightNotEqualTo(BigDecimal value) {\n            addCriterion(\"weight <>\", value, \"weight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightGreaterThan(BigDecimal value) {\n            addCriterion(\"weight >\", value, \"weight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"weight >=\", value, \"weight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightLessThan(BigDecimal value) {\n            addCriterion(\"weight <\", value, \"weight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"weight <=\", value, \"weight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightIn(List<BigDecimal> values) {\n            addCriterion(\"weight in\", values, \"weight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightNotIn(List<BigDecimal> values) {\n            addCriterion(\"weight not in\", values, \"weight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"weight between\", value1, value2, \"weight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andWeightNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"weight not between\", value1, value2, \"weight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusIsNull() {\n            addCriterion(\"preview_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusIsNotNull() {\n            addCriterion(\"preview_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusEqualTo(Integer value) {\n            addCriterion(\"preview_status =\", value, \"previewStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusNotEqualTo(Integer value) {\n            addCriterion(\"preview_status <>\", value, \"previewStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusGreaterThan(Integer value) {\n            addCriterion(\"preview_status >\", value, \"previewStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"preview_status >=\", value, \"previewStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusLessThan(Integer value) {\n            addCriterion(\"preview_status <\", value, \"previewStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"preview_status <=\", value, \"previewStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusIn(List<Integer> values) {\n            addCriterion(\"preview_status in\", values, \"previewStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusNotIn(List<Integer> values) {\n            addCriterion(\"preview_status not in\", values, \"previewStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"preview_status between\", value1, value2, \"previewStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPreviewStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"preview_status not between\", value1, value2, \"previewStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsIsNull() {\n            addCriterion(\"service_ids is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsIsNotNull() {\n            addCriterion(\"service_ids is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsEqualTo(String value) {\n            addCriterion(\"service_ids =\", value, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsNotEqualTo(String value) {\n            addCriterion(\"service_ids <>\", value, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsGreaterThan(String value) {\n            addCriterion(\"service_ids >\", value, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsGreaterThanOrEqualTo(String value) {\n            addCriterion(\"service_ids >=\", value, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsLessThan(String value) {\n            addCriterion(\"service_ids <\", value, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsLessThanOrEqualTo(String value) {\n            addCriterion(\"service_ids <=\", value, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsLike(String value) {\n            addCriterion(\"service_ids like\", value, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsNotLike(String value) {\n            addCriterion(\"service_ids not like\", value, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsIn(List<String> values) {\n            addCriterion(\"service_ids in\", values, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsNotIn(List<String> values) {\n            addCriterion(\"service_ids not in\", values, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsBetween(String value1, String value2) {\n            addCriterion(\"service_ids between\", value1, value2, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andServiceIdsNotBetween(String value1, String value2) {\n            addCriterion(\"service_ids not between\", value1, value2, \"serviceIds\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsIsNull() {\n            addCriterion(\"keywords is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsIsNotNull() {\n            addCriterion(\"keywords is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsEqualTo(String value) {\n            addCriterion(\"keywords =\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsNotEqualTo(String value) {\n            addCriterion(\"keywords <>\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsGreaterThan(String value) {\n            addCriterion(\"keywords >\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsGreaterThanOrEqualTo(String value) {\n            addCriterion(\"keywords >=\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsLessThan(String value) {\n            addCriterion(\"keywords <\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsLessThanOrEqualTo(String value) {\n            addCriterion(\"keywords <=\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsLike(String value) {\n            addCriterion(\"keywords like\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsNotLike(String value) {\n            addCriterion(\"keywords not like\", value, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsIn(List<String> values) {\n            addCriterion(\"keywords in\", values, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsNotIn(List<String> values) {\n            addCriterion(\"keywords not in\", values, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsBetween(String value1, String value2) {\n            addCriterion(\"keywords between\", value1, value2, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andKeywordsNotBetween(String value1, String value2) {\n            addCriterion(\"keywords not between\", value1, value2, \"keywords\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNull() {\n            addCriterion(\"note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNotNull() {\n            addCriterion(\"note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteEqualTo(String value) {\n            addCriterion(\"note =\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotEqualTo(String value) {\n            addCriterion(\"note <>\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThan(String value) {\n            addCriterion(\"note >\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"note >=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThan(String value) {\n            addCriterion(\"note <\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"note <=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLike(String value) {\n            addCriterion(\"note like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotLike(String value) {\n            addCriterion(\"note not like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIn(List<String> values) {\n            addCriterion(\"note in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotIn(List<String> values) {\n            addCriterion(\"note not in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteBetween(String value1, String value2) {\n            addCriterion(\"note between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotBetween(String value1, String value2) {\n            addCriterion(\"note not between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsIsNull() {\n            addCriterion(\"album_pics is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsIsNotNull() {\n            addCriterion(\"album_pics is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsEqualTo(String value) {\n            addCriterion(\"album_pics =\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsNotEqualTo(String value) {\n            addCriterion(\"album_pics <>\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsGreaterThan(String value) {\n            addCriterion(\"album_pics >\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsGreaterThanOrEqualTo(String value) {\n            addCriterion(\"album_pics >=\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsLessThan(String value) {\n            addCriterion(\"album_pics <\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsLessThanOrEqualTo(String value) {\n            addCriterion(\"album_pics <=\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsLike(String value) {\n            addCriterion(\"album_pics like\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsNotLike(String value) {\n            addCriterion(\"album_pics not like\", value, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsIn(List<String> values) {\n            addCriterion(\"album_pics in\", values, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsNotIn(List<String> values) {\n            addCriterion(\"album_pics not in\", values, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsBetween(String value1, String value2) {\n            addCriterion(\"album_pics between\", value1, value2, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAlbumPicsNotBetween(String value1, String value2) {\n            addCriterion(\"album_pics not between\", value1, value2, \"albumPics\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleIsNull() {\n            addCriterion(\"detail_title is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleIsNotNull() {\n            addCriterion(\"detail_title is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleEqualTo(String value) {\n            addCriterion(\"detail_title =\", value, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleNotEqualTo(String value) {\n            addCriterion(\"detail_title <>\", value, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleGreaterThan(String value) {\n            addCriterion(\"detail_title >\", value, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleGreaterThanOrEqualTo(String value) {\n            addCriterion(\"detail_title >=\", value, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleLessThan(String value) {\n            addCriterion(\"detail_title <\", value, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleLessThanOrEqualTo(String value) {\n            addCriterion(\"detail_title <=\", value, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleLike(String value) {\n            addCriterion(\"detail_title like\", value, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleNotLike(String value) {\n            addCriterion(\"detail_title not like\", value, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleIn(List<String> values) {\n            addCriterion(\"detail_title in\", values, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleNotIn(List<String> values) {\n            addCriterion(\"detail_title not in\", values, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleBetween(String value1, String value2) {\n            addCriterion(\"detail_title between\", value1, value2, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailTitleNotBetween(String value1, String value2) {\n            addCriterion(\"detail_title not between\", value1, value2, \"detailTitle\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeIsNull() {\n            addCriterion(\"promotion_start_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeIsNotNull() {\n            addCriterion(\"promotion_start_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeEqualTo(Date value) {\n            addCriterion(\"promotion_start_time =\", value, \"promotionStartTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeNotEqualTo(Date value) {\n            addCriterion(\"promotion_start_time <>\", value, \"promotionStartTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeGreaterThan(Date value) {\n            addCriterion(\"promotion_start_time >\", value, \"promotionStartTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"promotion_start_time >=\", value, \"promotionStartTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeLessThan(Date value) {\n            addCriterion(\"promotion_start_time <\", value, \"promotionStartTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"promotion_start_time <=\", value, \"promotionStartTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeIn(List<Date> values) {\n            addCriterion(\"promotion_start_time in\", values, \"promotionStartTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeNotIn(List<Date> values) {\n            addCriterion(\"promotion_start_time not in\", values, \"promotionStartTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeBetween(Date value1, Date value2) {\n            addCriterion(\"promotion_start_time between\", value1, value2, \"promotionStartTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionStartTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"promotion_start_time not between\", value1, value2, \"promotionStartTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeIsNull() {\n            addCriterion(\"promotion_end_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeIsNotNull() {\n            addCriterion(\"promotion_end_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeEqualTo(Date value) {\n            addCriterion(\"promotion_end_time =\", value, \"promotionEndTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeNotEqualTo(Date value) {\n            addCriterion(\"promotion_end_time <>\", value, \"promotionEndTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeGreaterThan(Date value) {\n            addCriterion(\"promotion_end_time >\", value, \"promotionEndTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"promotion_end_time >=\", value, \"promotionEndTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeLessThan(Date value) {\n            addCriterion(\"promotion_end_time <\", value, \"promotionEndTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"promotion_end_time <=\", value, \"promotionEndTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeIn(List<Date> values) {\n            addCriterion(\"promotion_end_time in\", values, \"promotionEndTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeNotIn(List<Date> values) {\n            addCriterion(\"promotion_end_time not in\", values, \"promotionEndTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeBetween(Date value1, Date value2) {\n            addCriterion(\"promotion_end_time between\", value1, value2, \"promotionEndTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionEndTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"promotion_end_time not between\", value1, value2, \"promotionEndTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitIsNull() {\n            addCriterion(\"promotion_per_limit is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitIsNotNull() {\n            addCriterion(\"promotion_per_limit is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitEqualTo(Integer value) {\n            addCriterion(\"promotion_per_limit =\", value, \"promotionPerLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitNotEqualTo(Integer value) {\n            addCriterion(\"promotion_per_limit <>\", value, \"promotionPerLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitGreaterThan(Integer value) {\n            addCriterion(\"promotion_per_limit >\", value, \"promotionPerLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"promotion_per_limit >=\", value, \"promotionPerLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitLessThan(Integer value) {\n            addCriterion(\"promotion_per_limit <\", value, \"promotionPerLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitLessThanOrEqualTo(Integer value) {\n            addCriterion(\"promotion_per_limit <=\", value, \"promotionPerLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitIn(List<Integer> values) {\n            addCriterion(\"promotion_per_limit in\", values, \"promotionPerLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitNotIn(List<Integer> values) {\n            addCriterion(\"promotion_per_limit not in\", values, \"promotionPerLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitBetween(Integer value1, Integer value2) {\n            addCriterion(\"promotion_per_limit between\", value1, value2, \"promotionPerLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPerLimitNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"promotion_per_limit not between\", value1, value2, \"promotionPerLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeIsNull() {\n            addCriterion(\"promotion_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeIsNotNull() {\n            addCriterion(\"promotion_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeEqualTo(Integer value) {\n            addCriterion(\"promotion_type =\", value, \"promotionType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeNotEqualTo(Integer value) {\n            addCriterion(\"promotion_type <>\", value, \"promotionType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeGreaterThan(Integer value) {\n            addCriterion(\"promotion_type >\", value, \"promotionType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"promotion_type >=\", value, \"promotionType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeLessThan(Integer value) {\n            addCriterion(\"promotion_type <\", value, \"promotionType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"promotion_type <=\", value, \"promotionType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeIn(List<Integer> values) {\n            addCriterion(\"promotion_type in\", values, \"promotionType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeNotIn(List<Integer> values) {\n            addCriterion(\"promotion_type not in\", values, \"promotionType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"promotion_type between\", value1, value2, \"promotionType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"promotion_type not between\", value1, value2, \"promotionType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameIsNull() {\n            addCriterion(\"brand_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameIsNotNull() {\n            addCriterion(\"brand_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameEqualTo(String value) {\n            addCriterion(\"brand_name =\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameNotEqualTo(String value) {\n            addCriterion(\"brand_name <>\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameGreaterThan(String value) {\n            addCriterion(\"brand_name >\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"brand_name >=\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameLessThan(String value) {\n            addCriterion(\"brand_name <\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameLessThanOrEqualTo(String value) {\n            addCriterion(\"brand_name <=\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameLike(String value) {\n            addCriterion(\"brand_name like\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameNotLike(String value) {\n            addCriterion(\"brand_name not like\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameIn(List<String> values) {\n            addCriterion(\"brand_name in\", values, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameNotIn(List<String> values) {\n            addCriterion(\"brand_name not in\", values, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameBetween(String value1, String value2) {\n            addCriterion(\"brand_name between\", value1, value2, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameNotBetween(String value1, String value2) {\n            addCriterion(\"brand_name not between\", value1, value2, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameIsNull() {\n            addCriterion(\"product_category_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameIsNotNull() {\n            addCriterion(\"product_category_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameEqualTo(String value) {\n            addCriterion(\"product_category_name =\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameNotEqualTo(String value) {\n            addCriterion(\"product_category_name <>\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameGreaterThan(String value) {\n            addCriterion(\"product_category_name >\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_category_name >=\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameLessThan(String value) {\n            addCriterion(\"product_category_name <\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameLessThanOrEqualTo(String value) {\n            addCriterion(\"product_category_name <=\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameLike(String value) {\n            addCriterion(\"product_category_name like\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameNotLike(String value) {\n            addCriterion(\"product_category_name not like\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameIn(List<String> values) {\n            addCriterion(\"product_category_name in\", values, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameNotIn(List<String> values) {\n            addCriterion(\"product_category_name not in\", values, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameBetween(String value1, String value2) {\n            addCriterion(\"product_category_name between\", value1, value2, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameNotBetween(String value1, String value2) {\n            addCriterion(\"product_category_name not between\", value1, value2, \"productCategoryName\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductFullReduction.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\npublic class PmsProductFullReduction implements Serializable {\n    private Long id;\n\n    private Long productId;\n\n    private BigDecimal fullPrice;\n\n    private BigDecimal reducePrice;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public BigDecimal getFullPrice() {\n        return fullPrice;\n    }\n\n    public void setFullPrice(BigDecimal fullPrice) {\n        this.fullPrice = fullPrice;\n    }\n\n    public BigDecimal getReducePrice() {\n        return reducePrice;\n    }\n\n    public void setReducePrice(BigDecimal reducePrice) {\n        this.reducePrice = reducePrice;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", fullPrice=\").append(fullPrice);\n        sb.append(\", reducePrice=\").append(reducePrice);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductFullReductionExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsProductFullReductionExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsProductFullReductionExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceIsNull() {\n            addCriterion(\"full_price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceIsNotNull() {\n            addCriterion(\"full_price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceEqualTo(BigDecimal value) {\n            addCriterion(\"full_price =\", value, \"fullPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"full_price <>\", value, \"fullPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"full_price >\", value, \"fullPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"full_price >=\", value, \"fullPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceLessThan(BigDecimal value) {\n            addCriterion(\"full_price <\", value, \"fullPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"full_price <=\", value, \"fullPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceIn(List<BigDecimal> values) {\n            addCriterion(\"full_price in\", values, \"fullPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"full_price not in\", values, \"fullPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"full_price between\", value1, value2, \"fullPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFullPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"full_price not between\", value1, value2, \"fullPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceIsNull() {\n            addCriterion(\"reduce_price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceIsNotNull() {\n            addCriterion(\"reduce_price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceEqualTo(BigDecimal value) {\n            addCriterion(\"reduce_price =\", value, \"reducePrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"reduce_price <>\", value, \"reducePrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceGreaterThan(BigDecimal value) {\n            addCriterion(\"reduce_price >\", value, \"reducePrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"reduce_price >=\", value, \"reducePrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceLessThan(BigDecimal value) {\n            addCriterion(\"reduce_price <\", value, \"reducePrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"reduce_price <=\", value, \"reducePrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceIn(List<BigDecimal> values) {\n            addCriterion(\"reduce_price in\", values, \"reducePrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"reduce_price not in\", values, \"reducePrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"reduce_price between\", value1, value2, \"reducePrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReducePriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"reduce_price not between\", value1, value2, \"reducePrice\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductLadder.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\npublic class PmsProductLadder implements Serializable {\n    private Long id;\n\n    private Long productId;\n\n    @Schema(title = \"满足的商品数量\")\n    private Integer count;\n\n    @Schema(title = \"折扣\")\n    private BigDecimal discount;\n\n    @Schema(title = \"折后价格\")\n    private BigDecimal price;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public Integer getCount() {\n        return count;\n    }\n\n    public void setCount(Integer count) {\n        this.count = count;\n    }\n\n    public BigDecimal getDiscount() {\n        return discount;\n    }\n\n    public void setDiscount(BigDecimal discount) {\n        this.discount = discount;\n    }\n\n    public BigDecimal getPrice() {\n        return price;\n    }\n\n    public void setPrice(BigDecimal price) {\n        this.price = price;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", count=\").append(count);\n        sb.append(\", discount=\").append(discount);\n        sb.append(\", price=\").append(price);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductLadderExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsProductLadderExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsProductLadderExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountIsNull() {\n            addCriterion(\"count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountIsNotNull() {\n            addCriterion(\"count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountEqualTo(Integer value) {\n            addCriterion(\"count =\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountNotEqualTo(Integer value) {\n            addCriterion(\"count <>\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountGreaterThan(Integer value) {\n            addCriterion(\"count >\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"count >=\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountLessThan(Integer value) {\n            addCriterion(\"count <\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"count <=\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountIn(List<Integer> values) {\n            addCriterion(\"count in\", values, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountNotIn(List<Integer> values) {\n            addCriterion(\"count not in\", values, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"count between\", value1, value2, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"count not between\", value1, value2, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountIsNull() {\n            addCriterion(\"discount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountIsNotNull() {\n            addCriterion(\"discount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountEqualTo(BigDecimal value) {\n            addCriterion(\"discount =\", value, \"discount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountNotEqualTo(BigDecimal value) {\n            addCriterion(\"discount <>\", value, \"discount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountGreaterThan(BigDecimal value) {\n            addCriterion(\"discount >\", value, \"discount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"discount >=\", value, \"discount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountLessThan(BigDecimal value) {\n            addCriterion(\"discount <\", value, \"discount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"discount <=\", value, \"discount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountIn(List<BigDecimal> values) {\n            addCriterion(\"discount in\", values, \"discount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountNotIn(List<BigDecimal> values) {\n            addCriterion(\"discount not in\", values, \"discount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"discount between\", value1, value2, \"discount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDiscountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"discount not between\", value1, value2, \"discount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIsNull() {\n            addCriterion(\"price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIsNotNull() {\n            addCriterion(\"price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceEqualTo(BigDecimal value) {\n            addCriterion(\"price =\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"price <>\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"price >\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price >=\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceLessThan(BigDecimal value) {\n            addCriterion(\"price <\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price <=\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIn(List<BigDecimal> values) {\n            addCriterion(\"price in\", values, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"price not in\", values, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price between\", value1, value2, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price not between\", value1, value2, \"price\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductOperateLog.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\nimport java.util.Date;\n\npublic class PmsProductOperateLog implements Serializable {\n    private Long id;\n\n    private Long productId;\n\n    private BigDecimal priceOld;\n\n    private BigDecimal priceNew;\n\n    private BigDecimal salePriceOld;\n\n    private BigDecimal salePriceNew;\n\n    @Schema(title = \"赠送的积分\")\n    private Integer giftPointOld;\n\n    private Integer giftPointNew;\n\n    private Integer usePointLimitOld;\n\n    private Integer usePointLimitNew;\n\n    @Schema(title = \"操作人\")\n    private String operateMan;\n\n    private Date createTime;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public BigDecimal getPriceOld() {\n        return priceOld;\n    }\n\n    public void setPriceOld(BigDecimal priceOld) {\n        this.priceOld = priceOld;\n    }\n\n    public BigDecimal getPriceNew() {\n        return priceNew;\n    }\n\n    public void setPriceNew(BigDecimal priceNew) {\n        this.priceNew = priceNew;\n    }\n\n    public BigDecimal getSalePriceOld() {\n        return salePriceOld;\n    }\n\n    public void setSalePriceOld(BigDecimal salePriceOld) {\n        this.salePriceOld = salePriceOld;\n    }\n\n    public BigDecimal getSalePriceNew() {\n        return salePriceNew;\n    }\n\n    public void setSalePriceNew(BigDecimal salePriceNew) {\n        this.salePriceNew = salePriceNew;\n    }\n\n    public Integer getGiftPointOld() {\n        return giftPointOld;\n    }\n\n    public void setGiftPointOld(Integer giftPointOld) {\n        this.giftPointOld = giftPointOld;\n    }\n\n    public Integer getGiftPointNew() {\n        return giftPointNew;\n    }\n\n    public void setGiftPointNew(Integer giftPointNew) {\n        this.giftPointNew = giftPointNew;\n    }\n\n    public Integer getUsePointLimitOld() {\n        return usePointLimitOld;\n    }\n\n    public void setUsePointLimitOld(Integer usePointLimitOld) {\n        this.usePointLimitOld = usePointLimitOld;\n    }\n\n    public Integer getUsePointLimitNew() {\n        return usePointLimitNew;\n    }\n\n    public void setUsePointLimitNew(Integer usePointLimitNew) {\n        this.usePointLimitNew = usePointLimitNew;\n    }\n\n    public String getOperateMan() {\n        return operateMan;\n    }\n\n    public void setOperateMan(String operateMan) {\n        this.operateMan = operateMan;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", priceOld=\").append(priceOld);\n        sb.append(\", priceNew=\").append(priceNew);\n        sb.append(\", salePriceOld=\").append(salePriceOld);\n        sb.append(\", salePriceNew=\").append(salePriceNew);\n        sb.append(\", giftPointOld=\").append(giftPointOld);\n        sb.append(\", giftPointNew=\").append(giftPointNew);\n        sb.append(\", usePointLimitOld=\").append(usePointLimitOld);\n        sb.append(\", usePointLimitNew=\").append(usePointLimitNew);\n        sb.append(\", operateMan=\").append(operateMan);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductOperateLogExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class PmsProductOperateLogExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsProductOperateLogExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldIsNull() {\n            addCriterion(\"price_old is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldIsNotNull() {\n            addCriterion(\"price_old is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldEqualTo(BigDecimal value) {\n            addCriterion(\"price_old =\", value, \"priceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldNotEqualTo(BigDecimal value) {\n            addCriterion(\"price_old <>\", value, \"priceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldGreaterThan(BigDecimal value) {\n            addCriterion(\"price_old >\", value, \"priceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price_old >=\", value, \"priceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldLessThan(BigDecimal value) {\n            addCriterion(\"price_old <\", value, \"priceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price_old <=\", value, \"priceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldIn(List<BigDecimal> values) {\n            addCriterion(\"price_old in\", values, \"priceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldNotIn(List<BigDecimal> values) {\n            addCriterion(\"price_old not in\", values, \"priceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price_old between\", value1, value2, \"priceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceOldNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price_old not between\", value1, value2, \"priceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewIsNull() {\n            addCriterion(\"price_new is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewIsNotNull() {\n            addCriterion(\"price_new is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewEqualTo(BigDecimal value) {\n            addCriterion(\"price_new =\", value, \"priceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewNotEqualTo(BigDecimal value) {\n            addCriterion(\"price_new <>\", value, \"priceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewGreaterThan(BigDecimal value) {\n            addCriterion(\"price_new >\", value, \"priceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price_new >=\", value, \"priceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewLessThan(BigDecimal value) {\n            addCriterion(\"price_new <\", value, \"priceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price_new <=\", value, \"priceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewIn(List<BigDecimal> values) {\n            addCriterion(\"price_new in\", values, \"priceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewNotIn(List<BigDecimal> values) {\n            addCriterion(\"price_new not in\", values, \"priceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price_new between\", value1, value2, \"priceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNewNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price_new not between\", value1, value2, \"priceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldIsNull() {\n            addCriterion(\"sale_price_old is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldIsNotNull() {\n            addCriterion(\"sale_price_old is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldEqualTo(BigDecimal value) {\n            addCriterion(\"sale_price_old =\", value, \"salePriceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldNotEqualTo(BigDecimal value) {\n            addCriterion(\"sale_price_old <>\", value, \"salePriceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldGreaterThan(BigDecimal value) {\n            addCriterion(\"sale_price_old >\", value, \"salePriceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"sale_price_old >=\", value, \"salePriceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldLessThan(BigDecimal value) {\n            addCriterion(\"sale_price_old <\", value, \"salePriceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"sale_price_old <=\", value, \"salePriceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldIn(List<BigDecimal> values) {\n            addCriterion(\"sale_price_old in\", values, \"salePriceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldNotIn(List<BigDecimal> values) {\n            addCriterion(\"sale_price_old not in\", values, \"salePriceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"sale_price_old between\", value1, value2, \"salePriceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceOldNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"sale_price_old not between\", value1, value2, \"salePriceOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewIsNull() {\n            addCriterion(\"sale_price_new is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewIsNotNull() {\n            addCriterion(\"sale_price_new is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewEqualTo(BigDecimal value) {\n            addCriterion(\"sale_price_new =\", value, \"salePriceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewNotEqualTo(BigDecimal value) {\n            addCriterion(\"sale_price_new <>\", value, \"salePriceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewGreaterThan(BigDecimal value) {\n            addCriterion(\"sale_price_new >\", value, \"salePriceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"sale_price_new >=\", value, \"salePriceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewLessThan(BigDecimal value) {\n            addCriterion(\"sale_price_new <\", value, \"salePriceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"sale_price_new <=\", value, \"salePriceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewIn(List<BigDecimal> values) {\n            addCriterion(\"sale_price_new in\", values, \"salePriceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewNotIn(List<BigDecimal> values) {\n            addCriterion(\"sale_price_new not in\", values, \"salePriceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"sale_price_new between\", value1, value2, \"salePriceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSalePriceNewNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"sale_price_new not between\", value1, value2, \"salePriceNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldIsNull() {\n            addCriterion(\"gift_point_old is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldIsNotNull() {\n            addCriterion(\"gift_point_old is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldEqualTo(Integer value) {\n            addCriterion(\"gift_point_old =\", value, \"giftPointOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldNotEqualTo(Integer value) {\n            addCriterion(\"gift_point_old <>\", value, \"giftPointOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldGreaterThan(Integer value) {\n            addCriterion(\"gift_point_old >\", value, \"giftPointOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_point_old >=\", value, \"giftPointOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldLessThan(Integer value) {\n            addCriterion(\"gift_point_old <\", value, \"giftPointOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldLessThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_point_old <=\", value, \"giftPointOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldIn(List<Integer> values) {\n            addCriterion(\"gift_point_old in\", values, \"giftPointOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldNotIn(List<Integer> values) {\n            addCriterion(\"gift_point_old not in\", values, \"giftPointOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_point_old between\", value1, value2, \"giftPointOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointOldNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_point_old not between\", value1, value2, \"giftPointOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewIsNull() {\n            addCriterion(\"gift_point_new is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewIsNotNull() {\n            addCriterion(\"gift_point_new is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewEqualTo(Integer value) {\n            addCriterion(\"gift_point_new =\", value, \"giftPointNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewNotEqualTo(Integer value) {\n            addCriterion(\"gift_point_new <>\", value, \"giftPointNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewGreaterThan(Integer value) {\n            addCriterion(\"gift_point_new >\", value, \"giftPointNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_point_new >=\", value, \"giftPointNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewLessThan(Integer value) {\n            addCriterion(\"gift_point_new <\", value, \"giftPointNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewLessThanOrEqualTo(Integer value) {\n            addCriterion(\"gift_point_new <=\", value, \"giftPointNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewIn(List<Integer> values) {\n            addCriterion(\"gift_point_new in\", values, \"giftPointNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewNotIn(List<Integer> values) {\n            addCriterion(\"gift_point_new not in\", values, \"giftPointNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_point_new between\", value1, value2, \"giftPointNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGiftPointNewNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"gift_point_new not between\", value1, value2, \"giftPointNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldIsNull() {\n            addCriterion(\"use_point_limit_old is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldIsNotNull() {\n            addCriterion(\"use_point_limit_old is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldEqualTo(Integer value) {\n            addCriterion(\"use_point_limit_old =\", value, \"usePointLimitOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldNotEqualTo(Integer value) {\n            addCriterion(\"use_point_limit_old <>\", value, \"usePointLimitOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldGreaterThan(Integer value) {\n            addCriterion(\"use_point_limit_old >\", value, \"usePointLimitOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"use_point_limit_old >=\", value, \"usePointLimitOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldLessThan(Integer value) {\n            addCriterion(\"use_point_limit_old <\", value, \"usePointLimitOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldLessThanOrEqualTo(Integer value) {\n            addCriterion(\"use_point_limit_old <=\", value, \"usePointLimitOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldIn(List<Integer> values) {\n            addCriterion(\"use_point_limit_old in\", values, \"usePointLimitOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldNotIn(List<Integer> values) {\n            addCriterion(\"use_point_limit_old not in\", values, \"usePointLimitOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_point_limit_old between\", value1, value2, \"usePointLimitOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitOldNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_point_limit_old not between\", value1, value2, \"usePointLimitOld\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewIsNull() {\n            addCriterion(\"use_point_limit_new is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewIsNotNull() {\n            addCriterion(\"use_point_limit_new is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewEqualTo(Integer value) {\n            addCriterion(\"use_point_limit_new =\", value, \"usePointLimitNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewNotEqualTo(Integer value) {\n            addCriterion(\"use_point_limit_new <>\", value, \"usePointLimitNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewGreaterThan(Integer value) {\n            addCriterion(\"use_point_limit_new >\", value, \"usePointLimitNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"use_point_limit_new >=\", value, \"usePointLimitNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewLessThan(Integer value) {\n            addCriterion(\"use_point_limit_new <\", value, \"usePointLimitNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewLessThanOrEqualTo(Integer value) {\n            addCriterion(\"use_point_limit_new <=\", value, \"usePointLimitNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewIn(List<Integer> values) {\n            addCriterion(\"use_point_limit_new in\", values, \"usePointLimitNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewNotIn(List<Integer> values) {\n            addCriterion(\"use_point_limit_new not in\", values, \"usePointLimitNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_point_limit_new between\", value1, value2, \"usePointLimitNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsePointLimitNewNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_point_limit_new not between\", value1, value2, \"usePointLimitNew\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIsNull() {\n            addCriterion(\"operate_man is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIsNotNull() {\n            addCriterion(\"operate_man is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManEqualTo(String value) {\n            addCriterion(\"operate_man =\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotEqualTo(String value) {\n            addCriterion(\"operate_man <>\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManGreaterThan(String value) {\n            addCriterion(\"operate_man >\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManGreaterThanOrEqualTo(String value) {\n            addCriterion(\"operate_man >=\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLessThan(String value) {\n            addCriterion(\"operate_man <\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLessThanOrEqualTo(String value) {\n            addCriterion(\"operate_man <=\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLike(String value) {\n            addCriterion(\"operate_man like\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotLike(String value) {\n            addCriterion(\"operate_man not like\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIn(List<String> values) {\n            addCriterion(\"operate_man in\", values, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotIn(List<String> values) {\n            addCriterion(\"operate_man not in\", values, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManBetween(String value1, String value2) {\n            addCriterion(\"operate_man between\", value1, value2, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotBetween(String value1, String value2) {\n            addCriterion(\"operate_man not between\", value1, value2, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductVertifyRecord.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class PmsProductVertifyRecord implements Serializable {\n    private Long id;\n\n    private Long productId;\n\n    private Date createTime;\n\n    @Schema(title = \"审核人\")\n    private String vertifyMan;\n\n    private Integer status;\n\n    @Schema(title = \"反馈详情\")\n    private String detail;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public String getVertifyMan() {\n        return vertifyMan;\n    }\n\n    public void setVertifyMan(String vertifyMan) {\n        this.vertifyMan = vertifyMan;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public String getDetail() {\n        return detail;\n    }\n\n    public void setDetail(String detail) {\n        this.detail = detail;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", vertifyMan=\").append(vertifyMan);\n        sb.append(\", status=\").append(status);\n        sb.append(\", detail=\").append(detail);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsProductVertifyRecordExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class PmsProductVertifyRecordExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsProductVertifyRecordExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManIsNull() {\n            addCriterion(\"vertify_man is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManIsNotNull() {\n            addCriterion(\"vertify_man is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManEqualTo(String value) {\n            addCriterion(\"vertify_man =\", value, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManNotEqualTo(String value) {\n            addCriterion(\"vertify_man <>\", value, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManGreaterThan(String value) {\n            addCriterion(\"vertify_man >\", value, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManGreaterThanOrEqualTo(String value) {\n            addCriterion(\"vertify_man >=\", value, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManLessThan(String value) {\n            addCriterion(\"vertify_man <\", value, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManLessThanOrEqualTo(String value) {\n            addCriterion(\"vertify_man <=\", value, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManLike(String value) {\n            addCriterion(\"vertify_man like\", value, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManNotLike(String value) {\n            addCriterion(\"vertify_man not like\", value, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManIn(List<String> values) {\n            addCriterion(\"vertify_man in\", values, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManNotIn(List<String> values) {\n            addCriterion(\"vertify_man not in\", values, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManBetween(String value1, String value2) {\n            addCriterion(\"vertify_man between\", value1, value2, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andVertifyManNotBetween(String value1, String value2) {\n            addCriterion(\"vertify_man not between\", value1, value2, \"vertifyMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailIsNull() {\n            addCriterion(\"detail is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailIsNotNull() {\n            addCriterion(\"detail is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailEqualTo(String value) {\n            addCriterion(\"detail =\", value, \"detail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailNotEqualTo(String value) {\n            addCriterion(\"detail <>\", value, \"detail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailGreaterThan(String value) {\n            addCriterion(\"detail >\", value, \"detail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailGreaterThanOrEqualTo(String value) {\n            addCriterion(\"detail >=\", value, \"detail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailLessThan(String value) {\n            addCriterion(\"detail <\", value, \"detail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailLessThanOrEqualTo(String value) {\n            addCriterion(\"detail <=\", value, \"detail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailLike(String value) {\n            addCriterion(\"detail like\", value, \"detail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailNotLike(String value) {\n            addCriterion(\"detail not like\", value, \"detail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailIn(List<String> values) {\n            addCriterion(\"detail in\", values, \"detail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailNotIn(List<String> values) {\n            addCriterion(\"detail not in\", values, \"detail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailBetween(String value1, String value2) {\n            addCriterion(\"detail between\", value1, value2, \"detail\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailNotBetween(String value1, String value2) {\n            addCriterion(\"detail not between\", value1, value2, \"detail\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsSkuStock.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\npublic class PmsSkuStock implements Serializable {\n    private Long id;\n\n    private Long productId;\n\n    @Schema(title = \"sku编码\")\n    private String skuCode;\n\n    private BigDecimal price;\n\n    @Schema(title = \"库存\")\n    private Integer stock;\n\n    @Schema(title = \"预警库存\")\n    private Integer lowStock;\n\n    @Schema(title = \"展示图片\")\n    private String pic;\n\n    @Schema(title = \"销量\")\n    private Integer sale;\n\n    @Schema(title = \"单品促销价格\")\n    private BigDecimal promotionPrice;\n\n    @Schema(title = \"锁定库存\")\n    private Integer lockStock;\n\n    @Schema(title = \"商品销售属性，json格式\")\n    private String spData;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public String getSkuCode() {\n        return skuCode;\n    }\n\n    public void setSkuCode(String skuCode) {\n        this.skuCode = skuCode;\n    }\n\n    public BigDecimal getPrice() {\n        return price;\n    }\n\n    public void setPrice(BigDecimal price) {\n        this.price = price;\n    }\n\n    public Integer getStock() {\n        return stock;\n    }\n\n    public void setStock(Integer stock) {\n        this.stock = stock;\n    }\n\n    public Integer getLowStock() {\n        return lowStock;\n    }\n\n    public void setLowStock(Integer lowStock) {\n        this.lowStock = lowStock;\n    }\n\n    public String getPic() {\n        return pic;\n    }\n\n    public void setPic(String pic) {\n        this.pic = pic;\n    }\n\n    public Integer getSale() {\n        return sale;\n    }\n\n    public void setSale(Integer sale) {\n        this.sale = sale;\n    }\n\n    public BigDecimal getPromotionPrice() {\n        return promotionPrice;\n    }\n\n    public void setPromotionPrice(BigDecimal promotionPrice) {\n        this.promotionPrice = promotionPrice;\n    }\n\n    public Integer getLockStock() {\n        return lockStock;\n    }\n\n    public void setLockStock(Integer lockStock) {\n        this.lockStock = lockStock;\n    }\n\n    public String getSpData() {\n        return spData;\n    }\n\n    public void setSpData(String spData) {\n        this.spData = spData;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", skuCode=\").append(skuCode);\n        sb.append(\", price=\").append(price);\n        sb.append(\", stock=\").append(stock);\n        sb.append(\", lowStock=\").append(lowStock);\n        sb.append(\", pic=\").append(pic);\n        sb.append(\", sale=\").append(sale);\n        sb.append(\", promotionPrice=\").append(promotionPrice);\n        sb.append(\", lockStock=\").append(lockStock);\n        sb.append(\", spData=\").append(spData);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/PmsSkuStockExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class PmsSkuStockExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public PmsSkuStockExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeIsNull() {\n            addCriterion(\"sku_code is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeIsNotNull() {\n            addCriterion(\"sku_code is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeEqualTo(String value) {\n            addCriterion(\"sku_code =\", value, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeNotEqualTo(String value) {\n            addCriterion(\"sku_code <>\", value, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeGreaterThan(String value) {\n            addCriterion(\"sku_code >\", value, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"sku_code >=\", value, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeLessThan(String value) {\n            addCriterion(\"sku_code <\", value, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeLessThanOrEqualTo(String value) {\n            addCriterion(\"sku_code <=\", value, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeLike(String value) {\n            addCriterion(\"sku_code like\", value, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeNotLike(String value) {\n            addCriterion(\"sku_code not like\", value, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeIn(List<String> values) {\n            addCriterion(\"sku_code in\", values, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeNotIn(List<String> values) {\n            addCriterion(\"sku_code not in\", values, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeBetween(String value1, String value2) {\n            addCriterion(\"sku_code between\", value1, value2, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSkuCodeNotBetween(String value1, String value2) {\n            addCriterion(\"sku_code not between\", value1, value2, \"skuCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIsNull() {\n            addCriterion(\"price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIsNotNull() {\n            addCriterion(\"price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceEqualTo(BigDecimal value) {\n            addCriterion(\"price =\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"price <>\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"price >\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price >=\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceLessThan(BigDecimal value) {\n            addCriterion(\"price <\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"price <=\", value, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceIn(List<BigDecimal> values) {\n            addCriterion(\"price in\", values, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"price not in\", values, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price between\", value1, value2, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"price not between\", value1, value2, \"price\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockIsNull() {\n            addCriterion(\"stock is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockIsNotNull() {\n            addCriterion(\"stock is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockEqualTo(Integer value) {\n            addCriterion(\"stock =\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockNotEqualTo(Integer value) {\n            addCriterion(\"stock <>\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockGreaterThan(Integer value) {\n            addCriterion(\"stock >\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"stock >=\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockLessThan(Integer value) {\n            addCriterion(\"stock <\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockLessThanOrEqualTo(Integer value) {\n            addCriterion(\"stock <=\", value, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockIn(List<Integer> values) {\n            addCriterion(\"stock in\", values, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockNotIn(List<Integer> values) {\n            addCriterion(\"stock not in\", values, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockBetween(Integer value1, Integer value2) {\n            addCriterion(\"stock between\", value1, value2, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStockNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"stock not between\", value1, value2, \"stock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockIsNull() {\n            addCriterion(\"low_stock is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockIsNotNull() {\n            addCriterion(\"low_stock is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockEqualTo(Integer value) {\n            addCriterion(\"low_stock =\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockNotEqualTo(Integer value) {\n            addCriterion(\"low_stock <>\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockGreaterThan(Integer value) {\n            addCriterion(\"low_stock >\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"low_stock >=\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockLessThan(Integer value) {\n            addCriterion(\"low_stock <\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockLessThanOrEqualTo(Integer value) {\n            addCriterion(\"low_stock <=\", value, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockIn(List<Integer> values) {\n            addCriterion(\"low_stock in\", values, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockNotIn(List<Integer> values) {\n            addCriterion(\"low_stock not in\", values, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockBetween(Integer value1, Integer value2) {\n            addCriterion(\"low_stock between\", value1, value2, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowStockNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"low_stock not between\", value1, value2, \"lowStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIsNull() {\n            addCriterion(\"pic is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIsNotNull() {\n            addCriterion(\"pic is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicEqualTo(String value) {\n            addCriterion(\"pic =\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotEqualTo(String value) {\n            addCriterion(\"pic <>\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicGreaterThan(String value) {\n            addCriterion(\"pic >\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicGreaterThanOrEqualTo(String value) {\n            addCriterion(\"pic >=\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLessThan(String value) {\n            addCriterion(\"pic <\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLessThanOrEqualTo(String value) {\n            addCriterion(\"pic <=\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLike(String value) {\n            addCriterion(\"pic like\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotLike(String value) {\n            addCriterion(\"pic not like\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIn(List<String> values) {\n            addCriterion(\"pic in\", values, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotIn(List<String> values) {\n            addCriterion(\"pic not in\", values, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicBetween(String value1, String value2) {\n            addCriterion(\"pic between\", value1, value2, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotBetween(String value1, String value2) {\n            addCriterion(\"pic not between\", value1, value2, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleIsNull() {\n            addCriterion(\"sale is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleIsNotNull() {\n            addCriterion(\"sale is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleEqualTo(Integer value) {\n            addCriterion(\"sale =\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleNotEqualTo(Integer value) {\n            addCriterion(\"sale <>\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleGreaterThan(Integer value) {\n            addCriterion(\"sale >\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sale >=\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleLessThan(Integer value) {\n            addCriterion(\"sale <\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sale <=\", value, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleIn(List<Integer> values) {\n            addCriterion(\"sale in\", values, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleNotIn(List<Integer> values) {\n            addCriterion(\"sale not in\", values, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleBetween(Integer value1, Integer value2) {\n            addCriterion(\"sale between\", value1, value2, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSaleNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sale not between\", value1, value2, \"sale\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceIsNull() {\n            addCriterion(\"promotion_price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceIsNotNull() {\n            addCriterion(\"promotion_price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_price =\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_price <>\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"promotion_price >\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_price >=\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceLessThan(BigDecimal value) {\n            addCriterion(\"promotion_price <\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"promotion_price <=\", value, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceIn(List<BigDecimal> values) {\n            addCriterion(\"promotion_price in\", values, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"promotion_price not in\", values, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"promotion_price between\", value1, value2, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPromotionPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"promotion_price not between\", value1, value2, \"promotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockIsNull() {\n            addCriterion(\"lock_stock is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockIsNotNull() {\n            addCriterion(\"lock_stock is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockEqualTo(Integer value) {\n            addCriterion(\"lock_stock =\", value, \"lockStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockNotEqualTo(Integer value) {\n            addCriterion(\"lock_stock <>\", value, \"lockStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockGreaterThan(Integer value) {\n            addCriterion(\"lock_stock >\", value, \"lockStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"lock_stock >=\", value, \"lockStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockLessThan(Integer value) {\n            addCriterion(\"lock_stock <\", value, \"lockStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockLessThanOrEqualTo(Integer value) {\n            addCriterion(\"lock_stock <=\", value, \"lockStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockIn(List<Integer> values) {\n            addCriterion(\"lock_stock in\", values, \"lockStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockNotIn(List<Integer> values) {\n            addCriterion(\"lock_stock not in\", values, \"lockStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockBetween(Integer value1, Integer value2) {\n            addCriterion(\"lock_stock between\", value1, value2, \"lockStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLockStockNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"lock_stock not between\", value1, value2, \"lockStock\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataIsNull() {\n            addCriterion(\"sp_data is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataIsNotNull() {\n            addCriterion(\"sp_data is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataEqualTo(String value) {\n            addCriterion(\"sp_data =\", value, \"spData\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataNotEqualTo(String value) {\n            addCriterion(\"sp_data <>\", value, \"spData\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataGreaterThan(String value) {\n            addCriterion(\"sp_data >\", value, \"spData\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataGreaterThanOrEqualTo(String value) {\n            addCriterion(\"sp_data >=\", value, \"spData\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataLessThan(String value) {\n            addCriterion(\"sp_data <\", value, \"spData\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataLessThanOrEqualTo(String value) {\n            addCriterion(\"sp_data <=\", value, \"spData\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataLike(String value) {\n            addCriterion(\"sp_data like\", value, \"spData\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataNotLike(String value) {\n            addCriterion(\"sp_data not like\", value, \"spData\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataIn(List<String> values) {\n            addCriterion(\"sp_data in\", values, \"spData\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataNotIn(List<String> values) {\n            addCriterion(\"sp_data not in\", values, \"spData\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataBetween(String value1, String value2) {\n            addCriterion(\"sp_data between\", value1, value2, \"spData\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSpDataNotBetween(String value1, String value2) {\n            addCriterion(\"sp_data not between\", value1, value2, \"spData\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsCoupon.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\nimport java.util.Date;\n\npublic class SmsCoupon implements Serializable {\n    private Long id;\n\n    @Schema(title = \"优惠券类型；0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券\")\n    private Integer type;\n\n    private String name;\n\n    @Schema(title = \"使用平台：0->全部；1->移动；2->PC\")\n    private Integer platform;\n\n    @Schema(title = \"数量\")\n    private Integer count;\n\n    @Schema(title = \"金额\")\n    private BigDecimal amount;\n\n    @Schema(title = \"每人限领张数\")\n    private Integer perLimit;\n\n    @Schema(title = \"使用门槛；0表示无门槛\")\n    private BigDecimal minPoint;\n\n    private Date startTime;\n\n    private Date endTime;\n\n    @Schema(title = \"使用类型：0->全场通用；1->指定分类；2->指定商品\")\n    private Integer useType;\n\n    @Schema(title = \"备注\")\n    private String note;\n\n    @Schema(title = \"发行数量\")\n    private Integer publishCount;\n\n    @Schema(title = \"已使用数量\")\n    private Integer useCount;\n\n    @Schema(title = \"领取数量\")\n    private Integer receiveCount;\n\n    @Schema(title = \"可以领取的日期\")\n    private Date enableTime;\n\n    @Schema(title = \"优惠码\")\n    private String code;\n\n    @Schema(title = \"可领取的会员类型：0->无限时\")\n    private Integer memberLevel;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Integer getType() {\n        return type;\n    }\n\n    public void setType(Integer type) {\n        this.type = type;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getPlatform() {\n        return platform;\n    }\n\n    public void setPlatform(Integer platform) {\n        this.platform = platform;\n    }\n\n    public Integer getCount() {\n        return count;\n    }\n\n    public void setCount(Integer count) {\n        this.count = count;\n    }\n\n    public BigDecimal getAmount() {\n        return amount;\n    }\n\n    public void setAmount(BigDecimal amount) {\n        this.amount = amount;\n    }\n\n    public Integer getPerLimit() {\n        return perLimit;\n    }\n\n    public void setPerLimit(Integer perLimit) {\n        this.perLimit = perLimit;\n    }\n\n    public BigDecimal getMinPoint() {\n        return minPoint;\n    }\n\n    public void setMinPoint(BigDecimal minPoint) {\n        this.minPoint = minPoint;\n    }\n\n    public Date getStartTime() {\n        return startTime;\n    }\n\n    public void setStartTime(Date startTime) {\n        this.startTime = startTime;\n    }\n\n    public Date getEndTime() {\n        return endTime;\n    }\n\n    public void setEndTime(Date endTime) {\n        this.endTime = endTime;\n    }\n\n    public Integer getUseType() {\n        return useType;\n    }\n\n    public void setUseType(Integer useType) {\n        this.useType = useType;\n    }\n\n    public String getNote() {\n        return note;\n    }\n\n    public void setNote(String note) {\n        this.note = note;\n    }\n\n    public Integer getPublishCount() {\n        return publishCount;\n    }\n\n    public void setPublishCount(Integer publishCount) {\n        this.publishCount = publishCount;\n    }\n\n    public Integer getUseCount() {\n        return useCount;\n    }\n\n    public void setUseCount(Integer useCount) {\n        this.useCount = useCount;\n    }\n\n    public Integer getReceiveCount() {\n        return receiveCount;\n    }\n\n    public void setReceiveCount(Integer receiveCount) {\n        this.receiveCount = receiveCount;\n    }\n\n    public Date getEnableTime() {\n        return enableTime;\n    }\n\n    public void setEnableTime(Date enableTime) {\n        this.enableTime = enableTime;\n    }\n\n    public String getCode() {\n        return code;\n    }\n\n    public void setCode(String code) {\n        this.code = code;\n    }\n\n    public Integer getMemberLevel() {\n        return memberLevel;\n    }\n\n    public void setMemberLevel(Integer memberLevel) {\n        this.memberLevel = memberLevel;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", type=\").append(type);\n        sb.append(\", name=\").append(name);\n        sb.append(\", platform=\").append(platform);\n        sb.append(\", count=\").append(count);\n        sb.append(\", amount=\").append(amount);\n        sb.append(\", perLimit=\").append(perLimit);\n        sb.append(\", minPoint=\").append(minPoint);\n        sb.append(\", startTime=\").append(startTime);\n        sb.append(\", endTime=\").append(endTime);\n        sb.append(\", useType=\").append(useType);\n        sb.append(\", note=\").append(note);\n        sb.append(\", publishCount=\").append(publishCount);\n        sb.append(\", useCount=\").append(useCount);\n        sb.append(\", receiveCount=\").append(receiveCount);\n        sb.append(\", enableTime=\").append(enableTime);\n        sb.append(\", code=\").append(code);\n        sb.append(\", memberLevel=\").append(memberLevel);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class SmsCouponExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsCouponExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNull() {\n            addCriterion(\"type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNotNull() {\n            addCriterion(\"type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeEqualTo(Integer value) {\n            addCriterion(\"type =\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotEqualTo(Integer value) {\n            addCriterion(\"type <>\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThan(Integer value) {\n            addCriterion(\"type >\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"type >=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThan(Integer value) {\n            addCriterion(\"type <\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"type <=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIn(List<Integer> values) {\n            addCriterion(\"type in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotIn(List<Integer> values) {\n            addCriterion(\"type not in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"type between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"type not between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformIsNull() {\n            addCriterion(\"platform is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformIsNotNull() {\n            addCriterion(\"platform is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformEqualTo(Integer value) {\n            addCriterion(\"platform =\", value, \"platform\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformNotEqualTo(Integer value) {\n            addCriterion(\"platform <>\", value, \"platform\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformGreaterThan(Integer value) {\n            addCriterion(\"platform >\", value, \"platform\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"platform >=\", value, \"platform\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformLessThan(Integer value) {\n            addCriterion(\"platform <\", value, \"platform\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformLessThanOrEqualTo(Integer value) {\n            addCriterion(\"platform <=\", value, \"platform\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformIn(List<Integer> values) {\n            addCriterion(\"platform in\", values, \"platform\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformNotIn(List<Integer> values) {\n            addCriterion(\"platform not in\", values, \"platform\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformBetween(Integer value1, Integer value2) {\n            addCriterion(\"platform between\", value1, value2, \"platform\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPlatformNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"platform not between\", value1, value2, \"platform\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountIsNull() {\n            addCriterion(\"count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountIsNotNull() {\n            addCriterion(\"count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountEqualTo(Integer value) {\n            addCriterion(\"count =\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountNotEqualTo(Integer value) {\n            addCriterion(\"count <>\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountGreaterThan(Integer value) {\n            addCriterion(\"count >\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"count >=\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountLessThan(Integer value) {\n            addCriterion(\"count <\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"count <=\", value, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountIn(List<Integer> values) {\n            addCriterion(\"count in\", values, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountNotIn(List<Integer> values) {\n            addCriterion(\"count not in\", values, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"count between\", value1, value2, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"count not between\", value1, value2, \"count\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountIsNull() {\n            addCriterion(\"amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountIsNotNull() {\n            addCriterion(\"amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountEqualTo(BigDecimal value) {\n            addCriterion(\"amount =\", value, \"amount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"amount <>\", value, \"amount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"amount >\", value, \"amount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"amount >=\", value, \"amount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountLessThan(BigDecimal value) {\n            addCriterion(\"amount <\", value, \"amount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"amount <=\", value, \"amount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountIn(List<BigDecimal> values) {\n            addCriterion(\"amount in\", values, \"amount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"amount not in\", values, \"amount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"amount between\", value1, value2, \"amount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"amount not between\", value1, value2, \"amount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitIsNull() {\n            addCriterion(\"per_limit is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitIsNotNull() {\n            addCriterion(\"per_limit is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitEqualTo(Integer value) {\n            addCriterion(\"per_limit =\", value, \"perLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitNotEqualTo(Integer value) {\n            addCriterion(\"per_limit <>\", value, \"perLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitGreaterThan(Integer value) {\n            addCriterion(\"per_limit >\", value, \"perLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"per_limit >=\", value, \"perLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitLessThan(Integer value) {\n            addCriterion(\"per_limit <\", value, \"perLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitLessThanOrEqualTo(Integer value) {\n            addCriterion(\"per_limit <=\", value, \"perLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitIn(List<Integer> values) {\n            addCriterion(\"per_limit in\", values, \"perLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitNotIn(List<Integer> values) {\n            addCriterion(\"per_limit not in\", values, \"perLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitBetween(Integer value1, Integer value2) {\n            addCriterion(\"per_limit between\", value1, value2, \"perLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPerLimitNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"per_limit not between\", value1, value2, \"perLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointIsNull() {\n            addCriterion(\"min_point is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointIsNotNull() {\n            addCriterion(\"min_point is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointEqualTo(BigDecimal value) {\n            addCriterion(\"min_point =\", value, \"minPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointNotEqualTo(BigDecimal value) {\n            addCriterion(\"min_point <>\", value, \"minPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointGreaterThan(BigDecimal value) {\n            addCriterion(\"min_point >\", value, \"minPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"min_point >=\", value, \"minPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointLessThan(BigDecimal value) {\n            addCriterion(\"min_point <\", value, \"minPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"min_point <=\", value, \"minPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointIn(List<BigDecimal> values) {\n            addCriterion(\"min_point in\", values, \"minPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointNotIn(List<BigDecimal> values) {\n            addCriterion(\"min_point not in\", values, \"minPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"min_point between\", value1, value2, \"minPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMinPointNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"min_point not between\", value1, value2, \"minPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIsNull() {\n            addCriterion(\"start_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIsNotNull() {\n            addCriterion(\"start_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeEqualTo(Date value) {\n            addCriterion(\"start_time =\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotEqualTo(Date value) {\n            addCriterion(\"start_time <>\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeGreaterThan(Date value) {\n            addCriterion(\"start_time >\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"start_time >=\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeLessThan(Date value) {\n            addCriterion(\"start_time <\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"start_time <=\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIn(List<Date> values) {\n            addCriterion(\"start_time in\", values, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotIn(List<Date> values) {\n            addCriterion(\"start_time not in\", values, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeBetween(Date value1, Date value2) {\n            addCriterion(\"start_time between\", value1, value2, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"start_time not between\", value1, value2, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIsNull() {\n            addCriterion(\"end_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIsNotNull() {\n            addCriterion(\"end_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeEqualTo(Date value) {\n            addCriterion(\"end_time =\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotEqualTo(Date value) {\n            addCriterion(\"end_time <>\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeGreaterThan(Date value) {\n            addCriterion(\"end_time >\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"end_time >=\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeLessThan(Date value) {\n            addCriterion(\"end_time <\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"end_time <=\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIn(List<Date> values) {\n            addCriterion(\"end_time in\", values, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotIn(List<Date> values) {\n            addCriterion(\"end_time not in\", values, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeBetween(Date value1, Date value2) {\n            addCriterion(\"end_time between\", value1, value2, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"end_time not between\", value1, value2, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeIsNull() {\n            addCriterion(\"use_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeIsNotNull() {\n            addCriterion(\"use_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeEqualTo(Integer value) {\n            addCriterion(\"use_type =\", value, \"useType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeNotEqualTo(Integer value) {\n            addCriterion(\"use_type <>\", value, \"useType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeGreaterThan(Integer value) {\n            addCriterion(\"use_type >\", value, \"useType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"use_type >=\", value, \"useType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeLessThan(Integer value) {\n            addCriterion(\"use_type <\", value, \"useType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"use_type <=\", value, \"useType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeIn(List<Integer> values) {\n            addCriterion(\"use_type in\", values, \"useType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeNotIn(List<Integer> values) {\n            addCriterion(\"use_type not in\", values, \"useType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_type between\", value1, value2, \"useType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_type not between\", value1, value2, \"useType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNull() {\n            addCriterion(\"note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNotNull() {\n            addCriterion(\"note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteEqualTo(String value) {\n            addCriterion(\"note =\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotEqualTo(String value) {\n            addCriterion(\"note <>\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThan(String value) {\n            addCriterion(\"note >\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"note >=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThan(String value) {\n            addCriterion(\"note <\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"note <=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLike(String value) {\n            addCriterion(\"note like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotLike(String value) {\n            addCriterion(\"note not like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIn(List<String> values) {\n            addCriterion(\"note in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotIn(List<String> values) {\n            addCriterion(\"note not in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteBetween(String value1, String value2) {\n            addCriterion(\"note between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotBetween(String value1, String value2) {\n            addCriterion(\"note not between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountIsNull() {\n            addCriterion(\"publish_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountIsNotNull() {\n            addCriterion(\"publish_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountEqualTo(Integer value) {\n            addCriterion(\"publish_count =\", value, \"publishCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountNotEqualTo(Integer value) {\n            addCriterion(\"publish_count <>\", value, \"publishCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountGreaterThan(Integer value) {\n            addCriterion(\"publish_count >\", value, \"publishCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"publish_count >=\", value, \"publishCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountLessThan(Integer value) {\n            addCriterion(\"publish_count <\", value, \"publishCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"publish_count <=\", value, \"publishCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountIn(List<Integer> values) {\n            addCriterion(\"publish_count in\", values, \"publishCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountNotIn(List<Integer> values) {\n            addCriterion(\"publish_count not in\", values, \"publishCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"publish_count between\", value1, value2, \"publishCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPublishCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"publish_count not between\", value1, value2, \"publishCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountIsNull() {\n            addCriterion(\"use_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountIsNotNull() {\n            addCriterion(\"use_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountEqualTo(Integer value) {\n            addCriterion(\"use_count =\", value, \"useCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountNotEqualTo(Integer value) {\n            addCriterion(\"use_count <>\", value, \"useCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountGreaterThan(Integer value) {\n            addCriterion(\"use_count >\", value, \"useCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"use_count >=\", value, \"useCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountLessThan(Integer value) {\n            addCriterion(\"use_count <\", value, \"useCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"use_count <=\", value, \"useCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountIn(List<Integer> values) {\n            addCriterion(\"use_count in\", values, \"useCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountNotIn(List<Integer> values) {\n            addCriterion(\"use_count not in\", values, \"useCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_count between\", value1, value2, \"useCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_count not between\", value1, value2, \"useCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountIsNull() {\n            addCriterion(\"receive_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountIsNotNull() {\n            addCriterion(\"receive_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountEqualTo(Integer value) {\n            addCriterion(\"receive_count =\", value, \"receiveCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountNotEqualTo(Integer value) {\n            addCriterion(\"receive_count <>\", value, \"receiveCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountGreaterThan(Integer value) {\n            addCriterion(\"receive_count >\", value, \"receiveCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"receive_count >=\", value, \"receiveCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountLessThan(Integer value) {\n            addCriterion(\"receive_count <\", value, \"receiveCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"receive_count <=\", value, \"receiveCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountIn(List<Integer> values) {\n            addCriterion(\"receive_count in\", values, \"receiveCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountNotIn(List<Integer> values) {\n            addCriterion(\"receive_count not in\", values, \"receiveCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"receive_count between\", value1, value2, \"receiveCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReceiveCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"receive_count not between\", value1, value2, \"receiveCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeIsNull() {\n            addCriterion(\"enable_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeIsNotNull() {\n            addCriterion(\"enable_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeEqualTo(Date value) {\n            addCriterion(\"enable_time =\", value, \"enableTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeNotEqualTo(Date value) {\n            addCriterion(\"enable_time <>\", value, \"enableTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeGreaterThan(Date value) {\n            addCriterion(\"enable_time >\", value, \"enableTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"enable_time >=\", value, \"enableTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeLessThan(Date value) {\n            addCriterion(\"enable_time <\", value, \"enableTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"enable_time <=\", value, \"enableTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeIn(List<Date> values) {\n            addCriterion(\"enable_time in\", values, \"enableTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeNotIn(List<Date> values) {\n            addCriterion(\"enable_time not in\", values, \"enableTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeBetween(Date value1, Date value2) {\n            addCriterion(\"enable_time between\", value1, value2, \"enableTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEnableTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"enable_time not between\", value1, value2, \"enableTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeIsNull() {\n            addCriterion(\"code is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeIsNotNull() {\n            addCriterion(\"code is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeEqualTo(String value) {\n            addCriterion(\"code =\", value, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeNotEqualTo(String value) {\n            addCriterion(\"code <>\", value, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeGreaterThan(String value) {\n            addCriterion(\"code >\", value, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"code >=\", value, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeLessThan(String value) {\n            addCriterion(\"code <\", value, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeLessThanOrEqualTo(String value) {\n            addCriterion(\"code <=\", value, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeLike(String value) {\n            addCriterion(\"code like\", value, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeNotLike(String value) {\n            addCriterion(\"code not like\", value, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeIn(List<String> values) {\n            addCriterion(\"code in\", values, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeNotIn(List<String> values) {\n            addCriterion(\"code not in\", values, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeBetween(String value1, String value2) {\n            addCriterion(\"code between\", value1, value2, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCodeNotBetween(String value1, String value2) {\n            addCriterion(\"code not between\", value1, value2, \"code\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIsNull() {\n            addCriterion(\"member_level is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIsNotNull() {\n            addCriterion(\"member_level is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelEqualTo(Integer value) {\n            addCriterion(\"member_level =\", value, \"memberLevel\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNotEqualTo(Integer value) {\n            addCriterion(\"member_level <>\", value, \"memberLevel\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelGreaterThan(Integer value) {\n            addCriterion(\"member_level >\", value, \"memberLevel\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"member_level >=\", value, \"memberLevel\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelLessThan(Integer value) {\n            addCriterion(\"member_level <\", value, \"memberLevel\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelLessThanOrEqualTo(Integer value) {\n            addCriterion(\"member_level <=\", value, \"memberLevel\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIn(List<Integer> values) {\n            addCriterion(\"member_level in\", values, \"memberLevel\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNotIn(List<Integer> values) {\n            addCriterion(\"member_level not in\", values, \"memberLevel\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelBetween(Integer value1, Integer value2) {\n            addCriterion(\"member_level between\", value1, value2, \"memberLevel\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"member_level not between\", value1, value2, \"memberLevel\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponHistory.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class SmsCouponHistory implements Serializable {\n    private Long id;\n\n    private Long couponId;\n\n    private Long memberId;\n\n    private String couponCode;\n\n    @Schema(title = \"领取人昵称\")\n    private String memberNickname;\n\n    @Schema(title = \"获取类型：0->后台赠送；1->主动获取\")\n    private Integer getType;\n\n    private Date createTime;\n\n    @Schema(title = \"使用状态：0->未使用；1->已使用；2->已过期\")\n    private Integer useStatus;\n\n    @Schema(title = \"使用时间\")\n    private Date useTime;\n\n    @Schema(title = \"订单编号\")\n    private Long orderId;\n\n    @Schema(title = \"订单号码\")\n    private String orderSn;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getCouponId() {\n        return couponId;\n    }\n\n    public void setCouponId(Long couponId) {\n        this.couponId = couponId;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public String getCouponCode() {\n        return couponCode;\n    }\n\n    public void setCouponCode(String couponCode) {\n        this.couponCode = couponCode;\n    }\n\n    public String getMemberNickname() {\n        return memberNickname;\n    }\n\n    public void setMemberNickname(String memberNickname) {\n        this.memberNickname = memberNickname;\n    }\n\n    public Integer getGetType() {\n        return getType;\n    }\n\n    public void setGetType(Integer getType) {\n        this.getType = getType;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getUseStatus() {\n        return useStatus;\n    }\n\n    public void setUseStatus(Integer useStatus) {\n        this.useStatus = useStatus;\n    }\n\n    public Date getUseTime() {\n        return useTime;\n    }\n\n    public void setUseTime(Date useTime) {\n        this.useTime = useTime;\n    }\n\n    public Long getOrderId() {\n        return orderId;\n    }\n\n    public void setOrderId(Long orderId) {\n        this.orderId = orderId;\n    }\n\n    public String getOrderSn() {\n        return orderSn;\n    }\n\n    public void setOrderSn(String orderSn) {\n        this.orderSn = orderSn;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", couponId=\").append(couponId);\n        sb.append(\", memberId=\").append(memberId);\n        sb.append(\", couponCode=\").append(couponCode);\n        sb.append(\", memberNickname=\").append(memberNickname);\n        sb.append(\", getType=\").append(getType);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", useStatus=\").append(useStatus);\n        sb.append(\", useTime=\").append(useTime);\n        sb.append(\", orderId=\").append(orderId);\n        sb.append(\", orderSn=\").append(orderSn);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponHistoryExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class SmsCouponHistoryExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsCouponHistoryExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIsNull() {\n            addCriterion(\"coupon_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIsNotNull() {\n            addCriterion(\"coupon_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdEqualTo(Long value) {\n            addCriterion(\"coupon_id =\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotEqualTo(Long value) {\n            addCriterion(\"coupon_id <>\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdGreaterThan(Long value) {\n            addCriterion(\"coupon_id >\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"coupon_id >=\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdLessThan(Long value) {\n            addCriterion(\"coupon_id <\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"coupon_id <=\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIn(List<Long> values) {\n            addCriterion(\"coupon_id in\", values, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotIn(List<Long> values) {\n            addCriterion(\"coupon_id not in\", values, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdBetween(Long value1, Long value2) {\n            addCriterion(\"coupon_id between\", value1, value2, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"coupon_id not between\", value1, value2, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNull() {\n            addCriterion(\"member_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNotNull() {\n            addCriterion(\"member_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdEqualTo(Long value) {\n            addCriterion(\"member_id =\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotEqualTo(Long value) {\n            addCriterion(\"member_id <>\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThan(Long value) {\n            addCriterion(\"member_id >\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_id >=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThan(Long value) {\n            addCriterion(\"member_id <\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_id <=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIn(List<Long> values) {\n            addCriterion(\"member_id in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotIn(List<Long> values) {\n            addCriterion(\"member_id not in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_id between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_id not between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeIsNull() {\n            addCriterion(\"coupon_code is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeIsNotNull() {\n            addCriterion(\"coupon_code is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeEqualTo(String value) {\n            addCriterion(\"coupon_code =\", value, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeNotEqualTo(String value) {\n            addCriterion(\"coupon_code <>\", value, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeGreaterThan(String value) {\n            addCriterion(\"coupon_code >\", value, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"coupon_code >=\", value, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeLessThan(String value) {\n            addCriterion(\"coupon_code <\", value, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeLessThanOrEqualTo(String value) {\n            addCriterion(\"coupon_code <=\", value, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeLike(String value) {\n            addCriterion(\"coupon_code like\", value, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeNotLike(String value) {\n            addCriterion(\"coupon_code not like\", value, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeIn(List<String> values) {\n            addCriterion(\"coupon_code in\", values, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeNotIn(List<String> values) {\n            addCriterion(\"coupon_code not in\", values, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeBetween(String value1, String value2) {\n            addCriterion(\"coupon_code between\", value1, value2, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCodeNotBetween(String value1, String value2) {\n            addCriterion(\"coupon_code not between\", value1, value2, \"couponCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameIsNull() {\n            addCriterion(\"member_nickname is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameIsNotNull() {\n            addCriterion(\"member_nickname is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameEqualTo(String value) {\n            addCriterion(\"member_nickname =\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameNotEqualTo(String value) {\n            addCriterion(\"member_nickname <>\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameGreaterThan(String value) {\n            addCriterion(\"member_nickname >\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_nickname >=\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameLessThan(String value) {\n            addCriterion(\"member_nickname <\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameLessThanOrEqualTo(String value) {\n            addCriterion(\"member_nickname <=\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameLike(String value) {\n            addCriterion(\"member_nickname like\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameNotLike(String value) {\n            addCriterion(\"member_nickname not like\", value, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameIn(List<String> values) {\n            addCriterion(\"member_nickname in\", values, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameNotIn(List<String> values) {\n            addCriterion(\"member_nickname not in\", values, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameBetween(String value1, String value2) {\n            addCriterion(\"member_nickname between\", value1, value2, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberNicknameNotBetween(String value1, String value2) {\n            addCriterion(\"member_nickname not between\", value1, value2, \"memberNickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeIsNull() {\n            addCriterion(\"get_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeIsNotNull() {\n            addCriterion(\"get_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeEqualTo(Integer value) {\n            addCriterion(\"get_type =\", value, \"getType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeNotEqualTo(Integer value) {\n            addCriterion(\"get_type <>\", value, \"getType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeGreaterThan(Integer value) {\n            addCriterion(\"get_type >\", value, \"getType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"get_type >=\", value, \"getType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeLessThan(Integer value) {\n            addCriterion(\"get_type <\", value, \"getType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"get_type <=\", value, \"getType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeIn(List<Integer> values) {\n            addCriterion(\"get_type in\", values, \"getType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeNotIn(List<Integer> values) {\n            addCriterion(\"get_type not in\", values, \"getType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"get_type between\", value1, value2, \"getType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGetTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"get_type not between\", value1, value2, \"getType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusIsNull() {\n            addCriterion(\"use_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusIsNotNull() {\n            addCriterion(\"use_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusEqualTo(Integer value) {\n            addCriterion(\"use_status =\", value, \"useStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusNotEqualTo(Integer value) {\n            addCriterion(\"use_status <>\", value, \"useStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusGreaterThan(Integer value) {\n            addCriterion(\"use_status >\", value, \"useStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"use_status >=\", value, \"useStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusLessThan(Integer value) {\n            addCriterion(\"use_status <\", value, \"useStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"use_status <=\", value, \"useStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusIn(List<Integer> values) {\n            addCriterion(\"use_status in\", values, \"useStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusNotIn(List<Integer> values) {\n            addCriterion(\"use_status not in\", values, \"useStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_status between\", value1, value2, \"useStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_status not between\", value1, value2, \"useStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeIsNull() {\n            addCriterion(\"use_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeIsNotNull() {\n            addCriterion(\"use_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeEqualTo(Date value) {\n            addCriterion(\"use_time =\", value, \"useTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeNotEqualTo(Date value) {\n            addCriterion(\"use_time <>\", value, \"useTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeGreaterThan(Date value) {\n            addCriterion(\"use_time >\", value, \"useTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"use_time >=\", value, \"useTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeLessThan(Date value) {\n            addCriterion(\"use_time <\", value, \"useTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"use_time <=\", value, \"useTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeIn(List<Date> values) {\n            addCriterion(\"use_time in\", values, \"useTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeNotIn(List<Date> values) {\n            addCriterion(\"use_time not in\", values, \"useTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeBetween(Date value1, Date value2) {\n            addCriterion(\"use_time between\", value1, value2, \"useTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"use_time not between\", value1, value2, \"useTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIsNull() {\n            addCriterion(\"order_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIsNotNull() {\n            addCriterion(\"order_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdEqualTo(Long value) {\n            addCriterion(\"order_id =\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotEqualTo(Long value) {\n            addCriterion(\"order_id <>\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdGreaterThan(Long value) {\n            addCriterion(\"order_id >\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"order_id >=\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdLessThan(Long value) {\n            addCriterion(\"order_id <\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"order_id <=\", value, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdIn(List<Long> values) {\n            addCriterion(\"order_id in\", values, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotIn(List<Long> values) {\n            addCriterion(\"order_id not in\", values, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdBetween(Long value1, Long value2) {\n            addCriterion(\"order_id between\", value1, value2, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"order_id not between\", value1, value2, \"orderId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIsNull() {\n            addCriterion(\"order_sn is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIsNotNull() {\n            addCriterion(\"order_sn is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnEqualTo(String value) {\n            addCriterion(\"order_sn =\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotEqualTo(String value) {\n            addCriterion(\"order_sn <>\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnGreaterThan(String value) {\n            addCriterion(\"order_sn >\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnGreaterThanOrEqualTo(String value) {\n            addCriterion(\"order_sn >=\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLessThan(String value) {\n            addCriterion(\"order_sn <\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLessThanOrEqualTo(String value) {\n            addCriterion(\"order_sn <=\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnLike(String value) {\n            addCriterion(\"order_sn like\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotLike(String value) {\n            addCriterion(\"order_sn not like\", value, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnIn(List<String> values) {\n            addCriterion(\"order_sn in\", values, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotIn(List<String> values) {\n            addCriterion(\"order_sn not in\", values, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnBetween(String value1, String value2) {\n            addCriterion(\"order_sn between\", value1, value2, \"orderSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderSnNotBetween(String value1, String value2) {\n            addCriterion(\"order_sn not between\", value1, value2, \"orderSn\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponProductCategoryRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class SmsCouponProductCategoryRelation implements Serializable {\n    private Long id;\n\n    private Long couponId;\n\n    private Long productCategoryId;\n\n    @Schema(title = \"产品分类名称\")\n    private String productCategoryName;\n\n    @Schema(title = \"父分类名称\")\n    private String parentCategoryName;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getCouponId() {\n        return couponId;\n    }\n\n    public void setCouponId(Long couponId) {\n        this.couponId = couponId;\n    }\n\n    public Long getProductCategoryId() {\n        return productCategoryId;\n    }\n\n    public void setProductCategoryId(Long productCategoryId) {\n        this.productCategoryId = productCategoryId;\n    }\n\n    public String getProductCategoryName() {\n        return productCategoryName;\n    }\n\n    public void setProductCategoryName(String productCategoryName) {\n        this.productCategoryName = productCategoryName;\n    }\n\n    public String getParentCategoryName() {\n        return parentCategoryName;\n    }\n\n    public void setParentCategoryName(String parentCategoryName) {\n        this.parentCategoryName = parentCategoryName;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", couponId=\").append(couponId);\n        sb.append(\", productCategoryId=\").append(productCategoryId);\n        sb.append(\", productCategoryName=\").append(productCategoryName);\n        sb.append(\", parentCategoryName=\").append(parentCategoryName);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponProductCategoryRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class SmsCouponProductCategoryRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsCouponProductCategoryRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIsNull() {\n            addCriterion(\"coupon_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIsNotNull() {\n            addCriterion(\"coupon_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdEqualTo(Long value) {\n            addCriterion(\"coupon_id =\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotEqualTo(Long value) {\n            addCriterion(\"coupon_id <>\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdGreaterThan(Long value) {\n            addCriterion(\"coupon_id >\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"coupon_id >=\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdLessThan(Long value) {\n            addCriterion(\"coupon_id <\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"coupon_id <=\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIn(List<Long> values) {\n            addCriterion(\"coupon_id in\", values, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotIn(List<Long> values) {\n            addCriterion(\"coupon_id not in\", values, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdBetween(Long value1, Long value2) {\n            addCriterion(\"coupon_id between\", value1, value2, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"coupon_id not between\", value1, value2, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNull() {\n            addCriterion(\"product_category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNotNull() {\n            addCriterion(\"product_category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdEqualTo(Long value) {\n            addCriterion(\"product_category_id =\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"product_category_id <>\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThan(Long value) {\n            addCriterion(\"product_category_id >\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id >=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThan(Long value) {\n            addCriterion(\"product_category_id <\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id <=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIn(List<Long> values) {\n            addCriterion(\"product_category_id in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"product_category_id not in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id not between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameIsNull() {\n            addCriterion(\"product_category_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameIsNotNull() {\n            addCriterion(\"product_category_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameEqualTo(String value) {\n            addCriterion(\"product_category_name =\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameNotEqualTo(String value) {\n            addCriterion(\"product_category_name <>\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameGreaterThan(String value) {\n            addCriterion(\"product_category_name >\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_category_name >=\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameLessThan(String value) {\n            addCriterion(\"product_category_name <\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameLessThanOrEqualTo(String value) {\n            addCriterion(\"product_category_name <=\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameLike(String value) {\n            addCriterion(\"product_category_name like\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameNotLike(String value) {\n            addCriterion(\"product_category_name not like\", value, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameIn(List<String> values) {\n            addCriterion(\"product_category_name in\", values, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameNotIn(List<String> values) {\n            addCriterion(\"product_category_name not in\", values, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameBetween(String value1, String value2) {\n            addCriterion(\"product_category_name between\", value1, value2, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryNameNotBetween(String value1, String value2) {\n            addCriterion(\"product_category_name not between\", value1, value2, \"productCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameIsNull() {\n            addCriterion(\"parent_category_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameIsNotNull() {\n            addCriterion(\"parent_category_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameEqualTo(String value) {\n            addCriterion(\"parent_category_name =\", value, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameNotEqualTo(String value) {\n            addCriterion(\"parent_category_name <>\", value, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameGreaterThan(String value) {\n            addCriterion(\"parent_category_name >\", value, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"parent_category_name >=\", value, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameLessThan(String value) {\n            addCriterion(\"parent_category_name <\", value, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameLessThanOrEqualTo(String value) {\n            addCriterion(\"parent_category_name <=\", value, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameLike(String value) {\n            addCriterion(\"parent_category_name like\", value, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameNotLike(String value) {\n            addCriterion(\"parent_category_name not like\", value, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameIn(List<String> values) {\n            addCriterion(\"parent_category_name in\", values, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameNotIn(List<String> values) {\n            addCriterion(\"parent_category_name not in\", values, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameBetween(String value1, String value2) {\n            addCriterion(\"parent_category_name between\", value1, value2, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentCategoryNameNotBetween(String value1, String value2) {\n            addCriterion(\"parent_category_name not between\", value1, value2, \"parentCategoryName\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponProductRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class SmsCouponProductRelation implements Serializable {\n    private Long id;\n\n    private Long couponId;\n\n    private Long productId;\n\n    @Schema(title = \"商品名称\")\n    private String productName;\n\n    @Schema(title = \"商品编码\")\n    private String productSn;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getCouponId() {\n        return couponId;\n    }\n\n    public void setCouponId(Long couponId) {\n        this.couponId = couponId;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public String getProductName() {\n        return productName;\n    }\n\n    public void setProductName(String productName) {\n        this.productName = productName;\n    }\n\n    public String getProductSn() {\n        return productSn;\n    }\n\n    public void setProductSn(String productSn) {\n        this.productSn = productSn;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", couponId=\").append(couponId);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", productName=\").append(productName);\n        sb.append(\", productSn=\").append(productSn);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsCouponProductRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class SmsCouponProductRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsCouponProductRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIsNull() {\n            addCriterion(\"coupon_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIsNotNull() {\n            addCriterion(\"coupon_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdEqualTo(Long value) {\n            addCriterion(\"coupon_id =\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotEqualTo(Long value) {\n            addCriterion(\"coupon_id <>\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdGreaterThan(Long value) {\n            addCriterion(\"coupon_id >\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"coupon_id >=\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdLessThan(Long value) {\n            addCriterion(\"coupon_id <\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"coupon_id <=\", value, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdIn(List<Long> values) {\n            addCriterion(\"coupon_id in\", values, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotIn(List<Long> values) {\n            addCriterion(\"coupon_id not in\", values, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdBetween(Long value1, Long value2) {\n            addCriterion(\"coupon_id between\", value1, value2, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"coupon_id not between\", value1, value2, \"couponId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNull() {\n            addCriterion(\"product_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNotNull() {\n            addCriterion(\"product_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameEqualTo(String value) {\n            addCriterion(\"product_name =\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotEqualTo(String value) {\n            addCriterion(\"product_name <>\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThan(String value) {\n            addCriterion(\"product_name >\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_name >=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThan(String value) {\n            addCriterion(\"product_name <\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThanOrEqualTo(String value) {\n            addCriterion(\"product_name <=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLike(String value) {\n            addCriterion(\"product_name like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotLike(String value) {\n            addCriterion(\"product_name not like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIn(List<String> values) {\n            addCriterion(\"product_name in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotIn(List<String> values) {\n            addCriterion(\"product_name not in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameBetween(String value1, String value2) {\n            addCriterion(\"product_name between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotBetween(String value1, String value2) {\n            addCriterion(\"product_name not between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIsNull() {\n            addCriterion(\"product_sn is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIsNotNull() {\n            addCriterion(\"product_sn is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnEqualTo(String value) {\n            addCriterion(\"product_sn =\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotEqualTo(String value) {\n            addCriterion(\"product_sn <>\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnGreaterThan(String value) {\n            addCriterion(\"product_sn >\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_sn >=\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLessThan(String value) {\n            addCriterion(\"product_sn <\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLessThanOrEqualTo(String value) {\n            addCriterion(\"product_sn <=\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnLike(String value) {\n            addCriterion(\"product_sn like\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotLike(String value) {\n            addCriterion(\"product_sn not like\", value, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnIn(List<String> values) {\n            addCriterion(\"product_sn in\", values, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotIn(List<String> values) {\n            addCriterion(\"product_sn not in\", values, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnBetween(String value1, String value2) {\n            addCriterion(\"product_sn between\", value1, value2, \"productSn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductSnNotBetween(String value1, String value2) {\n            addCriterion(\"product_sn not between\", value1, value2, \"productSn\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotion.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class SmsFlashPromotion implements Serializable {\n    private Long id;\n\n    @Schema(title = \"秒杀时间段名称\")\n    private String title;\n\n    @Schema(title = \"开始日期\")\n    private Date startDate;\n\n    @Schema(title = \"结束日期\")\n    private Date endDate;\n\n    @Schema(title = \"上下线状态\")\n    private Integer status;\n\n    @Schema(title = \"创建时间\")\n    private Date createTime;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getTitle() {\n        return title;\n    }\n\n    public void setTitle(String title) {\n        this.title = title;\n    }\n\n    public Date getStartDate() {\n        return startDate;\n    }\n\n    public void setStartDate(Date startDate) {\n        this.startDate = startDate;\n    }\n\n    public Date getEndDate() {\n        return endDate;\n    }\n\n    public void setEndDate(Date endDate) {\n        this.endDate = endDate;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", title=\").append(title);\n        sb.append(\", startDate=\").append(startDate);\n        sb.append(\", endDate=\").append(endDate);\n        sb.append(\", status=\").append(status);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.Iterator;\nimport java.util.List;\n\npublic class SmsFlashPromotionExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsFlashPromotionExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        protected void addCriterionForJDBCDate(String condition, Date value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            addCriterion(condition, new java.sql.Date(value.getTime()), property);\n        }\n\n        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {\n            if (values == null || values.size() == 0) {\n                throw new RuntimeException(\"Value list for \" + property + \" cannot be null or empty\");\n            }\n            List<java.sql.Date> dateList = new ArrayList<>();\n            Iterator<Date> iter = values.iterator();\n            while (iter.hasNext()) {\n                dateList.add(new java.sql.Date(iter.next().getTime()));\n            }\n            addCriterion(condition, dateList, property);\n        }\n\n        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNull() {\n            addCriterion(\"title is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNotNull() {\n            addCriterion(\"title is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleEqualTo(String value) {\n            addCriterion(\"title =\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotEqualTo(String value) {\n            addCriterion(\"title <>\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThan(String value) {\n            addCriterion(\"title >\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThanOrEqualTo(String value) {\n            addCriterion(\"title >=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThan(String value) {\n            addCriterion(\"title <\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThanOrEqualTo(String value) {\n            addCriterion(\"title <=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLike(String value) {\n            addCriterion(\"title like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotLike(String value) {\n            addCriterion(\"title not like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIn(List<String> values) {\n            addCriterion(\"title in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotIn(List<String> values) {\n            addCriterion(\"title not in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleBetween(String value1, String value2) {\n            addCriterion(\"title between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotBetween(String value1, String value2) {\n            addCriterion(\"title not between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateIsNull() {\n            addCriterion(\"start_date is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateIsNotNull() {\n            addCriterion(\"start_date is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateEqualTo(Date value) {\n            addCriterionForJDBCDate(\"start_date =\", value, \"startDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateNotEqualTo(Date value) {\n            addCriterionForJDBCDate(\"start_date <>\", value, \"startDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateGreaterThan(Date value) {\n            addCriterionForJDBCDate(\"start_date >\", value, \"startDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateGreaterThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"start_date >=\", value, \"startDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateLessThan(Date value) {\n            addCriterionForJDBCDate(\"start_date <\", value, \"startDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateLessThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"start_date <=\", value, \"startDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateIn(List<Date> values) {\n            addCriterionForJDBCDate(\"start_date in\", values, \"startDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateNotIn(List<Date> values) {\n            addCriterionForJDBCDate(\"start_date not in\", values, \"startDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"start_date between\", value1, value2, \"startDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartDateNotBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"start_date not between\", value1, value2, \"startDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateIsNull() {\n            addCriterion(\"end_date is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateIsNotNull() {\n            addCriterion(\"end_date is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateEqualTo(Date value) {\n            addCriterionForJDBCDate(\"end_date =\", value, \"endDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateNotEqualTo(Date value) {\n            addCriterionForJDBCDate(\"end_date <>\", value, \"endDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateGreaterThan(Date value) {\n            addCriterionForJDBCDate(\"end_date >\", value, \"endDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateGreaterThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"end_date >=\", value, \"endDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateLessThan(Date value) {\n            addCriterionForJDBCDate(\"end_date <\", value, \"endDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateLessThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"end_date <=\", value, \"endDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateIn(List<Date> values) {\n            addCriterionForJDBCDate(\"end_date in\", values, \"endDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateNotIn(List<Date> values) {\n            addCriterionForJDBCDate(\"end_date not in\", values, \"endDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"end_date between\", value1, value2, \"endDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndDateNotBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"end_date not between\", value1, value2, \"endDate\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionLog.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class SmsFlashPromotionLog implements Serializable {\n    private Integer id;\n\n    private Integer memberId;\n\n    private Long productId;\n\n    private String memberPhone;\n\n    private String productName;\n\n    @Schema(title = \"会员订阅时间\")\n    private Date subscribeTime;\n\n    private Date sendTime;\n\n    private static final long serialVersionUID = 1L;\n\n    public Integer getId() {\n        return id;\n    }\n\n    public void setId(Integer id) {\n        this.id = id;\n    }\n\n    public Integer getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Integer memberId) {\n        this.memberId = memberId;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public String getMemberPhone() {\n        return memberPhone;\n    }\n\n    public void setMemberPhone(String memberPhone) {\n        this.memberPhone = memberPhone;\n    }\n\n    public String getProductName() {\n        return productName;\n    }\n\n    public void setProductName(String productName) {\n        this.productName = productName;\n    }\n\n    public Date getSubscribeTime() {\n        return subscribeTime;\n    }\n\n    public void setSubscribeTime(Date subscribeTime) {\n        this.subscribeTime = subscribeTime;\n    }\n\n    public Date getSendTime() {\n        return sendTime;\n    }\n\n    public void setSendTime(Date sendTime) {\n        this.sendTime = sendTime;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", memberId=\").append(memberId);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", memberPhone=\").append(memberPhone);\n        sb.append(\", productName=\").append(productName);\n        sb.append(\", subscribeTime=\").append(subscribeTime);\n        sb.append(\", sendTime=\").append(sendTime);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionLogExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class SmsFlashPromotionLogExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsFlashPromotionLogExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Integer value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Integer value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Integer value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Integer value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Integer value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Integer> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Integer> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Integer value1, Integer value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNull() {\n            addCriterion(\"member_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNotNull() {\n            addCriterion(\"member_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdEqualTo(Integer value) {\n            addCriterion(\"member_id =\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotEqualTo(Integer value) {\n            addCriterion(\"member_id <>\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThan(Integer value) {\n            addCriterion(\"member_id >\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"member_id >=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThan(Integer value) {\n            addCriterion(\"member_id <\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThanOrEqualTo(Integer value) {\n            addCriterion(\"member_id <=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIn(List<Integer> values) {\n            addCriterion(\"member_id in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotIn(List<Integer> values) {\n            addCriterion(\"member_id not in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdBetween(Integer value1, Integer value2) {\n            addCriterion(\"member_id between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"member_id not between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneIsNull() {\n            addCriterion(\"member_phone is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneIsNotNull() {\n            addCriterion(\"member_phone is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneEqualTo(String value) {\n            addCriterion(\"member_phone =\", value, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneNotEqualTo(String value) {\n            addCriterion(\"member_phone <>\", value, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneGreaterThan(String value) {\n            addCriterion(\"member_phone >\", value, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneGreaterThanOrEqualTo(String value) {\n            addCriterion(\"member_phone >=\", value, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneLessThan(String value) {\n            addCriterion(\"member_phone <\", value, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneLessThanOrEqualTo(String value) {\n            addCriterion(\"member_phone <=\", value, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneLike(String value) {\n            addCriterion(\"member_phone like\", value, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneNotLike(String value) {\n            addCriterion(\"member_phone not like\", value, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneIn(List<String> values) {\n            addCriterion(\"member_phone in\", values, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneNotIn(List<String> values) {\n            addCriterion(\"member_phone not in\", values, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneBetween(String value1, String value2) {\n            addCriterion(\"member_phone between\", value1, value2, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberPhoneNotBetween(String value1, String value2) {\n            addCriterion(\"member_phone not between\", value1, value2, \"memberPhone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNull() {\n            addCriterion(\"product_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNotNull() {\n            addCriterion(\"product_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameEqualTo(String value) {\n            addCriterion(\"product_name =\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotEqualTo(String value) {\n            addCriterion(\"product_name <>\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThan(String value) {\n            addCriterion(\"product_name >\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_name >=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThan(String value) {\n            addCriterion(\"product_name <\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThanOrEqualTo(String value) {\n            addCriterion(\"product_name <=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLike(String value) {\n            addCriterion(\"product_name like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotLike(String value) {\n            addCriterion(\"product_name not like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIn(List<String> values) {\n            addCriterion(\"product_name in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotIn(List<String> values) {\n            addCriterion(\"product_name not in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameBetween(String value1, String value2) {\n            addCriterion(\"product_name between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotBetween(String value1, String value2) {\n            addCriterion(\"product_name not between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeIsNull() {\n            addCriterion(\"subscribe_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeIsNotNull() {\n            addCriterion(\"subscribe_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeEqualTo(Date value) {\n            addCriterion(\"subscribe_time =\", value, \"subscribeTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeNotEqualTo(Date value) {\n            addCriterion(\"subscribe_time <>\", value, \"subscribeTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeGreaterThan(Date value) {\n            addCriterion(\"subscribe_time >\", value, \"subscribeTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"subscribe_time >=\", value, \"subscribeTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeLessThan(Date value) {\n            addCriterion(\"subscribe_time <\", value, \"subscribeTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"subscribe_time <=\", value, \"subscribeTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeIn(List<Date> values) {\n            addCriterion(\"subscribe_time in\", values, \"subscribeTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeNotIn(List<Date> values) {\n            addCriterion(\"subscribe_time not in\", values, \"subscribeTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeBetween(Date value1, Date value2) {\n            addCriterion(\"subscribe_time between\", value1, value2, \"subscribeTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubscribeTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"subscribe_time not between\", value1, value2, \"subscribeTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeIsNull() {\n            addCriterion(\"send_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeIsNotNull() {\n            addCriterion(\"send_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeEqualTo(Date value) {\n            addCriterion(\"send_time =\", value, \"sendTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeNotEqualTo(Date value) {\n            addCriterion(\"send_time <>\", value, \"sendTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeGreaterThan(Date value) {\n            addCriterion(\"send_time >\", value, \"sendTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"send_time >=\", value, \"sendTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeLessThan(Date value) {\n            addCriterion(\"send_time <\", value, \"sendTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"send_time <=\", value, \"sendTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeIn(List<Date> values) {\n            addCriterion(\"send_time in\", values, \"sendTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeNotIn(List<Date> values) {\n            addCriterion(\"send_time not in\", values, \"sendTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeBetween(Date value1, Date value2) {\n            addCriterion(\"send_time between\", value1, value2, \"sendTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSendTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"send_time not between\", value1, value2, \"sendTime\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionProductRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\npublic class SmsFlashPromotionProductRelation implements Serializable {\n    @Schema(title = \"编号\")\n    private Long id;\n\n    private Long flashPromotionId;\n\n    @Schema(title = \"编号\")\n    private Long flashPromotionSessionId;\n\n    private Long productId;\n\n    @Schema(title = \"限时购价格\")\n    private BigDecimal flashPromotionPrice;\n\n    @Schema(title = \"限时购数量\")\n    private Integer flashPromotionCount;\n\n    @Schema(title = \"每人限购数量\")\n    private Integer flashPromotionLimit;\n\n    @Schema(title = \"排序\")\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getFlashPromotionId() {\n        return flashPromotionId;\n    }\n\n    public void setFlashPromotionId(Long flashPromotionId) {\n        this.flashPromotionId = flashPromotionId;\n    }\n\n    public Long getFlashPromotionSessionId() {\n        return flashPromotionSessionId;\n    }\n\n    public void setFlashPromotionSessionId(Long flashPromotionSessionId) {\n        this.flashPromotionSessionId = flashPromotionSessionId;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public BigDecimal getFlashPromotionPrice() {\n        return flashPromotionPrice;\n    }\n\n    public void setFlashPromotionPrice(BigDecimal flashPromotionPrice) {\n        this.flashPromotionPrice = flashPromotionPrice;\n    }\n\n    public Integer getFlashPromotionCount() {\n        return flashPromotionCount;\n    }\n\n    public void setFlashPromotionCount(Integer flashPromotionCount) {\n        this.flashPromotionCount = flashPromotionCount;\n    }\n\n    public Integer getFlashPromotionLimit() {\n        return flashPromotionLimit;\n    }\n\n    public void setFlashPromotionLimit(Integer flashPromotionLimit) {\n        this.flashPromotionLimit = flashPromotionLimit;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", flashPromotionId=\").append(flashPromotionId);\n        sb.append(\", flashPromotionSessionId=\").append(flashPromotionSessionId);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", flashPromotionPrice=\").append(flashPromotionPrice);\n        sb.append(\", flashPromotionCount=\").append(flashPromotionCount);\n        sb.append(\", flashPromotionLimit=\").append(flashPromotionLimit);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionProductRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class SmsFlashPromotionProductRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsFlashPromotionProductRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdIsNull() {\n            addCriterion(\"flash_promotion_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdIsNotNull() {\n            addCriterion(\"flash_promotion_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdEqualTo(Long value) {\n            addCriterion(\"flash_promotion_id =\", value, \"flashPromotionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdNotEqualTo(Long value) {\n            addCriterion(\"flash_promotion_id <>\", value, \"flashPromotionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdGreaterThan(Long value) {\n            addCriterion(\"flash_promotion_id >\", value, \"flashPromotionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"flash_promotion_id >=\", value, \"flashPromotionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdLessThan(Long value) {\n            addCriterion(\"flash_promotion_id <\", value, \"flashPromotionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"flash_promotion_id <=\", value, \"flashPromotionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdIn(List<Long> values) {\n            addCriterion(\"flash_promotion_id in\", values, \"flashPromotionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdNotIn(List<Long> values) {\n            addCriterion(\"flash_promotion_id not in\", values, \"flashPromotionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdBetween(Long value1, Long value2) {\n            addCriterion(\"flash_promotion_id between\", value1, value2, \"flashPromotionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"flash_promotion_id not between\", value1, value2, \"flashPromotionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdIsNull() {\n            addCriterion(\"flash_promotion_session_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdIsNotNull() {\n            addCriterion(\"flash_promotion_session_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdEqualTo(Long value) {\n            addCriterion(\"flash_promotion_session_id =\", value, \"flashPromotionSessionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdNotEqualTo(Long value) {\n            addCriterion(\"flash_promotion_session_id <>\", value, \"flashPromotionSessionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdGreaterThan(Long value) {\n            addCriterion(\"flash_promotion_session_id >\", value, \"flashPromotionSessionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"flash_promotion_session_id >=\", value, \"flashPromotionSessionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdLessThan(Long value) {\n            addCriterion(\"flash_promotion_session_id <\", value, \"flashPromotionSessionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"flash_promotion_session_id <=\", value, \"flashPromotionSessionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdIn(List<Long> values) {\n            addCriterion(\"flash_promotion_session_id in\", values, \"flashPromotionSessionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdNotIn(List<Long> values) {\n            addCriterion(\"flash_promotion_session_id not in\", values, \"flashPromotionSessionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdBetween(Long value1, Long value2) {\n            addCriterion(\"flash_promotion_session_id between\", value1, value2, \"flashPromotionSessionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionSessionIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"flash_promotion_session_id not between\", value1, value2, \"flashPromotionSessionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceIsNull() {\n            addCriterion(\"flash_promotion_price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceIsNotNull() {\n            addCriterion(\"flash_promotion_price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceEqualTo(BigDecimal value) {\n            addCriterion(\"flash_promotion_price =\", value, \"flashPromotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceNotEqualTo(BigDecimal value) {\n            addCriterion(\"flash_promotion_price <>\", value, \"flashPromotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceGreaterThan(BigDecimal value) {\n            addCriterion(\"flash_promotion_price >\", value, \"flashPromotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"flash_promotion_price >=\", value, \"flashPromotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceLessThan(BigDecimal value) {\n            addCriterion(\"flash_promotion_price <\", value, \"flashPromotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"flash_promotion_price <=\", value, \"flashPromotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceIn(List<BigDecimal> values) {\n            addCriterion(\"flash_promotion_price in\", values, \"flashPromotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceNotIn(List<BigDecimal> values) {\n            addCriterion(\"flash_promotion_price not in\", values, \"flashPromotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"flash_promotion_price between\", value1, value2, \"flashPromotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionPriceNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"flash_promotion_price not between\", value1, value2, \"flashPromotionPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountIsNull() {\n            addCriterion(\"flash_promotion_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountIsNotNull() {\n            addCriterion(\"flash_promotion_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountEqualTo(Integer value) {\n            addCriterion(\"flash_promotion_count =\", value, \"flashPromotionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountNotEqualTo(Integer value) {\n            addCriterion(\"flash_promotion_count <>\", value, \"flashPromotionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountGreaterThan(Integer value) {\n            addCriterion(\"flash_promotion_count >\", value, \"flashPromotionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"flash_promotion_count >=\", value, \"flashPromotionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountLessThan(Integer value) {\n            addCriterion(\"flash_promotion_count <\", value, \"flashPromotionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"flash_promotion_count <=\", value, \"flashPromotionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountIn(List<Integer> values) {\n            addCriterion(\"flash_promotion_count in\", values, \"flashPromotionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountNotIn(List<Integer> values) {\n            addCriterion(\"flash_promotion_count not in\", values, \"flashPromotionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"flash_promotion_count between\", value1, value2, \"flashPromotionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"flash_promotion_count not between\", value1, value2, \"flashPromotionCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitIsNull() {\n            addCriterion(\"flash_promotion_limit is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitIsNotNull() {\n            addCriterion(\"flash_promotion_limit is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitEqualTo(Integer value) {\n            addCriterion(\"flash_promotion_limit =\", value, \"flashPromotionLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitNotEqualTo(Integer value) {\n            addCriterion(\"flash_promotion_limit <>\", value, \"flashPromotionLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitGreaterThan(Integer value) {\n            addCriterion(\"flash_promotion_limit >\", value, \"flashPromotionLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"flash_promotion_limit >=\", value, \"flashPromotionLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitLessThan(Integer value) {\n            addCriterion(\"flash_promotion_limit <\", value, \"flashPromotionLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitLessThanOrEqualTo(Integer value) {\n            addCriterion(\"flash_promotion_limit <=\", value, \"flashPromotionLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitIn(List<Integer> values) {\n            addCriterion(\"flash_promotion_limit in\", values, \"flashPromotionLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitNotIn(List<Integer> values) {\n            addCriterion(\"flash_promotion_limit not in\", values, \"flashPromotionLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitBetween(Integer value1, Integer value2) {\n            addCriterion(\"flash_promotion_limit between\", value1, value2, \"flashPromotionLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFlashPromotionLimitNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"flash_promotion_limit not between\", value1, value2, \"flashPromotionLimit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionSession.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class SmsFlashPromotionSession implements Serializable {\n    @Schema(title = \"编号\")\n    private Long id;\n\n    @Schema(title = \"场次名称\")\n    private String name;\n\n    @Schema(title = \"每日开始时间\")\n    private Date startTime;\n\n    @Schema(title = \"每日结束时间\")\n    private Date endTime;\n\n    @Schema(title = \"启用状态：0->不启用；1->启用\")\n    private Integer status;\n\n    @Schema(title = \"创建时间\")\n    private Date createTime;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Date getStartTime() {\n        return startTime;\n    }\n\n    public void setStartTime(Date startTime) {\n        this.startTime = startTime;\n    }\n\n    public Date getEndTime() {\n        return endTime;\n    }\n\n    public void setEndTime(Date endTime) {\n        this.endTime = endTime;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", startTime=\").append(startTime);\n        sb.append(\", endTime=\").append(endTime);\n        sb.append(\", status=\").append(status);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsFlashPromotionSessionExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.Iterator;\nimport java.util.List;\n\npublic class SmsFlashPromotionSessionExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsFlashPromotionSessionExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        protected void addCriterionForJDBCTime(String condition, Date value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            addCriterion(condition, new java.sql.Time(value.getTime()), property);\n        }\n\n        protected void addCriterionForJDBCTime(String condition, List<Date> values, String property) {\n            if (values == null || values.size() == 0) {\n                throw new RuntimeException(\"Value list for \" + property + \" cannot be null or empty\");\n            }\n            List<java.sql.Time> timeList = new ArrayList<>();\n            Iterator<Date> iter = values.iterator();\n            while (iter.hasNext()) {\n                timeList.add(new java.sql.Time(iter.next().getTime()));\n            }\n            addCriterion(condition, timeList, property);\n        }\n\n        protected void addCriterionForJDBCTime(String condition, Date value1, Date value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            addCriterion(condition, new java.sql.Time(value1.getTime()), new java.sql.Time(value2.getTime()), property);\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIsNull() {\n            addCriterion(\"start_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIsNotNull() {\n            addCriterion(\"start_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeEqualTo(Date value) {\n            addCriterionForJDBCTime(\"start_time =\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotEqualTo(Date value) {\n            addCriterionForJDBCTime(\"start_time <>\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeGreaterThan(Date value) {\n            addCriterionForJDBCTime(\"start_time >\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {\n            addCriterionForJDBCTime(\"start_time >=\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeLessThan(Date value) {\n            addCriterionForJDBCTime(\"start_time <\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeLessThanOrEqualTo(Date value) {\n            addCriterionForJDBCTime(\"start_time <=\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIn(List<Date> values) {\n            addCriterionForJDBCTime(\"start_time in\", values, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotIn(List<Date> values) {\n            addCriterionForJDBCTime(\"start_time not in\", values, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeBetween(Date value1, Date value2) {\n            addCriterionForJDBCTime(\"start_time between\", value1, value2, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotBetween(Date value1, Date value2) {\n            addCriterionForJDBCTime(\"start_time not between\", value1, value2, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIsNull() {\n            addCriterion(\"end_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIsNotNull() {\n            addCriterion(\"end_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeEqualTo(Date value) {\n            addCriterionForJDBCTime(\"end_time =\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotEqualTo(Date value) {\n            addCriterionForJDBCTime(\"end_time <>\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeGreaterThan(Date value) {\n            addCriterionForJDBCTime(\"end_time >\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeGreaterThanOrEqualTo(Date value) {\n            addCriterionForJDBCTime(\"end_time >=\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeLessThan(Date value) {\n            addCriterionForJDBCTime(\"end_time <\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeLessThanOrEqualTo(Date value) {\n            addCriterionForJDBCTime(\"end_time <=\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIn(List<Date> values) {\n            addCriterionForJDBCTime(\"end_time in\", values, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotIn(List<Date> values) {\n            addCriterionForJDBCTime(\"end_time not in\", values, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeBetween(Date value1, Date value2) {\n            addCriterionForJDBCTime(\"end_time between\", value1, value2, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotBetween(Date value1, Date value2) {\n            addCriterionForJDBCTime(\"end_time not between\", value1, value2, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeAdvertise.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class SmsHomeAdvertise implements Serializable {\n    private Long id;\n\n    private String name;\n\n    @Schema(title = \"轮播位置：0->PC首页轮播；1->app首页轮播\")\n    private Integer type;\n\n    private String pic;\n\n    private Date startTime;\n\n    private Date endTime;\n\n    @Schema(title = \"上下线状态：0->下线；1->上线\")\n    private Integer status;\n\n    @Schema(title = \"点击数\")\n    private Integer clickCount;\n\n    @Schema(title = \"下单数\")\n    private Integer orderCount;\n\n    @Schema(title = \"链接地址\")\n    private String url;\n\n    @Schema(title = \"备注\")\n    private String note;\n\n    @Schema(title = \"排序\")\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getType() {\n        return type;\n    }\n\n    public void setType(Integer type) {\n        this.type = type;\n    }\n\n    public String getPic() {\n        return pic;\n    }\n\n    public void setPic(String pic) {\n        this.pic = pic;\n    }\n\n    public Date getStartTime() {\n        return startTime;\n    }\n\n    public void setStartTime(Date startTime) {\n        this.startTime = startTime;\n    }\n\n    public Date getEndTime() {\n        return endTime;\n    }\n\n    public void setEndTime(Date endTime) {\n        this.endTime = endTime;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public Integer getClickCount() {\n        return clickCount;\n    }\n\n    public void setClickCount(Integer clickCount) {\n        this.clickCount = clickCount;\n    }\n\n    public Integer getOrderCount() {\n        return orderCount;\n    }\n\n    public void setOrderCount(Integer orderCount) {\n        this.orderCount = orderCount;\n    }\n\n    public String getUrl() {\n        return url;\n    }\n\n    public void setUrl(String url) {\n        this.url = url;\n    }\n\n    public String getNote() {\n        return note;\n    }\n\n    public void setNote(String note) {\n        this.note = note;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", type=\").append(type);\n        sb.append(\", pic=\").append(pic);\n        sb.append(\", startTime=\").append(startTime);\n        sb.append(\", endTime=\").append(endTime);\n        sb.append(\", status=\").append(status);\n        sb.append(\", clickCount=\").append(clickCount);\n        sb.append(\", orderCount=\").append(orderCount);\n        sb.append(\", url=\").append(url);\n        sb.append(\", note=\").append(note);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeAdvertiseExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class SmsHomeAdvertiseExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsHomeAdvertiseExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNull() {\n            addCriterion(\"type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNotNull() {\n            addCriterion(\"type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeEqualTo(Integer value) {\n            addCriterion(\"type =\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotEqualTo(Integer value) {\n            addCriterion(\"type <>\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThan(Integer value) {\n            addCriterion(\"type >\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"type >=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThan(Integer value) {\n            addCriterion(\"type <\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"type <=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIn(List<Integer> values) {\n            addCriterion(\"type in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotIn(List<Integer> values) {\n            addCriterion(\"type not in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"type between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"type not between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIsNull() {\n            addCriterion(\"pic is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIsNotNull() {\n            addCriterion(\"pic is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicEqualTo(String value) {\n            addCriterion(\"pic =\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotEqualTo(String value) {\n            addCriterion(\"pic <>\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicGreaterThan(String value) {\n            addCriterion(\"pic >\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicGreaterThanOrEqualTo(String value) {\n            addCriterion(\"pic >=\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLessThan(String value) {\n            addCriterion(\"pic <\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLessThanOrEqualTo(String value) {\n            addCriterion(\"pic <=\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicLike(String value) {\n            addCriterion(\"pic like\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotLike(String value) {\n            addCriterion(\"pic not like\", value, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicIn(List<String> values) {\n            addCriterion(\"pic in\", values, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotIn(List<String> values) {\n            addCriterion(\"pic not in\", values, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicBetween(String value1, String value2) {\n            addCriterion(\"pic between\", value1, value2, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPicNotBetween(String value1, String value2) {\n            addCriterion(\"pic not between\", value1, value2, \"pic\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIsNull() {\n            addCriterion(\"start_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIsNotNull() {\n            addCriterion(\"start_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeEqualTo(Date value) {\n            addCriterion(\"start_time =\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotEqualTo(Date value) {\n            addCriterion(\"start_time <>\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeGreaterThan(Date value) {\n            addCriterion(\"start_time >\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"start_time >=\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeLessThan(Date value) {\n            addCriterion(\"start_time <\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"start_time <=\", value, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeIn(List<Date> values) {\n            addCriterion(\"start_time in\", values, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotIn(List<Date> values) {\n            addCriterion(\"start_time not in\", values, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeBetween(Date value1, Date value2) {\n            addCriterion(\"start_time between\", value1, value2, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStartTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"start_time not between\", value1, value2, \"startTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIsNull() {\n            addCriterion(\"end_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIsNotNull() {\n            addCriterion(\"end_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeEqualTo(Date value) {\n            addCriterion(\"end_time =\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotEqualTo(Date value) {\n            addCriterion(\"end_time <>\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeGreaterThan(Date value) {\n            addCriterion(\"end_time >\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"end_time >=\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeLessThan(Date value) {\n            addCriterion(\"end_time <\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"end_time <=\", value, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeIn(List<Date> values) {\n            addCriterion(\"end_time in\", values, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotIn(List<Date> values) {\n            addCriterion(\"end_time not in\", values, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeBetween(Date value1, Date value2) {\n            addCriterion(\"end_time between\", value1, value2, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEndTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"end_time not between\", value1, value2, \"endTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountIsNull() {\n            addCriterion(\"click_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountIsNotNull() {\n            addCriterion(\"click_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountEqualTo(Integer value) {\n            addCriterion(\"click_count =\", value, \"clickCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountNotEqualTo(Integer value) {\n            addCriterion(\"click_count <>\", value, \"clickCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountGreaterThan(Integer value) {\n            addCriterion(\"click_count >\", value, \"clickCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"click_count >=\", value, \"clickCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountLessThan(Integer value) {\n            addCriterion(\"click_count <\", value, \"clickCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"click_count <=\", value, \"clickCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountIn(List<Integer> values) {\n            addCriterion(\"click_count in\", values, \"clickCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountNotIn(List<Integer> values) {\n            addCriterion(\"click_count not in\", values, \"clickCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"click_count between\", value1, value2, \"clickCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andClickCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"click_count not between\", value1, value2, \"clickCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountIsNull() {\n            addCriterion(\"order_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountIsNotNull() {\n            addCriterion(\"order_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountEqualTo(Integer value) {\n            addCriterion(\"order_count =\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountNotEqualTo(Integer value) {\n            addCriterion(\"order_count <>\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountGreaterThan(Integer value) {\n            addCriterion(\"order_count >\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"order_count >=\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountLessThan(Integer value) {\n            addCriterion(\"order_count <\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"order_count <=\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountIn(List<Integer> values) {\n            addCriterion(\"order_count in\", values, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountNotIn(List<Integer> values) {\n            addCriterion(\"order_count not in\", values, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"order_count between\", value1, value2, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"order_count not between\", value1, value2, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlIsNull() {\n            addCriterion(\"url is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlIsNotNull() {\n            addCriterion(\"url is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlEqualTo(String value) {\n            addCriterion(\"url =\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlNotEqualTo(String value) {\n            addCriterion(\"url <>\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlGreaterThan(String value) {\n            addCriterion(\"url >\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlGreaterThanOrEqualTo(String value) {\n            addCriterion(\"url >=\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlLessThan(String value) {\n            addCriterion(\"url <\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlLessThanOrEqualTo(String value) {\n            addCriterion(\"url <=\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlLike(String value) {\n            addCriterion(\"url like\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlNotLike(String value) {\n            addCriterion(\"url not like\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlIn(List<String> values) {\n            addCriterion(\"url in\", values, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlNotIn(List<String> values) {\n            addCriterion(\"url not in\", values, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlBetween(String value1, String value2) {\n            addCriterion(\"url between\", value1, value2, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlNotBetween(String value1, String value2) {\n            addCriterion(\"url not between\", value1, value2, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNull() {\n            addCriterion(\"note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNotNull() {\n            addCriterion(\"note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteEqualTo(String value) {\n            addCriterion(\"note =\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotEqualTo(String value) {\n            addCriterion(\"note <>\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThan(String value) {\n            addCriterion(\"note >\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"note >=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThan(String value) {\n            addCriterion(\"note <\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"note <=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLike(String value) {\n            addCriterion(\"note like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotLike(String value) {\n            addCriterion(\"note not like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIn(List<String> values) {\n            addCriterion(\"note in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotIn(List<String> values) {\n            addCriterion(\"note not in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteBetween(String value1, String value2) {\n            addCriterion(\"note between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotBetween(String value1, String value2) {\n            addCriterion(\"note not between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeBrand.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class SmsHomeBrand implements Serializable {\n    private Long id;\n\n    private Long brandId;\n\n    private String brandName;\n\n    private Integer recommendStatus;\n\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getBrandId() {\n        return brandId;\n    }\n\n    public void setBrandId(Long brandId) {\n        this.brandId = brandId;\n    }\n\n    public String getBrandName() {\n        return brandName;\n    }\n\n    public void setBrandName(String brandName) {\n        this.brandName = brandName;\n    }\n\n    public Integer getRecommendStatus() {\n        return recommendStatus;\n    }\n\n    public void setRecommendStatus(Integer recommendStatus) {\n        this.recommendStatus = recommendStatus;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", brandId=\").append(brandId);\n        sb.append(\", brandName=\").append(brandName);\n        sb.append(\", recommendStatus=\").append(recommendStatus);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeBrandExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class SmsHomeBrandExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsHomeBrandExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdIsNull() {\n            addCriterion(\"brand_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdIsNotNull() {\n            addCriterion(\"brand_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdEqualTo(Long value) {\n            addCriterion(\"brand_id =\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdNotEqualTo(Long value) {\n            addCriterion(\"brand_id <>\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdGreaterThan(Long value) {\n            addCriterion(\"brand_id >\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"brand_id >=\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdLessThan(Long value) {\n            addCriterion(\"brand_id <\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"brand_id <=\", value, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdIn(List<Long> values) {\n            addCriterion(\"brand_id in\", values, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdNotIn(List<Long> values) {\n            addCriterion(\"brand_id not in\", values, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdBetween(Long value1, Long value2) {\n            addCriterion(\"brand_id between\", value1, value2, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"brand_id not between\", value1, value2, \"brandId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameIsNull() {\n            addCriterion(\"brand_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameIsNotNull() {\n            addCriterion(\"brand_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameEqualTo(String value) {\n            addCriterion(\"brand_name =\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameNotEqualTo(String value) {\n            addCriterion(\"brand_name <>\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameGreaterThan(String value) {\n            addCriterion(\"brand_name >\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"brand_name >=\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameLessThan(String value) {\n            addCriterion(\"brand_name <\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameLessThanOrEqualTo(String value) {\n            addCriterion(\"brand_name <=\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameLike(String value) {\n            addCriterion(\"brand_name like\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameNotLike(String value) {\n            addCriterion(\"brand_name not like\", value, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameIn(List<String> values) {\n            addCriterion(\"brand_name in\", values, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameNotIn(List<String> values) {\n            addCriterion(\"brand_name not in\", values, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameBetween(String value1, String value2) {\n            addCriterion(\"brand_name between\", value1, value2, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBrandNameNotBetween(String value1, String value2) {\n            addCriterion(\"brand_name not between\", value1, value2, \"brandName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIsNull() {\n            addCriterion(\"recommend_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIsNotNull() {\n            addCriterion(\"recommend_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusEqualTo(Integer value) {\n            addCriterion(\"recommend_status =\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotEqualTo(Integer value) {\n            addCriterion(\"recommend_status <>\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusGreaterThan(Integer value) {\n            addCriterion(\"recommend_status >\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"recommend_status >=\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusLessThan(Integer value) {\n            addCriterion(\"recommend_status <\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"recommend_status <=\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIn(List<Integer> values) {\n            addCriterion(\"recommend_status in\", values, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotIn(List<Integer> values) {\n            addCriterion(\"recommend_status not in\", values, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommend_status between\", value1, value2, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommend_status not between\", value1, value2, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeNewProduct.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class SmsHomeNewProduct implements Serializable {\n    private Long id;\n\n    private Long productId;\n\n    private String productName;\n\n    private Integer recommendStatus;\n\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public String getProductName() {\n        return productName;\n    }\n\n    public void setProductName(String productName) {\n        this.productName = productName;\n    }\n\n    public Integer getRecommendStatus() {\n        return recommendStatus;\n    }\n\n    public void setRecommendStatus(Integer recommendStatus) {\n        this.recommendStatus = recommendStatus;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", productName=\").append(productName);\n        sb.append(\", recommendStatus=\").append(recommendStatus);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeNewProductExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class SmsHomeNewProductExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsHomeNewProductExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNull() {\n            addCriterion(\"product_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNotNull() {\n            addCriterion(\"product_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameEqualTo(String value) {\n            addCriterion(\"product_name =\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotEqualTo(String value) {\n            addCriterion(\"product_name <>\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThan(String value) {\n            addCriterion(\"product_name >\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_name >=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThan(String value) {\n            addCriterion(\"product_name <\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThanOrEqualTo(String value) {\n            addCriterion(\"product_name <=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLike(String value) {\n            addCriterion(\"product_name like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotLike(String value) {\n            addCriterion(\"product_name not like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIn(List<String> values) {\n            addCriterion(\"product_name in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotIn(List<String> values) {\n            addCriterion(\"product_name not in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameBetween(String value1, String value2) {\n            addCriterion(\"product_name between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotBetween(String value1, String value2) {\n            addCriterion(\"product_name not between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIsNull() {\n            addCriterion(\"recommend_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIsNotNull() {\n            addCriterion(\"recommend_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusEqualTo(Integer value) {\n            addCriterion(\"recommend_status =\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotEqualTo(Integer value) {\n            addCriterion(\"recommend_status <>\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusGreaterThan(Integer value) {\n            addCriterion(\"recommend_status >\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"recommend_status >=\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusLessThan(Integer value) {\n            addCriterion(\"recommend_status <\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"recommend_status <=\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIn(List<Integer> values) {\n            addCriterion(\"recommend_status in\", values, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotIn(List<Integer> values) {\n            addCriterion(\"recommend_status not in\", values, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommend_status between\", value1, value2, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommend_status not between\", value1, value2, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeRecommendProduct.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class SmsHomeRecommendProduct implements Serializable {\n    private Long id;\n\n    private Long productId;\n\n    private String productName;\n\n    private Integer recommendStatus;\n\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public String getProductName() {\n        return productName;\n    }\n\n    public void setProductName(String productName) {\n        this.productName = productName;\n    }\n\n    public Integer getRecommendStatus() {\n        return recommendStatus;\n    }\n\n    public void setRecommendStatus(Integer recommendStatus) {\n        this.recommendStatus = recommendStatus;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", productId=\").append(productId);\n        sb.append(\", productName=\").append(productName);\n        sb.append(\", recommendStatus=\").append(recommendStatus);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeRecommendProductExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class SmsHomeRecommendProductExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsHomeRecommendProductExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNull() {\n            addCriterion(\"product_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIsNotNull() {\n            addCriterion(\"product_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdEqualTo(Long value) {\n            addCriterion(\"product_id =\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotEqualTo(Long value) {\n            addCriterion(\"product_id <>\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThan(Long value) {\n            addCriterion(\"product_id >\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_id >=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThan(Long value) {\n            addCriterion(\"product_id <\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_id <=\", value, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdIn(List<Long> values) {\n            addCriterion(\"product_id in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotIn(List<Long> values) {\n            addCriterion(\"product_id not in\", values, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_id between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_id not between\", value1, value2, \"productId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNull() {\n            addCriterion(\"product_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIsNotNull() {\n            addCriterion(\"product_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameEqualTo(String value) {\n            addCriterion(\"product_name =\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotEqualTo(String value) {\n            addCriterion(\"product_name <>\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThan(String value) {\n            addCriterion(\"product_name >\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"product_name >=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThan(String value) {\n            addCriterion(\"product_name <\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLessThanOrEqualTo(String value) {\n            addCriterion(\"product_name <=\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameLike(String value) {\n            addCriterion(\"product_name like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotLike(String value) {\n            addCriterion(\"product_name not like\", value, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameIn(List<String> values) {\n            addCriterion(\"product_name in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotIn(List<String> values) {\n            addCriterion(\"product_name not in\", values, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameBetween(String value1, String value2) {\n            addCriterion(\"product_name between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductNameNotBetween(String value1, String value2) {\n            addCriterion(\"product_name not between\", value1, value2, \"productName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIsNull() {\n            addCriterion(\"recommend_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIsNotNull() {\n            addCriterion(\"recommend_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusEqualTo(Integer value) {\n            addCriterion(\"recommend_status =\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotEqualTo(Integer value) {\n            addCriterion(\"recommend_status <>\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusGreaterThan(Integer value) {\n            addCriterion(\"recommend_status >\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"recommend_status >=\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusLessThan(Integer value) {\n            addCriterion(\"recommend_status <\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"recommend_status <=\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIn(List<Integer> values) {\n            addCriterion(\"recommend_status in\", values, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotIn(List<Integer> values) {\n            addCriterion(\"recommend_status not in\", values, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommend_status between\", value1, value2, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommend_status not between\", value1, value2, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeRecommendSubject.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class SmsHomeRecommendSubject implements Serializable {\n    private Long id;\n\n    private Long subjectId;\n\n    private String subjectName;\n\n    private Integer recommendStatus;\n\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getSubjectId() {\n        return subjectId;\n    }\n\n    public void setSubjectId(Long subjectId) {\n        this.subjectId = subjectId;\n    }\n\n    public String getSubjectName() {\n        return subjectName;\n    }\n\n    public void setSubjectName(String subjectName) {\n        this.subjectName = subjectName;\n    }\n\n    public Integer getRecommendStatus() {\n        return recommendStatus;\n    }\n\n    public void setRecommendStatus(Integer recommendStatus) {\n        this.recommendStatus = recommendStatus;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", subjectId=\").append(subjectId);\n        sb.append(\", subjectName=\").append(subjectName);\n        sb.append(\", recommendStatus=\").append(recommendStatus);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/SmsHomeRecommendSubjectExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class SmsHomeRecommendSubjectExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public SmsHomeRecommendSubjectExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdIsNull() {\n            addCriterion(\"subject_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdIsNotNull() {\n            addCriterion(\"subject_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdEqualTo(Long value) {\n            addCriterion(\"subject_id =\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdNotEqualTo(Long value) {\n            addCriterion(\"subject_id <>\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdGreaterThan(Long value) {\n            addCriterion(\"subject_id >\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"subject_id >=\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdLessThan(Long value) {\n            addCriterion(\"subject_id <\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"subject_id <=\", value, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdIn(List<Long> values) {\n            addCriterion(\"subject_id in\", values, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdNotIn(List<Long> values) {\n            addCriterion(\"subject_id not in\", values, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdBetween(Long value1, Long value2) {\n            addCriterion(\"subject_id between\", value1, value2, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"subject_id not between\", value1, value2, \"subjectId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameIsNull() {\n            addCriterion(\"subject_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameIsNotNull() {\n            addCriterion(\"subject_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameEqualTo(String value) {\n            addCriterion(\"subject_name =\", value, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameNotEqualTo(String value) {\n            addCriterion(\"subject_name <>\", value, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameGreaterThan(String value) {\n            addCriterion(\"subject_name >\", value, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"subject_name >=\", value, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameLessThan(String value) {\n            addCriterion(\"subject_name <\", value, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameLessThanOrEqualTo(String value) {\n            addCriterion(\"subject_name <=\", value, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameLike(String value) {\n            addCriterion(\"subject_name like\", value, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameNotLike(String value) {\n            addCriterion(\"subject_name not like\", value, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameIn(List<String> values) {\n            addCriterion(\"subject_name in\", values, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameNotIn(List<String> values) {\n            addCriterion(\"subject_name not in\", values, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameBetween(String value1, String value2) {\n            addCriterion(\"subject_name between\", value1, value2, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSubjectNameNotBetween(String value1, String value2) {\n            addCriterion(\"subject_name not between\", value1, value2, \"subjectName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIsNull() {\n            addCriterion(\"recommend_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIsNotNull() {\n            addCriterion(\"recommend_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusEqualTo(Integer value) {\n            addCriterion(\"recommend_status =\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotEqualTo(Integer value) {\n            addCriterion(\"recommend_status <>\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusGreaterThan(Integer value) {\n            addCriterion(\"recommend_status >\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"recommend_status >=\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusLessThan(Integer value) {\n            addCriterion(\"recommend_status <\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"recommend_status <=\", value, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusIn(List<Integer> values) {\n            addCriterion(\"recommend_status in\", values, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotIn(List<Integer> values) {\n            addCriterion(\"recommend_status not in\", values, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommend_status between\", value1, value2, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecommendStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"recommend_status not between\", value1, value2, \"recommendStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdmin.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class UmsAdmin implements Serializable {\n    private Long id;\n\n    private String username;\n\n    private String password;\n\n    @Schema(title = \"头像\")\n    private String icon;\n\n    @Schema(title = \"邮箱\")\n    private String email;\n\n    @Schema(title = \"昵称\")\n    private String nickName;\n\n    @Schema(title = \"备注信息\")\n    private String note;\n\n    @Schema(title = \"创建时间\")\n    private Date createTime;\n\n    @Schema(title = \"最后登录时间\")\n    private Date loginTime;\n\n    @Schema(title = \"帐号启用状态：0->禁用；1->启用\")\n    private Integer status;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getUsername() {\n        return username;\n    }\n\n    public void setUsername(String username) {\n        this.username = username;\n    }\n\n    public String getPassword() {\n        return password;\n    }\n\n    public void setPassword(String password) {\n        this.password = password;\n    }\n\n    public String getIcon() {\n        return icon;\n    }\n\n    public void setIcon(String icon) {\n        this.icon = icon;\n    }\n\n    public String getEmail() {\n        return email;\n    }\n\n    public void setEmail(String email) {\n        this.email = email;\n    }\n\n    public String getNickName() {\n        return nickName;\n    }\n\n    public void setNickName(String nickName) {\n        this.nickName = nickName;\n    }\n\n    public String getNote() {\n        return note;\n    }\n\n    public void setNote(String note) {\n        this.note = note;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Date getLoginTime() {\n        return loginTime;\n    }\n\n    public void setLoginTime(Date loginTime) {\n        this.loginTime = loginTime;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", username=\").append(username);\n        sb.append(\", password=\").append(password);\n        sb.append(\", icon=\").append(icon);\n        sb.append(\", email=\").append(email);\n        sb.append(\", nickName=\").append(nickName);\n        sb.append(\", note=\").append(note);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", loginTime=\").append(loginTime);\n        sb.append(\", status=\").append(status);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UmsAdminExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsAdminExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNull() {\n            addCriterion(\"username is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNotNull() {\n            addCriterion(\"username is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameEqualTo(String value) {\n            addCriterion(\"username =\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotEqualTo(String value) {\n            addCriterion(\"username <>\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThan(String value) {\n            addCriterion(\"username >\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"username >=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThan(String value) {\n            addCriterion(\"username <\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThanOrEqualTo(String value) {\n            addCriterion(\"username <=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLike(String value) {\n            addCriterion(\"username like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotLike(String value) {\n            addCriterion(\"username not like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIn(List<String> values) {\n            addCriterion(\"username in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotIn(List<String> values) {\n            addCriterion(\"username not in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameBetween(String value1, String value2) {\n            addCriterion(\"username between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotBetween(String value1, String value2) {\n            addCriterion(\"username not between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIsNull() {\n            addCriterion(\"password is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIsNotNull() {\n            addCriterion(\"password is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordEqualTo(String value) {\n            addCriterion(\"password =\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotEqualTo(String value) {\n            addCriterion(\"password <>\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordGreaterThan(String value) {\n            addCriterion(\"password >\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordGreaterThanOrEqualTo(String value) {\n            addCriterion(\"password >=\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLessThan(String value) {\n            addCriterion(\"password <\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLessThanOrEqualTo(String value) {\n            addCriterion(\"password <=\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLike(String value) {\n            addCriterion(\"password like\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotLike(String value) {\n            addCriterion(\"password not like\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIn(List<String> values) {\n            addCriterion(\"password in\", values, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotIn(List<String> values) {\n            addCriterion(\"password not in\", values, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordBetween(String value1, String value2) {\n            addCriterion(\"password between\", value1, value2, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotBetween(String value1, String value2) {\n            addCriterion(\"password not between\", value1, value2, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNull() {\n            addCriterion(\"icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNotNull() {\n            addCriterion(\"icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconEqualTo(String value) {\n            addCriterion(\"icon =\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotEqualTo(String value) {\n            addCriterion(\"icon <>\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThan(String value) {\n            addCriterion(\"icon >\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"icon >=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThan(String value) {\n            addCriterion(\"icon <\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThanOrEqualTo(String value) {\n            addCriterion(\"icon <=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLike(String value) {\n            addCriterion(\"icon like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotLike(String value) {\n            addCriterion(\"icon not like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIn(List<String> values) {\n            addCriterion(\"icon in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotIn(List<String> values) {\n            addCriterion(\"icon not in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconBetween(String value1, String value2) {\n            addCriterion(\"icon between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotBetween(String value1, String value2) {\n            addCriterion(\"icon not between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailIsNull() {\n            addCriterion(\"email is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailIsNotNull() {\n            addCriterion(\"email is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailEqualTo(String value) {\n            addCriterion(\"email =\", value, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailNotEqualTo(String value) {\n            addCriterion(\"email <>\", value, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailGreaterThan(String value) {\n            addCriterion(\"email >\", value, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailGreaterThanOrEqualTo(String value) {\n            addCriterion(\"email >=\", value, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailLessThan(String value) {\n            addCriterion(\"email <\", value, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailLessThanOrEqualTo(String value) {\n            addCriterion(\"email <=\", value, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailLike(String value) {\n            addCriterion(\"email like\", value, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailNotLike(String value) {\n            addCriterion(\"email not like\", value, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailIn(List<String> values) {\n            addCriterion(\"email in\", values, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailNotIn(List<String> values) {\n            addCriterion(\"email not in\", values, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailBetween(String value1, String value2) {\n            addCriterion(\"email between\", value1, value2, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andEmailNotBetween(String value1, String value2) {\n            addCriterion(\"email not between\", value1, value2, \"email\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameIsNull() {\n            addCriterion(\"nick_name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameIsNotNull() {\n            addCriterion(\"nick_name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameEqualTo(String value) {\n            addCriterion(\"nick_name =\", value, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameNotEqualTo(String value) {\n            addCriterion(\"nick_name <>\", value, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameGreaterThan(String value) {\n            addCriterion(\"nick_name >\", value, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"nick_name >=\", value, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameLessThan(String value) {\n            addCriterion(\"nick_name <\", value, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameLessThanOrEqualTo(String value) {\n            addCriterion(\"nick_name <=\", value, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameLike(String value) {\n            addCriterion(\"nick_name like\", value, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameNotLike(String value) {\n            addCriterion(\"nick_name not like\", value, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameIn(List<String> values) {\n            addCriterion(\"nick_name in\", values, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameNotIn(List<String> values) {\n            addCriterion(\"nick_name not in\", values, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameBetween(String value1, String value2) {\n            addCriterion(\"nick_name between\", value1, value2, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNickNameNotBetween(String value1, String value2) {\n            addCriterion(\"nick_name not between\", value1, value2, \"nickName\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNull() {\n            addCriterion(\"note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNotNull() {\n            addCriterion(\"note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteEqualTo(String value) {\n            addCriterion(\"note =\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotEqualTo(String value) {\n            addCriterion(\"note <>\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThan(String value) {\n            addCriterion(\"note >\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"note >=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThan(String value) {\n            addCriterion(\"note <\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"note <=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLike(String value) {\n            addCriterion(\"note like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotLike(String value) {\n            addCriterion(\"note not like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIn(List<String> values) {\n            addCriterion(\"note in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotIn(List<String> values) {\n            addCriterion(\"note not in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteBetween(String value1, String value2) {\n            addCriterion(\"note between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotBetween(String value1, String value2) {\n            addCriterion(\"note not between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeIsNull() {\n            addCriterion(\"login_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeIsNotNull() {\n            addCriterion(\"login_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeEqualTo(Date value) {\n            addCriterion(\"login_time =\", value, \"loginTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeNotEqualTo(Date value) {\n            addCriterion(\"login_time <>\", value, \"loginTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeGreaterThan(Date value) {\n            addCriterion(\"login_time >\", value, \"loginTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"login_time >=\", value, \"loginTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeLessThan(Date value) {\n            addCriterion(\"login_time <\", value, \"loginTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"login_time <=\", value, \"loginTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeIn(List<Date> values) {\n            addCriterion(\"login_time in\", values, \"loginTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeNotIn(List<Date> values) {\n            addCriterion(\"login_time not in\", values, \"loginTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeBetween(Date value1, Date value2) {\n            addCriterion(\"login_time between\", value1, value2, \"loginTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"login_time not between\", value1, value2, \"loginTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminLoginLog.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class UmsAdminLoginLog implements Serializable {\n    private Long id;\n\n    private Long adminId;\n\n    private Date createTime;\n\n    private String ip;\n\n    private String address;\n\n    @Schema(title = \"浏览器登录类型\")\n    private String userAgent;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getAdminId() {\n        return adminId;\n    }\n\n    public void setAdminId(Long adminId) {\n        this.adminId = adminId;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public String getIp() {\n        return ip;\n    }\n\n    public void setIp(String ip) {\n        this.ip = ip;\n    }\n\n    public String getAddress() {\n        return address;\n    }\n\n    public void setAddress(String address) {\n        this.address = address;\n    }\n\n    public String getUserAgent() {\n        return userAgent;\n    }\n\n    public void setUserAgent(String userAgent) {\n        this.userAgent = userAgent;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", adminId=\").append(adminId);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", ip=\").append(ip);\n        sb.append(\", address=\").append(address);\n        sb.append(\", userAgent=\").append(userAgent);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminLoginLogExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UmsAdminLoginLogExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsAdminLoginLogExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdIsNull() {\n            addCriterion(\"admin_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdIsNotNull() {\n            addCriterion(\"admin_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdEqualTo(Long value) {\n            addCriterion(\"admin_id =\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdNotEqualTo(Long value) {\n            addCriterion(\"admin_id <>\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdGreaterThan(Long value) {\n            addCriterion(\"admin_id >\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"admin_id >=\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdLessThan(Long value) {\n            addCriterion(\"admin_id <\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"admin_id <=\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdIn(List<Long> values) {\n            addCriterion(\"admin_id in\", values, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdNotIn(List<Long> values) {\n            addCriterion(\"admin_id not in\", values, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdBetween(Long value1, Long value2) {\n            addCriterion(\"admin_id between\", value1, value2, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"admin_id not between\", value1, value2, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpIsNull() {\n            addCriterion(\"ip is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpIsNotNull() {\n            addCriterion(\"ip is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpEqualTo(String value) {\n            addCriterion(\"ip =\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpNotEqualTo(String value) {\n            addCriterion(\"ip <>\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpGreaterThan(String value) {\n            addCriterion(\"ip >\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpGreaterThanOrEqualTo(String value) {\n            addCriterion(\"ip >=\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpLessThan(String value) {\n            addCriterion(\"ip <\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpLessThanOrEqualTo(String value) {\n            addCriterion(\"ip <=\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpLike(String value) {\n            addCriterion(\"ip like\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpNotLike(String value) {\n            addCriterion(\"ip not like\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpIn(List<String> values) {\n            addCriterion(\"ip in\", values, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpNotIn(List<String> values) {\n            addCriterion(\"ip not in\", values, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpBetween(String value1, String value2) {\n            addCriterion(\"ip between\", value1, value2, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpNotBetween(String value1, String value2) {\n            addCriterion(\"ip not between\", value1, value2, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressIsNull() {\n            addCriterion(\"address is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressIsNotNull() {\n            addCriterion(\"address is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressEqualTo(String value) {\n            addCriterion(\"address =\", value, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNotEqualTo(String value) {\n            addCriterion(\"address <>\", value, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressGreaterThan(String value) {\n            addCriterion(\"address >\", value, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressGreaterThanOrEqualTo(String value) {\n            addCriterion(\"address >=\", value, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressLessThan(String value) {\n            addCriterion(\"address <\", value, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressLessThanOrEqualTo(String value) {\n            addCriterion(\"address <=\", value, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressLike(String value) {\n            addCriterion(\"address like\", value, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNotLike(String value) {\n            addCriterion(\"address not like\", value, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressIn(List<String> values) {\n            addCriterion(\"address in\", values, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNotIn(List<String> values) {\n            addCriterion(\"address not in\", values, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressBetween(String value1, String value2) {\n            addCriterion(\"address between\", value1, value2, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAddressNotBetween(String value1, String value2) {\n            addCriterion(\"address not between\", value1, value2, \"address\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentIsNull() {\n            addCriterion(\"user_agent is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentIsNotNull() {\n            addCriterion(\"user_agent is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentEqualTo(String value) {\n            addCriterion(\"user_agent =\", value, \"userAgent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentNotEqualTo(String value) {\n            addCriterion(\"user_agent <>\", value, \"userAgent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentGreaterThan(String value) {\n            addCriterion(\"user_agent >\", value, \"userAgent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentGreaterThanOrEqualTo(String value) {\n            addCriterion(\"user_agent >=\", value, \"userAgent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentLessThan(String value) {\n            addCriterion(\"user_agent <\", value, \"userAgent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentLessThanOrEqualTo(String value) {\n            addCriterion(\"user_agent <=\", value, \"userAgent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentLike(String value) {\n            addCriterion(\"user_agent like\", value, \"userAgent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentNotLike(String value) {\n            addCriterion(\"user_agent not like\", value, \"userAgent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentIn(List<String> values) {\n            addCriterion(\"user_agent in\", values, \"userAgent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentNotIn(List<String> values) {\n            addCriterion(\"user_agent not in\", values, \"userAgent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentBetween(String value1, String value2) {\n            addCriterion(\"user_agent between\", value1, value2, \"userAgent\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUserAgentNotBetween(String value1, String value2) {\n            addCriterion(\"user_agent not between\", value1, value2, \"userAgent\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminPermissionRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class UmsAdminPermissionRelation implements Serializable {\n    private Long id;\n\n    private Long adminId;\n\n    private Long permissionId;\n\n    private Integer type;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getAdminId() {\n        return adminId;\n    }\n\n    public void setAdminId(Long adminId) {\n        this.adminId = adminId;\n    }\n\n    public Long getPermissionId() {\n        return permissionId;\n    }\n\n    public void setPermissionId(Long permissionId) {\n        this.permissionId = permissionId;\n    }\n\n    public Integer getType() {\n        return type;\n    }\n\n    public void setType(Integer type) {\n        this.type = type;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", adminId=\").append(adminId);\n        sb.append(\", permissionId=\").append(permissionId);\n        sb.append(\", type=\").append(type);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminPermissionRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsAdminPermissionRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsAdminPermissionRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdIsNull() {\n            addCriterion(\"admin_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdIsNotNull() {\n            addCriterion(\"admin_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdEqualTo(Long value) {\n            addCriterion(\"admin_id =\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdNotEqualTo(Long value) {\n            addCriterion(\"admin_id <>\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdGreaterThan(Long value) {\n            addCriterion(\"admin_id >\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"admin_id >=\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdLessThan(Long value) {\n            addCriterion(\"admin_id <\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"admin_id <=\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdIn(List<Long> values) {\n            addCriterion(\"admin_id in\", values, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdNotIn(List<Long> values) {\n            addCriterion(\"admin_id not in\", values, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdBetween(Long value1, Long value2) {\n            addCriterion(\"admin_id between\", value1, value2, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"admin_id not between\", value1, value2, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdIsNull() {\n            addCriterion(\"permission_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdIsNotNull() {\n            addCriterion(\"permission_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdEqualTo(Long value) {\n            addCriterion(\"permission_id =\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdNotEqualTo(Long value) {\n            addCriterion(\"permission_id <>\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdGreaterThan(Long value) {\n            addCriterion(\"permission_id >\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"permission_id >=\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdLessThan(Long value) {\n            addCriterion(\"permission_id <\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"permission_id <=\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdIn(List<Long> values) {\n            addCriterion(\"permission_id in\", values, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdNotIn(List<Long> values) {\n            addCriterion(\"permission_id not in\", values, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdBetween(Long value1, Long value2) {\n            addCriterion(\"permission_id between\", value1, value2, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"permission_id not between\", value1, value2, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNull() {\n            addCriterion(\"type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNotNull() {\n            addCriterion(\"type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeEqualTo(Integer value) {\n            addCriterion(\"type =\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotEqualTo(Integer value) {\n            addCriterion(\"type <>\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThan(Integer value) {\n            addCriterion(\"type >\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"type >=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThan(Integer value) {\n            addCriterion(\"type <\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"type <=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIn(List<Integer> values) {\n            addCriterion(\"type in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotIn(List<Integer> values) {\n            addCriterion(\"type not in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"type between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"type not between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminRoleRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class UmsAdminRoleRelation implements Serializable {\n    private Long id;\n\n    private Long adminId;\n\n    private Long roleId;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getAdminId() {\n        return adminId;\n    }\n\n    public void setAdminId(Long adminId) {\n        this.adminId = adminId;\n    }\n\n    public Long getRoleId() {\n        return roleId;\n    }\n\n    public void setRoleId(Long roleId) {\n        this.roleId = roleId;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", adminId=\").append(adminId);\n        sb.append(\", roleId=\").append(roleId);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsAdminRoleRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsAdminRoleRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsAdminRoleRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdIsNull() {\n            addCriterion(\"admin_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdIsNotNull() {\n            addCriterion(\"admin_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdEqualTo(Long value) {\n            addCriterion(\"admin_id =\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdNotEqualTo(Long value) {\n            addCriterion(\"admin_id <>\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdGreaterThan(Long value) {\n            addCriterion(\"admin_id >\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"admin_id >=\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdLessThan(Long value) {\n            addCriterion(\"admin_id <\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"admin_id <=\", value, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdIn(List<Long> values) {\n            addCriterion(\"admin_id in\", values, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdNotIn(List<Long> values) {\n            addCriterion(\"admin_id not in\", values, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdBetween(Long value1, Long value2) {\n            addCriterion(\"admin_id between\", value1, value2, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"admin_id not between\", value1, value2, \"adminId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIsNull() {\n            addCriterion(\"role_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIsNotNull() {\n            addCriterion(\"role_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdEqualTo(Long value) {\n            addCriterion(\"role_id =\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotEqualTo(Long value) {\n            addCriterion(\"role_id <>\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdGreaterThan(Long value) {\n            addCriterion(\"role_id >\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"role_id >=\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdLessThan(Long value) {\n            addCriterion(\"role_id <\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"role_id <=\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIn(List<Long> values) {\n            addCriterion(\"role_id in\", values, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotIn(List<Long> values) {\n            addCriterion(\"role_id not in\", values, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdBetween(Long value1, Long value2) {\n            addCriterion(\"role_id between\", value1, value2, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"role_id not between\", value1, value2, \"roleId\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsGrowthChangeHistory.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class UmsGrowthChangeHistory implements Serializable {\n    private Long id;\n\n    private Long memberId;\n\n    private Date createTime;\n\n    @Schema(title = \"改变类型：0->增加；1->减少\")\n    private Integer changeType;\n\n    @Schema(title = \"积分改变数量\")\n    private Integer changeCount;\n\n    @Schema(title = \"操作人员\")\n    private String operateMan;\n\n    @Schema(title = \"操作备注\")\n    private String operateNote;\n\n    @Schema(title = \"积分来源：0->购物；1->管理员修改\")\n    private Integer sourceType;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getChangeType() {\n        return changeType;\n    }\n\n    public void setChangeType(Integer changeType) {\n        this.changeType = changeType;\n    }\n\n    public Integer getChangeCount() {\n        return changeCount;\n    }\n\n    public void setChangeCount(Integer changeCount) {\n        this.changeCount = changeCount;\n    }\n\n    public String getOperateMan() {\n        return operateMan;\n    }\n\n    public void setOperateMan(String operateMan) {\n        this.operateMan = operateMan;\n    }\n\n    public String getOperateNote() {\n        return operateNote;\n    }\n\n    public void setOperateNote(String operateNote) {\n        this.operateNote = operateNote;\n    }\n\n    public Integer getSourceType() {\n        return sourceType;\n    }\n\n    public void setSourceType(Integer sourceType) {\n        this.sourceType = sourceType;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", memberId=\").append(memberId);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", changeType=\").append(changeType);\n        sb.append(\", changeCount=\").append(changeCount);\n        sb.append(\", operateMan=\").append(operateMan);\n        sb.append(\", operateNote=\").append(operateNote);\n        sb.append(\", sourceType=\").append(sourceType);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsGrowthChangeHistoryExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UmsGrowthChangeHistoryExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsGrowthChangeHistoryExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNull() {\n            addCriterion(\"member_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNotNull() {\n            addCriterion(\"member_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdEqualTo(Long value) {\n            addCriterion(\"member_id =\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotEqualTo(Long value) {\n            addCriterion(\"member_id <>\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThan(Long value) {\n            addCriterion(\"member_id >\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_id >=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThan(Long value) {\n            addCriterion(\"member_id <\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_id <=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIn(List<Long> values) {\n            addCriterion(\"member_id in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotIn(List<Long> values) {\n            addCriterion(\"member_id not in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_id between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_id not between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeIsNull() {\n            addCriterion(\"change_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeIsNotNull() {\n            addCriterion(\"change_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeEqualTo(Integer value) {\n            addCriterion(\"change_type =\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeNotEqualTo(Integer value) {\n            addCriterion(\"change_type <>\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeGreaterThan(Integer value) {\n            addCriterion(\"change_type >\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"change_type >=\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeLessThan(Integer value) {\n            addCriterion(\"change_type <\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"change_type <=\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeIn(List<Integer> values) {\n            addCriterion(\"change_type in\", values, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeNotIn(List<Integer> values) {\n            addCriterion(\"change_type not in\", values, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"change_type between\", value1, value2, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"change_type not between\", value1, value2, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountIsNull() {\n            addCriterion(\"change_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountIsNotNull() {\n            addCriterion(\"change_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountEqualTo(Integer value) {\n            addCriterion(\"change_count =\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountNotEqualTo(Integer value) {\n            addCriterion(\"change_count <>\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountGreaterThan(Integer value) {\n            addCriterion(\"change_count >\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"change_count >=\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountLessThan(Integer value) {\n            addCriterion(\"change_count <\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"change_count <=\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountIn(List<Integer> values) {\n            addCriterion(\"change_count in\", values, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountNotIn(List<Integer> values) {\n            addCriterion(\"change_count not in\", values, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"change_count between\", value1, value2, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"change_count not between\", value1, value2, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIsNull() {\n            addCriterion(\"operate_man is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIsNotNull() {\n            addCriterion(\"operate_man is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManEqualTo(String value) {\n            addCriterion(\"operate_man =\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotEqualTo(String value) {\n            addCriterion(\"operate_man <>\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManGreaterThan(String value) {\n            addCriterion(\"operate_man >\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManGreaterThanOrEqualTo(String value) {\n            addCriterion(\"operate_man >=\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLessThan(String value) {\n            addCriterion(\"operate_man <\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLessThanOrEqualTo(String value) {\n            addCriterion(\"operate_man <=\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLike(String value) {\n            addCriterion(\"operate_man like\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotLike(String value) {\n            addCriterion(\"operate_man not like\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIn(List<String> values) {\n            addCriterion(\"operate_man in\", values, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotIn(List<String> values) {\n            addCriterion(\"operate_man not in\", values, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManBetween(String value1, String value2) {\n            addCriterion(\"operate_man between\", value1, value2, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotBetween(String value1, String value2) {\n            addCriterion(\"operate_man not between\", value1, value2, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteIsNull() {\n            addCriterion(\"operate_note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteIsNotNull() {\n            addCriterion(\"operate_note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteEqualTo(String value) {\n            addCriterion(\"operate_note =\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteNotEqualTo(String value) {\n            addCriterion(\"operate_note <>\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteGreaterThan(String value) {\n            addCriterion(\"operate_note >\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"operate_note >=\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteLessThan(String value) {\n            addCriterion(\"operate_note <\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"operate_note <=\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteLike(String value) {\n            addCriterion(\"operate_note like\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteNotLike(String value) {\n            addCriterion(\"operate_note not like\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteIn(List<String> values) {\n            addCriterion(\"operate_note in\", values, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteNotIn(List<String> values) {\n            addCriterion(\"operate_note not in\", values, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteBetween(String value1, String value2) {\n            addCriterion(\"operate_note between\", value1, value2, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteNotBetween(String value1, String value2) {\n            addCriterion(\"operate_note not between\", value1, value2, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIsNull() {\n            addCriterion(\"source_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIsNotNull() {\n            addCriterion(\"source_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeEqualTo(Integer value) {\n            addCriterion(\"source_type =\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotEqualTo(Integer value) {\n            addCriterion(\"source_type <>\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeGreaterThan(Integer value) {\n            addCriterion(\"source_type >\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"source_type >=\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeLessThan(Integer value) {\n            addCriterion(\"source_type <\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"source_type <=\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIn(List<Integer> values) {\n            addCriterion(\"source_type in\", values, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotIn(List<Integer> values) {\n            addCriterion(\"source_type not in\", values, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"source_type between\", value1, value2, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"source_type not between\", value1, value2, \"sourceType\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsIntegrationChangeHistory.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class UmsIntegrationChangeHistory implements Serializable {\n    private Long id;\n\n    private Long memberId;\n\n    private Date createTime;\n\n    @Schema(title = \"改变类型：0->增加；1->减少\")\n    private Integer changeType;\n\n    @Schema(title = \"积分改变数量\")\n    private Integer changeCount;\n\n    @Schema(title = \"操作人员\")\n    private String operateMan;\n\n    @Schema(title = \"操作备注\")\n    private String operateNote;\n\n    @Schema(title = \"积分来源：0->购物；1->管理员修改\")\n    private Integer sourceType;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getChangeType() {\n        return changeType;\n    }\n\n    public void setChangeType(Integer changeType) {\n        this.changeType = changeType;\n    }\n\n    public Integer getChangeCount() {\n        return changeCount;\n    }\n\n    public void setChangeCount(Integer changeCount) {\n        this.changeCount = changeCount;\n    }\n\n    public String getOperateMan() {\n        return operateMan;\n    }\n\n    public void setOperateMan(String operateMan) {\n        this.operateMan = operateMan;\n    }\n\n    public String getOperateNote() {\n        return operateNote;\n    }\n\n    public void setOperateNote(String operateNote) {\n        this.operateNote = operateNote;\n    }\n\n    public Integer getSourceType() {\n        return sourceType;\n    }\n\n    public void setSourceType(Integer sourceType) {\n        this.sourceType = sourceType;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", memberId=\").append(memberId);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", changeType=\").append(changeType);\n        sb.append(\", changeCount=\").append(changeCount);\n        sb.append(\", operateMan=\").append(operateMan);\n        sb.append(\", operateNote=\").append(operateNote);\n        sb.append(\", sourceType=\").append(sourceType);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsIntegrationChangeHistoryExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UmsIntegrationChangeHistoryExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsIntegrationChangeHistoryExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNull() {\n            addCriterion(\"member_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNotNull() {\n            addCriterion(\"member_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdEqualTo(Long value) {\n            addCriterion(\"member_id =\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotEqualTo(Long value) {\n            addCriterion(\"member_id <>\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThan(Long value) {\n            addCriterion(\"member_id >\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_id >=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThan(Long value) {\n            addCriterion(\"member_id <\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_id <=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIn(List<Long> values) {\n            addCriterion(\"member_id in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotIn(List<Long> values) {\n            addCriterion(\"member_id not in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_id between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_id not between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeIsNull() {\n            addCriterion(\"change_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeIsNotNull() {\n            addCriterion(\"change_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeEqualTo(Integer value) {\n            addCriterion(\"change_type =\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeNotEqualTo(Integer value) {\n            addCriterion(\"change_type <>\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeGreaterThan(Integer value) {\n            addCriterion(\"change_type >\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"change_type >=\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeLessThan(Integer value) {\n            addCriterion(\"change_type <\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"change_type <=\", value, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeIn(List<Integer> values) {\n            addCriterion(\"change_type in\", values, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeNotIn(List<Integer> values) {\n            addCriterion(\"change_type not in\", values, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"change_type between\", value1, value2, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"change_type not between\", value1, value2, \"changeType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountIsNull() {\n            addCriterion(\"change_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountIsNotNull() {\n            addCriterion(\"change_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountEqualTo(Integer value) {\n            addCriterion(\"change_count =\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountNotEqualTo(Integer value) {\n            addCriterion(\"change_count <>\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountGreaterThan(Integer value) {\n            addCriterion(\"change_count >\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"change_count >=\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountLessThan(Integer value) {\n            addCriterion(\"change_count <\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"change_count <=\", value, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountIn(List<Integer> values) {\n            addCriterion(\"change_count in\", values, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountNotIn(List<Integer> values) {\n            addCriterion(\"change_count not in\", values, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"change_count between\", value1, value2, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andChangeCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"change_count not between\", value1, value2, \"changeCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIsNull() {\n            addCriterion(\"operate_man is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIsNotNull() {\n            addCriterion(\"operate_man is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManEqualTo(String value) {\n            addCriterion(\"operate_man =\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotEqualTo(String value) {\n            addCriterion(\"operate_man <>\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManGreaterThan(String value) {\n            addCriterion(\"operate_man >\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManGreaterThanOrEqualTo(String value) {\n            addCriterion(\"operate_man >=\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLessThan(String value) {\n            addCriterion(\"operate_man <\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLessThanOrEqualTo(String value) {\n            addCriterion(\"operate_man <=\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManLike(String value) {\n            addCriterion(\"operate_man like\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotLike(String value) {\n            addCriterion(\"operate_man not like\", value, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManIn(List<String> values) {\n            addCriterion(\"operate_man in\", values, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotIn(List<String> values) {\n            addCriterion(\"operate_man not in\", values, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManBetween(String value1, String value2) {\n            addCriterion(\"operate_man between\", value1, value2, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateManNotBetween(String value1, String value2) {\n            addCriterion(\"operate_man not between\", value1, value2, \"operateMan\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteIsNull() {\n            addCriterion(\"operate_note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteIsNotNull() {\n            addCriterion(\"operate_note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteEqualTo(String value) {\n            addCriterion(\"operate_note =\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteNotEqualTo(String value) {\n            addCriterion(\"operate_note <>\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteGreaterThan(String value) {\n            addCriterion(\"operate_note >\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"operate_note >=\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteLessThan(String value) {\n            addCriterion(\"operate_note <\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"operate_note <=\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteLike(String value) {\n            addCriterion(\"operate_note like\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteNotLike(String value) {\n            addCriterion(\"operate_note not like\", value, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteIn(List<String> values) {\n            addCriterion(\"operate_note in\", values, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteNotIn(List<String> values) {\n            addCriterion(\"operate_note not in\", values, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteBetween(String value1, String value2) {\n            addCriterion(\"operate_note between\", value1, value2, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOperateNoteNotBetween(String value1, String value2) {\n            addCriterion(\"operate_note not between\", value1, value2, \"operateNote\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIsNull() {\n            addCriterion(\"source_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIsNotNull() {\n            addCriterion(\"source_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeEqualTo(Integer value) {\n            addCriterion(\"source_type =\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotEqualTo(Integer value) {\n            addCriterion(\"source_type <>\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeGreaterThan(Integer value) {\n            addCriterion(\"source_type >\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"source_type >=\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeLessThan(Integer value) {\n            addCriterion(\"source_type <\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"source_type <=\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIn(List<Integer> values) {\n            addCriterion(\"source_type in\", values, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotIn(List<Integer> values) {\n            addCriterion(\"source_type not in\", values, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"source_type between\", value1, value2, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"source_type not between\", value1, value2, \"sourceType\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsIntegrationConsumeSetting.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class UmsIntegrationConsumeSetting implements Serializable {\n    private Long id;\n\n    @Schema(title = \"每一元需要抵扣的积分数量\")\n    private Integer deductionPerAmount;\n\n    @Schema(title = \"每笔订单最高抵用百分比\")\n    private Integer maxPercentPerOrder;\n\n    @Schema(title = \"每次使用积分最小单位100\")\n    private Integer useUnit;\n\n    @Schema(title = \"是否可以和优惠券同用；0->不可以；1->可以\")\n    private Integer couponStatus;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Integer getDeductionPerAmount() {\n        return deductionPerAmount;\n    }\n\n    public void setDeductionPerAmount(Integer deductionPerAmount) {\n        this.deductionPerAmount = deductionPerAmount;\n    }\n\n    public Integer getMaxPercentPerOrder() {\n        return maxPercentPerOrder;\n    }\n\n    public void setMaxPercentPerOrder(Integer maxPercentPerOrder) {\n        this.maxPercentPerOrder = maxPercentPerOrder;\n    }\n\n    public Integer getUseUnit() {\n        return useUnit;\n    }\n\n    public void setUseUnit(Integer useUnit) {\n        this.useUnit = useUnit;\n    }\n\n    public Integer getCouponStatus() {\n        return couponStatus;\n    }\n\n    public void setCouponStatus(Integer couponStatus) {\n        this.couponStatus = couponStatus;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", deductionPerAmount=\").append(deductionPerAmount);\n        sb.append(\", maxPercentPerOrder=\").append(maxPercentPerOrder);\n        sb.append(\", useUnit=\").append(useUnit);\n        sb.append(\", couponStatus=\").append(couponStatus);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsIntegrationConsumeSettingExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsIntegrationConsumeSettingExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsIntegrationConsumeSettingExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountIsNull() {\n            addCriterion(\"deduction_per_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountIsNotNull() {\n            addCriterion(\"deduction_per_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountEqualTo(Integer value) {\n            addCriterion(\"deduction_per_amount =\", value, \"deductionPerAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountNotEqualTo(Integer value) {\n            addCriterion(\"deduction_per_amount <>\", value, \"deductionPerAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountGreaterThan(Integer value) {\n            addCriterion(\"deduction_per_amount >\", value, \"deductionPerAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"deduction_per_amount >=\", value, \"deductionPerAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountLessThan(Integer value) {\n            addCriterion(\"deduction_per_amount <\", value, \"deductionPerAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"deduction_per_amount <=\", value, \"deductionPerAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountIn(List<Integer> values) {\n            addCriterion(\"deduction_per_amount in\", values, \"deductionPerAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountNotIn(List<Integer> values) {\n            addCriterion(\"deduction_per_amount not in\", values, \"deductionPerAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountBetween(Integer value1, Integer value2) {\n            addCriterion(\"deduction_per_amount between\", value1, value2, \"deductionPerAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDeductionPerAmountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"deduction_per_amount not between\", value1, value2, \"deductionPerAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderIsNull() {\n            addCriterion(\"max_percent_per_order is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderIsNotNull() {\n            addCriterion(\"max_percent_per_order is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderEqualTo(Integer value) {\n            addCriterion(\"max_percent_per_order =\", value, \"maxPercentPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderNotEqualTo(Integer value) {\n            addCriterion(\"max_percent_per_order <>\", value, \"maxPercentPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderGreaterThan(Integer value) {\n            addCriterion(\"max_percent_per_order >\", value, \"maxPercentPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"max_percent_per_order >=\", value, \"maxPercentPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderLessThan(Integer value) {\n            addCriterion(\"max_percent_per_order <\", value, \"maxPercentPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderLessThanOrEqualTo(Integer value) {\n            addCriterion(\"max_percent_per_order <=\", value, \"maxPercentPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderIn(List<Integer> values) {\n            addCriterion(\"max_percent_per_order in\", values, \"maxPercentPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderNotIn(List<Integer> values) {\n            addCriterion(\"max_percent_per_order not in\", values, \"maxPercentPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderBetween(Integer value1, Integer value2) {\n            addCriterion(\"max_percent_per_order between\", value1, value2, \"maxPercentPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPercentPerOrderNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"max_percent_per_order not between\", value1, value2, \"maxPercentPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitIsNull() {\n            addCriterion(\"use_unit is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitIsNotNull() {\n            addCriterion(\"use_unit is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitEqualTo(Integer value) {\n            addCriterion(\"use_unit =\", value, \"useUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitNotEqualTo(Integer value) {\n            addCriterion(\"use_unit <>\", value, \"useUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitGreaterThan(Integer value) {\n            addCriterion(\"use_unit >\", value, \"useUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"use_unit >=\", value, \"useUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitLessThan(Integer value) {\n            addCriterion(\"use_unit <\", value, \"useUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitLessThanOrEqualTo(Integer value) {\n            addCriterion(\"use_unit <=\", value, \"useUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitIn(List<Integer> values) {\n            addCriterion(\"use_unit in\", values, \"useUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitNotIn(List<Integer> values) {\n            addCriterion(\"use_unit not in\", values, \"useUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_unit between\", value1, value2, \"useUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUseUnitNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"use_unit not between\", value1, value2, \"useUnit\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusIsNull() {\n            addCriterion(\"coupon_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusIsNotNull() {\n            addCriterion(\"coupon_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusEqualTo(Integer value) {\n            addCriterion(\"coupon_status =\", value, \"couponStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusNotEqualTo(Integer value) {\n            addCriterion(\"coupon_status <>\", value, \"couponStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusGreaterThan(Integer value) {\n            addCriterion(\"coupon_status >\", value, \"couponStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"coupon_status >=\", value, \"couponStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusLessThan(Integer value) {\n            addCriterion(\"coupon_status <\", value, \"couponStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"coupon_status <=\", value, \"couponStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusIn(List<Integer> values) {\n            addCriterion(\"coupon_status in\", values, \"couponStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusNotIn(List<Integer> values) {\n            addCriterion(\"coupon_status not in\", values, \"couponStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"coupon_status between\", value1, value2, \"couponStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"coupon_status not between\", value1, value2, \"couponStatus\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMember.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class UmsMember implements Serializable {\n    private Long id;\n\n    private Long memberLevelId;\n\n    @Schema(title = \"用户名\")\n    private String username;\n\n    @Schema(title = \"密码\")\n    private String password;\n\n    @Schema(title = \"昵称\")\n    private String nickname;\n\n    @Schema(title = \"手机号码\")\n    private String phone;\n\n    @Schema(title = \"帐号启用状态:0->禁用；1->启用\")\n    private Integer status;\n\n    @Schema(title = \"注册时间\")\n    private Date createTime;\n\n    @Schema(title = \"头像\")\n    private String icon;\n\n    @Schema(title = \"性别：0->未知；1->男；2->女\")\n    private Integer gender;\n\n    @Schema(title = \"生日\")\n    private Date birthday;\n\n    @Schema(title = \"所做城市\")\n    private String city;\n\n    @Schema(title = \"职业\")\n    private String job;\n\n    @Schema(title = \"个性签名\")\n    private String personalizedSignature;\n\n    @Schema(title = \"用户来源\")\n    private Integer sourceType;\n\n    @Schema(title = \"积分\")\n    private Integer integration;\n\n    @Schema(title = \"成长值\")\n    private Integer growth;\n\n    @Schema(title = \"剩余抽奖次数\")\n    private Integer luckeyCount;\n\n    @Schema(title = \"历史积分数量\")\n    private Integer historyIntegration;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getMemberLevelId() {\n        return memberLevelId;\n    }\n\n    public void setMemberLevelId(Long memberLevelId) {\n        this.memberLevelId = memberLevelId;\n    }\n\n    public String getUsername() {\n        return username;\n    }\n\n    public void setUsername(String username) {\n        this.username = username;\n    }\n\n    public String getPassword() {\n        return password;\n    }\n\n    public void setPassword(String password) {\n        this.password = password;\n    }\n\n    public String getNickname() {\n        return nickname;\n    }\n\n    public void setNickname(String nickname) {\n        this.nickname = nickname;\n    }\n\n    public String getPhone() {\n        return phone;\n    }\n\n    public void setPhone(String phone) {\n        this.phone = phone;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public String getIcon() {\n        return icon;\n    }\n\n    public void setIcon(String icon) {\n        this.icon = icon;\n    }\n\n    public Integer getGender() {\n        return gender;\n    }\n\n    public void setGender(Integer gender) {\n        this.gender = gender;\n    }\n\n    public Date getBirthday() {\n        return birthday;\n    }\n\n    public void setBirthday(Date birthday) {\n        this.birthday = birthday;\n    }\n\n    public String getCity() {\n        return city;\n    }\n\n    public void setCity(String city) {\n        this.city = city;\n    }\n\n    public String getJob() {\n        return job;\n    }\n\n    public void setJob(String job) {\n        this.job = job;\n    }\n\n    public String getPersonalizedSignature() {\n        return personalizedSignature;\n    }\n\n    public void setPersonalizedSignature(String personalizedSignature) {\n        this.personalizedSignature = personalizedSignature;\n    }\n\n    public Integer getSourceType() {\n        return sourceType;\n    }\n\n    public void setSourceType(Integer sourceType) {\n        this.sourceType = sourceType;\n    }\n\n    public Integer getIntegration() {\n        return integration;\n    }\n\n    public void setIntegration(Integer integration) {\n        this.integration = integration;\n    }\n\n    public Integer getGrowth() {\n        return growth;\n    }\n\n    public void setGrowth(Integer growth) {\n        this.growth = growth;\n    }\n\n    public Integer getLuckeyCount() {\n        return luckeyCount;\n    }\n\n    public void setLuckeyCount(Integer luckeyCount) {\n        this.luckeyCount = luckeyCount;\n    }\n\n    public Integer getHistoryIntegration() {\n        return historyIntegration;\n    }\n\n    public void setHistoryIntegration(Integer historyIntegration) {\n        this.historyIntegration = historyIntegration;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", memberLevelId=\").append(memberLevelId);\n        sb.append(\", username=\").append(username);\n        sb.append(\", password=\").append(password);\n        sb.append(\", nickname=\").append(nickname);\n        sb.append(\", phone=\").append(phone);\n        sb.append(\", status=\").append(status);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", icon=\").append(icon);\n        sb.append(\", gender=\").append(gender);\n        sb.append(\", birthday=\").append(birthday);\n        sb.append(\", city=\").append(city);\n        sb.append(\", job=\").append(job);\n        sb.append(\", personalizedSignature=\").append(personalizedSignature);\n        sb.append(\", sourceType=\").append(sourceType);\n        sb.append(\", integration=\").append(integration);\n        sb.append(\", growth=\").append(growth);\n        sb.append(\", luckeyCount=\").append(luckeyCount);\n        sb.append(\", historyIntegration=\").append(historyIntegration);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.Iterator;\nimport java.util.List;\n\npublic class UmsMemberExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsMemberExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        protected void addCriterionForJDBCDate(String condition, Date value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            addCriterion(condition, new java.sql.Date(value.getTime()), property);\n        }\n\n        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {\n            if (values == null || values.size() == 0) {\n                throw new RuntimeException(\"Value list for \" + property + \" cannot be null or empty\");\n            }\n            List<java.sql.Date> dateList = new ArrayList<>();\n            Iterator<Date> iter = values.iterator();\n            while (iter.hasNext()) {\n                dateList.add(new java.sql.Date(iter.next().getTime()));\n            }\n            addCriterion(condition, dateList, property);\n        }\n\n        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdIsNull() {\n            addCriterion(\"member_level_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdIsNotNull() {\n            addCriterion(\"member_level_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdEqualTo(Long value) {\n            addCriterion(\"member_level_id =\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdNotEqualTo(Long value) {\n            addCriterion(\"member_level_id <>\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdGreaterThan(Long value) {\n            addCriterion(\"member_level_id >\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_level_id >=\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdLessThan(Long value) {\n            addCriterion(\"member_level_id <\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_level_id <=\", value, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdIn(List<Long> values) {\n            addCriterion(\"member_level_id in\", values, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdNotIn(List<Long> values) {\n            addCriterion(\"member_level_id not in\", values, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_level_id between\", value1, value2, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberLevelIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_level_id not between\", value1, value2, \"memberLevelId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNull() {\n            addCriterion(\"username is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIsNotNull() {\n            addCriterion(\"username is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameEqualTo(String value) {\n            addCriterion(\"username =\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotEqualTo(String value) {\n            addCriterion(\"username <>\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThan(String value) {\n            addCriterion(\"username >\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"username >=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThan(String value) {\n            addCriterion(\"username <\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLessThanOrEqualTo(String value) {\n            addCriterion(\"username <=\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameLike(String value) {\n            addCriterion(\"username like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotLike(String value) {\n            addCriterion(\"username not like\", value, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameIn(List<String> values) {\n            addCriterion(\"username in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotIn(List<String> values) {\n            addCriterion(\"username not in\", values, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameBetween(String value1, String value2) {\n            addCriterion(\"username between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUsernameNotBetween(String value1, String value2) {\n            addCriterion(\"username not between\", value1, value2, \"username\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIsNull() {\n            addCriterion(\"password is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIsNotNull() {\n            addCriterion(\"password is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordEqualTo(String value) {\n            addCriterion(\"password =\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotEqualTo(String value) {\n            addCriterion(\"password <>\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordGreaterThan(String value) {\n            addCriterion(\"password >\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordGreaterThanOrEqualTo(String value) {\n            addCriterion(\"password >=\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLessThan(String value) {\n            addCriterion(\"password <\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLessThanOrEqualTo(String value) {\n            addCriterion(\"password <=\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordLike(String value) {\n            addCriterion(\"password like\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotLike(String value) {\n            addCriterion(\"password not like\", value, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordIn(List<String> values) {\n            addCriterion(\"password in\", values, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotIn(List<String> values) {\n            addCriterion(\"password not in\", values, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordBetween(String value1, String value2) {\n            addCriterion(\"password between\", value1, value2, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPasswordNotBetween(String value1, String value2) {\n            addCriterion(\"password not between\", value1, value2, \"password\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameIsNull() {\n            addCriterion(\"nickname is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameIsNotNull() {\n            addCriterion(\"nickname is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameEqualTo(String value) {\n            addCriterion(\"nickname =\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameNotEqualTo(String value) {\n            addCriterion(\"nickname <>\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameGreaterThan(String value) {\n            addCriterion(\"nickname >\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"nickname >=\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameLessThan(String value) {\n            addCriterion(\"nickname <\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameLessThanOrEqualTo(String value) {\n            addCriterion(\"nickname <=\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameLike(String value) {\n            addCriterion(\"nickname like\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameNotLike(String value) {\n            addCriterion(\"nickname not like\", value, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameIn(List<String> values) {\n            addCriterion(\"nickname in\", values, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameNotIn(List<String> values) {\n            addCriterion(\"nickname not in\", values, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameBetween(String value1, String value2) {\n            addCriterion(\"nickname between\", value1, value2, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNicknameNotBetween(String value1, String value2) {\n            addCriterion(\"nickname not between\", value1, value2, \"nickname\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneIsNull() {\n            addCriterion(\"phone is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneIsNotNull() {\n            addCriterion(\"phone is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneEqualTo(String value) {\n            addCriterion(\"phone =\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNotEqualTo(String value) {\n            addCriterion(\"phone <>\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneGreaterThan(String value) {\n            addCriterion(\"phone >\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneGreaterThanOrEqualTo(String value) {\n            addCriterion(\"phone >=\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneLessThan(String value) {\n            addCriterion(\"phone <\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneLessThanOrEqualTo(String value) {\n            addCriterion(\"phone <=\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneLike(String value) {\n            addCriterion(\"phone like\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNotLike(String value) {\n            addCriterion(\"phone not like\", value, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneIn(List<String> values) {\n            addCriterion(\"phone in\", values, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNotIn(List<String> values) {\n            addCriterion(\"phone not in\", values, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneBetween(String value1, String value2) {\n            addCriterion(\"phone between\", value1, value2, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNotBetween(String value1, String value2) {\n            addCriterion(\"phone not between\", value1, value2, \"phone\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNull() {\n            addCriterion(\"icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNotNull() {\n            addCriterion(\"icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconEqualTo(String value) {\n            addCriterion(\"icon =\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotEqualTo(String value) {\n            addCriterion(\"icon <>\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThan(String value) {\n            addCriterion(\"icon >\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"icon >=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThan(String value) {\n            addCriterion(\"icon <\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThanOrEqualTo(String value) {\n            addCriterion(\"icon <=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLike(String value) {\n            addCriterion(\"icon like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotLike(String value) {\n            addCriterion(\"icon not like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIn(List<String> values) {\n            addCriterion(\"icon in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotIn(List<String> values) {\n            addCriterion(\"icon not in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconBetween(String value1, String value2) {\n            addCriterion(\"icon between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotBetween(String value1, String value2) {\n            addCriterion(\"icon not between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderIsNull() {\n            addCriterion(\"gender is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderIsNotNull() {\n            addCriterion(\"gender is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderEqualTo(Integer value) {\n            addCriterion(\"gender =\", value, \"gender\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderNotEqualTo(Integer value) {\n            addCriterion(\"gender <>\", value, \"gender\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderGreaterThan(Integer value) {\n            addCriterion(\"gender >\", value, \"gender\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"gender >=\", value, \"gender\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderLessThan(Integer value) {\n            addCriterion(\"gender <\", value, \"gender\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderLessThanOrEqualTo(Integer value) {\n            addCriterion(\"gender <=\", value, \"gender\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderIn(List<Integer> values) {\n            addCriterion(\"gender in\", values, \"gender\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderNotIn(List<Integer> values) {\n            addCriterion(\"gender not in\", values, \"gender\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderBetween(Integer value1, Integer value2) {\n            addCriterion(\"gender between\", value1, value2, \"gender\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGenderNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"gender not between\", value1, value2, \"gender\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayIsNull() {\n            addCriterion(\"birthday is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayIsNotNull() {\n            addCriterion(\"birthday is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthday =\", value, \"birthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayNotEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthday <>\", value, \"birthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayGreaterThan(Date value) {\n            addCriterionForJDBCDate(\"birthday >\", value, \"birthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayGreaterThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthday >=\", value, \"birthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayLessThan(Date value) {\n            addCriterionForJDBCDate(\"birthday <\", value, \"birthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayLessThanOrEqualTo(Date value) {\n            addCriterionForJDBCDate(\"birthday <=\", value, \"birthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayIn(List<Date> values) {\n            addCriterionForJDBCDate(\"birthday in\", values, \"birthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayNotIn(List<Date> values) {\n            addCriterionForJDBCDate(\"birthday not in\", values, \"birthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"birthday between\", value1, value2, \"birthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andBirthdayNotBetween(Date value1, Date value2) {\n            addCriterionForJDBCDate(\"birthday not between\", value1, value2, \"birthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIsNull() {\n            addCriterion(\"city is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIsNotNull() {\n            addCriterion(\"city is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityEqualTo(String value) {\n            addCriterion(\"city =\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotEqualTo(String value) {\n            addCriterion(\"city <>\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityGreaterThan(String value) {\n            addCriterion(\"city >\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityGreaterThanOrEqualTo(String value) {\n            addCriterion(\"city >=\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLessThan(String value) {\n            addCriterion(\"city <\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLessThanOrEqualTo(String value) {\n            addCriterion(\"city <=\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLike(String value) {\n            addCriterion(\"city like\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotLike(String value) {\n            addCriterion(\"city not like\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIn(List<String> values) {\n            addCriterion(\"city in\", values, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotIn(List<String> values) {\n            addCriterion(\"city not in\", values, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityBetween(String value1, String value2) {\n            addCriterion(\"city between\", value1, value2, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotBetween(String value1, String value2) {\n            addCriterion(\"city not between\", value1, value2, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobIsNull() {\n            addCriterion(\"job is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobIsNotNull() {\n            addCriterion(\"job is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobEqualTo(String value) {\n            addCriterion(\"job =\", value, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobNotEqualTo(String value) {\n            addCriterion(\"job <>\", value, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobGreaterThan(String value) {\n            addCriterion(\"job >\", value, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobGreaterThanOrEqualTo(String value) {\n            addCriterion(\"job >=\", value, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobLessThan(String value) {\n            addCriterion(\"job <\", value, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobLessThanOrEqualTo(String value) {\n            addCriterion(\"job <=\", value, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobLike(String value) {\n            addCriterion(\"job like\", value, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobNotLike(String value) {\n            addCriterion(\"job not like\", value, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobIn(List<String> values) {\n            addCriterion(\"job in\", values, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobNotIn(List<String> values) {\n            addCriterion(\"job not in\", values, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobBetween(String value1, String value2) {\n            addCriterion(\"job between\", value1, value2, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andJobNotBetween(String value1, String value2) {\n            addCriterion(\"job not between\", value1, value2, \"job\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureIsNull() {\n            addCriterion(\"personalized_signature is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureIsNotNull() {\n            addCriterion(\"personalized_signature is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureEqualTo(String value) {\n            addCriterion(\"personalized_signature =\", value, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureNotEqualTo(String value) {\n            addCriterion(\"personalized_signature <>\", value, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureGreaterThan(String value) {\n            addCriterion(\"personalized_signature >\", value, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureGreaterThanOrEqualTo(String value) {\n            addCriterion(\"personalized_signature >=\", value, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureLessThan(String value) {\n            addCriterion(\"personalized_signature <\", value, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureLessThanOrEqualTo(String value) {\n            addCriterion(\"personalized_signature <=\", value, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureLike(String value) {\n            addCriterion(\"personalized_signature like\", value, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureNotLike(String value) {\n            addCriterion(\"personalized_signature not like\", value, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureIn(List<String> values) {\n            addCriterion(\"personalized_signature in\", values, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureNotIn(List<String> values) {\n            addCriterion(\"personalized_signature not in\", values, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureBetween(String value1, String value2) {\n            addCriterion(\"personalized_signature between\", value1, value2, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPersonalizedSignatureNotBetween(String value1, String value2) {\n            addCriterion(\"personalized_signature not between\", value1, value2, \"personalizedSignature\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIsNull() {\n            addCriterion(\"source_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIsNotNull() {\n            addCriterion(\"source_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeEqualTo(Integer value) {\n            addCriterion(\"source_type =\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotEqualTo(Integer value) {\n            addCriterion(\"source_type <>\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeGreaterThan(Integer value) {\n            addCriterion(\"source_type >\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"source_type >=\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeLessThan(Integer value) {\n            addCriterion(\"source_type <\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"source_type <=\", value, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeIn(List<Integer> values) {\n            addCriterion(\"source_type in\", values, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotIn(List<Integer> values) {\n            addCriterion(\"source_type not in\", values, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"source_type between\", value1, value2, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSourceTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"source_type not between\", value1, value2, \"sourceType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationIsNull() {\n            addCriterion(\"integration is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationIsNotNull() {\n            addCriterion(\"integration is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationEqualTo(Integer value) {\n            addCriterion(\"integration =\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationNotEqualTo(Integer value) {\n            addCriterion(\"integration <>\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationGreaterThan(Integer value) {\n            addCriterion(\"integration >\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"integration >=\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationLessThan(Integer value) {\n            addCriterion(\"integration <\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationLessThanOrEqualTo(Integer value) {\n            addCriterion(\"integration <=\", value, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationIn(List<Integer> values) {\n            addCriterion(\"integration in\", values, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationNotIn(List<Integer> values) {\n            addCriterion(\"integration not in\", values, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationBetween(Integer value1, Integer value2) {\n            addCriterion(\"integration between\", value1, value2, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntegrationNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"integration not between\", value1, value2, \"integration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthIsNull() {\n            addCriterion(\"growth is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthIsNotNull() {\n            addCriterion(\"growth is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthEqualTo(Integer value) {\n            addCriterion(\"growth =\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthNotEqualTo(Integer value) {\n            addCriterion(\"growth <>\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthGreaterThan(Integer value) {\n            addCriterion(\"growth >\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"growth >=\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthLessThan(Integer value) {\n            addCriterion(\"growth <\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthLessThanOrEqualTo(Integer value) {\n            addCriterion(\"growth <=\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthIn(List<Integer> values) {\n            addCriterion(\"growth in\", values, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthNotIn(List<Integer> values) {\n            addCriterion(\"growth not in\", values, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthBetween(Integer value1, Integer value2) {\n            addCriterion(\"growth between\", value1, value2, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"growth not between\", value1, value2, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountIsNull() {\n            addCriterion(\"luckey_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountIsNotNull() {\n            addCriterion(\"luckey_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountEqualTo(Integer value) {\n            addCriterion(\"luckey_count =\", value, \"luckeyCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountNotEqualTo(Integer value) {\n            addCriterion(\"luckey_count <>\", value, \"luckeyCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountGreaterThan(Integer value) {\n            addCriterion(\"luckey_count >\", value, \"luckeyCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"luckey_count >=\", value, \"luckeyCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountLessThan(Integer value) {\n            addCriterion(\"luckey_count <\", value, \"luckeyCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"luckey_count <=\", value, \"luckeyCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountIn(List<Integer> values) {\n            addCriterion(\"luckey_count in\", values, \"luckeyCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountNotIn(List<Integer> values) {\n            addCriterion(\"luckey_count not in\", values, \"luckeyCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"luckey_count between\", value1, value2, \"luckeyCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLuckeyCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"luckey_count not between\", value1, value2, \"luckeyCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationIsNull() {\n            addCriterion(\"history_integration is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationIsNotNull() {\n            addCriterion(\"history_integration is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationEqualTo(Integer value) {\n            addCriterion(\"history_integration =\", value, \"historyIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationNotEqualTo(Integer value) {\n            addCriterion(\"history_integration <>\", value, \"historyIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationGreaterThan(Integer value) {\n            addCriterion(\"history_integration >\", value, \"historyIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"history_integration >=\", value, \"historyIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationLessThan(Integer value) {\n            addCriterion(\"history_integration <\", value, \"historyIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationLessThanOrEqualTo(Integer value) {\n            addCriterion(\"history_integration <=\", value, \"historyIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationIn(List<Integer> values) {\n            addCriterion(\"history_integration in\", values, \"historyIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationNotIn(List<Integer> values) {\n            addCriterion(\"history_integration not in\", values, \"historyIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationBetween(Integer value1, Integer value2) {\n            addCriterion(\"history_integration between\", value1, value2, \"historyIntegration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHistoryIntegrationNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"history_integration not between\", value1, value2, \"historyIntegration\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberLevel.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\npublic class UmsMemberLevel implements Serializable {\n    private Long id;\n\n    private String name;\n\n    private Integer growthPoint;\n\n    @Schema(title = \"是否为默认等级：0->不是；1->是\")\n    private Integer defaultStatus;\n\n    @Schema(title = \"免运费标准\")\n    private BigDecimal freeFreightPoint;\n\n    @Schema(title = \"每次评价获取的成长值\")\n    private Integer commentGrowthPoint;\n\n    @Schema(title = \"是否有免邮特权\")\n    private Integer priviledgeFreeFreight;\n\n    @Schema(title = \"是否有签到特权\")\n    private Integer priviledgeSignIn;\n\n    @Schema(title = \"是否有评论获奖励特权\")\n    private Integer priviledgeComment;\n\n    @Schema(title = \"是否有专享活动特权\")\n    private Integer priviledgePromotion;\n\n    @Schema(title = \"是否有会员价格特权\")\n    private Integer priviledgeMemberPrice;\n\n    @Schema(title = \"是否有生日特权\")\n    private Integer priviledgeBirthday;\n\n    private String note;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getGrowthPoint() {\n        return growthPoint;\n    }\n\n    public void setGrowthPoint(Integer growthPoint) {\n        this.growthPoint = growthPoint;\n    }\n\n    public Integer getDefaultStatus() {\n        return defaultStatus;\n    }\n\n    public void setDefaultStatus(Integer defaultStatus) {\n        this.defaultStatus = defaultStatus;\n    }\n\n    public BigDecimal getFreeFreightPoint() {\n        return freeFreightPoint;\n    }\n\n    public void setFreeFreightPoint(BigDecimal freeFreightPoint) {\n        this.freeFreightPoint = freeFreightPoint;\n    }\n\n    public Integer getCommentGrowthPoint() {\n        return commentGrowthPoint;\n    }\n\n    public void setCommentGrowthPoint(Integer commentGrowthPoint) {\n        this.commentGrowthPoint = commentGrowthPoint;\n    }\n\n    public Integer getPriviledgeFreeFreight() {\n        return priviledgeFreeFreight;\n    }\n\n    public void setPriviledgeFreeFreight(Integer priviledgeFreeFreight) {\n        this.priviledgeFreeFreight = priviledgeFreeFreight;\n    }\n\n    public Integer getPriviledgeSignIn() {\n        return priviledgeSignIn;\n    }\n\n    public void setPriviledgeSignIn(Integer priviledgeSignIn) {\n        this.priviledgeSignIn = priviledgeSignIn;\n    }\n\n    public Integer getPriviledgeComment() {\n        return priviledgeComment;\n    }\n\n    public void setPriviledgeComment(Integer priviledgeComment) {\n        this.priviledgeComment = priviledgeComment;\n    }\n\n    public Integer getPriviledgePromotion() {\n        return priviledgePromotion;\n    }\n\n    public void setPriviledgePromotion(Integer priviledgePromotion) {\n        this.priviledgePromotion = priviledgePromotion;\n    }\n\n    public Integer getPriviledgeMemberPrice() {\n        return priviledgeMemberPrice;\n    }\n\n    public void setPriviledgeMemberPrice(Integer priviledgeMemberPrice) {\n        this.priviledgeMemberPrice = priviledgeMemberPrice;\n    }\n\n    public Integer getPriviledgeBirthday() {\n        return priviledgeBirthday;\n    }\n\n    public void setPriviledgeBirthday(Integer priviledgeBirthday) {\n        this.priviledgeBirthday = priviledgeBirthday;\n    }\n\n    public String getNote() {\n        return note;\n    }\n\n    public void setNote(String note) {\n        this.note = note;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", growthPoint=\").append(growthPoint);\n        sb.append(\", defaultStatus=\").append(defaultStatus);\n        sb.append(\", freeFreightPoint=\").append(freeFreightPoint);\n        sb.append(\", commentGrowthPoint=\").append(commentGrowthPoint);\n        sb.append(\", priviledgeFreeFreight=\").append(priviledgeFreeFreight);\n        sb.append(\", priviledgeSignIn=\").append(priviledgeSignIn);\n        sb.append(\", priviledgeComment=\").append(priviledgeComment);\n        sb.append(\", priviledgePromotion=\").append(priviledgePromotion);\n        sb.append(\", priviledgeMemberPrice=\").append(priviledgeMemberPrice);\n        sb.append(\", priviledgeBirthday=\").append(priviledgeBirthday);\n        sb.append(\", note=\").append(note);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberLevelExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsMemberLevelExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsMemberLevelExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointIsNull() {\n            addCriterion(\"growth_point is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointIsNotNull() {\n            addCriterion(\"growth_point is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointEqualTo(Integer value) {\n            addCriterion(\"growth_point =\", value, \"growthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointNotEqualTo(Integer value) {\n            addCriterion(\"growth_point <>\", value, \"growthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointGreaterThan(Integer value) {\n            addCriterion(\"growth_point >\", value, \"growthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"growth_point >=\", value, \"growthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointLessThan(Integer value) {\n            addCriterion(\"growth_point <\", value, \"growthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointLessThanOrEqualTo(Integer value) {\n            addCriterion(\"growth_point <=\", value, \"growthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointIn(List<Integer> values) {\n            addCriterion(\"growth_point in\", values, \"growthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointNotIn(List<Integer> values) {\n            addCriterion(\"growth_point not in\", values, \"growthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointBetween(Integer value1, Integer value2) {\n            addCriterion(\"growth_point between\", value1, value2, \"growthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthPointNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"growth_point not between\", value1, value2, \"growthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusIsNull() {\n            addCriterion(\"default_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusIsNotNull() {\n            addCriterion(\"default_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusEqualTo(Integer value) {\n            addCriterion(\"default_status =\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusNotEqualTo(Integer value) {\n            addCriterion(\"default_status <>\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusGreaterThan(Integer value) {\n            addCriterion(\"default_status >\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"default_status >=\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusLessThan(Integer value) {\n            addCriterion(\"default_status <\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"default_status <=\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusIn(List<Integer> values) {\n            addCriterion(\"default_status in\", values, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusNotIn(List<Integer> values) {\n            addCriterion(\"default_status not in\", values, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"default_status between\", value1, value2, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"default_status not between\", value1, value2, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointIsNull() {\n            addCriterion(\"free_freight_point is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointIsNotNull() {\n            addCriterion(\"free_freight_point is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointEqualTo(BigDecimal value) {\n            addCriterion(\"free_freight_point =\", value, \"freeFreightPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointNotEqualTo(BigDecimal value) {\n            addCriterion(\"free_freight_point <>\", value, \"freeFreightPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointGreaterThan(BigDecimal value) {\n            addCriterion(\"free_freight_point >\", value, \"freeFreightPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"free_freight_point >=\", value, \"freeFreightPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointLessThan(BigDecimal value) {\n            addCriterion(\"free_freight_point <\", value, \"freeFreightPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"free_freight_point <=\", value, \"freeFreightPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointIn(List<BigDecimal> values) {\n            addCriterion(\"free_freight_point in\", values, \"freeFreightPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointNotIn(List<BigDecimal> values) {\n            addCriterion(\"free_freight_point not in\", values, \"freeFreightPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"free_freight_point between\", value1, value2, \"freeFreightPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFreeFreightPointNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"free_freight_point not between\", value1, value2, \"freeFreightPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointIsNull() {\n            addCriterion(\"comment_growth_point is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointIsNotNull() {\n            addCriterion(\"comment_growth_point is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointEqualTo(Integer value) {\n            addCriterion(\"comment_growth_point =\", value, \"commentGrowthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointNotEqualTo(Integer value) {\n            addCriterion(\"comment_growth_point <>\", value, \"commentGrowthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointGreaterThan(Integer value) {\n            addCriterion(\"comment_growth_point >\", value, \"commentGrowthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"comment_growth_point >=\", value, \"commentGrowthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointLessThan(Integer value) {\n            addCriterion(\"comment_growth_point <\", value, \"commentGrowthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointLessThanOrEqualTo(Integer value) {\n            addCriterion(\"comment_growth_point <=\", value, \"commentGrowthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointIn(List<Integer> values) {\n            addCriterion(\"comment_growth_point in\", values, \"commentGrowthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointNotIn(List<Integer> values) {\n            addCriterion(\"comment_growth_point not in\", values, \"commentGrowthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointBetween(Integer value1, Integer value2) {\n            addCriterion(\"comment_growth_point between\", value1, value2, \"commentGrowthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentGrowthPointNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"comment_growth_point not between\", value1, value2, \"commentGrowthPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightIsNull() {\n            addCriterion(\"priviledge_free_freight is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightIsNotNull() {\n            addCriterion(\"priviledge_free_freight is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightEqualTo(Integer value) {\n            addCriterion(\"priviledge_free_freight =\", value, \"priviledgeFreeFreight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightNotEqualTo(Integer value) {\n            addCriterion(\"priviledge_free_freight <>\", value, \"priviledgeFreeFreight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightGreaterThan(Integer value) {\n            addCriterion(\"priviledge_free_freight >\", value, \"priviledgeFreeFreight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_free_freight >=\", value, \"priviledgeFreeFreight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightLessThan(Integer value) {\n            addCriterion(\"priviledge_free_freight <\", value, \"priviledgeFreeFreight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightLessThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_free_freight <=\", value, \"priviledgeFreeFreight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightIn(List<Integer> values) {\n            addCriterion(\"priviledge_free_freight in\", values, \"priviledgeFreeFreight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightNotIn(List<Integer> values) {\n            addCriterion(\"priviledge_free_freight not in\", values, \"priviledgeFreeFreight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_free_freight between\", value1, value2, \"priviledgeFreeFreight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeFreeFreightNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_free_freight not between\", value1, value2, \"priviledgeFreeFreight\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInIsNull() {\n            addCriterion(\"priviledge_sign_in is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInIsNotNull() {\n            addCriterion(\"priviledge_sign_in is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInEqualTo(Integer value) {\n            addCriterion(\"priviledge_sign_in =\", value, \"priviledgeSignIn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInNotEqualTo(Integer value) {\n            addCriterion(\"priviledge_sign_in <>\", value, \"priviledgeSignIn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInGreaterThan(Integer value) {\n            addCriterion(\"priviledge_sign_in >\", value, \"priviledgeSignIn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_sign_in >=\", value, \"priviledgeSignIn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInLessThan(Integer value) {\n            addCriterion(\"priviledge_sign_in <\", value, \"priviledgeSignIn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInLessThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_sign_in <=\", value, \"priviledgeSignIn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInIn(List<Integer> values) {\n            addCriterion(\"priviledge_sign_in in\", values, \"priviledgeSignIn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInNotIn(List<Integer> values) {\n            addCriterion(\"priviledge_sign_in not in\", values, \"priviledgeSignIn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_sign_in between\", value1, value2, \"priviledgeSignIn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeSignInNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_sign_in not between\", value1, value2, \"priviledgeSignIn\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentIsNull() {\n            addCriterion(\"priviledge_comment is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentIsNotNull() {\n            addCriterion(\"priviledge_comment is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentEqualTo(Integer value) {\n            addCriterion(\"priviledge_comment =\", value, \"priviledgeComment\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentNotEqualTo(Integer value) {\n            addCriterion(\"priviledge_comment <>\", value, \"priviledgeComment\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentGreaterThan(Integer value) {\n            addCriterion(\"priviledge_comment >\", value, \"priviledgeComment\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_comment >=\", value, \"priviledgeComment\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentLessThan(Integer value) {\n            addCriterion(\"priviledge_comment <\", value, \"priviledgeComment\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentLessThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_comment <=\", value, \"priviledgeComment\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentIn(List<Integer> values) {\n            addCriterion(\"priviledge_comment in\", values, \"priviledgeComment\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentNotIn(List<Integer> values) {\n            addCriterion(\"priviledge_comment not in\", values, \"priviledgeComment\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_comment between\", value1, value2, \"priviledgeComment\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeCommentNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_comment not between\", value1, value2, \"priviledgeComment\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionIsNull() {\n            addCriterion(\"priviledge_promotion is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionIsNotNull() {\n            addCriterion(\"priviledge_promotion is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionEqualTo(Integer value) {\n            addCriterion(\"priviledge_promotion =\", value, \"priviledgePromotion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionNotEqualTo(Integer value) {\n            addCriterion(\"priviledge_promotion <>\", value, \"priviledgePromotion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionGreaterThan(Integer value) {\n            addCriterion(\"priviledge_promotion >\", value, \"priviledgePromotion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_promotion >=\", value, \"priviledgePromotion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionLessThan(Integer value) {\n            addCriterion(\"priviledge_promotion <\", value, \"priviledgePromotion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionLessThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_promotion <=\", value, \"priviledgePromotion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionIn(List<Integer> values) {\n            addCriterion(\"priviledge_promotion in\", values, \"priviledgePromotion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionNotIn(List<Integer> values) {\n            addCriterion(\"priviledge_promotion not in\", values, \"priviledgePromotion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_promotion between\", value1, value2, \"priviledgePromotion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgePromotionNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_promotion not between\", value1, value2, \"priviledgePromotion\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceIsNull() {\n            addCriterion(\"priviledge_member_price is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceIsNotNull() {\n            addCriterion(\"priviledge_member_price is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceEqualTo(Integer value) {\n            addCriterion(\"priviledge_member_price =\", value, \"priviledgeMemberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceNotEqualTo(Integer value) {\n            addCriterion(\"priviledge_member_price <>\", value, \"priviledgeMemberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceGreaterThan(Integer value) {\n            addCriterion(\"priviledge_member_price >\", value, \"priviledgeMemberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_member_price >=\", value, \"priviledgeMemberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceLessThan(Integer value) {\n            addCriterion(\"priviledge_member_price <\", value, \"priviledgeMemberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceLessThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_member_price <=\", value, \"priviledgeMemberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceIn(List<Integer> values) {\n            addCriterion(\"priviledge_member_price in\", values, \"priviledgeMemberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceNotIn(List<Integer> values) {\n            addCriterion(\"priviledge_member_price not in\", values, \"priviledgeMemberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_member_price between\", value1, value2, \"priviledgeMemberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeMemberPriceNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_member_price not between\", value1, value2, \"priviledgeMemberPrice\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayIsNull() {\n            addCriterion(\"priviledge_birthday is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayIsNotNull() {\n            addCriterion(\"priviledge_birthday is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayEqualTo(Integer value) {\n            addCriterion(\"priviledge_birthday =\", value, \"priviledgeBirthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayNotEqualTo(Integer value) {\n            addCriterion(\"priviledge_birthday <>\", value, \"priviledgeBirthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayGreaterThan(Integer value) {\n            addCriterion(\"priviledge_birthday >\", value, \"priviledgeBirthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_birthday >=\", value, \"priviledgeBirthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayLessThan(Integer value) {\n            addCriterion(\"priviledge_birthday <\", value, \"priviledgeBirthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayLessThanOrEqualTo(Integer value) {\n            addCriterion(\"priviledge_birthday <=\", value, \"priviledgeBirthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayIn(List<Integer> values) {\n            addCriterion(\"priviledge_birthday in\", values, \"priviledgeBirthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayNotIn(List<Integer> values) {\n            addCriterion(\"priviledge_birthday not in\", values, \"priviledgeBirthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_birthday between\", value1, value2, \"priviledgeBirthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPriviledgeBirthdayNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"priviledge_birthday not between\", value1, value2, \"priviledgeBirthday\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNull() {\n            addCriterion(\"note is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIsNotNull() {\n            addCriterion(\"note is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteEqualTo(String value) {\n            addCriterion(\"note =\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotEqualTo(String value) {\n            addCriterion(\"note <>\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThan(String value) {\n            addCriterion(\"note >\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteGreaterThanOrEqualTo(String value) {\n            addCriterion(\"note >=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThan(String value) {\n            addCriterion(\"note <\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLessThanOrEqualTo(String value) {\n            addCriterion(\"note <=\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteLike(String value) {\n            addCriterion(\"note like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotLike(String value) {\n            addCriterion(\"note not like\", value, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteIn(List<String> values) {\n            addCriterion(\"note in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotIn(List<String> values) {\n            addCriterion(\"note not in\", values, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteBetween(String value1, String value2) {\n            addCriterion(\"note between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNoteNotBetween(String value1, String value2) {\n            addCriterion(\"note not between\", value1, value2, \"note\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberLoginLog.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class UmsMemberLoginLog implements Serializable {\n    private Long id;\n\n    private Long memberId;\n\n    private Date createTime;\n\n    private String ip;\n\n    private String city;\n\n    @Schema(title = \"登录类型：0->PC；1->android;2->ios;3->小程序\")\n    private Integer loginType;\n\n    private String province;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public String getIp() {\n        return ip;\n    }\n\n    public void setIp(String ip) {\n        this.ip = ip;\n    }\n\n    public String getCity() {\n        return city;\n    }\n\n    public void setCity(String city) {\n        this.city = city;\n    }\n\n    public Integer getLoginType() {\n        return loginType;\n    }\n\n    public void setLoginType(Integer loginType) {\n        this.loginType = loginType;\n    }\n\n    public String getProvince() {\n        return province;\n    }\n\n    public void setProvince(String province) {\n        this.province = province;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", memberId=\").append(memberId);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", ip=\").append(ip);\n        sb.append(\", city=\").append(city);\n        sb.append(\", loginType=\").append(loginType);\n        sb.append(\", province=\").append(province);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberLoginLogExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UmsMemberLoginLogExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsMemberLoginLogExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNull() {\n            addCriterion(\"member_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNotNull() {\n            addCriterion(\"member_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdEqualTo(Long value) {\n            addCriterion(\"member_id =\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotEqualTo(Long value) {\n            addCriterion(\"member_id <>\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThan(Long value) {\n            addCriterion(\"member_id >\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_id >=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThan(Long value) {\n            addCriterion(\"member_id <\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_id <=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIn(List<Long> values) {\n            addCriterion(\"member_id in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotIn(List<Long> values) {\n            addCriterion(\"member_id not in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_id between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_id not between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpIsNull() {\n            addCriterion(\"ip is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpIsNotNull() {\n            addCriterion(\"ip is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpEqualTo(String value) {\n            addCriterion(\"ip =\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpNotEqualTo(String value) {\n            addCriterion(\"ip <>\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpGreaterThan(String value) {\n            addCriterion(\"ip >\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpGreaterThanOrEqualTo(String value) {\n            addCriterion(\"ip >=\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpLessThan(String value) {\n            addCriterion(\"ip <\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpLessThanOrEqualTo(String value) {\n            addCriterion(\"ip <=\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpLike(String value) {\n            addCriterion(\"ip like\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpNotLike(String value) {\n            addCriterion(\"ip not like\", value, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpIn(List<String> values) {\n            addCriterion(\"ip in\", values, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpNotIn(List<String> values) {\n            addCriterion(\"ip not in\", values, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpBetween(String value1, String value2) {\n            addCriterion(\"ip between\", value1, value2, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIpNotBetween(String value1, String value2) {\n            addCriterion(\"ip not between\", value1, value2, \"ip\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIsNull() {\n            addCriterion(\"city is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIsNotNull() {\n            addCriterion(\"city is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityEqualTo(String value) {\n            addCriterion(\"city =\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotEqualTo(String value) {\n            addCriterion(\"city <>\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityGreaterThan(String value) {\n            addCriterion(\"city >\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityGreaterThanOrEqualTo(String value) {\n            addCriterion(\"city >=\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLessThan(String value) {\n            addCriterion(\"city <\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLessThanOrEqualTo(String value) {\n            addCriterion(\"city <=\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLike(String value) {\n            addCriterion(\"city like\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotLike(String value) {\n            addCriterion(\"city not like\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIn(List<String> values) {\n            addCriterion(\"city in\", values, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotIn(List<String> values) {\n            addCriterion(\"city not in\", values, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityBetween(String value1, String value2) {\n            addCriterion(\"city between\", value1, value2, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotBetween(String value1, String value2) {\n            addCriterion(\"city not between\", value1, value2, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeIsNull() {\n            addCriterion(\"login_type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeIsNotNull() {\n            addCriterion(\"login_type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeEqualTo(Integer value) {\n            addCriterion(\"login_type =\", value, \"loginType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeNotEqualTo(Integer value) {\n            addCriterion(\"login_type <>\", value, \"loginType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeGreaterThan(Integer value) {\n            addCriterion(\"login_type >\", value, \"loginType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"login_type >=\", value, \"loginType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeLessThan(Integer value) {\n            addCriterion(\"login_type <\", value, \"loginType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"login_type <=\", value, \"loginType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeIn(List<Integer> values) {\n            addCriterion(\"login_type in\", values, \"loginType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeNotIn(List<Integer> values) {\n            addCriterion(\"login_type not in\", values, \"loginType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"login_type between\", value1, value2, \"loginType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"login_type not between\", value1, value2, \"loginType\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceIsNull() {\n            addCriterion(\"province is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceIsNotNull() {\n            addCriterion(\"province is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceEqualTo(String value) {\n            addCriterion(\"province =\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotEqualTo(String value) {\n            addCriterion(\"province <>\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceGreaterThan(String value) {\n            addCriterion(\"province >\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceGreaterThanOrEqualTo(String value) {\n            addCriterion(\"province >=\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceLessThan(String value) {\n            addCriterion(\"province <\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceLessThanOrEqualTo(String value) {\n            addCriterion(\"province <=\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceLike(String value) {\n            addCriterion(\"province like\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotLike(String value) {\n            addCriterion(\"province not like\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceIn(List<String> values) {\n            addCriterion(\"province in\", values, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotIn(List<String> values) {\n            addCriterion(\"province not in\", values, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceBetween(String value1, String value2) {\n            addCriterion(\"province between\", value1, value2, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotBetween(String value1, String value2) {\n            addCriterion(\"province not between\", value1, value2, \"province\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberMemberTagRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class UmsMemberMemberTagRelation implements Serializable {\n    private Long id;\n\n    private Long memberId;\n\n    private Long tagId;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public Long getTagId() {\n        return tagId;\n    }\n\n    public void setTagId(Long tagId) {\n        this.tagId = tagId;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", memberId=\").append(memberId);\n        sb.append(\", tagId=\").append(tagId);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberMemberTagRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsMemberMemberTagRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsMemberMemberTagRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNull() {\n            addCriterion(\"member_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNotNull() {\n            addCriterion(\"member_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdEqualTo(Long value) {\n            addCriterion(\"member_id =\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotEqualTo(Long value) {\n            addCriterion(\"member_id <>\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThan(Long value) {\n            addCriterion(\"member_id >\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_id >=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThan(Long value) {\n            addCriterion(\"member_id <\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_id <=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIn(List<Long> values) {\n            addCriterion(\"member_id in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotIn(List<Long> values) {\n            addCriterion(\"member_id not in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_id between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_id not between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdIsNull() {\n            addCriterion(\"tag_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdIsNotNull() {\n            addCriterion(\"tag_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdEqualTo(Long value) {\n            addCriterion(\"tag_id =\", value, \"tagId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdNotEqualTo(Long value) {\n            addCriterion(\"tag_id <>\", value, \"tagId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdGreaterThan(Long value) {\n            addCriterion(\"tag_id >\", value, \"tagId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"tag_id >=\", value, \"tagId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdLessThan(Long value) {\n            addCriterion(\"tag_id <\", value, \"tagId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"tag_id <=\", value, \"tagId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdIn(List<Long> values) {\n            addCriterion(\"tag_id in\", values, \"tagId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdNotIn(List<Long> values) {\n            addCriterion(\"tag_id not in\", values, \"tagId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdBetween(Long value1, Long value2) {\n            addCriterion(\"tag_id between\", value1, value2, \"tagId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTagIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"tag_id not between\", value1, value2, \"tagId\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberProductCategoryRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class UmsMemberProductCategoryRelation implements Serializable {\n    private Long id;\n\n    private Long memberId;\n\n    private Long productCategoryId;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public Long getProductCategoryId() {\n        return productCategoryId;\n    }\n\n    public void setProductCategoryId(Long productCategoryId) {\n        this.productCategoryId = productCategoryId;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", memberId=\").append(memberId);\n        sb.append(\", productCategoryId=\").append(productCategoryId);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberProductCategoryRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsMemberProductCategoryRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsMemberProductCategoryRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNull() {\n            addCriterion(\"member_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNotNull() {\n            addCriterion(\"member_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdEqualTo(Long value) {\n            addCriterion(\"member_id =\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotEqualTo(Long value) {\n            addCriterion(\"member_id <>\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThan(Long value) {\n            addCriterion(\"member_id >\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_id >=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThan(Long value) {\n            addCriterion(\"member_id <\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_id <=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIn(List<Long> values) {\n            addCriterion(\"member_id in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotIn(List<Long> values) {\n            addCriterion(\"member_id not in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_id between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_id not between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNull() {\n            addCriterion(\"product_category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIsNotNull() {\n            addCriterion(\"product_category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdEqualTo(Long value) {\n            addCriterion(\"product_category_id =\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"product_category_id <>\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThan(Long value) {\n            addCriterion(\"product_category_id >\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id >=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThan(Long value) {\n            addCriterion(\"product_category_id <\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"product_category_id <=\", value, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdIn(List<Long> values) {\n            addCriterion(\"product_category_id in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"product_category_id not in\", values, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProductCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"product_category_id not between\", value1, value2, \"productCategoryId\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberReceiveAddress.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class UmsMemberReceiveAddress implements Serializable {\n    private Long id;\n\n    private Long memberId;\n\n    @Schema(title = \"收货人名称\")\n    private String name;\n\n    private String phoneNumber;\n\n    @Schema(title = \"是否为默认\")\n    private Integer defaultStatus;\n\n    @Schema(title = \"邮政编码\")\n    private String postCode;\n\n    @Schema(title = \"省份/直辖市\")\n    private String province;\n\n    @Schema(title = \"城市\")\n    private String city;\n\n    @Schema(title = \"区\")\n    private String region;\n\n    @Schema(title = \"详细地址(街道)\")\n    private String detailAddress;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getPhoneNumber() {\n        return phoneNumber;\n    }\n\n    public void setPhoneNumber(String phoneNumber) {\n        this.phoneNumber = phoneNumber;\n    }\n\n    public Integer getDefaultStatus() {\n        return defaultStatus;\n    }\n\n    public void setDefaultStatus(Integer defaultStatus) {\n        this.defaultStatus = defaultStatus;\n    }\n\n    public String getPostCode() {\n        return postCode;\n    }\n\n    public void setPostCode(String postCode) {\n        this.postCode = postCode;\n    }\n\n    public String getProvince() {\n        return province;\n    }\n\n    public void setProvince(String province) {\n        this.province = province;\n    }\n\n    public String getCity() {\n        return city;\n    }\n\n    public void setCity(String city) {\n        this.city = city;\n    }\n\n    public String getRegion() {\n        return region;\n    }\n\n    public void setRegion(String region) {\n        this.region = region;\n    }\n\n    public String getDetailAddress() {\n        return detailAddress;\n    }\n\n    public void setDetailAddress(String detailAddress) {\n        this.detailAddress = detailAddress;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", memberId=\").append(memberId);\n        sb.append(\", name=\").append(name);\n        sb.append(\", phoneNumber=\").append(phoneNumber);\n        sb.append(\", defaultStatus=\").append(defaultStatus);\n        sb.append(\", postCode=\").append(postCode);\n        sb.append(\", province=\").append(province);\n        sb.append(\", city=\").append(city);\n        sb.append(\", region=\").append(region);\n        sb.append(\", detailAddress=\").append(detailAddress);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberReceiveAddressExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsMemberReceiveAddressExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsMemberReceiveAddressExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNull() {\n            addCriterion(\"member_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNotNull() {\n            addCriterion(\"member_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdEqualTo(Long value) {\n            addCriterion(\"member_id =\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotEqualTo(Long value) {\n            addCriterion(\"member_id <>\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThan(Long value) {\n            addCriterion(\"member_id >\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_id >=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThan(Long value) {\n            addCriterion(\"member_id <\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_id <=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIn(List<Long> values) {\n            addCriterion(\"member_id in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotIn(List<Long> values) {\n            addCriterion(\"member_id not in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_id between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_id not between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberIsNull() {\n            addCriterion(\"phone_number is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberIsNotNull() {\n            addCriterion(\"phone_number is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberEqualTo(String value) {\n            addCriterion(\"phone_number =\", value, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberNotEqualTo(String value) {\n            addCriterion(\"phone_number <>\", value, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberGreaterThan(String value) {\n            addCriterion(\"phone_number >\", value, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberGreaterThanOrEqualTo(String value) {\n            addCriterion(\"phone_number >=\", value, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberLessThan(String value) {\n            addCriterion(\"phone_number <\", value, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberLessThanOrEqualTo(String value) {\n            addCriterion(\"phone_number <=\", value, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberLike(String value) {\n            addCriterion(\"phone_number like\", value, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberNotLike(String value) {\n            addCriterion(\"phone_number not like\", value, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberIn(List<String> values) {\n            addCriterion(\"phone_number in\", values, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberNotIn(List<String> values) {\n            addCriterion(\"phone_number not in\", values, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberBetween(String value1, String value2) {\n            addCriterion(\"phone_number between\", value1, value2, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPhoneNumberNotBetween(String value1, String value2) {\n            addCriterion(\"phone_number not between\", value1, value2, \"phoneNumber\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusIsNull() {\n            addCriterion(\"default_status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusIsNotNull() {\n            addCriterion(\"default_status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusEqualTo(Integer value) {\n            addCriterion(\"default_status =\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusNotEqualTo(Integer value) {\n            addCriterion(\"default_status <>\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusGreaterThan(Integer value) {\n            addCriterion(\"default_status >\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"default_status >=\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusLessThan(Integer value) {\n            addCriterion(\"default_status <\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"default_status <=\", value, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusIn(List<Integer> values) {\n            addCriterion(\"default_status in\", values, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusNotIn(List<Integer> values) {\n            addCriterion(\"default_status not in\", values, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"default_status between\", value1, value2, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDefaultStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"default_status not between\", value1, value2, \"defaultStatus\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeIsNull() {\n            addCriterion(\"post_code is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeIsNotNull() {\n            addCriterion(\"post_code is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeEqualTo(String value) {\n            addCriterion(\"post_code =\", value, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeNotEqualTo(String value) {\n            addCriterion(\"post_code <>\", value, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeGreaterThan(String value) {\n            addCriterion(\"post_code >\", value, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeGreaterThanOrEqualTo(String value) {\n            addCriterion(\"post_code >=\", value, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeLessThan(String value) {\n            addCriterion(\"post_code <\", value, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeLessThanOrEqualTo(String value) {\n            addCriterion(\"post_code <=\", value, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeLike(String value) {\n            addCriterion(\"post_code like\", value, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeNotLike(String value) {\n            addCriterion(\"post_code not like\", value, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeIn(List<String> values) {\n            addCriterion(\"post_code in\", values, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeNotIn(List<String> values) {\n            addCriterion(\"post_code not in\", values, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeBetween(String value1, String value2) {\n            addCriterion(\"post_code between\", value1, value2, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPostCodeNotBetween(String value1, String value2) {\n            addCriterion(\"post_code not between\", value1, value2, \"postCode\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceIsNull() {\n            addCriterion(\"province is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceIsNotNull() {\n            addCriterion(\"province is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceEqualTo(String value) {\n            addCriterion(\"province =\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotEqualTo(String value) {\n            addCriterion(\"province <>\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceGreaterThan(String value) {\n            addCriterion(\"province >\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceGreaterThanOrEqualTo(String value) {\n            addCriterion(\"province >=\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceLessThan(String value) {\n            addCriterion(\"province <\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceLessThanOrEqualTo(String value) {\n            addCriterion(\"province <=\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceLike(String value) {\n            addCriterion(\"province like\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotLike(String value) {\n            addCriterion(\"province not like\", value, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceIn(List<String> values) {\n            addCriterion(\"province in\", values, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotIn(List<String> values) {\n            addCriterion(\"province not in\", values, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceBetween(String value1, String value2) {\n            addCriterion(\"province between\", value1, value2, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andProvinceNotBetween(String value1, String value2) {\n            addCriterion(\"province not between\", value1, value2, \"province\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIsNull() {\n            addCriterion(\"city is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIsNotNull() {\n            addCriterion(\"city is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityEqualTo(String value) {\n            addCriterion(\"city =\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotEqualTo(String value) {\n            addCriterion(\"city <>\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityGreaterThan(String value) {\n            addCriterion(\"city >\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityGreaterThanOrEqualTo(String value) {\n            addCriterion(\"city >=\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLessThan(String value) {\n            addCriterion(\"city <\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLessThanOrEqualTo(String value) {\n            addCriterion(\"city <=\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityLike(String value) {\n            addCriterion(\"city like\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotLike(String value) {\n            addCriterion(\"city not like\", value, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityIn(List<String> values) {\n            addCriterion(\"city in\", values, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotIn(List<String> values) {\n            addCriterion(\"city not in\", values, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityBetween(String value1, String value2) {\n            addCriterion(\"city between\", value1, value2, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCityNotBetween(String value1, String value2) {\n            addCriterion(\"city not between\", value1, value2, \"city\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionIsNull() {\n            addCriterion(\"region is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionIsNotNull() {\n            addCriterion(\"region is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionEqualTo(String value) {\n            addCriterion(\"region =\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionNotEqualTo(String value) {\n            addCriterion(\"region <>\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionGreaterThan(String value) {\n            addCriterion(\"region >\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionGreaterThanOrEqualTo(String value) {\n            addCriterion(\"region >=\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionLessThan(String value) {\n            addCriterion(\"region <\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionLessThanOrEqualTo(String value) {\n            addCriterion(\"region <=\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionLike(String value) {\n            addCriterion(\"region like\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionNotLike(String value) {\n            addCriterion(\"region not like\", value, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionIn(List<String> values) {\n            addCriterion(\"region in\", values, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionNotIn(List<String> values) {\n            addCriterion(\"region not in\", values, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionBetween(String value1, String value2) {\n            addCriterion(\"region between\", value1, value2, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRegionNotBetween(String value1, String value2) {\n            addCriterion(\"region not between\", value1, value2, \"region\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressIsNull() {\n            addCriterion(\"detail_address is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressIsNotNull() {\n            addCriterion(\"detail_address is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressEqualTo(String value) {\n            addCriterion(\"detail_address =\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressNotEqualTo(String value) {\n            addCriterion(\"detail_address <>\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressGreaterThan(String value) {\n            addCriterion(\"detail_address >\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressGreaterThanOrEqualTo(String value) {\n            addCriterion(\"detail_address >=\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressLessThan(String value) {\n            addCriterion(\"detail_address <\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressLessThanOrEqualTo(String value) {\n            addCriterion(\"detail_address <=\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressLike(String value) {\n            addCriterion(\"detail_address like\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressNotLike(String value) {\n            addCriterion(\"detail_address not like\", value, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressIn(List<String> values) {\n            addCriterion(\"detail_address in\", values, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressNotIn(List<String> values) {\n            addCriterion(\"detail_address not in\", values, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressBetween(String value1, String value2) {\n            addCriterion(\"detail_address between\", value1, value2, \"detailAddress\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDetailAddressNotBetween(String value1, String value2) {\n            addCriterion(\"detail_address not between\", value1, value2, \"detailAddress\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberRuleSetting.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\npublic class UmsMemberRuleSetting implements Serializable {\n    private Long id;\n\n    @Schema(title = \"连续签到天数\")\n    private Integer continueSignDay;\n\n    @Schema(title = \"连续签到赠送数量\")\n    private Integer continueSignPoint;\n\n    @Schema(title = \"每消费多少元获取1个点\")\n    private BigDecimal consumePerPoint;\n\n    @Schema(title = \"最低获取点数的订单金额\")\n    private BigDecimal lowOrderAmount;\n\n    @Schema(title = \"每笔订单最高获取点数\")\n    private Integer maxPointPerOrder;\n\n    @Schema(title = \"类型：0->积分规则；1->成长值规则\")\n    private Integer type;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Integer getContinueSignDay() {\n        return continueSignDay;\n    }\n\n    public void setContinueSignDay(Integer continueSignDay) {\n        this.continueSignDay = continueSignDay;\n    }\n\n    public Integer getContinueSignPoint() {\n        return continueSignPoint;\n    }\n\n    public void setContinueSignPoint(Integer continueSignPoint) {\n        this.continueSignPoint = continueSignPoint;\n    }\n\n    public BigDecimal getConsumePerPoint() {\n        return consumePerPoint;\n    }\n\n    public void setConsumePerPoint(BigDecimal consumePerPoint) {\n        this.consumePerPoint = consumePerPoint;\n    }\n\n    public BigDecimal getLowOrderAmount() {\n        return lowOrderAmount;\n    }\n\n    public void setLowOrderAmount(BigDecimal lowOrderAmount) {\n        this.lowOrderAmount = lowOrderAmount;\n    }\n\n    public Integer getMaxPointPerOrder() {\n        return maxPointPerOrder;\n    }\n\n    public void setMaxPointPerOrder(Integer maxPointPerOrder) {\n        this.maxPointPerOrder = maxPointPerOrder;\n    }\n\n    public Integer getType() {\n        return type;\n    }\n\n    public void setType(Integer type) {\n        this.type = type;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", continueSignDay=\").append(continueSignDay);\n        sb.append(\", continueSignPoint=\").append(continueSignPoint);\n        sb.append(\", consumePerPoint=\").append(consumePerPoint);\n        sb.append(\", lowOrderAmount=\").append(lowOrderAmount);\n        sb.append(\", maxPointPerOrder=\").append(maxPointPerOrder);\n        sb.append(\", type=\").append(type);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberRuleSettingExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsMemberRuleSettingExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsMemberRuleSettingExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayIsNull() {\n            addCriterion(\"continue_sign_day is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayIsNotNull() {\n            addCriterion(\"continue_sign_day is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayEqualTo(Integer value) {\n            addCriterion(\"continue_sign_day =\", value, \"continueSignDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayNotEqualTo(Integer value) {\n            addCriterion(\"continue_sign_day <>\", value, \"continueSignDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayGreaterThan(Integer value) {\n            addCriterion(\"continue_sign_day >\", value, \"continueSignDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"continue_sign_day >=\", value, \"continueSignDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayLessThan(Integer value) {\n            addCriterion(\"continue_sign_day <\", value, \"continueSignDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayLessThanOrEqualTo(Integer value) {\n            addCriterion(\"continue_sign_day <=\", value, \"continueSignDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayIn(List<Integer> values) {\n            addCriterion(\"continue_sign_day in\", values, \"continueSignDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayNotIn(List<Integer> values) {\n            addCriterion(\"continue_sign_day not in\", values, \"continueSignDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayBetween(Integer value1, Integer value2) {\n            addCriterion(\"continue_sign_day between\", value1, value2, \"continueSignDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignDayNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"continue_sign_day not between\", value1, value2, \"continueSignDay\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointIsNull() {\n            addCriterion(\"continue_sign_point is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointIsNotNull() {\n            addCriterion(\"continue_sign_point is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointEqualTo(Integer value) {\n            addCriterion(\"continue_sign_point =\", value, \"continueSignPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointNotEqualTo(Integer value) {\n            addCriterion(\"continue_sign_point <>\", value, \"continueSignPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointGreaterThan(Integer value) {\n            addCriterion(\"continue_sign_point >\", value, \"continueSignPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"continue_sign_point >=\", value, \"continueSignPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointLessThan(Integer value) {\n            addCriterion(\"continue_sign_point <\", value, \"continueSignPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointLessThanOrEqualTo(Integer value) {\n            addCriterion(\"continue_sign_point <=\", value, \"continueSignPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointIn(List<Integer> values) {\n            addCriterion(\"continue_sign_point in\", values, \"continueSignPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointNotIn(List<Integer> values) {\n            addCriterion(\"continue_sign_point not in\", values, \"continueSignPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointBetween(Integer value1, Integer value2) {\n            addCriterion(\"continue_sign_point between\", value1, value2, \"continueSignPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andContinueSignPointNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"continue_sign_point not between\", value1, value2, \"continueSignPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointIsNull() {\n            addCriterion(\"consume_per_point is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointIsNotNull() {\n            addCriterion(\"consume_per_point is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointEqualTo(BigDecimal value) {\n            addCriterion(\"consume_per_point =\", value, \"consumePerPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointNotEqualTo(BigDecimal value) {\n            addCriterion(\"consume_per_point <>\", value, \"consumePerPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointGreaterThan(BigDecimal value) {\n            addCriterion(\"consume_per_point >\", value, \"consumePerPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"consume_per_point >=\", value, \"consumePerPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointLessThan(BigDecimal value) {\n            addCriterion(\"consume_per_point <\", value, \"consumePerPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"consume_per_point <=\", value, \"consumePerPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointIn(List<BigDecimal> values) {\n            addCriterion(\"consume_per_point in\", values, \"consumePerPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointNotIn(List<BigDecimal> values) {\n            addCriterion(\"consume_per_point not in\", values, \"consumePerPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"consume_per_point between\", value1, value2, \"consumePerPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumePerPointNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"consume_per_point not between\", value1, value2, \"consumePerPoint\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountIsNull() {\n            addCriterion(\"low_order_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountIsNotNull() {\n            addCriterion(\"low_order_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountEqualTo(BigDecimal value) {\n            addCriterion(\"low_order_amount =\", value, \"lowOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"low_order_amount <>\", value, \"lowOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"low_order_amount >\", value, \"lowOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"low_order_amount >=\", value, \"lowOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountLessThan(BigDecimal value) {\n            addCriterion(\"low_order_amount <\", value, \"lowOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"low_order_amount <=\", value, \"lowOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountIn(List<BigDecimal> values) {\n            addCriterion(\"low_order_amount in\", values, \"lowOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"low_order_amount not in\", values, \"lowOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"low_order_amount between\", value1, value2, \"lowOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLowOrderAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"low_order_amount not between\", value1, value2, \"lowOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderIsNull() {\n            addCriterion(\"max_point_per_order is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderIsNotNull() {\n            addCriterion(\"max_point_per_order is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderEqualTo(Integer value) {\n            addCriterion(\"max_point_per_order =\", value, \"maxPointPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderNotEqualTo(Integer value) {\n            addCriterion(\"max_point_per_order <>\", value, \"maxPointPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderGreaterThan(Integer value) {\n            addCriterion(\"max_point_per_order >\", value, \"maxPointPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"max_point_per_order >=\", value, \"maxPointPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderLessThan(Integer value) {\n            addCriterion(\"max_point_per_order <\", value, \"maxPointPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderLessThanOrEqualTo(Integer value) {\n            addCriterion(\"max_point_per_order <=\", value, \"maxPointPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderIn(List<Integer> values) {\n            addCriterion(\"max_point_per_order in\", values, \"maxPointPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderNotIn(List<Integer> values) {\n            addCriterion(\"max_point_per_order not in\", values, \"maxPointPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderBetween(Integer value1, Integer value2) {\n            addCriterion(\"max_point_per_order between\", value1, value2, \"maxPointPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMaxPointPerOrderNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"max_point_per_order not between\", value1, value2, \"maxPointPerOrder\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNull() {\n            addCriterion(\"type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNotNull() {\n            addCriterion(\"type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeEqualTo(Integer value) {\n            addCriterion(\"type =\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotEqualTo(Integer value) {\n            addCriterion(\"type <>\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThan(Integer value) {\n            addCriterion(\"type >\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"type >=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThan(Integer value) {\n            addCriterion(\"type <\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"type <=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIn(List<Integer> values) {\n            addCriterion(\"type in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotIn(List<Integer> values) {\n            addCriterion(\"type not in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"type between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"type not between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberStatisticsInfo.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\nimport java.util.Date;\n\npublic class UmsMemberStatisticsInfo implements Serializable {\n    private Long id;\n\n    private Long memberId;\n\n    @Schema(title = \"累计消费金额\")\n    private BigDecimal consumeAmount;\n\n    @Schema(title = \"订单数量\")\n    private Integer orderCount;\n\n    @Schema(title = \"优惠券数量\")\n    private Integer couponCount;\n\n    @Schema(title = \"评价数\")\n    private Integer commentCount;\n\n    @Schema(title = \"退货数量\")\n    private Integer returnOrderCount;\n\n    @Schema(title = \"登录次数\")\n    private Integer loginCount;\n\n    @Schema(title = \"关注数量\")\n    private Integer attendCount;\n\n    @Schema(title = \"粉丝数量\")\n    private Integer fansCount;\n\n    private Integer collectProductCount;\n\n    private Integer collectSubjectCount;\n\n    private Integer collectTopicCount;\n\n    private Integer collectCommentCount;\n\n    private Integer inviteFriendCount;\n\n    @Schema(title = \"最后一次下订单时间\")\n    private Date recentOrderTime;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public BigDecimal getConsumeAmount() {\n        return consumeAmount;\n    }\n\n    public void setConsumeAmount(BigDecimal consumeAmount) {\n        this.consumeAmount = consumeAmount;\n    }\n\n    public Integer getOrderCount() {\n        return orderCount;\n    }\n\n    public void setOrderCount(Integer orderCount) {\n        this.orderCount = orderCount;\n    }\n\n    public Integer getCouponCount() {\n        return couponCount;\n    }\n\n    public void setCouponCount(Integer couponCount) {\n        this.couponCount = couponCount;\n    }\n\n    public Integer getCommentCount() {\n        return commentCount;\n    }\n\n    public void setCommentCount(Integer commentCount) {\n        this.commentCount = commentCount;\n    }\n\n    public Integer getReturnOrderCount() {\n        return returnOrderCount;\n    }\n\n    public void setReturnOrderCount(Integer returnOrderCount) {\n        this.returnOrderCount = returnOrderCount;\n    }\n\n    public Integer getLoginCount() {\n        return loginCount;\n    }\n\n    public void setLoginCount(Integer loginCount) {\n        this.loginCount = loginCount;\n    }\n\n    public Integer getAttendCount() {\n        return attendCount;\n    }\n\n    public void setAttendCount(Integer attendCount) {\n        this.attendCount = attendCount;\n    }\n\n    public Integer getFansCount() {\n        return fansCount;\n    }\n\n    public void setFansCount(Integer fansCount) {\n        this.fansCount = fansCount;\n    }\n\n    public Integer getCollectProductCount() {\n        return collectProductCount;\n    }\n\n    public void setCollectProductCount(Integer collectProductCount) {\n        this.collectProductCount = collectProductCount;\n    }\n\n    public Integer getCollectSubjectCount() {\n        return collectSubjectCount;\n    }\n\n    public void setCollectSubjectCount(Integer collectSubjectCount) {\n        this.collectSubjectCount = collectSubjectCount;\n    }\n\n    public Integer getCollectTopicCount() {\n        return collectTopicCount;\n    }\n\n    public void setCollectTopicCount(Integer collectTopicCount) {\n        this.collectTopicCount = collectTopicCount;\n    }\n\n    public Integer getCollectCommentCount() {\n        return collectCommentCount;\n    }\n\n    public void setCollectCommentCount(Integer collectCommentCount) {\n        this.collectCommentCount = collectCommentCount;\n    }\n\n    public Integer getInviteFriendCount() {\n        return inviteFriendCount;\n    }\n\n    public void setInviteFriendCount(Integer inviteFriendCount) {\n        this.inviteFriendCount = inviteFriendCount;\n    }\n\n    public Date getRecentOrderTime() {\n        return recentOrderTime;\n    }\n\n    public void setRecentOrderTime(Date recentOrderTime) {\n        this.recentOrderTime = recentOrderTime;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", memberId=\").append(memberId);\n        sb.append(\", consumeAmount=\").append(consumeAmount);\n        sb.append(\", orderCount=\").append(orderCount);\n        sb.append(\", couponCount=\").append(couponCount);\n        sb.append(\", commentCount=\").append(commentCount);\n        sb.append(\", returnOrderCount=\").append(returnOrderCount);\n        sb.append(\", loginCount=\").append(loginCount);\n        sb.append(\", attendCount=\").append(attendCount);\n        sb.append(\", fansCount=\").append(fansCount);\n        sb.append(\", collectProductCount=\").append(collectProductCount);\n        sb.append(\", collectSubjectCount=\").append(collectSubjectCount);\n        sb.append(\", collectTopicCount=\").append(collectTopicCount);\n        sb.append(\", collectCommentCount=\").append(collectCommentCount);\n        sb.append(\", inviteFriendCount=\").append(inviteFriendCount);\n        sb.append(\", recentOrderTime=\").append(recentOrderTime);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberStatisticsInfoExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UmsMemberStatisticsInfoExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsMemberStatisticsInfoExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNull() {\n            addCriterion(\"member_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIsNotNull() {\n            addCriterion(\"member_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdEqualTo(Long value) {\n            addCriterion(\"member_id =\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotEqualTo(Long value) {\n            addCriterion(\"member_id <>\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThan(Long value) {\n            addCriterion(\"member_id >\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"member_id >=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThan(Long value) {\n            addCriterion(\"member_id <\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"member_id <=\", value, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdIn(List<Long> values) {\n            addCriterion(\"member_id in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotIn(List<Long> values) {\n            addCriterion(\"member_id not in\", values, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdBetween(Long value1, Long value2) {\n            addCriterion(\"member_id between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMemberIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"member_id not between\", value1, value2, \"memberId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountIsNull() {\n            addCriterion(\"consume_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountIsNotNull() {\n            addCriterion(\"consume_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountEqualTo(BigDecimal value) {\n            addCriterion(\"consume_amount =\", value, \"consumeAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"consume_amount <>\", value, \"consumeAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"consume_amount >\", value, \"consumeAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"consume_amount >=\", value, \"consumeAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountLessThan(BigDecimal value) {\n            addCriterion(\"consume_amount <\", value, \"consumeAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"consume_amount <=\", value, \"consumeAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountIn(List<BigDecimal> values) {\n            addCriterion(\"consume_amount in\", values, \"consumeAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"consume_amount not in\", values, \"consumeAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"consume_amount between\", value1, value2, \"consumeAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andConsumeAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"consume_amount not between\", value1, value2, \"consumeAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountIsNull() {\n            addCriterion(\"order_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountIsNotNull() {\n            addCriterion(\"order_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountEqualTo(Integer value) {\n            addCriterion(\"order_count =\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountNotEqualTo(Integer value) {\n            addCriterion(\"order_count <>\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountGreaterThan(Integer value) {\n            addCriterion(\"order_count >\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"order_count >=\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountLessThan(Integer value) {\n            addCriterion(\"order_count <\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"order_count <=\", value, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountIn(List<Integer> values) {\n            addCriterion(\"order_count in\", values, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountNotIn(List<Integer> values) {\n            addCriterion(\"order_count not in\", values, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"order_count between\", value1, value2, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andOrderCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"order_count not between\", value1, value2, \"orderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountIsNull() {\n            addCriterion(\"coupon_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountIsNotNull() {\n            addCriterion(\"coupon_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountEqualTo(Integer value) {\n            addCriterion(\"coupon_count =\", value, \"couponCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountNotEqualTo(Integer value) {\n            addCriterion(\"coupon_count <>\", value, \"couponCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountGreaterThan(Integer value) {\n            addCriterion(\"coupon_count >\", value, \"couponCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"coupon_count >=\", value, \"couponCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountLessThan(Integer value) {\n            addCriterion(\"coupon_count <\", value, \"couponCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"coupon_count <=\", value, \"couponCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountIn(List<Integer> values) {\n            addCriterion(\"coupon_count in\", values, \"couponCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountNotIn(List<Integer> values) {\n            addCriterion(\"coupon_count not in\", values, \"couponCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"coupon_count between\", value1, value2, \"couponCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCouponCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"coupon_count not between\", value1, value2, \"couponCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountIsNull() {\n            addCriterion(\"comment_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountIsNotNull() {\n            addCriterion(\"comment_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountEqualTo(Integer value) {\n            addCriterion(\"comment_count =\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountNotEqualTo(Integer value) {\n            addCriterion(\"comment_count <>\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountGreaterThan(Integer value) {\n            addCriterion(\"comment_count >\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"comment_count >=\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountLessThan(Integer value) {\n            addCriterion(\"comment_count <\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"comment_count <=\", value, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountIn(List<Integer> values) {\n            addCriterion(\"comment_count in\", values, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountNotIn(List<Integer> values) {\n            addCriterion(\"comment_count not in\", values, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"comment_count between\", value1, value2, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCommentCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"comment_count not between\", value1, value2, \"commentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountIsNull() {\n            addCriterion(\"return_order_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountIsNotNull() {\n            addCriterion(\"return_order_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountEqualTo(Integer value) {\n            addCriterion(\"return_order_count =\", value, \"returnOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountNotEqualTo(Integer value) {\n            addCriterion(\"return_order_count <>\", value, \"returnOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountGreaterThan(Integer value) {\n            addCriterion(\"return_order_count >\", value, \"returnOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"return_order_count >=\", value, \"returnOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountLessThan(Integer value) {\n            addCriterion(\"return_order_count <\", value, \"returnOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"return_order_count <=\", value, \"returnOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountIn(List<Integer> values) {\n            addCriterion(\"return_order_count in\", values, \"returnOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountNotIn(List<Integer> values) {\n            addCriterion(\"return_order_count not in\", values, \"returnOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"return_order_count between\", value1, value2, \"returnOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andReturnOrderCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"return_order_count not between\", value1, value2, \"returnOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountIsNull() {\n            addCriterion(\"login_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountIsNotNull() {\n            addCriterion(\"login_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountEqualTo(Integer value) {\n            addCriterion(\"login_count =\", value, \"loginCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountNotEqualTo(Integer value) {\n            addCriterion(\"login_count <>\", value, \"loginCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountGreaterThan(Integer value) {\n            addCriterion(\"login_count >\", value, \"loginCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"login_count >=\", value, \"loginCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountLessThan(Integer value) {\n            addCriterion(\"login_count <\", value, \"loginCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"login_count <=\", value, \"loginCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountIn(List<Integer> values) {\n            addCriterion(\"login_count in\", values, \"loginCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountNotIn(List<Integer> values) {\n            addCriterion(\"login_count not in\", values, \"loginCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"login_count between\", value1, value2, \"loginCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLoginCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"login_count not between\", value1, value2, \"loginCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountIsNull() {\n            addCriterion(\"attend_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountIsNotNull() {\n            addCriterion(\"attend_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountEqualTo(Integer value) {\n            addCriterion(\"attend_count =\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountNotEqualTo(Integer value) {\n            addCriterion(\"attend_count <>\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountGreaterThan(Integer value) {\n            addCriterion(\"attend_count >\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"attend_count >=\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountLessThan(Integer value) {\n            addCriterion(\"attend_count <\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"attend_count <=\", value, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountIn(List<Integer> values) {\n            addCriterion(\"attend_count in\", values, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountNotIn(List<Integer> values) {\n            addCriterion(\"attend_count not in\", values, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"attend_count between\", value1, value2, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAttendCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"attend_count not between\", value1, value2, \"attendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountIsNull() {\n            addCriterion(\"fans_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountIsNotNull() {\n            addCriterion(\"fans_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountEqualTo(Integer value) {\n            addCriterion(\"fans_count =\", value, \"fansCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountNotEqualTo(Integer value) {\n            addCriterion(\"fans_count <>\", value, \"fansCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountGreaterThan(Integer value) {\n            addCriterion(\"fans_count >\", value, \"fansCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"fans_count >=\", value, \"fansCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountLessThan(Integer value) {\n            addCriterion(\"fans_count <\", value, \"fansCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"fans_count <=\", value, \"fansCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountIn(List<Integer> values) {\n            addCriterion(\"fans_count in\", values, \"fansCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountNotIn(List<Integer> values) {\n            addCriterion(\"fans_count not in\", values, \"fansCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"fans_count between\", value1, value2, \"fansCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFansCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"fans_count not between\", value1, value2, \"fansCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountIsNull() {\n            addCriterion(\"collect_product_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountIsNotNull() {\n            addCriterion(\"collect_product_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountEqualTo(Integer value) {\n            addCriterion(\"collect_product_count =\", value, \"collectProductCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountNotEqualTo(Integer value) {\n            addCriterion(\"collect_product_count <>\", value, \"collectProductCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountGreaterThan(Integer value) {\n            addCriterion(\"collect_product_count >\", value, \"collectProductCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_product_count >=\", value, \"collectProductCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountLessThan(Integer value) {\n            addCriterion(\"collect_product_count <\", value, \"collectProductCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_product_count <=\", value, \"collectProductCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountIn(List<Integer> values) {\n            addCriterion(\"collect_product_count in\", values, \"collectProductCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountNotIn(List<Integer> values) {\n            addCriterion(\"collect_product_count not in\", values, \"collectProductCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_product_count between\", value1, value2, \"collectProductCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectProductCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_product_count not between\", value1, value2, \"collectProductCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountIsNull() {\n            addCriterion(\"collect_subject_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountIsNotNull() {\n            addCriterion(\"collect_subject_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountEqualTo(Integer value) {\n            addCriterion(\"collect_subject_count =\", value, \"collectSubjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountNotEqualTo(Integer value) {\n            addCriterion(\"collect_subject_count <>\", value, \"collectSubjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountGreaterThan(Integer value) {\n            addCriterion(\"collect_subject_count >\", value, \"collectSubjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_subject_count >=\", value, \"collectSubjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountLessThan(Integer value) {\n            addCriterion(\"collect_subject_count <\", value, \"collectSubjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_subject_count <=\", value, \"collectSubjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountIn(List<Integer> values) {\n            addCriterion(\"collect_subject_count in\", values, \"collectSubjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountNotIn(List<Integer> values) {\n            addCriterion(\"collect_subject_count not in\", values, \"collectSubjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_subject_count between\", value1, value2, \"collectSubjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectSubjectCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_subject_count not between\", value1, value2, \"collectSubjectCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountIsNull() {\n            addCriterion(\"collect_topic_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountIsNotNull() {\n            addCriterion(\"collect_topic_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountEqualTo(Integer value) {\n            addCriterion(\"collect_topic_count =\", value, \"collectTopicCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountNotEqualTo(Integer value) {\n            addCriterion(\"collect_topic_count <>\", value, \"collectTopicCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountGreaterThan(Integer value) {\n            addCriterion(\"collect_topic_count >\", value, \"collectTopicCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_topic_count >=\", value, \"collectTopicCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountLessThan(Integer value) {\n            addCriterion(\"collect_topic_count <\", value, \"collectTopicCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_topic_count <=\", value, \"collectTopicCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountIn(List<Integer> values) {\n            addCriterion(\"collect_topic_count in\", values, \"collectTopicCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountNotIn(List<Integer> values) {\n            addCriterion(\"collect_topic_count not in\", values, \"collectTopicCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_topic_count between\", value1, value2, \"collectTopicCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectTopicCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_topic_count not between\", value1, value2, \"collectTopicCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountIsNull() {\n            addCriterion(\"collect_comment_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountIsNotNull() {\n            addCriterion(\"collect_comment_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountEqualTo(Integer value) {\n            addCriterion(\"collect_comment_count =\", value, \"collectCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountNotEqualTo(Integer value) {\n            addCriterion(\"collect_comment_count <>\", value, \"collectCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountGreaterThan(Integer value) {\n            addCriterion(\"collect_comment_count >\", value, \"collectCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_comment_count >=\", value, \"collectCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountLessThan(Integer value) {\n            addCriterion(\"collect_comment_count <\", value, \"collectCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"collect_comment_count <=\", value, \"collectCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountIn(List<Integer> values) {\n            addCriterion(\"collect_comment_count in\", values, \"collectCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountNotIn(List<Integer> values) {\n            addCriterion(\"collect_comment_count not in\", values, \"collectCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_comment_count between\", value1, value2, \"collectCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCollectCommentCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"collect_comment_count not between\", value1, value2, \"collectCommentCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountIsNull() {\n            addCriterion(\"invite_friend_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountIsNotNull() {\n            addCriterion(\"invite_friend_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountEqualTo(Integer value) {\n            addCriterion(\"invite_friend_count =\", value, \"inviteFriendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountNotEqualTo(Integer value) {\n            addCriterion(\"invite_friend_count <>\", value, \"inviteFriendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountGreaterThan(Integer value) {\n            addCriterion(\"invite_friend_count >\", value, \"inviteFriendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"invite_friend_count >=\", value, \"inviteFriendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountLessThan(Integer value) {\n            addCriterion(\"invite_friend_count <\", value, \"inviteFriendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"invite_friend_count <=\", value, \"inviteFriendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountIn(List<Integer> values) {\n            addCriterion(\"invite_friend_count in\", values, \"inviteFriendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountNotIn(List<Integer> values) {\n            addCriterion(\"invite_friend_count not in\", values, \"inviteFriendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"invite_friend_count between\", value1, value2, \"inviteFriendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andInviteFriendCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"invite_friend_count not between\", value1, value2, \"inviteFriendCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeIsNull() {\n            addCriterion(\"recent_order_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeIsNotNull() {\n            addCriterion(\"recent_order_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeEqualTo(Date value) {\n            addCriterion(\"recent_order_time =\", value, \"recentOrderTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeNotEqualTo(Date value) {\n            addCriterion(\"recent_order_time <>\", value, \"recentOrderTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeGreaterThan(Date value) {\n            addCriterion(\"recent_order_time >\", value, \"recentOrderTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"recent_order_time >=\", value, \"recentOrderTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeLessThan(Date value) {\n            addCriterion(\"recent_order_time <\", value, \"recentOrderTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"recent_order_time <=\", value, \"recentOrderTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeIn(List<Date> values) {\n            addCriterion(\"recent_order_time in\", values, \"recentOrderTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeNotIn(List<Date> values) {\n            addCriterion(\"recent_order_time not in\", values, \"recentOrderTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeBetween(Date value1, Date value2) {\n            addCriterion(\"recent_order_time between\", value1, value2, \"recentOrderTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRecentOrderTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"recent_order_time not between\", value1, value2, \"recentOrderTime\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberTag.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\npublic class UmsMemberTag implements Serializable {\n    private Long id;\n\n    private String name;\n\n    @Schema(title = \"自动打标签完成订单数量\")\n    private Integer finishOrderCount;\n\n    @Schema(title = \"自动打标签完成订单金额\")\n    private BigDecimal finishOrderAmount;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getFinishOrderCount() {\n        return finishOrderCount;\n    }\n\n    public void setFinishOrderCount(Integer finishOrderCount) {\n        this.finishOrderCount = finishOrderCount;\n    }\n\n    public BigDecimal getFinishOrderAmount() {\n        return finishOrderAmount;\n    }\n\n    public void setFinishOrderAmount(BigDecimal finishOrderAmount) {\n        this.finishOrderAmount = finishOrderAmount;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", finishOrderCount=\").append(finishOrderCount);\n        sb.append(\", finishOrderAmount=\").append(finishOrderAmount);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberTagExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsMemberTagExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsMemberTagExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountIsNull() {\n            addCriterion(\"finish_order_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountIsNotNull() {\n            addCriterion(\"finish_order_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountEqualTo(Integer value) {\n            addCriterion(\"finish_order_count =\", value, \"finishOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountNotEqualTo(Integer value) {\n            addCriterion(\"finish_order_count <>\", value, \"finishOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountGreaterThan(Integer value) {\n            addCriterion(\"finish_order_count >\", value, \"finishOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"finish_order_count >=\", value, \"finishOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountLessThan(Integer value) {\n            addCriterion(\"finish_order_count <\", value, \"finishOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"finish_order_count <=\", value, \"finishOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountIn(List<Integer> values) {\n            addCriterion(\"finish_order_count in\", values, \"finishOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountNotIn(List<Integer> values) {\n            addCriterion(\"finish_order_count not in\", values, \"finishOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"finish_order_count between\", value1, value2, \"finishOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"finish_order_count not between\", value1, value2, \"finishOrderCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountIsNull() {\n            addCriterion(\"finish_order_amount is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountIsNotNull() {\n            addCriterion(\"finish_order_amount is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountEqualTo(BigDecimal value) {\n            addCriterion(\"finish_order_amount =\", value, \"finishOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountNotEqualTo(BigDecimal value) {\n            addCriterion(\"finish_order_amount <>\", value, \"finishOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountGreaterThan(BigDecimal value) {\n            addCriterion(\"finish_order_amount >\", value, \"finishOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountGreaterThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"finish_order_amount >=\", value, \"finishOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountLessThan(BigDecimal value) {\n            addCriterion(\"finish_order_amount <\", value, \"finishOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountLessThanOrEqualTo(BigDecimal value) {\n            addCriterion(\"finish_order_amount <=\", value, \"finishOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountIn(List<BigDecimal> values) {\n            addCriterion(\"finish_order_amount in\", values, \"finishOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountNotIn(List<BigDecimal> values) {\n            addCriterion(\"finish_order_amount not in\", values, \"finishOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"finish_order_amount between\", value1, value2, \"finishOrderAmount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andFinishOrderAmountNotBetween(BigDecimal value1, BigDecimal value2) {\n            addCriterion(\"finish_order_amount not between\", value1, value2, \"finishOrderAmount\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberTask.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class UmsMemberTask implements Serializable {\n    private Long id;\n\n    private String name;\n\n    @Schema(title = \"赠送成长值\")\n    private Integer growth;\n\n    @Schema(title = \"赠送积分\")\n    private Integer intergration;\n\n    @Schema(title = \"任务类型：0->新手任务；1->日常任务\")\n    private Integer type;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getGrowth() {\n        return growth;\n    }\n\n    public void setGrowth(Integer growth) {\n        this.growth = growth;\n    }\n\n    public Integer getIntergration() {\n        return intergration;\n    }\n\n    public void setIntergration(Integer intergration) {\n        this.intergration = intergration;\n    }\n\n    public Integer getType() {\n        return type;\n    }\n\n    public void setType(Integer type) {\n        this.type = type;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", growth=\").append(growth);\n        sb.append(\", intergration=\").append(intergration);\n        sb.append(\", type=\").append(type);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMemberTaskExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsMemberTaskExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsMemberTaskExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthIsNull() {\n            addCriterion(\"growth is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthIsNotNull() {\n            addCriterion(\"growth is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthEqualTo(Integer value) {\n            addCriterion(\"growth =\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthNotEqualTo(Integer value) {\n            addCriterion(\"growth <>\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthGreaterThan(Integer value) {\n            addCriterion(\"growth >\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"growth >=\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthLessThan(Integer value) {\n            addCriterion(\"growth <\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthLessThanOrEqualTo(Integer value) {\n            addCriterion(\"growth <=\", value, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthIn(List<Integer> values) {\n            addCriterion(\"growth in\", values, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthNotIn(List<Integer> values) {\n            addCriterion(\"growth not in\", values, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthBetween(Integer value1, Integer value2) {\n            addCriterion(\"growth between\", value1, value2, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andGrowthNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"growth not between\", value1, value2, \"growth\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationIsNull() {\n            addCriterion(\"intergration is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationIsNotNull() {\n            addCriterion(\"intergration is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationEqualTo(Integer value) {\n            addCriterion(\"intergration =\", value, \"intergration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationNotEqualTo(Integer value) {\n            addCriterion(\"intergration <>\", value, \"intergration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationGreaterThan(Integer value) {\n            addCriterion(\"intergration >\", value, \"intergration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"intergration >=\", value, \"intergration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationLessThan(Integer value) {\n            addCriterion(\"intergration <\", value, \"intergration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationLessThanOrEqualTo(Integer value) {\n            addCriterion(\"intergration <=\", value, \"intergration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationIn(List<Integer> values) {\n            addCriterion(\"intergration in\", values, \"intergration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationNotIn(List<Integer> values) {\n            addCriterion(\"intergration not in\", values, \"intergration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationBetween(Integer value1, Integer value2) {\n            addCriterion(\"intergration between\", value1, value2, \"intergration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIntergrationNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"intergration not between\", value1, value2, \"intergration\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNull() {\n            addCriterion(\"type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNotNull() {\n            addCriterion(\"type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeEqualTo(Integer value) {\n            addCriterion(\"type =\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotEqualTo(Integer value) {\n            addCriterion(\"type <>\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThan(Integer value) {\n            addCriterion(\"type >\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"type >=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThan(Integer value) {\n            addCriterion(\"type <\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"type <=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIn(List<Integer> values) {\n            addCriterion(\"type in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotIn(List<Integer> values) {\n            addCriterion(\"type not in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"type between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"type not between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMenu.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class UmsMenu implements Serializable {\n    private Long id;\n\n    @Schema(title = \"父级ID\")\n    private Long parentId;\n\n    @Schema(title = \"创建时间\")\n    private Date createTime;\n\n    @Schema(title = \"菜单名称\")\n    private String title;\n\n    @Schema(title = \"菜单级数\")\n    private Integer level;\n\n    @Schema(title = \"菜单排序\")\n    private Integer sort;\n\n    @Schema(title = \"前端名称\")\n    private String name;\n\n    @Schema(title = \"前端图标\")\n    private String icon;\n\n    @Schema(title = \"前端隐藏\")\n    private Integer hidden;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getParentId() {\n        return parentId;\n    }\n\n    public void setParentId(Long parentId) {\n        this.parentId = parentId;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public String getTitle() {\n        return title;\n    }\n\n    public void setTitle(String title) {\n        this.title = title;\n    }\n\n    public Integer getLevel() {\n        return level;\n    }\n\n    public void setLevel(Integer level) {\n        this.level = level;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getIcon() {\n        return icon;\n    }\n\n    public void setIcon(String icon) {\n        this.icon = icon;\n    }\n\n    public Integer getHidden() {\n        return hidden;\n    }\n\n    public void setHidden(Integer hidden) {\n        this.hidden = hidden;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", parentId=\").append(parentId);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", title=\").append(title);\n        sb.append(\", level=\").append(level);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", name=\").append(name);\n        sb.append(\", icon=\").append(icon);\n        sb.append(\", hidden=\").append(hidden);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsMenuExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UmsMenuExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsMenuExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdIsNull() {\n            addCriterion(\"parent_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdIsNotNull() {\n            addCriterion(\"parent_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdEqualTo(Long value) {\n            addCriterion(\"parent_id =\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdNotEqualTo(Long value) {\n            addCriterion(\"parent_id <>\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdGreaterThan(Long value) {\n            addCriterion(\"parent_id >\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"parent_id >=\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdLessThan(Long value) {\n            addCriterion(\"parent_id <\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"parent_id <=\", value, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdIn(List<Long> values) {\n            addCriterion(\"parent_id in\", values, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdNotIn(List<Long> values) {\n            addCriterion(\"parent_id not in\", values, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdBetween(Long value1, Long value2) {\n            addCriterion(\"parent_id between\", value1, value2, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andParentIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"parent_id not between\", value1, value2, \"parentId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNull() {\n            addCriterion(\"title is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIsNotNull() {\n            addCriterion(\"title is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleEqualTo(String value) {\n            addCriterion(\"title =\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotEqualTo(String value) {\n            addCriterion(\"title <>\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThan(String value) {\n            addCriterion(\"title >\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleGreaterThanOrEqualTo(String value) {\n            addCriterion(\"title >=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThan(String value) {\n            addCriterion(\"title <\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLessThanOrEqualTo(String value) {\n            addCriterion(\"title <=\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleLike(String value) {\n            addCriterion(\"title like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotLike(String value) {\n            addCriterion(\"title not like\", value, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleIn(List<String> values) {\n            addCriterion(\"title in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotIn(List<String> values) {\n            addCriterion(\"title not in\", values, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleBetween(String value1, String value2) {\n            addCriterion(\"title between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTitleNotBetween(String value1, String value2) {\n            addCriterion(\"title not between\", value1, value2, \"title\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelIsNull() {\n            addCriterion(\"level is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelIsNotNull() {\n            addCriterion(\"level is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelEqualTo(Integer value) {\n            addCriterion(\"level =\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelNotEqualTo(Integer value) {\n            addCriterion(\"level <>\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelGreaterThan(Integer value) {\n            addCriterion(\"level >\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"level >=\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelLessThan(Integer value) {\n            addCriterion(\"level <\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelLessThanOrEqualTo(Integer value) {\n            addCriterion(\"level <=\", value, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelIn(List<Integer> values) {\n            addCriterion(\"level in\", values, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelNotIn(List<Integer> values) {\n            addCriterion(\"level not in\", values, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelBetween(Integer value1, Integer value2) {\n            addCriterion(\"level between\", value1, value2, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andLevelNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"level not between\", value1, value2, \"level\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNull() {\n            addCriterion(\"icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNotNull() {\n            addCriterion(\"icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconEqualTo(String value) {\n            addCriterion(\"icon =\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotEqualTo(String value) {\n            addCriterion(\"icon <>\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThan(String value) {\n            addCriterion(\"icon >\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"icon >=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThan(String value) {\n            addCriterion(\"icon <\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThanOrEqualTo(String value) {\n            addCriterion(\"icon <=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLike(String value) {\n            addCriterion(\"icon like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotLike(String value) {\n            addCriterion(\"icon not like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIn(List<String> values) {\n            addCriterion(\"icon in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotIn(List<String> values) {\n            addCriterion(\"icon not in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconBetween(String value1, String value2) {\n            addCriterion(\"icon between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotBetween(String value1, String value2) {\n            addCriterion(\"icon not between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenIsNull() {\n            addCriterion(\"hidden is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenIsNotNull() {\n            addCriterion(\"hidden is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenEqualTo(Integer value) {\n            addCriterion(\"hidden =\", value, \"hidden\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenNotEqualTo(Integer value) {\n            addCriterion(\"hidden <>\", value, \"hidden\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenGreaterThan(Integer value) {\n            addCriterion(\"hidden >\", value, \"hidden\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"hidden >=\", value, \"hidden\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenLessThan(Integer value) {\n            addCriterion(\"hidden <\", value, \"hidden\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenLessThanOrEqualTo(Integer value) {\n            addCriterion(\"hidden <=\", value, \"hidden\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenIn(List<Integer> values) {\n            addCriterion(\"hidden in\", values, \"hidden\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenNotIn(List<Integer> values) {\n            addCriterion(\"hidden not in\", values, \"hidden\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenBetween(Integer value1, Integer value2) {\n            addCriterion(\"hidden between\", value1, value2, \"hidden\");\n            return (Criteria) this;\n        }\n\n        public Criteria andHiddenNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"hidden not between\", value1, value2, \"hidden\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsPermission.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class UmsPermission implements Serializable {\n    private Long id;\n\n    @Schema(title = \"父级权限id\")\n    private Long pid;\n\n    @Schema(title = \"名称\")\n    private String name;\n\n    @Schema(title = \"权限值\")\n    private String value;\n\n    @Schema(title = \"图标\")\n    private String icon;\n\n    @Schema(title = \"权限类型：0->目录；1->菜单；2->按钮（接口绑定权限）\")\n    private Integer type;\n\n    @Schema(title = \"前端资源路径\")\n    private String uri;\n\n    @Schema(title = \"启用状态；0->禁用；1->启用\")\n    private Integer status;\n\n    @Schema(title = \"创建时间\")\n    private Date createTime;\n\n    @Schema(title = \"排序\")\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getPid() {\n        return pid;\n    }\n\n    public void setPid(Long pid) {\n        this.pid = pid;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getValue() {\n        return value;\n    }\n\n    public void setValue(String value) {\n        this.value = value;\n    }\n\n    public String getIcon() {\n        return icon;\n    }\n\n    public void setIcon(String icon) {\n        this.icon = icon;\n    }\n\n    public Integer getType() {\n        return type;\n    }\n\n    public void setType(Integer type) {\n        this.type = type;\n    }\n\n    public String getUri() {\n        return uri;\n    }\n\n    public void setUri(String uri) {\n        this.uri = uri;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", pid=\").append(pid);\n        sb.append(\", name=\").append(name);\n        sb.append(\", value=\").append(value);\n        sb.append(\", icon=\").append(icon);\n        sb.append(\", type=\").append(type);\n        sb.append(\", uri=\").append(uri);\n        sb.append(\", status=\").append(status);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsPermissionExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UmsPermissionExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsPermissionExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidIsNull() {\n            addCriterion(\"pid is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidIsNotNull() {\n            addCriterion(\"pid is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidEqualTo(Long value) {\n            addCriterion(\"pid =\", value, \"pid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidNotEqualTo(Long value) {\n            addCriterion(\"pid <>\", value, \"pid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidGreaterThan(Long value) {\n            addCriterion(\"pid >\", value, \"pid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"pid >=\", value, \"pid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidLessThan(Long value) {\n            addCriterion(\"pid <\", value, \"pid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidLessThanOrEqualTo(Long value) {\n            addCriterion(\"pid <=\", value, \"pid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidIn(List<Long> values) {\n            addCriterion(\"pid in\", values, \"pid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidNotIn(List<Long> values) {\n            addCriterion(\"pid not in\", values, \"pid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidBetween(Long value1, Long value2) {\n            addCriterion(\"pid between\", value1, value2, \"pid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPidNotBetween(Long value1, Long value2) {\n            addCriterion(\"pid not between\", value1, value2, \"pid\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueIsNull() {\n            addCriterion(\"value is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueIsNotNull() {\n            addCriterion(\"value is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueEqualTo(String value) {\n            addCriterion(\"value =\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueNotEqualTo(String value) {\n            addCriterion(\"value <>\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueGreaterThan(String value) {\n            addCriterion(\"value >\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueGreaterThanOrEqualTo(String value) {\n            addCriterion(\"value >=\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueLessThan(String value) {\n            addCriterion(\"value <\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueLessThanOrEqualTo(String value) {\n            addCriterion(\"value <=\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueLike(String value) {\n            addCriterion(\"value like\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueNotLike(String value) {\n            addCriterion(\"value not like\", value, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueIn(List<String> values) {\n            addCriterion(\"value in\", values, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueNotIn(List<String> values) {\n            addCriterion(\"value not in\", values, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueBetween(String value1, String value2) {\n            addCriterion(\"value between\", value1, value2, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andValueNotBetween(String value1, String value2) {\n            addCriterion(\"value not between\", value1, value2, \"value\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNull() {\n            addCriterion(\"icon is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIsNotNull() {\n            addCriterion(\"icon is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconEqualTo(String value) {\n            addCriterion(\"icon =\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotEqualTo(String value) {\n            addCriterion(\"icon <>\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThan(String value) {\n            addCriterion(\"icon >\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconGreaterThanOrEqualTo(String value) {\n            addCriterion(\"icon >=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThan(String value) {\n            addCriterion(\"icon <\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLessThanOrEqualTo(String value) {\n            addCriterion(\"icon <=\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconLike(String value) {\n            addCriterion(\"icon like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotLike(String value) {\n            addCriterion(\"icon not like\", value, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconIn(List<String> values) {\n            addCriterion(\"icon in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotIn(List<String> values) {\n            addCriterion(\"icon not in\", values, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconBetween(String value1, String value2) {\n            addCriterion(\"icon between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIconNotBetween(String value1, String value2) {\n            addCriterion(\"icon not between\", value1, value2, \"icon\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNull() {\n            addCriterion(\"type is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIsNotNull() {\n            addCriterion(\"type is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeEqualTo(Integer value) {\n            addCriterion(\"type =\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotEqualTo(Integer value) {\n            addCriterion(\"type <>\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThan(Integer value) {\n            addCriterion(\"type >\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"type >=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThan(Integer value) {\n            addCriterion(\"type <\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeLessThanOrEqualTo(Integer value) {\n            addCriterion(\"type <=\", value, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeIn(List<Integer> values) {\n            addCriterion(\"type in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotIn(List<Integer> values) {\n            addCriterion(\"type not in\", values, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeBetween(Integer value1, Integer value2) {\n            addCriterion(\"type between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andTypeNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"type not between\", value1, value2, \"type\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriIsNull() {\n            addCriterion(\"uri is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriIsNotNull() {\n            addCriterion(\"uri is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriEqualTo(String value) {\n            addCriterion(\"uri =\", value, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriNotEqualTo(String value) {\n            addCriterion(\"uri <>\", value, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriGreaterThan(String value) {\n            addCriterion(\"uri >\", value, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriGreaterThanOrEqualTo(String value) {\n            addCriterion(\"uri >=\", value, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriLessThan(String value) {\n            addCriterion(\"uri <\", value, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriLessThanOrEqualTo(String value) {\n            addCriterion(\"uri <=\", value, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriLike(String value) {\n            addCriterion(\"uri like\", value, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriNotLike(String value) {\n            addCriterion(\"uri not like\", value, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriIn(List<String> values) {\n            addCriterion(\"uri in\", values, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriNotIn(List<String> values) {\n            addCriterion(\"uri not in\", values, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriBetween(String value1, String value2) {\n            addCriterion(\"uri between\", value1, value2, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUriNotBetween(String value1, String value2) {\n            addCriterion(\"uri not between\", value1, value2, \"uri\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsResource.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class UmsResource implements Serializable {\n    private Long id;\n\n    @Schema(title = \"创建时间\")\n    private Date createTime;\n\n    @Schema(title = \"资源名称\")\n    private String name;\n\n    @Schema(title = \"资源URL\")\n    private String url;\n\n    @Schema(title = \"描述\")\n    private String description;\n\n    @Schema(title = \"资源分类ID\")\n    private Long categoryId;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getUrl() {\n        return url;\n    }\n\n    public void setUrl(String url) {\n        this.url = url;\n    }\n\n    public String getDescription() {\n        return description;\n    }\n\n    public void setDescription(String description) {\n        this.description = description;\n    }\n\n    public Long getCategoryId() {\n        return categoryId;\n    }\n\n    public void setCategoryId(Long categoryId) {\n        this.categoryId = categoryId;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", name=\").append(name);\n        sb.append(\", url=\").append(url);\n        sb.append(\", description=\").append(description);\n        sb.append(\", categoryId=\").append(categoryId);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsResourceCategory.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class UmsResourceCategory implements Serializable {\n    private Long id;\n\n    @Schema(title = \"创建时间\")\n    private Date createTime;\n\n    @Schema(title = \"分类名称\")\n    private String name;\n\n    @Schema(title = \"排序\")\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", name=\").append(name);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsResourceCategoryExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UmsResourceCategoryExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsResourceCategoryExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsResourceExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UmsResourceExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsResourceExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlIsNull() {\n            addCriterion(\"url is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlIsNotNull() {\n            addCriterion(\"url is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlEqualTo(String value) {\n            addCriterion(\"url =\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlNotEqualTo(String value) {\n            addCriterion(\"url <>\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlGreaterThan(String value) {\n            addCriterion(\"url >\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlGreaterThanOrEqualTo(String value) {\n            addCriterion(\"url >=\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlLessThan(String value) {\n            addCriterion(\"url <\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlLessThanOrEqualTo(String value) {\n            addCriterion(\"url <=\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlLike(String value) {\n            addCriterion(\"url like\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlNotLike(String value) {\n            addCriterion(\"url not like\", value, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlIn(List<String> values) {\n            addCriterion(\"url in\", values, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlNotIn(List<String> values) {\n            addCriterion(\"url not in\", values, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlBetween(String value1, String value2) {\n            addCriterion(\"url between\", value1, value2, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andUrlNotBetween(String value1, String value2) {\n            addCriterion(\"url not between\", value1, value2, \"url\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIsNull() {\n            addCriterion(\"description is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIsNotNull() {\n            addCriterion(\"description is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionEqualTo(String value) {\n            addCriterion(\"description =\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotEqualTo(String value) {\n            addCriterion(\"description <>\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionGreaterThan(String value) {\n            addCriterion(\"description >\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {\n            addCriterion(\"description >=\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLessThan(String value) {\n            addCriterion(\"description <\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLessThanOrEqualTo(String value) {\n            addCriterion(\"description <=\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLike(String value) {\n            addCriterion(\"description like\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotLike(String value) {\n            addCriterion(\"description not like\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIn(List<String> values) {\n            addCriterion(\"description in\", values, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotIn(List<String> values) {\n            addCriterion(\"description not in\", values, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionBetween(String value1, String value2) {\n            addCriterion(\"description between\", value1, value2, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotBetween(String value1, String value2) {\n            addCriterion(\"description not between\", value1, value2, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIsNull() {\n            addCriterion(\"category_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIsNotNull() {\n            addCriterion(\"category_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdEqualTo(Long value) {\n            addCriterion(\"category_id =\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotEqualTo(Long value) {\n            addCriterion(\"category_id <>\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdGreaterThan(Long value) {\n            addCriterion(\"category_id >\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"category_id >=\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdLessThan(Long value) {\n            addCriterion(\"category_id <\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"category_id <=\", value, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdIn(List<Long> values) {\n            addCriterion(\"category_id in\", values, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotIn(List<Long> values) {\n            addCriterion(\"category_id not in\", values, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdBetween(Long value1, Long value2) {\n            addCriterion(\"category_id between\", value1, value2, \"categoryId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCategoryIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"category_id not between\", value1, value2, \"categoryId\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsRole.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\nimport java.util.Date;\n\npublic class UmsRole implements Serializable {\n    private Long id;\n\n    @Schema(title = \"名称\")\n    private String name;\n\n    @Schema(title = \"描述\")\n    private String description;\n\n    @Schema(title = \"后台用户数量\")\n    private Integer adminCount;\n\n    @Schema(title = \"创建时间\")\n    private Date createTime;\n\n    @Schema(title = \"启用状态：0->禁用；1->启用\")\n    private Integer status;\n\n    private Integer sort;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getDescription() {\n        return description;\n    }\n\n    public void setDescription(String description) {\n        this.description = description;\n    }\n\n    public Integer getAdminCount() {\n        return adminCount;\n    }\n\n    public void setAdminCount(Integer adminCount) {\n        this.adminCount = adminCount;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n\n    public Integer getStatus() {\n        return status;\n    }\n\n    public void setStatus(Integer status) {\n        this.status = status;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", name=\").append(name);\n        sb.append(\", description=\").append(description);\n        sb.append(\", adminCount=\").append(adminCount);\n        sb.append(\", createTime=\").append(createTime);\n        sb.append(\", status=\").append(status);\n        sb.append(\", sort=\").append(sort);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsRoleExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\npublic class UmsRoleExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsRoleExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNull() {\n            addCriterion(\"name is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIsNotNull() {\n            addCriterion(\"name is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameEqualTo(String value) {\n            addCriterion(\"name =\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotEqualTo(String value) {\n            addCriterion(\"name <>\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThan(String value) {\n            addCriterion(\"name >\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameGreaterThanOrEqualTo(String value) {\n            addCriterion(\"name >=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThan(String value) {\n            addCriterion(\"name <\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLessThanOrEqualTo(String value) {\n            addCriterion(\"name <=\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameLike(String value) {\n            addCriterion(\"name like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotLike(String value) {\n            addCriterion(\"name not like\", value, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameIn(List<String> values) {\n            addCriterion(\"name in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotIn(List<String> values) {\n            addCriterion(\"name not in\", values, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameBetween(String value1, String value2) {\n            addCriterion(\"name between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andNameNotBetween(String value1, String value2) {\n            addCriterion(\"name not between\", value1, value2, \"name\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIsNull() {\n            addCriterion(\"description is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIsNotNull() {\n            addCriterion(\"description is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionEqualTo(String value) {\n            addCriterion(\"description =\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotEqualTo(String value) {\n            addCriterion(\"description <>\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionGreaterThan(String value) {\n            addCriterion(\"description >\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionGreaterThanOrEqualTo(String value) {\n            addCriterion(\"description >=\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLessThan(String value) {\n            addCriterion(\"description <\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLessThanOrEqualTo(String value) {\n            addCriterion(\"description <=\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionLike(String value) {\n            addCriterion(\"description like\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotLike(String value) {\n            addCriterion(\"description not like\", value, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionIn(List<String> values) {\n            addCriterion(\"description in\", values, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotIn(List<String> values) {\n            addCriterion(\"description not in\", values, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionBetween(String value1, String value2) {\n            addCriterion(\"description between\", value1, value2, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andDescriptionNotBetween(String value1, String value2) {\n            addCriterion(\"description not between\", value1, value2, \"description\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountIsNull() {\n            addCriterion(\"admin_count is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountIsNotNull() {\n            addCriterion(\"admin_count is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountEqualTo(Integer value) {\n            addCriterion(\"admin_count =\", value, \"adminCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountNotEqualTo(Integer value) {\n            addCriterion(\"admin_count <>\", value, \"adminCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountGreaterThan(Integer value) {\n            addCriterion(\"admin_count >\", value, \"adminCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"admin_count >=\", value, \"adminCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountLessThan(Integer value) {\n            addCriterion(\"admin_count <\", value, \"adminCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountLessThanOrEqualTo(Integer value) {\n            addCriterion(\"admin_count <=\", value, \"adminCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountIn(List<Integer> values) {\n            addCriterion(\"admin_count in\", values, \"adminCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountNotIn(List<Integer> values) {\n            addCriterion(\"admin_count not in\", values, \"adminCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountBetween(Integer value1, Integer value2) {\n            addCriterion(\"admin_count between\", value1, value2, \"adminCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andAdminCountNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"admin_count not between\", value1, value2, \"adminCount\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNull() {\n            addCriterion(\"create_time is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIsNotNull() {\n            addCriterion(\"create_time is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeEqualTo(Date value) {\n            addCriterion(\"create_time =\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotEqualTo(Date value) {\n            addCriterion(\"create_time <>\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThan(Date value) {\n            addCriterion(\"create_time >\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {\n            addCriterion(\"create_time >=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThan(Date value) {\n            addCriterion(\"create_time <\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {\n            addCriterion(\"create_time <=\", value, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeIn(List<Date> values) {\n            addCriterion(\"create_time in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotIn(List<Date> values) {\n            addCriterion(\"create_time not in\", values, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeBetween(Date value1, Date value2) {\n            addCriterion(\"create_time between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {\n            addCriterion(\"create_time not between\", value1, value2, \"createTime\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNull() {\n            addCriterion(\"status is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIsNotNull() {\n            addCriterion(\"status is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusEqualTo(Integer value) {\n            addCriterion(\"status =\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotEqualTo(Integer value) {\n            addCriterion(\"status <>\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThan(Integer value) {\n            addCriterion(\"status >\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"status >=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThan(Integer value) {\n            addCriterion(\"status <\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusLessThanOrEqualTo(Integer value) {\n            addCriterion(\"status <=\", value, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusIn(List<Integer> values) {\n            addCriterion(\"status in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotIn(List<Integer> values) {\n            addCriterion(\"status not in\", values, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusBetween(Integer value1, Integer value2) {\n            addCriterion(\"status between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andStatusNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"status not between\", value1, value2, \"status\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNull() {\n            addCriterion(\"sort is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIsNotNull() {\n            addCriterion(\"sort is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortEqualTo(Integer value) {\n            addCriterion(\"sort =\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotEqualTo(Integer value) {\n            addCriterion(\"sort <>\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThan(Integer value) {\n            addCriterion(\"sort >\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortGreaterThanOrEqualTo(Integer value) {\n            addCriterion(\"sort >=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThan(Integer value) {\n            addCriterion(\"sort <\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortLessThanOrEqualTo(Integer value) {\n            addCriterion(\"sort <=\", value, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortIn(List<Integer> values) {\n            addCriterion(\"sort in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotIn(List<Integer> values) {\n            addCriterion(\"sort not in\", values, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n\n        public Criteria andSortNotBetween(Integer value1, Integer value2) {\n            addCriterion(\"sort not between\", value1, value2, \"sort\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsRoleMenuRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class UmsRoleMenuRelation implements Serializable {\n    private Long id;\n\n    @Schema(title = \"角色ID\")\n    private Long roleId;\n\n    @Schema(title = \"菜单ID\")\n    private Long menuId;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getRoleId() {\n        return roleId;\n    }\n\n    public void setRoleId(Long roleId) {\n        this.roleId = roleId;\n    }\n\n    public Long getMenuId() {\n        return menuId;\n    }\n\n    public void setMenuId(Long menuId) {\n        this.menuId = menuId;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", roleId=\").append(roleId);\n        sb.append(\", menuId=\").append(menuId);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsRoleMenuRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsRoleMenuRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsRoleMenuRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIsNull() {\n            addCriterion(\"role_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIsNotNull() {\n            addCriterion(\"role_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdEqualTo(Long value) {\n            addCriterion(\"role_id =\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotEqualTo(Long value) {\n            addCriterion(\"role_id <>\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdGreaterThan(Long value) {\n            addCriterion(\"role_id >\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"role_id >=\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdLessThan(Long value) {\n            addCriterion(\"role_id <\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"role_id <=\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIn(List<Long> values) {\n            addCriterion(\"role_id in\", values, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotIn(List<Long> values) {\n            addCriterion(\"role_id not in\", values, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdBetween(Long value1, Long value2) {\n            addCriterion(\"role_id between\", value1, value2, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"role_id not between\", value1, value2, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdIsNull() {\n            addCriterion(\"menu_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdIsNotNull() {\n            addCriterion(\"menu_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdEqualTo(Long value) {\n            addCriterion(\"menu_id =\", value, \"menuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdNotEqualTo(Long value) {\n            addCriterion(\"menu_id <>\", value, \"menuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdGreaterThan(Long value) {\n            addCriterion(\"menu_id >\", value, \"menuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"menu_id >=\", value, \"menuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdLessThan(Long value) {\n            addCriterion(\"menu_id <\", value, \"menuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"menu_id <=\", value, \"menuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdIn(List<Long> values) {\n            addCriterion(\"menu_id in\", values, \"menuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdNotIn(List<Long> values) {\n            addCriterion(\"menu_id not in\", values, \"menuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdBetween(Long value1, Long value2) {\n            addCriterion(\"menu_id between\", value1, value2, \"menuId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andMenuIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"menu_id not between\", value1, value2, \"menuId\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsRolePermissionRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class UmsRolePermissionRelation implements Serializable {\n    private Long id;\n\n    private Long roleId;\n\n    private Long permissionId;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getRoleId() {\n        return roleId;\n    }\n\n    public void setRoleId(Long roleId) {\n        this.roleId = roleId;\n    }\n\n    public Long getPermissionId() {\n        return permissionId;\n    }\n\n    public void setPermissionId(Long permissionId) {\n        this.permissionId = permissionId;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", roleId=\").append(roleId);\n        sb.append(\", permissionId=\").append(permissionId);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsRolePermissionRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsRolePermissionRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsRolePermissionRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIsNull() {\n            addCriterion(\"role_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIsNotNull() {\n            addCriterion(\"role_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdEqualTo(Long value) {\n            addCriterion(\"role_id =\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotEqualTo(Long value) {\n            addCriterion(\"role_id <>\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdGreaterThan(Long value) {\n            addCriterion(\"role_id >\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"role_id >=\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdLessThan(Long value) {\n            addCriterion(\"role_id <\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"role_id <=\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIn(List<Long> values) {\n            addCriterion(\"role_id in\", values, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotIn(List<Long> values) {\n            addCriterion(\"role_id not in\", values, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdBetween(Long value1, Long value2) {\n            addCriterion(\"role_id between\", value1, value2, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"role_id not between\", value1, value2, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdIsNull() {\n            addCriterion(\"permission_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdIsNotNull() {\n            addCriterion(\"permission_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdEqualTo(Long value) {\n            addCriterion(\"permission_id =\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdNotEqualTo(Long value) {\n            addCriterion(\"permission_id <>\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdGreaterThan(Long value) {\n            addCriterion(\"permission_id >\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"permission_id >=\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdLessThan(Long value) {\n            addCriterion(\"permission_id <\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"permission_id <=\", value, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdIn(List<Long> values) {\n            addCriterion(\"permission_id in\", values, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdNotIn(List<Long> values) {\n            addCriterion(\"permission_id not in\", values, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdBetween(Long value1, Long value2) {\n            addCriterion(\"permission_id between\", value1, value2, \"permissionId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andPermissionIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"permission_id not between\", value1, value2, \"permissionId\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsRoleResourceRelation.java",
    "content": "package com.macro.mall.model;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport java.io.Serializable;\n\npublic class UmsRoleResourceRelation implements Serializable {\n    private Long id;\n\n    @Schema(title = \"角色ID\")\n    private Long roleId;\n\n    @Schema(title = \"资源ID\")\n    private Long resourceId;\n\n    private static final long serialVersionUID = 1L;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getRoleId() {\n        return roleId;\n    }\n\n    public void setRoleId(Long roleId) {\n        this.roleId = roleId;\n    }\n\n    public Long getResourceId() {\n        return resourceId;\n    }\n\n    public void setResourceId(Long resourceId) {\n        this.resourceId = resourceId;\n    }\n\n    @Override\n    public String toString() {\n        StringBuilder sb = new StringBuilder();\n        sb.append(getClass().getSimpleName());\n        sb.append(\" [\");\n        sb.append(\"Hash = \").append(hashCode());\n        sb.append(\", id=\").append(id);\n        sb.append(\", roleId=\").append(roleId);\n        sb.append(\", resourceId=\").append(resourceId);\n        sb.append(\", serialVersionUID=\").append(serialVersionUID);\n        sb.append(\"]\");\n        return sb.toString();\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/java/com/macro/mall/model/UmsRoleResourceRelationExample.java",
    "content": "package com.macro.mall.model;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class UmsRoleResourceRelationExample {\n    protected String orderByClause;\n\n    protected boolean distinct;\n\n    protected List<Criteria> oredCriteria;\n\n    public UmsRoleResourceRelationExample() {\n        oredCriteria = new ArrayList<>();\n    }\n\n    public void setOrderByClause(String orderByClause) {\n        this.orderByClause = orderByClause;\n    }\n\n    public String getOrderByClause() {\n        return orderByClause;\n    }\n\n    public void setDistinct(boolean distinct) {\n        this.distinct = distinct;\n    }\n\n    public boolean isDistinct() {\n        return distinct;\n    }\n\n    public List<Criteria> getOredCriteria() {\n        return oredCriteria;\n    }\n\n    public void or(Criteria criteria) {\n        oredCriteria.add(criteria);\n    }\n\n    public Criteria or() {\n        Criteria criteria = createCriteriaInternal();\n        oredCriteria.add(criteria);\n        return criteria;\n    }\n\n    public Criteria createCriteria() {\n        Criteria criteria = createCriteriaInternal();\n        if (oredCriteria.size() == 0) {\n            oredCriteria.add(criteria);\n        }\n        return criteria;\n    }\n\n    protected Criteria createCriteriaInternal() {\n        Criteria criteria = new Criteria();\n        return criteria;\n    }\n\n    public void clear() {\n        oredCriteria.clear();\n        orderByClause = null;\n        distinct = false;\n    }\n\n    protected abstract static class GeneratedCriteria {\n        protected List<Criterion> criteria;\n\n        protected GeneratedCriteria() {\n            super();\n            criteria = new ArrayList<>();\n        }\n\n        public boolean isValid() {\n            return criteria.size() > 0;\n        }\n\n        public List<Criterion> getAllCriteria() {\n            return criteria;\n        }\n\n        public List<Criterion> getCriteria() {\n            return criteria;\n        }\n\n        protected void addCriterion(String condition) {\n            if (condition == null) {\n                throw new RuntimeException(\"Value for condition cannot be null\");\n            }\n            criteria.add(new Criterion(condition));\n        }\n\n        protected void addCriterion(String condition, Object value, String property) {\n            if (value == null) {\n                throw new RuntimeException(\"Value for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value));\n        }\n\n        protected void addCriterion(String condition, Object value1, Object value2, String property) {\n            if (value1 == null || value2 == null) {\n                throw new RuntimeException(\"Between values for \" + property + \" cannot be null\");\n            }\n            criteria.add(new Criterion(condition, value1, value2));\n        }\n\n        public Criteria andIdIsNull() {\n            addCriterion(\"id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIsNotNull() {\n            addCriterion(\"id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdEqualTo(Long value) {\n            addCriterion(\"id =\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotEqualTo(Long value) {\n            addCriterion(\"id <>\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThan(Long value) {\n            addCriterion(\"id >\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"id >=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThan(Long value) {\n            addCriterion(\"id <\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"id <=\", value, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdIn(List<Long> values) {\n            addCriterion(\"id in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotIn(List<Long> values) {\n            addCriterion(\"id not in\", values, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdBetween(Long value1, Long value2) {\n            addCriterion(\"id between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"id not between\", value1, value2, \"id\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIsNull() {\n            addCriterion(\"role_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIsNotNull() {\n            addCriterion(\"role_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdEqualTo(Long value) {\n            addCriterion(\"role_id =\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotEqualTo(Long value) {\n            addCriterion(\"role_id <>\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdGreaterThan(Long value) {\n            addCriterion(\"role_id >\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"role_id >=\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdLessThan(Long value) {\n            addCriterion(\"role_id <\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"role_id <=\", value, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdIn(List<Long> values) {\n            addCriterion(\"role_id in\", values, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotIn(List<Long> values) {\n            addCriterion(\"role_id not in\", values, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdBetween(Long value1, Long value2) {\n            addCriterion(\"role_id between\", value1, value2, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andRoleIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"role_id not between\", value1, value2, \"roleId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdIsNull() {\n            addCriterion(\"resource_id is null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdIsNotNull() {\n            addCriterion(\"resource_id is not null\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdEqualTo(Long value) {\n            addCriterion(\"resource_id =\", value, \"resourceId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdNotEqualTo(Long value) {\n            addCriterion(\"resource_id <>\", value, \"resourceId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdGreaterThan(Long value) {\n            addCriterion(\"resource_id >\", value, \"resourceId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdGreaterThanOrEqualTo(Long value) {\n            addCriterion(\"resource_id >=\", value, \"resourceId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdLessThan(Long value) {\n            addCriterion(\"resource_id <\", value, \"resourceId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdLessThanOrEqualTo(Long value) {\n            addCriterion(\"resource_id <=\", value, \"resourceId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdIn(List<Long> values) {\n            addCriterion(\"resource_id in\", values, \"resourceId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdNotIn(List<Long> values) {\n            addCriterion(\"resource_id not in\", values, \"resourceId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdBetween(Long value1, Long value2) {\n            addCriterion(\"resource_id between\", value1, value2, \"resourceId\");\n            return (Criteria) this;\n        }\n\n        public Criteria andResourceIdNotBetween(Long value1, Long value2) {\n            addCriterion(\"resource_id not between\", value1, value2, \"resourceId\");\n            return (Criteria) this;\n        }\n    }\n\n    public static class Criteria extends GeneratedCriteria {\n        protected Criteria() {\n            super();\n        }\n    }\n\n    public static class Criterion {\n        private String condition;\n\n        private Object value;\n\n        private Object secondValue;\n\n        private boolean noValue;\n\n        private boolean singleValue;\n\n        private boolean betweenValue;\n\n        private boolean listValue;\n\n        private String typeHandler;\n\n        public String getCondition() {\n            return condition;\n        }\n\n        public Object getValue() {\n            return value;\n        }\n\n        public Object getSecondValue() {\n            return secondValue;\n        }\n\n        public boolean isNoValue() {\n            return noValue;\n        }\n\n        public boolean isSingleValue() {\n            return singleValue;\n        }\n\n        public boolean isBetweenValue() {\n            return betweenValue;\n        }\n\n        public boolean isListValue() {\n            return listValue;\n        }\n\n        public String getTypeHandler() {\n            return typeHandler;\n        }\n\n        protected Criterion(String condition) {\n            super();\n            this.condition = condition;\n            this.typeHandler = null;\n            this.noValue = true;\n        }\n\n        protected Criterion(String condition, Object value, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.typeHandler = typeHandler;\n            if (value instanceof List<?>) {\n                this.listValue = true;\n            } else {\n                this.singleValue = true;\n            }\n        }\n\n        protected Criterion(String condition, Object value) {\n            this(condition, value, null);\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {\n            super();\n            this.condition = condition;\n            this.value = value;\n            this.secondValue = secondValue;\n            this.typeHandler = typeHandler;\n            this.betweenValue = true;\n        }\n\n        protected Criterion(String condition, Object value, Object secondValue) {\n            this(condition, value, secondValue, null);\n        }\n    }\n}"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsHelpCategoryMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsHelpCategoryMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsHelpCategory\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"icon\" jdbcType=\"VARCHAR\" property=\"icon\" />\n    <result column=\"help_count\" jdbcType=\"INTEGER\" property=\"helpCount\" />\n    <result column=\"show_status\" jdbcType=\"INTEGER\" property=\"showStatus\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, icon, help_count, show_status, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsHelpCategoryExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_help_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from cms_help_category\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from cms_help_category\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsHelpCategoryExample\">\n    delete from cms_help_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsHelpCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_help_category (name, icon, help_count, \n      show_status, sort)\n    values (#{name,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, #{helpCount,jdbcType=INTEGER}, \n      #{showStatus,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsHelpCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_help_category\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"icon != null\">\n        icon,\n      </if>\n      <if test=\"helpCount != null\">\n        help_count,\n      </if>\n      <if test=\"showStatus != null\">\n        show_status,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"helpCount != null\">\n        #{helpCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsHelpCategoryExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_help_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_help_category\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.icon != null\">\n        icon = #{row.icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.helpCount != null\">\n        help_count = #{row.helpCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.showStatus != null\">\n        show_status = #{row.showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_help_category\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      icon = #{row.icon,jdbcType=VARCHAR},\n      help_count = #{row.helpCount,jdbcType=INTEGER},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.CmsHelpCategory\">\n    update cms_help_category\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        icon = #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"helpCount != null\">\n        help_count = #{helpCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        show_status = #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.CmsHelpCategory\">\n    update cms_help_category\n    set name = #{name,jdbcType=VARCHAR},\n      icon = #{icon,jdbcType=VARCHAR},\n      help_count = #{helpCount,jdbcType=INTEGER},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsHelpMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsHelpMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsHelp\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"category_id\" jdbcType=\"BIGINT\" property=\"categoryId\" />\n    <result column=\"icon\" jdbcType=\"VARCHAR\" property=\"icon\" />\n    <result column=\"title\" jdbcType=\"VARCHAR\" property=\"title\" />\n    <result column=\"show_status\" jdbcType=\"INTEGER\" property=\"showStatus\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"read_count\" jdbcType=\"INTEGER\" property=\"readCount\" />\n  </resultMap>\n  <resultMap extends=\"BaseResultMap\" id=\"ResultMapWithBLOBs\" type=\"com.macro.mall.model.CmsHelp\">\n    <result column=\"content\" jdbcType=\"LONGVARCHAR\" property=\"content\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, category_id, icon, title, show_status, create_time, read_count\n  </sql>\n  <sql id=\"Blob_Column_List\">\n    content\n  </sql>\n  <select id=\"selectByExampleWithBLOBs\" parameterType=\"com.macro.mall.model.CmsHelpExample\" resultMap=\"ResultMapWithBLOBs\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from cms_help\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsHelpExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_help\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"ResultMapWithBLOBs\">\n    select \n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from cms_help\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from cms_help\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsHelpExample\">\n    delete from cms_help\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsHelp\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_help (category_id, icon, title, \n      show_status, create_time, read_count, \n      content)\n    values (#{categoryId,jdbcType=BIGINT}, #{icon,jdbcType=VARCHAR}, #{title,jdbcType=VARCHAR}, \n      #{showStatus,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{readCount,jdbcType=INTEGER}, \n      #{content,jdbcType=LONGVARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsHelp\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_help\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"categoryId != null\">\n        category_id,\n      </if>\n      <if test=\"icon != null\">\n        icon,\n      </if>\n      <if test=\"title != null\">\n        title,\n      </if>\n      <if test=\"showStatus != null\">\n        show_status,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"readCount != null\">\n        read_count,\n      </if>\n      <if test=\"content != null\">\n        content,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"categoryId != null\">\n        #{categoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"icon != null\">\n        #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"title != null\">\n        #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"showStatus != null\">\n        #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"readCount != null\">\n        #{readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"content != null\">\n        #{content,jdbcType=LONGVARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsHelpExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_help\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_help\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.categoryId != null\">\n        category_id = #{row.categoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.icon != null\">\n        icon = #{row.icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.title != null\">\n        title = #{row.title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.showStatus != null\">\n        show_status = #{row.showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.readCount != null\">\n        read_count = #{row.readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.content != null\">\n        content = #{row.content,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExampleWithBLOBs\" parameterType=\"map\">\n    update cms_help\n    set id = #{row.id,jdbcType=BIGINT},\n      category_id = #{row.categoryId,jdbcType=BIGINT},\n      icon = #{row.icon,jdbcType=VARCHAR},\n      title = #{row.title,jdbcType=VARCHAR},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      read_count = #{row.readCount,jdbcType=INTEGER},\n      content = #{row.content,jdbcType=LONGVARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_help\n    set id = #{row.id,jdbcType=BIGINT},\n      category_id = #{row.categoryId,jdbcType=BIGINT},\n      icon = #{row.icon,jdbcType=VARCHAR},\n      title = #{row.title,jdbcType=VARCHAR},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      read_count = #{row.readCount,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.CmsHelp\">\n    update cms_help\n    <set>\n      <if test=\"categoryId != null\">\n        category_id = #{categoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"icon != null\">\n        icon = #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"title != null\">\n        title = #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"showStatus != null\">\n        show_status = #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"readCount != null\">\n        read_count = #{readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"content != null\">\n        content = #{content,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKeyWithBLOBs\" parameterType=\"com.macro.mall.model.CmsHelp\">\n    update cms_help\n    set category_id = #{categoryId,jdbcType=BIGINT},\n      icon = #{icon,jdbcType=VARCHAR},\n      title = #{title,jdbcType=VARCHAR},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      read_count = #{readCount,jdbcType=INTEGER},\n      content = #{content,jdbcType=LONGVARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.CmsHelp\">\n    update cms_help\n    set category_id = #{categoryId,jdbcType=BIGINT},\n      icon = #{icon,jdbcType=VARCHAR},\n      title = #{title,jdbcType=VARCHAR},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      read_count = #{readCount,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsMemberReportMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsMemberReportMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsMemberReport\">\n    <result column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"report_type\" jdbcType=\"INTEGER\" property=\"reportType\" />\n    <result column=\"report_member_name\" jdbcType=\"VARCHAR\" property=\"reportMemberName\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"report_object\" jdbcType=\"VARCHAR\" property=\"reportObject\" />\n    <result column=\"report_status\" jdbcType=\"INTEGER\" property=\"reportStatus\" />\n    <result column=\"handle_status\" jdbcType=\"INTEGER\" property=\"handleStatus\" />\n    <result column=\"note\" jdbcType=\"VARCHAR\" property=\"note\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, report_type, report_member_name, create_time, report_object, report_status, handle_status, \n    note\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsMemberReportExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_member_report\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsMemberReportExample\">\n    delete from cms_member_report\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsMemberReport\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_member_report (report_type, report_member_name, create_time, \n      report_object, report_status, handle_status, \n      note)\n    values (#{reportType,jdbcType=INTEGER}, #{reportMemberName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, \n      #{reportObject,jdbcType=VARCHAR}, #{reportStatus,jdbcType=INTEGER}, #{handleStatus,jdbcType=INTEGER}, \n      #{note,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsMemberReport\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_member_report\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"reportType != null\">\n        report_type,\n      </if>\n      <if test=\"reportMemberName != null\">\n        report_member_name,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"reportObject != null\">\n        report_object,\n      </if>\n      <if test=\"reportStatus != null\">\n        report_status,\n      </if>\n      <if test=\"handleStatus != null\">\n        handle_status,\n      </if>\n      <if test=\"note != null\">\n        note,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"reportType != null\">\n        #{reportType,jdbcType=INTEGER},\n      </if>\n      <if test=\"reportMemberName != null\">\n        #{reportMemberName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"reportObject != null\">\n        #{reportObject,jdbcType=VARCHAR},\n      </if>\n      <if test=\"reportStatus != null\">\n        #{reportStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"handleStatus != null\">\n        #{handleStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"note != null\">\n        #{note,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsMemberReportExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_member_report\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_member_report\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.reportType != null\">\n        report_type = #{row.reportType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.reportMemberName != null\">\n        report_member_name = #{row.reportMemberName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.reportObject != null\">\n        report_object = #{row.reportObject,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.reportStatus != null\">\n        report_status = #{row.reportStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.handleStatus != null\">\n        handle_status = #{row.handleStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.note != null\">\n        note = #{row.note,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_member_report\n    set id = #{row.id,jdbcType=BIGINT},\n      report_type = #{row.reportType,jdbcType=INTEGER},\n      report_member_name = #{row.reportMemberName,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      report_object = #{row.reportObject,jdbcType=VARCHAR},\n      report_status = #{row.reportStatus,jdbcType=INTEGER},\n      handle_status = #{row.handleStatus,jdbcType=INTEGER},\n      note = #{row.note,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsPrefrenceAreaMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsPrefrenceAreaMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsPrefrenceArea\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"sub_title\" jdbcType=\"VARCHAR\" property=\"subTitle\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n    <result column=\"show_status\" jdbcType=\"INTEGER\" property=\"showStatus\" />\n  </resultMap>\n  <resultMap extends=\"BaseResultMap\" id=\"ResultMapWithBLOBs\" type=\"com.macro.mall.model.CmsPrefrenceArea\">\n    <result column=\"pic\" jdbcType=\"VARBINARY\" property=\"pic\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, sub_title, sort, show_status\n  </sql>\n  <sql id=\"Blob_Column_List\">\n    pic\n  </sql>\n  <select id=\"selectByExampleWithBLOBs\" parameterType=\"com.macro.mall.model.CmsPrefrenceAreaExample\" resultMap=\"ResultMapWithBLOBs\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from cms_prefrence_area\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsPrefrenceAreaExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_prefrence_area\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"ResultMapWithBLOBs\">\n    select \n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from cms_prefrence_area\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from cms_prefrence_area\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsPrefrenceAreaExample\">\n    delete from cms_prefrence_area\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsPrefrenceArea\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_prefrence_area (name, sub_title, sort, \n      show_status, pic)\n    values (#{name,jdbcType=VARCHAR}, #{subTitle,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, \n      #{showStatus,jdbcType=INTEGER}, #{pic,jdbcType=VARBINARY})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsPrefrenceArea\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_prefrence_area\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"subTitle != null\">\n        sub_title,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n      <if test=\"showStatus != null\">\n        show_status,\n      </if>\n      <if test=\"pic != null\">\n        pic,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"subTitle != null\">\n        #{subTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"pic != null\">\n        #{pic,jdbcType=VARBINARY},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsPrefrenceAreaExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_prefrence_area\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_prefrence_area\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.subTitle != null\">\n        sub_title = #{row.subTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.showStatus != null\">\n        show_status = #{row.showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.pic != null\">\n        pic = #{row.pic,jdbcType=VARBINARY},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExampleWithBLOBs\" parameterType=\"map\">\n    update cms_prefrence_area\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      sub_title = #{row.subTitle,jdbcType=VARCHAR},\n      sort = #{row.sort,jdbcType=INTEGER},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      pic = #{row.pic,jdbcType=VARBINARY}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_prefrence_area\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      sub_title = #{row.subTitle,jdbcType=VARCHAR},\n      sort = #{row.sort,jdbcType=INTEGER},\n      show_status = #{row.showStatus,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.CmsPrefrenceArea\">\n    update cms_prefrence_area\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"subTitle != null\">\n        sub_title = #{subTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        show_status = #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"pic != null\">\n        pic = #{pic,jdbcType=VARBINARY},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKeyWithBLOBs\" parameterType=\"com.macro.mall.model.CmsPrefrenceArea\">\n    update cms_prefrence_area\n    set name = #{name,jdbcType=VARCHAR},\n      sub_title = #{subTitle,jdbcType=VARCHAR},\n      sort = #{sort,jdbcType=INTEGER},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      pic = #{pic,jdbcType=VARBINARY}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.CmsPrefrenceArea\">\n    update cms_prefrence_area\n    set name = #{name,jdbcType=VARCHAR},\n      sub_title = #{subTitle,jdbcType=VARCHAR},\n      sort = #{sort,jdbcType=INTEGER},\n      show_status = #{showStatus,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsPrefrenceAreaProductRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsPrefrenceAreaProductRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsPrefrenceAreaProductRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"prefrence_area_id\" jdbcType=\"BIGINT\" property=\"prefrenceAreaId\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, prefrence_area_id, product_id\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsPrefrenceAreaProductRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_prefrence_area_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from cms_prefrence_area_product_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from cms_prefrence_area_product_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsPrefrenceAreaProductRelationExample\">\n    delete from cms_prefrence_area_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsPrefrenceAreaProductRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_prefrence_area_product_relation (prefrence_area_id, product_id)\n    values (#{prefrenceAreaId,jdbcType=BIGINT}, #{productId,jdbcType=BIGINT})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsPrefrenceAreaProductRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_prefrence_area_product_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"prefrenceAreaId != null\">\n        prefrence_area_id,\n      </if>\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"prefrenceAreaId != null\">\n        #{prefrenceAreaId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsPrefrenceAreaProductRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_prefrence_area_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_prefrence_area_product_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.prefrenceAreaId != null\">\n        prefrence_area_id = #{row.prefrenceAreaId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_prefrence_area_product_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      prefrence_area_id = #{row.prefrenceAreaId,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.CmsPrefrenceAreaProductRelation\">\n    update cms_prefrence_area_product_relation\n    <set>\n      <if test=\"prefrenceAreaId != null\">\n        prefrence_area_id = #{prefrenceAreaId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.CmsPrefrenceAreaProductRelation\">\n    update cms_prefrence_area_product_relation\n    set prefrence_area_id = #{prefrenceAreaId,jdbcType=BIGINT},\n      product_id = #{productId,jdbcType=BIGINT}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsSubjectCategoryMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsSubjectCategoryMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsSubjectCategory\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"icon\" jdbcType=\"VARCHAR\" property=\"icon\" />\n    <result column=\"subject_count\" jdbcType=\"INTEGER\" property=\"subjectCount\" />\n    <result column=\"show_status\" jdbcType=\"INTEGER\" property=\"showStatus\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, icon, subject_count, show_status, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsSubjectCategoryExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_subject_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from cms_subject_category\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from cms_subject_category\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsSubjectCategoryExample\">\n    delete from cms_subject_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsSubjectCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_subject_category (name, icon, subject_count, \n      show_status, sort)\n    values (#{name,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, #{subjectCount,jdbcType=INTEGER}, \n      #{showStatus,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsSubjectCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_subject_category\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"icon != null\">\n        icon,\n      </if>\n      <if test=\"subjectCount != null\">\n        subject_count,\n      </if>\n      <if test=\"showStatus != null\">\n        show_status,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"subjectCount != null\">\n        #{subjectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsSubjectCategoryExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_subject_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_subject_category\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.icon != null\">\n        icon = #{row.icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.subjectCount != null\">\n        subject_count = #{row.subjectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.showStatus != null\">\n        show_status = #{row.showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_subject_category\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      icon = #{row.icon,jdbcType=VARCHAR},\n      subject_count = #{row.subjectCount,jdbcType=INTEGER},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.CmsSubjectCategory\">\n    update cms_subject_category\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        icon = #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"subjectCount != null\">\n        subject_count = #{subjectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        show_status = #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.CmsSubjectCategory\">\n    update cms_subject_category\n    set name = #{name,jdbcType=VARCHAR},\n      icon = #{icon,jdbcType=VARCHAR},\n      subject_count = #{subjectCount,jdbcType=INTEGER},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsSubjectCommentMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsSubjectCommentMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsSubjectComment\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"subject_id\" jdbcType=\"BIGINT\" property=\"subjectId\" />\n    <result column=\"member_nick_name\" jdbcType=\"VARCHAR\" property=\"memberNickName\" />\n    <result column=\"member_icon\" jdbcType=\"VARCHAR\" property=\"memberIcon\" />\n    <result column=\"content\" jdbcType=\"VARCHAR\" property=\"content\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"show_status\" jdbcType=\"INTEGER\" property=\"showStatus\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, subject_id, member_nick_name, member_icon, content, create_time, show_status\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsSubjectCommentExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_subject_comment\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from cms_subject_comment\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from cms_subject_comment\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsSubjectCommentExample\">\n    delete from cms_subject_comment\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsSubjectComment\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_subject_comment (subject_id, member_nick_name, member_icon, \n      content, create_time, show_status\n      )\n    values (#{subjectId,jdbcType=BIGINT}, #{memberNickName,jdbcType=VARCHAR}, #{memberIcon,jdbcType=VARCHAR}, \n      #{content,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{showStatus,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsSubjectComment\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_subject_comment\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"subjectId != null\">\n        subject_id,\n      </if>\n      <if test=\"memberNickName != null\">\n        member_nick_name,\n      </if>\n      <if test=\"memberIcon != null\">\n        member_icon,\n      </if>\n      <if test=\"content != null\">\n        content,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"showStatus != null\">\n        show_status,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"subjectId != null\">\n        #{subjectId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberNickName != null\">\n        #{memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberIcon != null\">\n        #{memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\">\n        #{content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"showStatus != null\">\n        #{showStatus,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsSubjectCommentExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_subject_comment\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_subject_comment\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.subjectId != null\">\n        subject_id = #{row.subjectId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberNickName != null\">\n        member_nick_name = #{row.memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.memberIcon != null\">\n        member_icon = #{row.memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.content != null\">\n        content = #{row.content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.showStatus != null\">\n        show_status = #{row.showStatus,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_subject_comment\n    set id = #{row.id,jdbcType=BIGINT},\n      subject_id = #{row.subjectId,jdbcType=BIGINT},\n      member_nick_name = #{row.memberNickName,jdbcType=VARCHAR},\n      member_icon = #{row.memberIcon,jdbcType=VARCHAR},\n      content = #{row.content,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      show_status = #{row.showStatus,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.CmsSubjectComment\">\n    update cms_subject_comment\n    <set>\n      <if test=\"subjectId != null\">\n        subject_id = #{subjectId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberNickName != null\">\n        member_nick_name = #{memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberIcon != null\">\n        member_icon = #{memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\">\n        content = #{content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"showStatus != null\">\n        show_status = #{showStatus,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.CmsSubjectComment\">\n    update cms_subject_comment\n    set subject_id = #{subjectId,jdbcType=BIGINT},\n      member_nick_name = #{memberNickName,jdbcType=VARCHAR},\n      member_icon = #{memberIcon,jdbcType=VARCHAR},\n      content = #{content,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      show_status = #{showStatus,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsSubjectMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsSubjectMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsSubject\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"category_id\" jdbcType=\"BIGINT\" property=\"categoryId\" />\n    <result column=\"title\" jdbcType=\"VARCHAR\" property=\"title\" />\n    <result column=\"pic\" jdbcType=\"VARCHAR\" property=\"pic\" />\n    <result column=\"product_count\" jdbcType=\"INTEGER\" property=\"productCount\" />\n    <result column=\"recommend_status\" jdbcType=\"INTEGER\" property=\"recommendStatus\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"collect_count\" jdbcType=\"INTEGER\" property=\"collectCount\" />\n    <result column=\"read_count\" jdbcType=\"INTEGER\" property=\"readCount\" />\n    <result column=\"comment_count\" jdbcType=\"INTEGER\" property=\"commentCount\" />\n    <result column=\"album_pics\" jdbcType=\"VARCHAR\" property=\"albumPics\" />\n    <result column=\"description\" jdbcType=\"VARCHAR\" property=\"description\" />\n    <result column=\"show_status\" jdbcType=\"INTEGER\" property=\"showStatus\" />\n    <result column=\"forward_count\" jdbcType=\"INTEGER\" property=\"forwardCount\" />\n    <result column=\"category_name\" jdbcType=\"VARCHAR\" property=\"categoryName\" />\n  </resultMap>\n  <resultMap extends=\"BaseResultMap\" id=\"ResultMapWithBLOBs\" type=\"com.macro.mall.model.CmsSubject\">\n    <result column=\"content\" jdbcType=\"LONGVARCHAR\" property=\"content\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, category_id, title, pic, product_count, recommend_status, create_time, collect_count, \n    read_count, comment_count, album_pics, description, show_status, forward_count, category_name\n  </sql>\n  <sql id=\"Blob_Column_List\">\n    content\n  </sql>\n  <select id=\"selectByExampleWithBLOBs\" parameterType=\"com.macro.mall.model.CmsSubjectExample\" resultMap=\"ResultMapWithBLOBs\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from cms_subject\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsSubjectExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_subject\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"ResultMapWithBLOBs\">\n    select \n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from cms_subject\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from cms_subject\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsSubjectExample\">\n    delete from cms_subject\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsSubject\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_subject (category_id, title, pic, \n      product_count, recommend_status, create_time, \n      collect_count, read_count, comment_count, \n      album_pics, description, show_status, \n      forward_count, category_name, content\n      )\n    values (#{categoryId,jdbcType=BIGINT}, #{title,jdbcType=VARCHAR}, #{pic,jdbcType=VARCHAR}, \n      #{productCount,jdbcType=INTEGER}, #{recommendStatus,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, \n      #{collectCount,jdbcType=INTEGER}, #{readCount,jdbcType=INTEGER}, #{commentCount,jdbcType=INTEGER}, \n      #{albumPics,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{showStatus,jdbcType=INTEGER}, \n      #{forwardCount,jdbcType=INTEGER}, #{categoryName,jdbcType=VARCHAR}, #{content,jdbcType=LONGVARCHAR}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsSubject\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_subject\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"categoryId != null\">\n        category_id,\n      </if>\n      <if test=\"title != null\">\n        title,\n      </if>\n      <if test=\"pic != null\">\n        pic,\n      </if>\n      <if test=\"productCount != null\">\n        product_count,\n      </if>\n      <if test=\"recommendStatus != null\">\n        recommend_status,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"collectCount != null\">\n        collect_count,\n      </if>\n      <if test=\"readCount != null\">\n        read_count,\n      </if>\n      <if test=\"commentCount != null\">\n        comment_count,\n      </if>\n      <if test=\"albumPics != null\">\n        album_pics,\n      </if>\n      <if test=\"description != null\">\n        description,\n      </if>\n      <if test=\"showStatus != null\">\n        show_status,\n      </if>\n      <if test=\"forwardCount != null\">\n        forward_count,\n      </if>\n      <if test=\"categoryName != null\">\n        category_name,\n      </if>\n      <if test=\"content != null\">\n        content,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"categoryId != null\">\n        #{categoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"title != null\">\n        #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"pic != null\">\n        #{pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productCount != null\">\n        #{productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"recommendStatus != null\">\n        #{recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"collectCount != null\">\n        #{collectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"readCount != null\">\n        #{readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"commentCount != null\">\n        #{commentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"albumPics != null\">\n        #{albumPics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        #{description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"showStatus != null\">\n        #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"forwardCount != null\">\n        #{forwardCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"categoryName != null\">\n        #{categoryName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\">\n        #{content,jdbcType=LONGVARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsSubjectExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_subject\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_subject\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.categoryId != null\">\n        category_id = #{row.categoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.title != null\">\n        title = #{row.title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.pic != null\">\n        pic = #{row.pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productCount != null\">\n        product_count = #{row.productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.recommendStatus != null\">\n        recommend_status = #{row.recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.collectCount != null\">\n        collect_count = #{row.collectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.readCount != null\">\n        read_count = #{row.readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.commentCount != null\">\n        comment_count = #{row.commentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.albumPics != null\">\n        album_pics = #{row.albumPics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.description != null\">\n        description = #{row.description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.showStatus != null\">\n        show_status = #{row.showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.forwardCount != null\">\n        forward_count = #{row.forwardCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.categoryName != null\">\n        category_name = #{row.categoryName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.content != null\">\n        content = #{row.content,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExampleWithBLOBs\" parameterType=\"map\">\n    update cms_subject\n    set id = #{row.id,jdbcType=BIGINT},\n      category_id = #{row.categoryId,jdbcType=BIGINT},\n      title = #{row.title,jdbcType=VARCHAR},\n      pic = #{row.pic,jdbcType=VARCHAR},\n      product_count = #{row.productCount,jdbcType=INTEGER},\n      recommend_status = #{row.recommendStatus,jdbcType=INTEGER},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      collect_count = #{row.collectCount,jdbcType=INTEGER},\n      read_count = #{row.readCount,jdbcType=INTEGER},\n      comment_count = #{row.commentCount,jdbcType=INTEGER},\n      album_pics = #{row.albumPics,jdbcType=VARCHAR},\n      description = #{row.description,jdbcType=VARCHAR},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      forward_count = #{row.forwardCount,jdbcType=INTEGER},\n      category_name = #{row.categoryName,jdbcType=VARCHAR},\n      content = #{row.content,jdbcType=LONGVARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_subject\n    set id = #{row.id,jdbcType=BIGINT},\n      category_id = #{row.categoryId,jdbcType=BIGINT},\n      title = #{row.title,jdbcType=VARCHAR},\n      pic = #{row.pic,jdbcType=VARCHAR},\n      product_count = #{row.productCount,jdbcType=INTEGER},\n      recommend_status = #{row.recommendStatus,jdbcType=INTEGER},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      collect_count = #{row.collectCount,jdbcType=INTEGER},\n      read_count = #{row.readCount,jdbcType=INTEGER},\n      comment_count = #{row.commentCount,jdbcType=INTEGER},\n      album_pics = #{row.albumPics,jdbcType=VARCHAR},\n      description = #{row.description,jdbcType=VARCHAR},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      forward_count = #{row.forwardCount,jdbcType=INTEGER},\n      category_name = #{row.categoryName,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.CmsSubject\">\n    update cms_subject\n    <set>\n      <if test=\"categoryId != null\">\n        category_id = #{categoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"title != null\">\n        title = #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"pic != null\">\n        pic = #{pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productCount != null\">\n        product_count = #{productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"recommendStatus != null\">\n        recommend_status = #{recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"collectCount != null\">\n        collect_count = #{collectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"readCount != null\">\n        read_count = #{readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"commentCount != null\">\n        comment_count = #{commentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"albumPics != null\">\n        album_pics = #{albumPics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        description = #{description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"showStatus != null\">\n        show_status = #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"forwardCount != null\">\n        forward_count = #{forwardCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"categoryName != null\">\n        category_name = #{categoryName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\">\n        content = #{content,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKeyWithBLOBs\" parameterType=\"com.macro.mall.model.CmsSubject\">\n    update cms_subject\n    set category_id = #{categoryId,jdbcType=BIGINT},\n      title = #{title,jdbcType=VARCHAR},\n      pic = #{pic,jdbcType=VARCHAR},\n      product_count = #{productCount,jdbcType=INTEGER},\n      recommend_status = #{recommendStatus,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      collect_count = #{collectCount,jdbcType=INTEGER},\n      read_count = #{readCount,jdbcType=INTEGER},\n      comment_count = #{commentCount,jdbcType=INTEGER},\n      album_pics = #{albumPics,jdbcType=VARCHAR},\n      description = #{description,jdbcType=VARCHAR},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      forward_count = #{forwardCount,jdbcType=INTEGER},\n      category_name = #{categoryName,jdbcType=VARCHAR},\n      content = #{content,jdbcType=LONGVARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.CmsSubject\">\n    update cms_subject\n    set category_id = #{categoryId,jdbcType=BIGINT},\n      title = #{title,jdbcType=VARCHAR},\n      pic = #{pic,jdbcType=VARCHAR},\n      product_count = #{productCount,jdbcType=INTEGER},\n      recommend_status = #{recommendStatus,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      collect_count = #{collectCount,jdbcType=INTEGER},\n      read_count = #{readCount,jdbcType=INTEGER},\n      comment_count = #{commentCount,jdbcType=INTEGER},\n      album_pics = #{albumPics,jdbcType=VARCHAR},\n      description = #{description,jdbcType=VARCHAR},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      forward_count = #{forwardCount,jdbcType=INTEGER},\n      category_name = #{categoryName,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsSubjectProductRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsSubjectProductRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsSubjectProductRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"subject_id\" jdbcType=\"BIGINT\" property=\"subjectId\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, subject_id, product_id\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsSubjectProductRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_subject_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from cms_subject_product_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from cms_subject_product_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsSubjectProductRelationExample\">\n    delete from cms_subject_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsSubjectProductRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_subject_product_relation (subject_id, product_id)\n    values (#{subjectId,jdbcType=BIGINT}, #{productId,jdbcType=BIGINT})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsSubjectProductRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_subject_product_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"subjectId != null\">\n        subject_id,\n      </if>\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"subjectId != null\">\n        #{subjectId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsSubjectProductRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_subject_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_subject_product_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.subjectId != null\">\n        subject_id = #{row.subjectId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_subject_product_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      subject_id = #{row.subjectId,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.CmsSubjectProductRelation\">\n    update cms_subject_product_relation\n    <set>\n      <if test=\"subjectId != null\">\n        subject_id = #{subjectId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.CmsSubjectProductRelation\">\n    update cms_subject_product_relation\n    set subject_id = #{subjectId,jdbcType=BIGINT},\n      product_id = #{productId,jdbcType=BIGINT}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsTopicCategoryMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsTopicCategoryMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsTopicCategory\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"icon\" jdbcType=\"VARCHAR\" property=\"icon\" />\n    <result column=\"subject_count\" jdbcType=\"INTEGER\" property=\"subjectCount\" />\n    <result column=\"show_status\" jdbcType=\"INTEGER\" property=\"showStatus\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, icon, subject_count, show_status, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsTopicCategoryExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_topic_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from cms_topic_category\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from cms_topic_category\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsTopicCategoryExample\">\n    delete from cms_topic_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsTopicCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_topic_category (name, icon, subject_count, \n      show_status, sort)\n    values (#{name,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, #{subjectCount,jdbcType=INTEGER}, \n      #{showStatus,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsTopicCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_topic_category\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"icon != null\">\n        icon,\n      </if>\n      <if test=\"subjectCount != null\">\n        subject_count,\n      </if>\n      <if test=\"showStatus != null\">\n        show_status,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"subjectCount != null\">\n        #{subjectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsTopicCategoryExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_topic_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_topic_category\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.icon != null\">\n        icon = #{row.icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.subjectCount != null\">\n        subject_count = #{row.subjectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.showStatus != null\">\n        show_status = #{row.showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_topic_category\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      icon = #{row.icon,jdbcType=VARCHAR},\n      subject_count = #{row.subjectCount,jdbcType=INTEGER},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.CmsTopicCategory\">\n    update cms_topic_category\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        icon = #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"subjectCount != null\">\n        subject_count = #{subjectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        show_status = #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.CmsTopicCategory\">\n    update cms_topic_category\n    set name = #{name,jdbcType=VARCHAR},\n      icon = #{icon,jdbcType=VARCHAR},\n      subject_count = #{subjectCount,jdbcType=INTEGER},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsTopicCommentMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsTopicCommentMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsTopicComment\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"member_nick_name\" jdbcType=\"VARCHAR\" property=\"memberNickName\" />\n    <result column=\"topic_id\" jdbcType=\"BIGINT\" property=\"topicId\" />\n    <result column=\"member_icon\" jdbcType=\"VARCHAR\" property=\"memberIcon\" />\n    <result column=\"content\" jdbcType=\"VARCHAR\" property=\"content\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"show_status\" jdbcType=\"INTEGER\" property=\"showStatus\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, member_nick_name, topic_id, member_icon, content, create_time, show_status\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsTopicCommentExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_topic_comment\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from cms_topic_comment\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from cms_topic_comment\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsTopicCommentExample\">\n    delete from cms_topic_comment\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsTopicComment\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_topic_comment (member_nick_name, topic_id, member_icon, \n      content, create_time, show_status\n      )\n    values (#{memberNickName,jdbcType=VARCHAR}, #{topicId,jdbcType=BIGINT}, #{memberIcon,jdbcType=VARCHAR}, \n      #{content,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{showStatus,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsTopicComment\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_topic_comment\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberNickName != null\">\n        member_nick_name,\n      </if>\n      <if test=\"topicId != null\">\n        topic_id,\n      </if>\n      <if test=\"memberIcon != null\">\n        member_icon,\n      </if>\n      <if test=\"content != null\">\n        content,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"showStatus != null\">\n        show_status,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberNickName != null\">\n        #{memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"topicId != null\">\n        #{topicId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberIcon != null\">\n        #{memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\">\n        #{content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"showStatus != null\">\n        #{showStatus,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsTopicCommentExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_topic_comment\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_topic_comment\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberNickName != null\">\n        member_nick_name = #{row.memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.topicId != null\">\n        topic_id = #{row.topicId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberIcon != null\">\n        member_icon = #{row.memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.content != null\">\n        content = #{row.content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.showStatus != null\">\n        show_status = #{row.showStatus,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_topic_comment\n    set id = #{row.id,jdbcType=BIGINT},\n      member_nick_name = #{row.memberNickName,jdbcType=VARCHAR},\n      topic_id = #{row.topicId,jdbcType=BIGINT},\n      member_icon = #{row.memberIcon,jdbcType=VARCHAR},\n      content = #{row.content,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      show_status = #{row.showStatus,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.CmsTopicComment\">\n    update cms_topic_comment\n    <set>\n      <if test=\"memberNickName != null\">\n        member_nick_name = #{memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"topicId != null\">\n        topic_id = #{topicId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberIcon != null\">\n        member_icon = #{memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\">\n        content = #{content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"showStatus != null\">\n        show_status = #{showStatus,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.CmsTopicComment\">\n    update cms_topic_comment\n    set member_nick_name = #{memberNickName,jdbcType=VARCHAR},\n      topic_id = #{topicId,jdbcType=BIGINT},\n      member_icon = #{memberIcon,jdbcType=VARCHAR},\n      content = #{content,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      show_status = #{showStatus,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/CmsTopicMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.CmsTopicMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.CmsTopic\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"category_id\" jdbcType=\"BIGINT\" property=\"categoryId\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"start_time\" jdbcType=\"TIMESTAMP\" property=\"startTime\" />\n    <result column=\"end_time\" jdbcType=\"TIMESTAMP\" property=\"endTime\" />\n    <result column=\"attend_count\" jdbcType=\"INTEGER\" property=\"attendCount\" />\n    <result column=\"attention_count\" jdbcType=\"INTEGER\" property=\"attentionCount\" />\n    <result column=\"read_count\" jdbcType=\"INTEGER\" property=\"readCount\" />\n    <result column=\"award_name\" jdbcType=\"VARCHAR\" property=\"awardName\" />\n    <result column=\"attend_type\" jdbcType=\"VARCHAR\" property=\"attendType\" />\n  </resultMap>\n  <resultMap extends=\"BaseResultMap\" id=\"ResultMapWithBLOBs\" type=\"com.macro.mall.model.CmsTopic\">\n    <result column=\"content\" jdbcType=\"LONGVARCHAR\" property=\"content\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, category_id, name, create_time, start_time, end_time, attend_count, attention_count, \n    read_count, award_name, attend_type\n  </sql>\n  <sql id=\"Blob_Column_List\">\n    content\n  </sql>\n  <select id=\"selectByExampleWithBLOBs\" parameterType=\"com.macro.mall.model.CmsTopicExample\" resultMap=\"ResultMapWithBLOBs\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from cms_topic\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.CmsTopicExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from cms_topic\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"ResultMapWithBLOBs\">\n    select \n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from cms_topic\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from cms_topic\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.CmsTopicExample\">\n    delete from cms_topic\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.CmsTopic\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_topic (category_id, name, create_time, \n      start_time, end_time, attend_count, \n      attention_count, read_count, award_name, \n      attend_type, content)\n    values (#{categoryId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, \n      #{startTime,jdbcType=TIMESTAMP}, #{endTime,jdbcType=TIMESTAMP}, #{attendCount,jdbcType=INTEGER}, \n      #{attentionCount,jdbcType=INTEGER}, #{readCount,jdbcType=INTEGER}, #{awardName,jdbcType=VARCHAR}, \n      #{attendType,jdbcType=VARCHAR}, #{content,jdbcType=LONGVARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.CmsTopic\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into cms_topic\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"categoryId != null\">\n        category_id,\n      </if>\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"startTime != null\">\n        start_time,\n      </if>\n      <if test=\"endTime != null\">\n        end_time,\n      </if>\n      <if test=\"attendCount != null\">\n        attend_count,\n      </if>\n      <if test=\"attentionCount != null\">\n        attention_count,\n      </if>\n      <if test=\"readCount != null\">\n        read_count,\n      </if>\n      <if test=\"awardName != null\">\n        award_name,\n      </if>\n      <if test=\"attendType != null\">\n        attend_type,\n      </if>\n      <if test=\"content != null\">\n        content,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"categoryId != null\">\n        #{categoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"startTime != null\">\n        #{startTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"endTime != null\">\n        #{endTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"attendCount != null\">\n        #{attendCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"attentionCount != null\">\n        #{attentionCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"readCount != null\">\n        #{readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"awardName != null\">\n        #{awardName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"attendType != null\">\n        #{attendType,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\">\n        #{content,jdbcType=LONGVARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.CmsTopicExample\" resultType=\"java.lang.Long\">\n    select count(*) from cms_topic\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update cms_topic\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.categoryId != null\">\n        category_id = #{row.categoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.startTime != null\">\n        start_time = #{row.startTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.endTime != null\">\n        end_time = #{row.endTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.attendCount != null\">\n        attend_count = #{row.attendCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.attentionCount != null\">\n        attention_count = #{row.attentionCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.readCount != null\">\n        read_count = #{row.readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.awardName != null\">\n        award_name = #{row.awardName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.attendType != null\">\n        attend_type = #{row.attendType,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.content != null\">\n        content = #{row.content,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExampleWithBLOBs\" parameterType=\"map\">\n    update cms_topic\n    set id = #{row.id,jdbcType=BIGINT},\n      category_id = #{row.categoryId,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      start_time = #{row.startTime,jdbcType=TIMESTAMP},\n      end_time = #{row.endTime,jdbcType=TIMESTAMP},\n      attend_count = #{row.attendCount,jdbcType=INTEGER},\n      attention_count = #{row.attentionCount,jdbcType=INTEGER},\n      read_count = #{row.readCount,jdbcType=INTEGER},\n      award_name = #{row.awardName,jdbcType=VARCHAR},\n      attend_type = #{row.attendType,jdbcType=VARCHAR},\n      content = #{row.content,jdbcType=LONGVARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update cms_topic\n    set id = #{row.id,jdbcType=BIGINT},\n      category_id = #{row.categoryId,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      start_time = #{row.startTime,jdbcType=TIMESTAMP},\n      end_time = #{row.endTime,jdbcType=TIMESTAMP},\n      attend_count = #{row.attendCount,jdbcType=INTEGER},\n      attention_count = #{row.attentionCount,jdbcType=INTEGER},\n      read_count = #{row.readCount,jdbcType=INTEGER},\n      award_name = #{row.awardName,jdbcType=VARCHAR},\n      attend_type = #{row.attendType,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.CmsTopic\">\n    update cms_topic\n    <set>\n      <if test=\"categoryId != null\">\n        category_id = #{categoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"startTime != null\">\n        start_time = #{startTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"endTime != null\">\n        end_time = #{endTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"attendCount != null\">\n        attend_count = #{attendCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"attentionCount != null\">\n        attention_count = #{attentionCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"readCount != null\">\n        read_count = #{readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"awardName != null\">\n        award_name = #{awardName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"attendType != null\">\n        attend_type = #{attendType,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\">\n        content = #{content,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKeyWithBLOBs\" parameterType=\"com.macro.mall.model.CmsTopic\">\n    update cms_topic\n    set category_id = #{categoryId,jdbcType=BIGINT},\n      name = #{name,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      start_time = #{startTime,jdbcType=TIMESTAMP},\n      end_time = #{endTime,jdbcType=TIMESTAMP},\n      attend_count = #{attendCount,jdbcType=INTEGER},\n      attention_count = #{attentionCount,jdbcType=INTEGER},\n      read_count = #{readCount,jdbcType=INTEGER},\n      award_name = #{awardName,jdbcType=VARCHAR},\n      attend_type = #{attendType,jdbcType=VARCHAR},\n      content = #{content,jdbcType=LONGVARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.CmsTopic\">\n    update cms_topic\n    set category_id = #{categoryId,jdbcType=BIGINT},\n      name = #{name,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      start_time = #{startTime,jdbcType=TIMESTAMP},\n      end_time = #{endTime,jdbcType=TIMESTAMP},\n      attend_count = #{attendCount,jdbcType=INTEGER},\n      attention_count = #{attentionCount,jdbcType=INTEGER},\n      read_count = #{readCount,jdbcType=INTEGER},\n      award_name = #{awardName,jdbcType=VARCHAR},\n      attend_type = #{attendType,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/OmsCartItemMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.OmsCartItemMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.OmsCartItem\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"product_sku_id\" jdbcType=\"BIGINT\" property=\"productSkuId\" />\n    <result column=\"member_id\" jdbcType=\"BIGINT\" property=\"memberId\" />\n    <result column=\"quantity\" jdbcType=\"INTEGER\" property=\"quantity\" />\n    <result column=\"price\" jdbcType=\"DECIMAL\" property=\"price\" />\n    <result column=\"product_pic\" jdbcType=\"VARCHAR\" property=\"productPic\" />\n    <result column=\"product_name\" jdbcType=\"VARCHAR\" property=\"productName\" />\n    <result column=\"product_sub_title\" jdbcType=\"VARCHAR\" property=\"productSubTitle\" />\n    <result column=\"product_sku_code\" jdbcType=\"VARCHAR\" property=\"productSkuCode\" />\n    <result column=\"member_nickname\" jdbcType=\"VARCHAR\" property=\"memberNickname\" />\n    <result column=\"create_date\" jdbcType=\"TIMESTAMP\" property=\"createDate\" />\n    <result column=\"modify_date\" jdbcType=\"TIMESTAMP\" property=\"modifyDate\" />\n    <result column=\"delete_status\" jdbcType=\"INTEGER\" property=\"deleteStatus\" />\n    <result column=\"product_category_id\" jdbcType=\"BIGINT\" property=\"productCategoryId\" />\n    <result column=\"product_brand\" jdbcType=\"VARCHAR\" property=\"productBrand\" />\n    <result column=\"product_sn\" jdbcType=\"VARCHAR\" property=\"productSn\" />\n    <result column=\"product_attr\" jdbcType=\"VARCHAR\" property=\"productAttr\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_id, product_sku_id, member_id, quantity, price, product_pic, product_name, \n    product_sub_title, product_sku_code, member_nickname, create_date, modify_date, delete_status, \n    product_category_id, product_brand, product_sn, product_attr\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.OmsCartItemExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from oms_cart_item\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from oms_cart_item\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from oms_cart_item\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.OmsCartItemExample\">\n    delete from oms_cart_item\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.OmsCartItem\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_cart_item (product_id, product_sku_id, member_id, \n      quantity, price, product_pic, \n      product_name, product_sub_title, product_sku_code, \n      member_nickname, create_date, modify_date, \n      delete_status, product_category_id, product_brand, \n      product_sn, product_attr)\n    values (#{productId,jdbcType=BIGINT}, #{productSkuId,jdbcType=BIGINT}, #{memberId,jdbcType=BIGINT}, \n      #{quantity,jdbcType=INTEGER}, #{price,jdbcType=DECIMAL}, #{productPic,jdbcType=VARCHAR}, \n      #{productName,jdbcType=VARCHAR}, #{productSubTitle,jdbcType=VARCHAR}, #{productSkuCode,jdbcType=VARCHAR}, \n      #{memberNickname,jdbcType=VARCHAR}, #{createDate,jdbcType=TIMESTAMP}, #{modifyDate,jdbcType=TIMESTAMP}, \n      #{deleteStatus,jdbcType=INTEGER}, #{productCategoryId,jdbcType=BIGINT}, #{productBrand,jdbcType=VARCHAR}, \n      #{productSn,jdbcType=VARCHAR}, #{productAttr,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.OmsCartItem\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_cart_item\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"productSkuId != null\">\n        product_sku_id,\n      </if>\n      <if test=\"memberId != null\">\n        member_id,\n      </if>\n      <if test=\"quantity != null\">\n        quantity,\n      </if>\n      <if test=\"price != null\">\n        price,\n      </if>\n      <if test=\"productPic != null\">\n        product_pic,\n      </if>\n      <if test=\"productName != null\">\n        product_name,\n      </if>\n      <if test=\"productSubTitle != null\">\n        product_sub_title,\n      </if>\n      <if test=\"productSkuCode != null\">\n        product_sku_code,\n      </if>\n      <if test=\"memberNickname != null\">\n        member_nickname,\n      </if>\n      <if test=\"createDate != null\">\n        create_date,\n      </if>\n      <if test=\"modifyDate != null\">\n        modify_date,\n      </if>\n      <if test=\"deleteStatus != null\">\n        delete_status,\n      </if>\n      <if test=\"productCategoryId != null\">\n        product_category_id,\n      </if>\n      <if test=\"productBrand != null\">\n        product_brand,\n      </if>\n      <if test=\"productSn != null\">\n        product_sn,\n      </if>\n      <if test=\"productAttr != null\">\n        product_attr,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productSkuId != null\">\n        #{productSkuId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberId != null\">\n        #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"quantity != null\">\n        #{quantity,jdbcType=INTEGER},\n      </if>\n      <if test=\"price != null\">\n        #{price,jdbcType=DECIMAL},\n      </if>\n      <if test=\"productPic != null\">\n        #{productPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productName != null\">\n        #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSubTitle != null\">\n        #{productSubTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSkuCode != null\">\n        #{productSkuCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberNickname != null\">\n        #{memberNickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createDate != null\">\n        #{createDate,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"modifyDate != null\">\n        #{modifyDate,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"deleteStatus != null\">\n        #{deleteStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"productCategoryId != null\">\n        #{productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productBrand != null\">\n        #{productBrand,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSn != null\">\n        #{productSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productAttr != null\">\n        #{productAttr,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.OmsCartItemExample\" resultType=\"java.lang.Long\">\n    select count(*) from oms_cart_item\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update oms_cart_item\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productSkuId != null\">\n        product_sku_id = #{row.productSkuId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberId != null\">\n        member_id = #{row.memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.quantity != null\">\n        quantity = #{row.quantity,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.price != null\">\n        price = #{row.price,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.productPic != null\">\n        product_pic = #{row.productPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productName != null\">\n        product_name = #{row.productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productSubTitle != null\">\n        product_sub_title = #{row.productSubTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productSkuCode != null\">\n        product_sku_code = #{row.productSkuCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.memberNickname != null\">\n        member_nickname = #{row.memberNickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createDate != null\">\n        create_date = #{row.createDate,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.modifyDate != null\">\n        modify_date = #{row.modifyDate,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.deleteStatus != null\">\n        delete_status = #{row.deleteStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.productCategoryId != null\">\n        product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productBrand != null\">\n        product_brand = #{row.productBrand,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productSn != null\">\n        product_sn = #{row.productSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productAttr != null\">\n        product_attr = #{row.productAttr,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update oms_cart_item\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      product_sku_id = #{row.productSkuId,jdbcType=BIGINT},\n      member_id = #{row.memberId,jdbcType=BIGINT},\n      quantity = #{row.quantity,jdbcType=INTEGER},\n      price = #{row.price,jdbcType=DECIMAL},\n      product_pic = #{row.productPic,jdbcType=VARCHAR},\n      product_name = #{row.productName,jdbcType=VARCHAR},\n      product_sub_title = #{row.productSubTitle,jdbcType=VARCHAR},\n      product_sku_code = #{row.productSkuCode,jdbcType=VARCHAR},\n      member_nickname = #{row.memberNickname,jdbcType=VARCHAR},\n      create_date = #{row.createDate,jdbcType=TIMESTAMP},\n      modify_date = #{row.modifyDate,jdbcType=TIMESTAMP},\n      delete_status = #{row.deleteStatus,jdbcType=INTEGER},\n      product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      product_brand = #{row.productBrand,jdbcType=VARCHAR},\n      product_sn = #{row.productSn,jdbcType=VARCHAR},\n      product_attr = #{row.productAttr,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.OmsCartItem\">\n    update oms_cart_item\n    <set>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productSkuId != null\">\n        product_sku_id = #{productSkuId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberId != null\">\n        member_id = #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"quantity != null\">\n        quantity = #{quantity,jdbcType=INTEGER},\n      </if>\n      <if test=\"price != null\">\n        price = #{price,jdbcType=DECIMAL},\n      </if>\n      <if test=\"productPic != null\">\n        product_pic = #{productPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productName != null\">\n        product_name = #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSubTitle != null\">\n        product_sub_title = #{productSubTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSkuCode != null\">\n        product_sku_code = #{productSkuCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberNickname != null\">\n        member_nickname = #{memberNickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createDate != null\">\n        create_date = #{createDate,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"modifyDate != null\">\n        modify_date = #{modifyDate,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"deleteStatus != null\">\n        delete_status = #{deleteStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"productCategoryId != null\">\n        product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productBrand != null\">\n        product_brand = #{productBrand,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSn != null\">\n        product_sn = #{productSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productAttr != null\">\n        product_attr = #{productAttr,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.OmsCartItem\">\n    update oms_cart_item\n    set product_id = #{productId,jdbcType=BIGINT},\n      product_sku_id = #{productSkuId,jdbcType=BIGINT},\n      member_id = #{memberId,jdbcType=BIGINT},\n      quantity = #{quantity,jdbcType=INTEGER},\n      price = #{price,jdbcType=DECIMAL},\n      product_pic = #{productPic,jdbcType=VARCHAR},\n      product_name = #{productName,jdbcType=VARCHAR},\n      product_sub_title = #{productSubTitle,jdbcType=VARCHAR},\n      product_sku_code = #{productSkuCode,jdbcType=VARCHAR},\n      member_nickname = #{memberNickname,jdbcType=VARCHAR},\n      create_date = #{createDate,jdbcType=TIMESTAMP},\n      modify_date = #{modifyDate,jdbcType=TIMESTAMP},\n      delete_status = #{deleteStatus,jdbcType=INTEGER},\n      product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      product_brand = #{productBrand,jdbcType=VARCHAR},\n      product_sn = #{productSn,jdbcType=VARCHAR},\n      product_attr = #{productAttr,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/OmsCompanyAddressMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.OmsCompanyAddressMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.OmsCompanyAddress\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"address_name\" jdbcType=\"VARCHAR\" property=\"addressName\" />\n    <result column=\"send_status\" jdbcType=\"INTEGER\" property=\"sendStatus\" />\n    <result column=\"receive_status\" jdbcType=\"INTEGER\" property=\"receiveStatus\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"phone\" jdbcType=\"VARCHAR\" property=\"phone\" />\n    <result column=\"province\" jdbcType=\"VARCHAR\" property=\"province\" />\n    <result column=\"city\" jdbcType=\"VARCHAR\" property=\"city\" />\n    <result column=\"region\" jdbcType=\"VARCHAR\" property=\"region\" />\n    <result column=\"detail_address\" jdbcType=\"VARCHAR\" property=\"detailAddress\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, address_name, send_status, receive_status, name, phone, province, city, region, \n    detail_address\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.OmsCompanyAddressExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from oms_company_address\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from oms_company_address\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from oms_company_address\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.OmsCompanyAddressExample\">\n    delete from oms_company_address\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.OmsCompanyAddress\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_company_address (address_name, send_status, receive_status, \n      name, phone, province, \n      city, region, detail_address\n      )\n    values (#{addressName,jdbcType=VARCHAR}, #{sendStatus,jdbcType=INTEGER}, #{receiveStatus,jdbcType=INTEGER}, \n      #{name,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{province,jdbcType=VARCHAR}, \n      #{city,jdbcType=VARCHAR}, #{region,jdbcType=VARCHAR}, #{detailAddress,jdbcType=VARCHAR}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.OmsCompanyAddress\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_company_address\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"addressName != null\">\n        address_name,\n      </if>\n      <if test=\"sendStatus != null\">\n        send_status,\n      </if>\n      <if test=\"receiveStatus != null\">\n        receive_status,\n      </if>\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"phone != null\">\n        phone,\n      </if>\n      <if test=\"province != null\">\n        province,\n      </if>\n      <if test=\"city != null\">\n        city,\n      </if>\n      <if test=\"region != null\">\n        region,\n      </if>\n      <if test=\"detailAddress != null\">\n        detail_address,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"addressName != null\">\n        #{addressName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sendStatus != null\">\n        #{sendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"receiveStatus != null\">\n        #{receiveStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"phone != null\">\n        #{phone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"province != null\">\n        #{province,jdbcType=VARCHAR},\n      </if>\n      <if test=\"city != null\">\n        #{city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"region != null\">\n        #{region,jdbcType=VARCHAR},\n      </if>\n      <if test=\"detailAddress != null\">\n        #{detailAddress,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.OmsCompanyAddressExample\" resultType=\"java.lang.Long\">\n    select count(*) from oms_company_address\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update oms_company_address\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.addressName != null\">\n        address_name = #{row.addressName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.sendStatus != null\">\n        send_status = #{row.sendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.receiveStatus != null\">\n        receive_status = #{row.receiveStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.phone != null\">\n        phone = #{row.phone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.province != null\">\n        province = #{row.province,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.city != null\">\n        city = #{row.city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.region != null\">\n        region = #{row.region,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.detailAddress != null\">\n        detail_address = #{row.detailAddress,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update oms_company_address\n    set id = #{row.id,jdbcType=BIGINT},\n      address_name = #{row.addressName,jdbcType=VARCHAR},\n      send_status = #{row.sendStatus,jdbcType=INTEGER},\n      receive_status = #{row.receiveStatus,jdbcType=INTEGER},\n      name = #{row.name,jdbcType=VARCHAR},\n      phone = #{row.phone,jdbcType=VARCHAR},\n      province = #{row.province,jdbcType=VARCHAR},\n      city = #{row.city,jdbcType=VARCHAR},\n      region = #{row.region,jdbcType=VARCHAR},\n      detail_address = #{row.detailAddress,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.OmsCompanyAddress\">\n    update oms_company_address\n    <set>\n      <if test=\"addressName != null\">\n        address_name = #{addressName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sendStatus != null\">\n        send_status = #{sendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"receiveStatus != null\">\n        receive_status = #{receiveStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"phone != null\">\n        phone = #{phone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"province != null\">\n        province = #{province,jdbcType=VARCHAR},\n      </if>\n      <if test=\"city != null\">\n        city = #{city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"region != null\">\n        region = #{region,jdbcType=VARCHAR},\n      </if>\n      <if test=\"detailAddress != null\">\n        detail_address = #{detailAddress,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.OmsCompanyAddress\">\n    update oms_company_address\n    set address_name = #{addressName,jdbcType=VARCHAR},\n      send_status = #{sendStatus,jdbcType=INTEGER},\n      receive_status = #{receiveStatus,jdbcType=INTEGER},\n      name = #{name,jdbcType=VARCHAR},\n      phone = #{phone,jdbcType=VARCHAR},\n      province = #{province,jdbcType=VARCHAR},\n      city = #{city,jdbcType=VARCHAR},\n      region = #{region,jdbcType=VARCHAR},\n      detail_address = #{detailAddress,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/OmsOrderItemMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.OmsOrderItemMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.OmsOrderItem\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"order_id\" jdbcType=\"BIGINT\" property=\"orderId\" />\n    <result column=\"order_sn\" jdbcType=\"VARCHAR\" property=\"orderSn\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"product_pic\" jdbcType=\"VARCHAR\" property=\"productPic\" />\n    <result column=\"product_name\" jdbcType=\"VARCHAR\" property=\"productName\" />\n    <result column=\"product_brand\" jdbcType=\"VARCHAR\" property=\"productBrand\" />\n    <result column=\"product_sn\" jdbcType=\"VARCHAR\" property=\"productSn\" />\n    <result column=\"product_price\" jdbcType=\"DECIMAL\" property=\"productPrice\" />\n    <result column=\"product_quantity\" jdbcType=\"INTEGER\" property=\"productQuantity\" />\n    <result column=\"product_sku_id\" jdbcType=\"BIGINT\" property=\"productSkuId\" />\n    <result column=\"product_sku_code\" jdbcType=\"VARCHAR\" property=\"productSkuCode\" />\n    <result column=\"product_category_id\" jdbcType=\"BIGINT\" property=\"productCategoryId\" />\n    <result column=\"promotion_name\" jdbcType=\"VARCHAR\" property=\"promotionName\" />\n    <result column=\"promotion_amount\" jdbcType=\"DECIMAL\" property=\"promotionAmount\" />\n    <result column=\"coupon_amount\" jdbcType=\"DECIMAL\" property=\"couponAmount\" />\n    <result column=\"integration_amount\" jdbcType=\"DECIMAL\" property=\"integrationAmount\" />\n    <result column=\"real_amount\" jdbcType=\"DECIMAL\" property=\"realAmount\" />\n    <result column=\"gift_integration\" jdbcType=\"INTEGER\" property=\"giftIntegration\" />\n    <result column=\"gift_growth\" jdbcType=\"INTEGER\" property=\"giftGrowth\" />\n    <result column=\"product_attr\" jdbcType=\"VARCHAR\" property=\"productAttr\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, order_id, order_sn, product_id, product_pic, product_name, product_brand, product_sn, \n    product_price, product_quantity, product_sku_id, product_sku_code, product_category_id, \n    promotion_name, promotion_amount, coupon_amount, integration_amount, real_amount, \n    gift_integration, gift_growth, product_attr\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.OmsOrderItemExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from oms_order_item\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from oms_order_item\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from oms_order_item\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.OmsOrderItemExample\">\n    delete from oms_order_item\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.OmsOrderItem\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order_item (order_id, order_sn, product_id, \n      product_pic, product_name, product_brand, \n      product_sn, product_price, product_quantity, \n      product_sku_id, product_sku_code, product_category_id, \n      promotion_name, promotion_amount, coupon_amount, \n      integration_amount, real_amount, gift_integration, \n      gift_growth, product_attr)\n    values (#{orderId,jdbcType=BIGINT}, #{orderSn,jdbcType=VARCHAR}, #{productId,jdbcType=BIGINT}, \n      #{productPic,jdbcType=VARCHAR}, #{productName,jdbcType=VARCHAR}, #{productBrand,jdbcType=VARCHAR}, \n      #{productSn,jdbcType=VARCHAR}, #{productPrice,jdbcType=DECIMAL}, #{productQuantity,jdbcType=INTEGER}, \n      #{productSkuId,jdbcType=BIGINT}, #{productSkuCode,jdbcType=VARCHAR}, #{productCategoryId,jdbcType=BIGINT}, \n      #{promotionName,jdbcType=VARCHAR}, #{promotionAmount,jdbcType=DECIMAL}, #{couponAmount,jdbcType=DECIMAL}, \n      #{integrationAmount,jdbcType=DECIMAL}, #{realAmount,jdbcType=DECIMAL}, #{giftIntegration,jdbcType=INTEGER}, \n      #{giftGrowth,jdbcType=INTEGER}, #{productAttr,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.OmsOrderItem\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order_item\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"orderId != null\">\n        order_id,\n      </if>\n      <if test=\"orderSn != null\">\n        order_sn,\n      </if>\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"productPic != null\">\n        product_pic,\n      </if>\n      <if test=\"productName != null\">\n        product_name,\n      </if>\n      <if test=\"productBrand != null\">\n        product_brand,\n      </if>\n      <if test=\"productSn != null\">\n        product_sn,\n      </if>\n      <if test=\"productPrice != null\">\n        product_price,\n      </if>\n      <if test=\"productQuantity != null\">\n        product_quantity,\n      </if>\n      <if test=\"productSkuId != null\">\n        product_sku_id,\n      </if>\n      <if test=\"productSkuCode != null\">\n        product_sku_code,\n      </if>\n      <if test=\"productCategoryId != null\">\n        product_category_id,\n      </if>\n      <if test=\"promotionName != null\">\n        promotion_name,\n      </if>\n      <if test=\"promotionAmount != null\">\n        promotion_amount,\n      </if>\n      <if test=\"couponAmount != null\">\n        coupon_amount,\n      </if>\n      <if test=\"integrationAmount != null\">\n        integration_amount,\n      </if>\n      <if test=\"realAmount != null\">\n        real_amount,\n      </if>\n      <if test=\"giftIntegration != null\">\n        gift_integration,\n      </if>\n      <if test=\"giftGrowth != null\">\n        gift_growth,\n      </if>\n      <if test=\"productAttr != null\">\n        product_attr,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"orderId != null\">\n        #{orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"orderSn != null\">\n        #{orderSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productPic != null\">\n        #{productPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productName != null\">\n        #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productBrand != null\">\n        #{productBrand,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSn != null\">\n        #{productSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productPrice != null\">\n        #{productPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"productQuantity != null\">\n        #{productQuantity,jdbcType=INTEGER},\n      </if>\n      <if test=\"productSkuId != null\">\n        #{productSkuId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productSkuCode != null\">\n        #{productSkuCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productCategoryId != null\">\n        #{productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"promotionName != null\">\n        #{promotionName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"promotionAmount != null\">\n        #{promotionAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"couponAmount != null\">\n        #{couponAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"integrationAmount != null\">\n        #{integrationAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"realAmount != null\">\n        #{realAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"giftIntegration != null\">\n        #{giftIntegration,jdbcType=INTEGER},\n      </if>\n      <if test=\"giftGrowth != null\">\n        #{giftGrowth,jdbcType=INTEGER},\n      </if>\n      <if test=\"productAttr != null\">\n        #{productAttr,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.OmsOrderItemExample\" resultType=\"java.lang.Long\">\n    select count(*) from oms_order_item\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update oms_order_item\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.orderId != null\">\n        order_id = #{row.orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.orderSn != null\">\n        order_sn = #{row.orderSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productPic != null\">\n        product_pic = #{row.productPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productName != null\">\n        product_name = #{row.productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productBrand != null\">\n        product_brand = #{row.productBrand,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productSn != null\">\n        product_sn = #{row.productSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productPrice != null\">\n        product_price = #{row.productPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.productQuantity != null\">\n        product_quantity = #{row.productQuantity,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.productSkuId != null\">\n        product_sku_id = #{row.productSkuId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productSkuCode != null\">\n        product_sku_code = #{row.productSkuCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productCategoryId != null\">\n        product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.promotionName != null\">\n        promotion_name = #{row.promotionName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.promotionAmount != null\">\n        promotion_amount = #{row.promotionAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.couponAmount != null\">\n        coupon_amount = #{row.couponAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.integrationAmount != null\">\n        integration_amount = #{row.integrationAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.realAmount != null\">\n        real_amount = #{row.realAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.giftIntegration != null\">\n        gift_integration = #{row.giftIntegration,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.giftGrowth != null\">\n        gift_growth = #{row.giftGrowth,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.productAttr != null\">\n        product_attr = #{row.productAttr,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update oms_order_item\n    set id = #{row.id,jdbcType=BIGINT},\n      order_id = #{row.orderId,jdbcType=BIGINT},\n      order_sn = #{row.orderSn,jdbcType=VARCHAR},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      product_pic = #{row.productPic,jdbcType=VARCHAR},\n      product_name = #{row.productName,jdbcType=VARCHAR},\n      product_brand = #{row.productBrand,jdbcType=VARCHAR},\n      product_sn = #{row.productSn,jdbcType=VARCHAR},\n      product_price = #{row.productPrice,jdbcType=DECIMAL},\n      product_quantity = #{row.productQuantity,jdbcType=INTEGER},\n      product_sku_id = #{row.productSkuId,jdbcType=BIGINT},\n      product_sku_code = #{row.productSkuCode,jdbcType=VARCHAR},\n      product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      promotion_name = #{row.promotionName,jdbcType=VARCHAR},\n      promotion_amount = #{row.promotionAmount,jdbcType=DECIMAL},\n      coupon_amount = #{row.couponAmount,jdbcType=DECIMAL},\n      integration_amount = #{row.integrationAmount,jdbcType=DECIMAL},\n      real_amount = #{row.realAmount,jdbcType=DECIMAL},\n      gift_integration = #{row.giftIntegration,jdbcType=INTEGER},\n      gift_growth = #{row.giftGrowth,jdbcType=INTEGER},\n      product_attr = #{row.productAttr,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.OmsOrderItem\">\n    update oms_order_item\n    <set>\n      <if test=\"orderId != null\">\n        order_id = #{orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"orderSn != null\">\n        order_sn = #{orderSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productPic != null\">\n        product_pic = #{productPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productName != null\">\n        product_name = #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productBrand != null\">\n        product_brand = #{productBrand,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSn != null\">\n        product_sn = #{productSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productPrice != null\">\n        product_price = #{productPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"productQuantity != null\">\n        product_quantity = #{productQuantity,jdbcType=INTEGER},\n      </if>\n      <if test=\"productSkuId != null\">\n        product_sku_id = #{productSkuId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productSkuCode != null\">\n        product_sku_code = #{productSkuCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productCategoryId != null\">\n        product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"promotionName != null\">\n        promotion_name = #{promotionName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"promotionAmount != null\">\n        promotion_amount = #{promotionAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"couponAmount != null\">\n        coupon_amount = #{couponAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"integrationAmount != null\">\n        integration_amount = #{integrationAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"realAmount != null\">\n        real_amount = #{realAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"giftIntegration != null\">\n        gift_integration = #{giftIntegration,jdbcType=INTEGER},\n      </if>\n      <if test=\"giftGrowth != null\">\n        gift_growth = #{giftGrowth,jdbcType=INTEGER},\n      </if>\n      <if test=\"productAttr != null\">\n        product_attr = #{productAttr,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.OmsOrderItem\">\n    update oms_order_item\n    set order_id = #{orderId,jdbcType=BIGINT},\n      order_sn = #{orderSn,jdbcType=VARCHAR},\n      product_id = #{productId,jdbcType=BIGINT},\n      product_pic = #{productPic,jdbcType=VARCHAR},\n      product_name = #{productName,jdbcType=VARCHAR},\n      product_brand = #{productBrand,jdbcType=VARCHAR},\n      product_sn = #{productSn,jdbcType=VARCHAR},\n      product_price = #{productPrice,jdbcType=DECIMAL},\n      product_quantity = #{productQuantity,jdbcType=INTEGER},\n      product_sku_id = #{productSkuId,jdbcType=BIGINT},\n      product_sku_code = #{productSkuCode,jdbcType=VARCHAR},\n      product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      promotion_name = #{promotionName,jdbcType=VARCHAR},\n      promotion_amount = #{promotionAmount,jdbcType=DECIMAL},\n      coupon_amount = #{couponAmount,jdbcType=DECIMAL},\n      integration_amount = #{integrationAmount,jdbcType=DECIMAL},\n      real_amount = #{realAmount,jdbcType=DECIMAL},\n      gift_integration = #{giftIntegration,jdbcType=INTEGER},\n      gift_growth = #{giftGrowth,jdbcType=INTEGER},\n      product_attr = #{productAttr,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/OmsOrderMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.OmsOrderMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.OmsOrder\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"member_id\" jdbcType=\"BIGINT\" property=\"memberId\" />\n    <result column=\"coupon_id\" jdbcType=\"BIGINT\" property=\"couponId\" />\n    <result column=\"order_sn\" jdbcType=\"VARCHAR\" property=\"orderSn\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"member_username\" jdbcType=\"VARCHAR\" property=\"memberUsername\" />\n    <result column=\"total_amount\" jdbcType=\"DECIMAL\" property=\"totalAmount\" />\n    <result column=\"pay_amount\" jdbcType=\"DECIMAL\" property=\"payAmount\" />\n    <result column=\"freight_amount\" jdbcType=\"DECIMAL\" property=\"freightAmount\" />\n    <result column=\"promotion_amount\" jdbcType=\"DECIMAL\" property=\"promotionAmount\" />\n    <result column=\"integration_amount\" jdbcType=\"DECIMAL\" property=\"integrationAmount\" />\n    <result column=\"coupon_amount\" jdbcType=\"DECIMAL\" property=\"couponAmount\" />\n    <result column=\"discount_amount\" jdbcType=\"DECIMAL\" property=\"discountAmount\" />\n    <result column=\"pay_type\" jdbcType=\"INTEGER\" property=\"payType\" />\n    <result column=\"source_type\" jdbcType=\"INTEGER\" property=\"sourceType\" />\n    <result column=\"status\" jdbcType=\"INTEGER\" property=\"status\" />\n    <result column=\"order_type\" jdbcType=\"INTEGER\" property=\"orderType\" />\n    <result column=\"delivery_company\" jdbcType=\"VARCHAR\" property=\"deliveryCompany\" />\n    <result column=\"delivery_sn\" jdbcType=\"VARCHAR\" property=\"deliverySn\" />\n    <result column=\"auto_confirm_day\" jdbcType=\"INTEGER\" property=\"autoConfirmDay\" />\n    <result column=\"integration\" jdbcType=\"INTEGER\" property=\"integration\" />\n    <result column=\"growth\" jdbcType=\"INTEGER\" property=\"growth\" />\n    <result column=\"promotion_info\" jdbcType=\"VARCHAR\" property=\"promotionInfo\" />\n    <result column=\"bill_type\" jdbcType=\"INTEGER\" property=\"billType\" />\n    <result column=\"bill_header\" jdbcType=\"VARCHAR\" property=\"billHeader\" />\n    <result column=\"bill_content\" jdbcType=\"VARCHAR\" property=\"billContent\" />\n    <result column=\"bill_receiver_phone\" jdbcType=\"VARCHAR\" property=\"billReceiverPhone\" />\n    <result column=\"bill_receiver_email\" jdbcType=\"VARCHAR\" property=\"billReceiverEmail\" />\n    <result column=\"receiver_name\" jdbcType=\"VARCHAR\" property=\"receiverName\" />\n    <result column=\"receiver_phone\" jdbcType=\"VARCHAR\" property=\"receiverPhone\" />\n    <result column=\"receiver_post_code\" jdbcType=\"VARCHAR\" property=\"receiverPostCode\" />\n    <result column=\"receiver_province\" jdbcType=\"VARCHAR\" property=\"receiverProvince\" />\n    <result column=\"receiver_city\" jdbcType=\"VARCHAR\" property=\"receiverCity\" />\n    <result column=\"receiver_region\" jdbcType=\"VARCHAR\" property=\"receiverRegion\" />\n    <result column=\"receiver_detail_address\" jdbcType=\"VARCHAR\" property=\"receiverDetailAddress\" />\n    <result column=\"note\" jdbcType=\"VARCHAR\" property=\"note\" />\n    <result column=\"confirm_status\" jdbcType=\"INTEGER\" property=\"confirmStatus\" />\n    <result column=\"delete_status\" jdbcType=\"INTEGER\" property=\"deleteStatus\" />\n    <result column=\"use_integration\" jdbcType=\"INTEGER\" property=\"useIntegration\" />\n    <result column=\"payment_time\" jdbcType=\"TIMESTAMP\" property=\"paymentTime\" />\n    <result column=\"delivery_time\" jdbcType=\"TIMESTAMP\" property=\"deliveryTime\" />\n    <result column=\"receive_time\" jdbcType=\"TIMESTAMP\" property=\"receiveTime\" />\n    <result column=\"comment_time\" jdbcType=\"TIMESTAMP\" property=\"commentTime\" />\n    <result column=\"modify_time\" jdbcType=\"TIMESTAMP\" property=\"modifyTime\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, member_id, coupon_id, order_sn, create_time, member_username, total_amount, pay_amount, \n    freight_amount, promotion_amount, integration_amount, coupon_amount, discount_amount, \n    pay_type, source_type, status, order_type, delivery_company, delivery_sn, auto_confirm_day, \n    integration, growth, promotion_info, bill_type, bill_header, bill_content, bill_receiver_phone, \n    bill_receiver_email, receiver_name, receiver_phone, receiver_post_code, receiver_province, \n    receiver_city, receiver_region, receiver_detail_address, note, confirm_status, delete_status, \n    use_integration, payment_time, delivery_time, receive_time, comment_time, modify_time\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.OmsOrderExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from oms_order\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from oms_order\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from oms_order\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.OmsOrderExample\">\n    delete from oms_order\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.OmsOrder\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order (member_id, coupon_id, order_sn, \n      create_time, member_username, total_amount, \n      pay_amount, freight_amount, promotion_amount, \n      integration_amount, coupon_amount, discount_amount, \n      pay_type, source_type, status, \n      order_type, delivery_company, delivery_sn, \n      auto_confirm_day, integration, growth, \n      promotion_info, bill_type, bill_header, \n      bill_content, bill_receiver_phone, bill_receiver_email, \n      receiver_name, receiver_phone, receiver_post_code, \n      receiver_province, receiver_city, receiver_region, \n      receiver_detail_address, note, confirm_status, \n      delete_status, use_integration, payment_time, \n      delivery_time, receive_time, comment_time, \n      modify_time)\n    values (#{memberId,jdbcType=BIGINT}, #{couponId,jdbcType=BIGINT}, #{orderSn,jdbcType=VARCHAR}, \n      #{createTime,jdbcType=TIMESTAMP}, #{memberUsername,jdbcType=VARCHAR}, #{totalAmount,jdbcType=DECIMAL}, \n      #{payAmount,jdbcType=DECIMAL}, #{freightAmount,jdbcType=DECIMAL}, #{promotionAmount,jdbcType=DECIMAL}, \n      #{integrationAmount,jdbcType=DECIMAL}, #{couponAmount,jdbcType=DECIMAL}, #{discountAmount,jdbcType=DECIMAL}, \n      #{payType,jdbcType=INTEGER}, #{sourceType,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}, \n      #{orderType,jdbcType=INTEGER}, #{deliveryCompany,jdbcType=VARCHAR}, #{deliverySn,jdbcType=VARCHAR}, \n      #{autoConfirmDay,jdbcType=INTEGER}, #{integration,jdbcType=INTEGER}, #{growth,jdbcType=INTEGER}, \n      #{promotionInfo,jdbcType=VARCHAR}, #{billType,jdbcType=INTEGER}, #{billHeader,jdbcType=VARCHAR}, \n      #{billContent,jdbcType=VARCHAR}, #{billReceiverPhone,jdbcType=VARCHAR}, #{billReceiverEmail,jdbcType=VARCHAR}, \n      #{receiverName,jdbcType=VARCHAR}, #{receiverPhone,jdbcType=VARCHAR}, #{receiverPostCode,jdbcType=VARCHAR}, \n      #{receiverProvince,jdbcType=VARCHAR}, #{receiverCity,jdbcType=VARCHAR}, #{receiverRegion,jdbcType=VARCHAR}, \n      #{receiverDetailAddress,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, #{confirmStatus,jdbcType=INTEGER}, \n      #{deleteStatus,jdbcType=INTEGER}, #{useIntegration,jdbcType=INTEGER}, #{paymentTime,jdbcType=TIMESTAMP}, \n      #{deliveryTime,jdbcType=TIMESTAMP}, #{receiveTime,jdbcType=TIMESTAMP}, #{commentTime,jdbcType=TIMESTAMP}, \n      #{modifyTime,jdbcType=TIMESTAMP})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.OmsOrder\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        member_id,\n      </if>\n      <if test=\"couponId != null\">\n        coupon_id,\n      </if>\n      <if test=\"orderSn != null\">\n        order_sn,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"memberUsername != null\">\n        member_username,\n      </if>\n      <if test=\"totalAmount != null\">\n        total_amount,\n      </if>\n      <if test=\"payAmount != null\">\n        pay_amount,\n      </if>\n      <if test=\"freightAmount != null\">\n        freight_amount,\n      </if>\n      <if test=\"promotionAmount != null\">\n        promotion_amount,\n      </if>\n      <if test=\"integrationAmount != null\">\n        integration_amount,\n      </if>\n      <if test=\"couponAmount != null\">\n        coupon_amount,\n      </if>\n      <if test=\"discountAmount != null\">\n        discount_amount,\n      </if>\n      <if test=\"payType != null\">\n        pay_type,\n      </if>\n      <if test=\"sourceType != null\">\n        source_type,\n      </if>\n      <if test=\"status != null\">\n        status,\n      </if>\n      <if test=\"orderType != null\">\n        order_type,\n      </if>\n      <if test=\"deliveryCompany != null\">\n        delivery_company,\n      </if>\n      <if test=\"deliverySn != null\">\n        delivery_sn,\n      </if>\n      <if test=\"autoConfirmDay != null\">\n        auto_confirm_day,\n      </if>\n      <if test=\"integration != null\">\n        integration,\n      </if>\n      <if test=\"growth != null\">\n        growth,\n      </if>\n      <if test=\"promotionInfo != null\">\n        promotion_info,\n      </if>\n      <if test=\"billType != null\">\n        bill_type,\n      </if>\n      <if test=\"billHeader != null\">\n        bill_header,\n      </if>\n      <if test=\"billContent != null\">\n        bill_content,\n      </if>\n      <if test=\"billReceiverPhone != null\">\n        bill_receiver_phone,\n      </if>\n      <if test=\"billReceiverEmail != null\">\n        bill_receiver_email,\n      </if>\n      <if test=\"receiverName != null\">\n        receiver_name,\n      </if>\n      <if test=\"receiverPhone != null\">\n        receiver_phone,\n      </if>\n      <if test=\"receiverPostCode != null\">\n        receiver_post_code,\n      </if>\n      <if test=\"receiverProvince != null\">\n        receiver_province,\n      </if>\n      <if test=\"receiverCity != null\">\n        receiver_city,\n      </if>\n      <if test=\"receiverRegion != null\">\n        receiver_region,\n      </if>\n      <if test=\"receiverDetailAddress != null\">\n        receiver_detail_address,\n      </if>\n      <if test=\"note != null\">\n        note,\n      </if>\n      <if test=\"confirmStatus != null\">\n        confirm_status,\n      </if>\n      <if test=\"deleteStatus != null\">\n        delete_status,\n      </if>\n      <if test=\"useIntegration != null\">\n        use_integration,\n      </if>\n      <if test=\"paymentTime != null\">\n        payment_time,\n      </if>\n      <if test=\"deliveryTime != null\">\n        delivery_time,\n      </if>\n      <if test=\"receiveTime != null\">\n        receive_time,\n      </if>\n      <if test=\"commentTime != null\">\n        comment_time,\n      </if>\n      <if test=\"modifyTime != null\">\n        modify_time,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"couponId != null\">\n        #{couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"orderSn != null\">\n        #{orderSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"memberUsername != null\">\n        #{memberUsername,jdbcType=VARCHAR},\n      </if>\n      <if test=\"totalAmount != null\">\n        #{totalAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"payAmount != null\">\n        #{payAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"freightAmount != null\">\n        #{freightAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"promotionAmount != null\">\n        #{promotionAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"integrationAmount != null\">\n        #{integrationAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"couponAmount != null\">\n        #{couponAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"discountAmount != null\">\n        #{discountAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"payType != null\">\n        #{payType,jdbcType=INTEGER},\n      </if>\n      <if test=\"sourceType != null\">\n        #{sourceType,jdbcType=INTEGER},\n      </if>\n      <if test=\"status != null\">\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"orderType != null\">\n        #{orderType,jdbcType=INTEGER},\n      </if>\n      <if test=\"deliveryCompany != null\">\n        #{deliveryCompany,jdbcType=VARCHAR},\n      </if>\n      <if test=\"deliverySn != null\">\n        #{deliverySn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"autoConfirmDay != null\">\n        #{autoConfirmDay,jdbcType=INTEGER},\n      </if>\n      <if test=\"integration != null\">\n        #{integration,jdbcType=INTEGER},\n      </if>\n      <if test=\"growth != null\">\n        #{growth,jdbcType=INTEGER},\n      </if>\n      <if test=\"promotionInfo != null\">\n        #{promotionInfo,jdbcType=VARCHAR},\n      </if>\n      <if test=\"billType != null\">\n        #{billType,jdbcType=INTEGER},\n      </if>\n      <if test=\"billHeader != null\">\n        #{billHeader,jdbcType=VARCHAR},\n      </if>\n      <if test=\"billContent != null\">\n        #{billContent,jdbcType=VARCHAR},\n      </if>\n      <if test=\"billReceiverPhone != null\">\n        #{billReceiverPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"billReceiverEmail != null\">\n        #{billReceiverEmail,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverName != null\">\n        #{receiverName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverPhone != null\">\n        #{receiverPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverPostCode != null\">\n        #{receiverPostCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverProvince != null\">\n        #{receiverProvince,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverCity != null\">\n        #{receiverCity,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverRegion != null\">\n        #{receiverRegion,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverDetailAddress != null\">\n        #{receiverDetailAddress,jdbcType=VARCHAR},\n      </if>\n      <if test=\"note != null\">\n        #{note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"confirmStatus != null\">\n        #{confirmStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"deleteStatus != null\">\n        #{deleteStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"useIntegration != null\">\n        #{useIntegration,jdbcType=INTEGER},\n      </if>\n      <if test=\"paymentTime != null\">\n        #{paymentTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"deliveryTime != null\">\n        #{deliveryTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"receiveTime != null\">\n        #{receiveTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"commentTime != null\">\n        #{commentTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"modifyTime != null\">\n        #{modifyTime,jdbcType=TIMESTAMP},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.OmsOrderExample\" resultType=\"java.lang.Long\">\n    select count(*) from oms_order\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update oms_order\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberId != null\">\n        member_id = #{row.memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.couponId != null\">\n        coupon_id = #{row.couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.orderSn != null\">\n        order_sn = #{row.orderSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.memberUsername != null\">\n        member_username = #{row.memberUsername,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.totalAmount != null\">\n        total_amount = #{row.totalAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.payAmount != null\">\n        pay_amount = #{row.payAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.freightAmount != null\">\n        freight_amount = #{row.freightAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.promotionAmount != null\">\n        promotion_amount = #{row.promotionAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.integrationAmount != null\">\n        integration_amount = #{row.integrationAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.couponAmount != null\">\n        coupon_amount = #{row.couponAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.discountAmount != null\">\n        discount_amount = #{row.discountAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.payType != null\">\n        pay_type = #{row.payType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sourceType != null\">\n        source_type = #{row.sourceType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.status != null\">\n        status = #{row.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.orderType != null\">\n        order_type = #{row.orderType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.deliveryCompany != null\">\n        delivery_company = #{row.deliveryCompany,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.deliverySn != null\">\n        delivery_sn = #{row.deliverySn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.autoConfirmDay != null\">\n        auto_confirm_day = #{row.autoConfirmDay,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.integration != null\">\n        integration = #{row.integration,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.growth != null\">\n        growth = #{row.growth,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.promotionInfo != null\">\n        promotion_info = #{row.promotionInfo,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.billType != null\">\n        bill_type = #{row.billType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.billHeader != null\">\n        bill_header = #{row.billHeader,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.billContent != null\">\n        bill_content = #{row.billContent,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.billReceiverPhone != null\">\n        bill_receiver_phone = #{row.billReceiverPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.billReceiverEmail != null\">\n        bill_receiver_email = #{row.billReceiverEmail,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.receiverName != null\">\n        receiver_name = #{row.receiverName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.receiverPhone != null\">\n        receiver_phone = #{row.receiverPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.receiverPostCode != null\">\n        receiver_post_code = #{row.receiverPostCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.receiverProvince != null\">\n        receiver_province = #{row.receiverProvince,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.receiverCity != null\">\n        receiver_city = #{row.receiverCity,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.receiverRegion != null\">\n        receiver_region = #{row.receiverRegion,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.receiverDetailAddress != null\">\n        receiver_detail_address = #{row.receiverDetailAddress,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.note != null\">\n        note = #{row.note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.confirmStatus != null\">\n        confirm_status = #{row.confirmStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.deleteStatus != null\">\n        delete_status = #{row.deleteStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.useIntegration != null\">\n        use_integration = #{row.useIntegration,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.paymentTime != null\">\n        payment_time = #{row.paymentTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.deliveryTime != null\">\n        delivery_time = #{row.deliveryTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.receiveTime != null\">\n        receive_time = #{row.receiveTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.commentTime != null\">\n        comment_time = #{row.commentTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.modifyTime != null\">\n        modify_time = #{row.modifyTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update oms_order\n    set id = #{row.id,jdbcType=BIGINT},\n      member_id = #{row.memberId,jdbcType=BIGINT},\n      coupon_id = #{row.couponId,jdbcType=BIGINT},\n      order_sn = #{row.orderSn,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      member_username = #{row.memberUsername,jdbcType=VARCHAR},\n      total_amount = #{row.totalAmount,jdbcType=DECIMAL},\n      pay_amount = #{row.payAmount,jdbcType=DECIMAL},\n      freight_amount = #{row.freightAmount,jdbcType=DECIMAL},\n      promotion_amount = #{row.promotionAmount,jdbcType=DECIMAL},\n      integration_amount = #{row.integrationAmount,jdbcType=DECIMAL},\n      coupon_amount = #{row.couponAmount,jdbcType=DECIMAL},\n      discount_amount = #{row.discountAmount,jdbcType=DECIMAL},\n      pay_type = #{row.payType,jdbcType=INTEGER},\n      source_type = #{row.sourceType,jdbcType=INTEGER},\n      status = #{row.status,jdbcType=INTEGER},\n      order_type = #{row.orderType,jdbcType=INTEGER},\n      delivery_company = #{row.deliveryCompany,jdbcType=VARCHAR},\n      delivery_sn = #{row.deliverySn,jdbcType=VARCHAR},\n      auto_confirm_day = #{row.autoConfirmDay,jdbcType=INTEGER},\n      integration = #{row.integration,jdbcType=INTEGER},\n      growth = #{row.growth,jdbcType=INTEGER},\n      promotion_info = #{row.promotionInfo,jdbcType=VARCHAR},\n      bill_type = #{row.billType,jdbcType=INTEGER},\n      bill_header = #{row.billHeader,jdbcType=VARCHAR},\n      bill_content = #{row.billContent,jdbcType=VARCHAR},\n      bill_receiver_phone = #{row.billReceiverPhone,jdbcType=VARCHAR},\n      bill_receiver_email = #{row.billReceiverEmail,jdbcType=VARCHAR},\n      receiver_name = #{row.receiverName,jdbcType=VARCHAR},\n      receiver_phone = #{row.receiverPhone,jdbcType=VARCHAR},\n      receiver_post_code = #{row.receiverPostCode,jdbcType=VARCHAR},\n      receiver_province = #{row.receiverProvince,jdbcType=VARCHAR},\n      receiver_city = #{row.receiverCity,jdbcType=VARCHAR},\n      receiver_region = #{row.receiverRegion,jdbcType=VARCHAR},\n      receiver_detail_address = #{row.receiverDetailAddress,jdbcType=VARCHAR},\n      note = #{row.note,jdbcType=VARCHAR},\n      confirm_status = #{row.confirmStatus,jdbcType=INTEGER},\n      delete_status = #{row.deleteStatus,jdbcType=INTEGER},\n      use_integration = #{row.useIntegration,jdbcType=INTEGER},\n      payment_time = #{row.paymentTime,jdbcType=TIMESTAMP},\n      delivery_time = #{row.deliveryTime,jdbcType=TIMESTAMP},\n      receive_time = #{row.receiveTime,jdbcType=TIMESTAMP},\n      comment_time = #{row.commentTime,jdbcType=TIMESTAMP},\n      modify_time = #{row.modifyTime,jdbcType=TIMESTAMP}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.OmsOrder\">\n    update oms_order\n    <set>\n      <if test=\"memberId != null\">\n        member_id = #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"couponId != null\">\n        coupon_id = #{couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"orderSn != null\">\n        order_sn = #{orderSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"memberUsername != null\">\n        member_username = #{memberUsername,jdbcType=VARCHAR},\n      </if>\n      <if test=\"totalAmount != null\">\n        total_amount = #{totalAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"payAmount != null\">\n        pay_amount = #{payAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"freightAmount != null\">\n        freight_amount = #{freightAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"promotionAmount != null\">\n        promotion_amount = #{promotionAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"integrationAmount != null\">\n        integration_amount = #{integrationAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"couponAmount != null\">\n        coupon_amount = #{couponAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"discountAmount != null\">\n        discount_amount = #{discountAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"payType != null\">\n        pay_type = #{payType,jdbcType=INTEGER},\n      </if>\n      <if test=\"sourceType != null\">\n        source_type = #{sourceType,jdbcType=INTEGER},\n      </if>\n      <if test=\"status != null\">\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"orderType != null\">\n        order_type = #{orderType,jdbcType=INTEGER},\n      </if>\n      <if test=\"deliveryCompany != null\">\n        delivery_company = #{deliveryCompany,jdbcType=VARCHAR},\n      </if>\n      <if test=\"deliverySn != null\">\n        delivery_sn = #{deliverySn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"autoConfirmDay != null\">\n        auto_confirm_day = #{autoConfirmDay,jdbcType=INTEGER},\n      </if>\n      <if test=\"integration != null\">\n        integration = #{integration,jdbcType=INTEGER},\n      </if>\n      <if test=\"growth != null\">\n        growth = #{growth,jdbcType=INTEGER},\n      </if>\n      <if test=\"promotionInfo != null\">\n        promotion_info = #{promotionInfo,jdbcType=VARCHAR},\n      </if>\n      <if test=\"billType != null\">\n        bill_type = #{billType,jdbcType=INTEGER},\n      </if>\n      <if test=\"billHeader != null\">\n        bill_header = #{billHeader,jdbcType=VARCHAR},\n      </if>\n      <if test=\"billContent != null\">\n        bill_content = #{billContent,jdbcType=VARCHAR},\n      </if>\n      <if test=\"billReceiverPhone != null\">\n        bill_receiver_phone = #{billReceiverPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"billReceiverEmail != null\">\n        bill_receiver_email = #{billReceiverEmail,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverName != null\">\n        receiver_name = #{receiverName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverPhone != null\">\n        receiver_phone = #{receiverPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverPostCode != null\">\n        receiver_post_code = #{receiverPostCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverProvince != null\">\n        receiver_province = #{receiverProvince,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverCity != null\">\n        receiver_city = #{receiverCity,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverRegion != null\">\n        receiver_region = #{receiverRegion,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiverDetailAddress != null\">\n        receiver_detail_address = #{receiverDetailAddress,jdbcType=VARCHAR},\n      </if>\n      <if test=\"note != null\">\n        note = #{note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"confirmStatus != null\">\n        confirm_status = #{confirmStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"deleteStatus != null\">\n        delete_status = #{deleteStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"useIntegration != null\">\n        use_integration = #{useIntegration,jdbcType=INTEGER},\n      </if>\n      <if test=\"paymentTime != null\">\n        payment_time = #{paymentTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"deliveryTime != null\">\n        delivery_time = #{deliveryTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"receiveTime != null\">\n        receive_time = #{receiveTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"commentTime != null\">\n        comment_time = #{commentTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"modifyTime != null\">\n        modify_time = #{modifyTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.OmsOrder\">\n    update oms_order\n    set member_id = #{memberId,jdbcType=BIGINT},\n      coupon_id = #{couponId,jdbcType=BIGINT},\n      order_sn = #{orderSn,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      member_username = #{memberUsername,jdbcType=VARCHAR},\n      total_amount = #{totalAmount,jdbcType=DECIMAL},\n      pay_amount = #{payAmount,jdbcType=DECIMAL},\n      freight_amount = #{freightAmount,jdbcType=DECIMAL},\n      promotion_amount = #{promotionAmount,jdbcType=DECIMAL},\n      integration_amount = #{integrationAmount,jdbcType=DECIMAL},\n      coupon_amount = #{couponAmount,jdbcType=DECIMAL},\n      discount_amount = #{discountAmount,jdbcType=DECIMAL},\n      pay_type = #{payType,jdbcType=INTEGER},\n      source_type = #{sourceType,jdbcType=INTEGER},\n      status = #{status,jdbcType=INTEGER},\n      order_type = #{orderType,jdbcType=INTEGER},\n      delivery_company = #{deliveryCompany,jdbcType=VARCHAR},\n      delivery_sn = #{deliverySn,jdbcType=VARCHAR},\n      auto_confirm_day = #{autoConfirmDay,jdbcType=INTEGER},\n      integration = #{integration,jdbcType=INTEGER},\n      growth = #{growth,jdbcType=INTEGER},\n      promotion_info = #{promotionInfo,jdbcType=VARCHAR},\n      bill_type = #{billType,jdbcType=INTEGER},\n      bill_header = #{billHeader,jdbcType=VARCHAR},\n      bill_content = #{billContent,jdbcType=VARCHAR},\n      bill_receiver_phone = #{billReceiverPhone,jdbcType=VARCHAR},\n      bill_receiver_email = #{billReceiverEmail,jdbcType=VARCHAR},\n      receiver_name = #{receiverName,jdbcType=VARCHAR},\n      receiver_phone = #{receiverPhone,jdbcType=VARCHAR},\n      receiver_post_code = #{receiverPostCode,jdbcType=VARCHAR},\n      receiver_province = #{receiverProvince,jdbcType=VARCHAR},\n      receiver_city = #{receiverCity,jdbcType=VARCHAR},\n      receiver_region = #{receiverRegion,jdbcType=VARCHAR},\n      receiver_detail_address = #{receiverDetailAddress,jdbcType=VARCHAR},\n      note = #{note,jdbcType=VARCHAR},\n      confirm_status = #{confirmStatus,jdbcType=INTEGER},\n      delete_status = #{deleteStatus,jdbcType=INTEGER},\n      use_integration = #{useIntegration,jdbcType=INTEGER},\n      payment_time = #{paymentTime,jdbcType=TIMESTAMP},\n      delivery_time = #{deliveryTime,jdbcType=TIMESTAMP},\n      receive_time = #{receiveTime,jdbcType=TIMESTAMP},\n      comment_time = #{commentTime,jdbcType=TIMESTAMP},\n      modify_time = #{modifyTime,jdbcType=TIMESTAMP}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/OmsOrderOperateHistoryMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.OmsOrderOperateHistoryMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.OmsOrderOperateHistory\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"order_id\" jdbcType=\"BIGINT\" property=\"orderId\" />\n    <result column=\"operate_man\" jdbcType=\"VARCHAR\" property=\"operateMan\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"order_status\" jdbcType=\"INTEGER\" property=\"orderStatus\" />\n    <result column=\"note\" jdbcType=\"VARCHAR\" property=\"note\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, order_id, operate_man, create_time, order_status, note\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.OmsOrderOperateHistoryExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from oms_order_operate_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from oms_order_operate_history\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from oms_order_operate_history\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.OmsOrderOperateHistoryExample\">\n    delete from oms_order_operate_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.OmsOrderOperateHistory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order_operate_history (order_id, operate_man, create_time, \n      order_status, note)\n    values (#{orderId,jdbcType=BIGINT}, #{operateMan,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, \n      #{orderStatus,jdbcType=INTEGER}, #{note,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.OmsOrderOperateHistory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order_operate_history\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"orderId != null\">\n        order_id,\n      </if>\n      <if test=\"operateMan != null\">\n        operate_man,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"orderStatus != null\">\n        order_status,\n      </if>\n      <if test=\"note != null\">\n        note,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"orderId != null\">\n        #{orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"operateMan != null\">\n        #{operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"orderStatus != null\">\n        #{orderStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"note != null\">\n        #{note,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.OmsOrderOperateHistoryExample\" resultType=\"java.lang.Long\">\n    select count(*) from oms_order_operate_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update oms_order_operate_history\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.orderId != null\">\n        order_id = #{row.orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.operateMan != null\">\n        operate_man = #{row.operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.orderStatus != null\">\n        order_status = #{row.orderStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.note != null\">\n        note = #{row.note,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update oms_order_operate_history\n    set id = #{row.id,jdbcType=BIGINT},\n      order_id = #{row.orderId,jdbcType=BIGINT},\n      operate_man = #{row.operateMan,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      order_status = #{row.orderStatus,jdbcType=INTEGER},\n      note = #{row.note,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.OmsOrderOperateHistory\">\n    update oms_order_operate_history\n    <set>\n      <if test=\"orderId != null\">\n        order_id = #{orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"operateMan != null\">\n        operate_man = #{operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"orderStatus != null\">\n        order_status = #{orderStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"note != null\">\n        note = #{note,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.OmsOrderOperateHistory\">\n    update oms_order_operate_history\n    set order_id = #{orderId,jdbcType=BIGINT},\n      operate_man = #{operateMan,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      order_status = #{orderStatus,jdbcType=INTEGER},\n      note = #{note,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/OmsOrderReturnApplyMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.OmsOrderReturnApplyMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.OmsOrderReturnApply\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"order_id\" jdbcType=\"BIGINT\" property=\"orderId\" />\n    <result column=\"company_address_id\" jdbcType=\"BIGINT\" property=\"companyAddressId\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"order_sn\" jdbcType=\"VARCHAR\" property=\"orderSn\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"member_username\" jdbcType=\"VARCHAR\" property=\"memberUsername\" />\n    <result column=\"return_amount\" jdbcType=\"DECIMAL\" property=\"returnAmount\" />\n    <result column=\"return_name\" jdbcType=\"VARCHAR\" property=\"returnName\" />\n    <result column=\"return_phone\" jdbcType=\"VARCHAR\" property=\"returnPhone\" />\n    <result column=\"status\" jdbcType=\"INTEGER\" property=\"status\" />\n    <result column=\"handle_time\" jdbcType=\"TIMESTAMP\" property=\"handleTime\" />\n    <result column=\"product_pic\" jdbcType=\"VARCHAR\" property=\"productPic\" />\n    <result column=\"product_name\" jdbcType=\"VARCHAR\" property=\"productName\" />\n    <result column=\"product_brand\" jdbcType=\"VARCHAR\" property=\"productBrand\" />\n    <result column=\"product_attr\" jdbcType=\"VARCHAR\" property=\"productAttr\" />\n    <result column=\"product_count\" jdbcType=\"INTEGER\" property=\"productCount\" />\n    <result column=\"product_price\" jdbcType=\"DECIMAL\" property=\"productPrice\" />\n    <result column=\"product_real_price\" jdbcType=\"DECIMAL\" property=\"productRealPrice\" />\n    <result column=\"reason\" jdbcType=\"VARCHAR\" property=\"reason\" />\n    <result column=\"description\" jdbcType=\"VARCHAR\" property=\"description\" />\n    <result column=\"proof_pics\" jdbcType=\"VARCHAR\" property=\"proofPics\" />\n    <result column=\"handle_note\" jdbcType=\"VARCHAR\" property=\"handleNote\" />\n    <result column=\"handle_man\" jdbcType=\"VARCHAR\" property=\"handleMan\" />\n    <result column=\"receive_man\" jdbcType=\"VARCHAR\" property=\"receiveMan\" />\n    <result column=\"receive_time\" jdbcType=\"TIMESTAMP\" property=\"receiveTime\" />\n    <result column=\"receive_note\" jdbcType=\"VARCHAR\" property=\"receiveNote\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, order_id, company_address_id, product_id, order_sn, create_time, member_username, \n    return_amount, return_name, return_phone, status, handle_time, product_pic, product_name, \n    product_brand, product_attr, product_count, product_price, product_real_price, reason, \n    description, proof_pics, handle_note, handle_man, receive_man, receive_time, receive_note\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.OmsOrderReturnApplyExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from oms_order_return_apply\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from oms_order_return_apply\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from oms_order_return_apply\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.OmsOrderReturnApplyExample\">\n    delete from oms_order_return_apply\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.OmsOrderReturnApply\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order_return_apply (order_id, company_address_id, product_id, \n      order_sn, create_time, member_username, \n      return_amount, return_name, return_phone, \n      status, handle_time, product_pic, \n      product_name, product_brand, product_attr, \n      product_count, product_price, product_real_price, \n      reason, description, proof_pics, \n      handle_note, handle_man, receive_man, \n      receive_time, receive_note)\n    values (#{orderId,jdbcType=BIGINT}, #{companyAddressId,jdbcType=BIGINT}, #{productId,jdbcType=BIGINT}, \n      #{orderSn,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{memberUsername,jdbcType=VARCHAR}, \n      #{returnAmount,jdbcType=DECIMAL}, #{returnName,jdbcType=VARCHAR}, #{returnPhone,jdbcType=VARCHAR}, \n      #{status,jdbcType=INTEGER}, #{handleTime,jdbcType=TIMESTAMP}, #{productPic,jdbcType=VARCHAR}, \n      #{productName,jdbcType=VARCHAR}, #{productBrand,jdbcType=VARCHAR}, #{productAttr,jdbcType=VARCHAR}, \n      #{productCount,jdbcType=INTEGER}, #{productPrice,jdbcType=DECIMAL}, #{productRealPrice,jdbcType=DECIMAL}, \n      #{reason,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{proofPics,jdbcType=VARCHAR}, \n      #{handleNote,jdbcType=VARCHAR}, #{handleMan,jdbcType=VARCHAR}, #{receiveMan,jdbcType=VARCHAR}, \n      #{receiveTime,jdbcType=TIMESTAMP}, #{receiveNote,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.OmsOrderReturnApply\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order_return_apply\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"orderId != null\">\n        order_id,\n      </if>\n      <if test=\"companyAddressId != null\">\n        company_address_id,\n      </if>\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"orderSn != null\">\n        order_sn,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"memberUsername != null\">\n        member_username,\n      </if>\n      <if test=\"returnAmount != null\">\n        return_amount,\n      </if>\n      <if test=\"returnName != null\">\n        return_name,\n      </if>\n      <if test=\"returnPhone != null\">\n        return_phone,\n      </if>\n      <if test=\"status != null\">\n        status,\n      </if>\n      <if test=\"handleTime != null\">\n        handle_time,\n      </if>\n      <if test=\"productPic != null\">\n        product_pic,\n      </if>\n      <if test=\"productName != null\">\n        product_name,\n      </if>\n      <if test=\"productBrand != null\">\n        product_brand,\n      </if>\n      <if test=\"productAttr != null\">\n        product_attr,\n      </if>\n      <if test=\"productCount != null\">\n        product_count,\n      </if>\n      <if test=\"productPrice != null\">\n        product_price,\n      </if>\n      <if test=\"productRealPrice != null\">\n        product_real_price,\n      </if>\n      <if test=\"reason != null\">\n        reason,\n      </if>\n      <if test=\"description != null\">\n        description,\n      </if>\n      <if test=\"proofPics != null\">\n        proof_pics,\n      </if>\n      <if test=\"handleNote != null\">\n        handle_note,\n      </if>\n      <if test=\"handleMan != null\">\n        handle_man,\n      </if>\n      <if test=\"receiveMan != null\">\n        receive_man,\n      </if>\n      <if test=\"receiveTime != null\">\n        receive_time,\n      </if>\n      <if test=\"receiveNote != null\">\n        receive_note,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"orderId != null\">\n        #{orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"companyAddressId != null\">\n        #{companyAddressId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"orderSn != null\">\n        #{orderSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"memberUsername != null\">\n        #{memberUsername,jdbcType=VARCHAR},\n      </if>\n      <if test=\"returnAmount != null\">\n        #{returnAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"returnName != null\">\n        #{returnName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"returnPhone != null\">\n        #{returnPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"status != null\">\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"handleTime != null\">\n        #{handleTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"productPic != null\">\n        #{productPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productName != null\">\n        #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productBrand != null\">\n        #{productBrand,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productAttr != null\">\n        #{productAttr,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productCount != null\">\n        #{productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"productPrice != null\">\n        #{productPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"productRealPrice != null\">\n        #{productRealPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"reason != null\">\n        #{reason,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        #{description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"proofPics != null\">\n        #{proofPics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"handleNote != null\">\n        #{handleNote,jdbcType=VARCHAR},\n      </if>\n      <if test=\"handleMan != null\">\n        #{handleMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiveMan != null\">\n        #{receiveMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiveTime != null\">\n        #{receiveTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"receiveNote != null\">\n        #{receiveNote,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.OmsOrderReturnApplyExample\" resultType=\"java.lang.Long\">\n    select count(*) from oms_order_return_apply\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update oms_order_return_apply\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.orderId != null\">\n        order_id = #{row.orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.companyAddressId != null\">\n        company_address_id = #{row.companyAddressId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.orderSn != null\">\n        order_sn = #{row.orderSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.memberUsername != null\">\n        member_username = #{row.memberUsername,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.returnAmount != null\">\n        return_amount = #{row.returnAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.returnName != null\">\n        return_name = #{row.returnName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.returnPhone != null\">\n        return_phone = #{row.returnPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.status != null\">\n        status = #{row.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.handleTime != null\">\n        handle_time = #{row.handleTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.productPic != null\">\n        product_pic = #{row.productPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productName != null\">\n        product_name = #{row.productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productBrand != null\">\n        product_brand = #{row.productBrand,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productAttr != null\">\n        product_attr = #{row.productAttr,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productCount != null\">\n        product_count = #{row.productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.productPrice != null\">\n        product_price = #{row.productPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.productRealPrice != null\">\n        product_real_price = #{row.productRealPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.reason != null\">\n        reason = #{row.reason,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.description != null\">\n        description = #{row.description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.proofPics != null\">\n        proof_pics = #{row.proofPics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.handleNote != null\">\n        handle_note = #{row.handleNote,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.handleMan != null\">\n        handle_man = #{row.handleMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.receiveMan != null\">\n        receive_man = #{row.receiveMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.receiveTime != null\">\n        receive_time = #{row.receiveTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.receiveNote != null\">\n        receive_note = #{row.receiveNote,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update oms_order_return_apply\n    set id = #{row.id,jdbcType=BIGINT},\n      order_id = #{row.orderId,jdbcType=BIGINT},\n      company_address_id = #{row.companyAddressId,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      order_sn = #{row.orderSn,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      member_username = #{row.memberUsername,jdbcType=VARCHAR},\n      return_amount = #{row.returnAmount,jdbcType=DECIMAL},\n      return_name = #{row.returnName,jdbcType=VARCHAR},\n      return_phone = #{row.returnPhone,jdbcType=VARCHAR},\n      status = #{row.status,jdbcType=INTEGER},\n      handle_time = #{row.handleTime,jdbcType=TIMESTAMP},\n      product_pic = #{row.productPic,jdbcType=VARCHAR},\n      product_name = #{row.productName,jdbcType=VARCHAR},\n      product_brand = #{row.productBrand,jdbcType=VARCHAR},\n      product_attr = #{row.productAttr,jdbcType=VARCHAR},\n      product_count = #{row.productCount,jdbcType=INTEGER},\n      product_price = #{row.productPrice,jdbcType=DECIMAL},\n      product_real_price = #{row.productRealPrice,jdbcType=DECIMAL},\n      reason = #{row.reason,jdbcType=VARCHAR},\n      description = #{row.description,jdbcType=VARCHAR},\n      proof_pics = #{row.proofPics,jdbcType=VARCHAR},\n      handle_note = #{row.handleNote,jdbcType=VARCHAR},\n      handle_man = #{row.handleMan,jdbcType=VARCHAR},\n      receive_man = #{row.receiveMan,jdbcType=VARCHAR},\n      receive_time = #{row.receiveTime,jdbcType=TIMESTAMP},\n      receive_note = #{row.receiveNote,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.OmsOrderReturnApply\">\n    update oms_order_return_apply\n    <set>\n      <if test=\"orderId != null\">\n        order_id = #{orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"companyAddressId != null\">\n        company_address_id = #{companyAddressId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"orderSn != null\">\n        order_sn = #{orderSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"memberUsername != null\">\n        member_username = #{memberUsername,jdbcType=VARCHAR},\n      </if>\n      <if test=\"returnAmount != null\">\n        return_amount = #{returnAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"returnName != null\">\n        return_name = #{returnName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"returnPhone != null\">\n        return_phone = #{returnPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"status != null\">\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"handleTime != null\">\n        handle_time = #{handleTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"productPic != null\">\n        product_pic = #{productPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productName != null\">\n        product_name = #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productBrand != null\">\n        product_brand = #{productBrand,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productAttr != null\">\n        product_attr = #{productAttr,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productCount != null\">\n        product_count = #{productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"productPrice != null\">\n        product_price = #{productPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"productRealPrice != null\">\n        product_real_price = #{productRealPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"reason != null\">\n        reason = #{reason,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        description = #{description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"proofPics != null\">\n        proof_pics = #{proofPics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"handleNote != null\">\n        handle_note = #{handleNote,jdbcType=VARCHAR},\n      </if>\n      <if test=\"handleMan != null\">\n        handle_man = #{handleMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiveMan != null\">\n        receive_man = #{receiveMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"receiveTime != null\">\n        receive_time = #{receiveTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"receiveNote != null\">\n        receive_note = #{receiveNote,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.OmsOrderReturnApply\">\n    update oms_order_return_apply\n    set order_id = #{orderId,jdbcType=BIGINT},\n      company_address_id = #{companyAddressId,jdbcType=BIGINT},\n      product_id = #{productId,jdbcType=BIGINT},\n      order_sn = #{orderSn,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      member_username = #{memberUsername,jdbcType=VARCHAR},\n      return_amount = #{returnAmount,jdbcType=DECIMAL},\n      return_name = #{returnName,jdbcType=VARCHAR},\n      return_phone = #{returnPhone,jdbcType=VARCHAR},\n      status = #{status,jdbcType=INTEGER},\n      handle_time = #{handleTime,jdbcType=TIMESTAMP},\n      product_pic = #{productPic,jdbcType=VARCHAR},\n      product_name = #{productName,jdbcType=VARCHAR},\n      product_brand = #{productBrand,jdbcType=VARCHAR},\n      product_attr = #{productAttr,jdbcType=VARCHAR},\n      product_count = #{productCount,jdbcType=INTEGER},\n      product_price = #{productPrice,jdbcType=DECIMAL},\n      product_real_price = #{productRealPrice,jdbcType=DECIMAL},\n      reason = #{reason,jdbcType=VARCHAR},\n      description = #{description,jdbcType=VARCHAR},\n      proof_pics = #{proofPics,jdbcType=VARCHAR},\n      handle_note = #{handleNote,jdbcType=VARCHAR},\n      handle_man = #{handleMan,jdbcType=VARCHAR},\n      receive_man = #{receiveMan,jdbcType=VARCHAR},\n      receive_time = #{receiveTime,jdbcType=TIMESTAMP},\n      receive_note = #{receiveNote,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/OmsOrderReturnReasonMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.OmsOrderReturnReasonMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.OmsOrderReturnReason\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n    <result column=\"status\" jdbcType=\"INTEGER\" property=\"status\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, sort, status, create_time\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.OmsOrderReturnReasonExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from oms_order_return_reason\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from oms_order_return_reason\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from oms_order_return_reason\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.OmsOrderReturnReasonExample\">\n    delete from oms_order_return_reason\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.OmsOrderReturnReason\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order_return_reason (name, sort, status, \n      create_time)\n    values (#{name,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, #{status,jdbcType=INTEGER}, \n      #{createTime,jdbcType=TIMESTAMP})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.OmsOrderReturnReason\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order_return_reason\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n      <if test=\"status != null\">\n        status,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"status != null\">\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.OmsOrderReturnReasonExample\" resultType=\"java.lang.Long\">\n    select count(*) from oms_order_return_reason\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update oms_order_return_reason\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.status != null\">\n        status = #{row.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update oms_order_return_reason\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      sort = #{row.sort,jdbcType=INTEGER},\n      status = #{row.status,jdbcType=INTEGER},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.OmsOrderReturnReason\">\n    update oms_order_return_reason\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"status != null\">\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.OmsOrderReturnReason\">\n    update oms_order_return_reason\n    set name = #{name,jdbcType=VARCHAR},\n      sort = #{sort,jdbcType=INTEGER},\n      status = #{status,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/OmsOrderSettingMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.OmsOrderSettingMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.OmsOrderSetting\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"flash_order_overtime\" jdbcType=\"INTEGER\" property=\"flashOrderOvertime\" />\n    <result column=\"normal_order_overtime\" jdbcType=\"INTEGER\" property=\"normalOrderOvertime\" />\n    <result column=\"confirm_overtime\" jdbcType=\"INTEGER\" property=\"confirmOvertime\" />\n    <result column=\"finish_overtime\" jdbcType=\"INTEGER\" property=\"finishOvertime\" />\n    <result column=\"comment_overtime\" jdbcType=\"INTEGER\" property=\"commentOvertime\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, flash_order_overtime, normal_order_overtime, confirm_overtime, finish_overtime, \n    comment_overtime\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.OmsOrderSettingExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from oms_order_setting\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from oms_order_setting\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from oms_order_setting\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.OmsOrderSettingExample\">\n    delete from oms_order_setting\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.OmsOrderSetting\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order_setting (flash_order_overtime, normal_order_overtime, \n      confirm_overtime, finish_overtime, comment_overtime\n      )\n    values (#{flashOrderOvertime,jdbcType=INTEGER}, #{normalOrderOvertime,jdbcType=INTEGER}, \n      #{confirmOvertime,jdbcType=INTEGER}, #{finishOvertime,jdbcType=INTEGER}, #{commentOvertime,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.OmsOrderSetting\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into oms_order_setting\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"flashOrderOvertime != null\">\n        flash_order_overtime,\n      </if>\n      <if test=\"normalOrderOvertime != null\">\n        normal_order_overtime,\n      </if>\n      <if test=\"confirmOvertime != null\">\n        confirm_overtime,\n      </if>\n      <if test=\"finishOvertime != null\">\n        finish_overtime,\n      </if>\n      <if test=\"commentOvertime != null\">\n        comment_overtime,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"flashOrderOvertime != null\">\n        #{flashOrderOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"normalOrderOvertime != null\">\n        #{normalOrderOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"confirmOvertime != null\">\n        #{confirmOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"finishOvertime != null\">\n        #{finishOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"commentOvertime != null\">\n        #{commentOvertime,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.OmsOrderSettingExample\" resultType=\"java.lang.Long\">\n    select count(*) from oms_order_setting\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update oms_order_setting\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.flashOrderOvertime != null\">\n        flash_order_overtime = #{row.flashOrderOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.normalOrderOvertime != null\">\n        normal_order_overtime = #{row.normalOrderOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.confirmOvertime != null\">\n        confirm_overtime = #{row.confirmOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.finishOvertime != null\">\n        finish_overtime = #{row.finishOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.commentOvertime != null\">\n        comment_overtime = #{row.commentOvertime,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update oms_order_setting\n    set id = #{row.id,jdbcType=BIGINT},\n      flash_order_overtime = #{row.flashOrderOvertime,jdbcType=INTEGER},\n      normal_order_overtime = #{row.normalOrderOvertime,jdbcType=INTEGER},\n      confirm_overtime = #{row.confirmOvertime,jdbcType=INTEGER},\n      finish_overtime = #{row.finishOvertime,jdbcType=INTEGER},\n      comment_overtime = #{row.commentOvertime,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.OmsOrderSetting\">\n    update oms_order_setting\n    <set>\n      <if test=\"flashOrderOvertime != null\">\n        flash_order_overtime = #{flashOrderOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"normalOrderOvertime != null\">\n        normal_order_overtime = #{normalOrderOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"confirmOvertime != null\">\n        confirm_overtime = #{confirmOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"finishOvertime != null\">\n        finish_overtime = #{finishOvertime,jdbcType=INTEGER},\n      </if>\n      <if test=\"commentOvertime != null\">\n        comment_overtime = #{commentOvertime,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.OmsOrderSetting\">\n    update oms_order_setting\n    set flash_order_overtime = #{flashOrderOvertime,jdbcType=INTEGER},\n      normal_order_overtime = #{normalOrderOvertime,jdbcType=INTEGER},\n      confirm_overtime = #{confirmOvertime,jdbcType=INTEGER},\n      finish_overtime = #{finishOvertime,jdbcType=INTEGER},\n      comment_overtime = #{commentOvertime,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsAlbumMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsAlbumMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsAlbum\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"cover_pic\" jdbcType=\"VARCHAR\" property=\"coverPic\" />\n    <result column=\"pic_count\" jdbcType=\"INTEGER\" property=\"picCount\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n    <result column=\"description\" jdbcType=\"VARCHAR\" property=\"description\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, cover_pic, pic_count, sort, description\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsAlbumExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_album\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_album\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_album\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsAlbumExample\">\n    delete from pms_album\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsAlbum\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_album (name, cover_pic, pic_count, \n      sort, description)\n    values (#{name,jdbcType=VARCHAR}, #{coverPic,jdbcType=VARCHAR}, #{picCount,jdbcType=INTEGER}, \n      #{sort,jdbcType=INTEGER}, #{description,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsAlbum\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_album\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"coverPic != null\">\n        cover_pic,\n      </if>\n      <if test=\"picCount != null\">\n        pic_count,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n      <if test=\"description != null\">\n        description,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"coverPic != null\">\n        #{coverPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"picCount != null\">\n        #{picCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"description != null\">\n        #{description,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsAlbumExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_album\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_album\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.coverPic != null\">\n        cover_pic = #{row.coverPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.picCount != null\">\n        pic_count = #{row.picCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.description != null\">\n        description = #{row.description,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_album\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      cover_pic = #{row.coverPic,jdbcType=VARCHAR},\n      pic_count = #{row.picCount,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER},\n      description = #{row.description,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsAlbum\">\n    update pms_album\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"coverPic != null\">\n        cover_pic = #{coverPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"picCount != null\">\n        pic_count = #{picCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"description != null\">\n        description = #{description,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsAlbum\">\n    update pms_album\n    set name = #{name,jdbcType=VARCHAR},\n      cover_pic = #{coverPic,jdbcType=VARCHAR},\n      pic_count = #{picCount,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER},\n      description = #{description,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsAlbumPicMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsAlbumPicMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsAlbumPic\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"album_id\" jdbcType=\"BIGINT\" property=\"albumId\" />\n    <result column=\"pic\" jdbcType=\"VARCHAR\" property=\"pic\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, album_id, pic\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsAlbumPicExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_album_pic\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_album_pic\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_album_pic\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsAlbumPicExample\">\n    delete from pms_album_pic\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsAlbumPic\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_album_pic (album_id, pic)\n    values (#{albumId,jdbcType=BIGINT}, #{pic,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsAlbumPic\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_album_pic\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"albumId != null\">\n        album_id,\n      </if>\n      <if test=\"pic != null\">\n        pic,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"albumId != null\">\n        #{albumId,jdbcType=BIGINT},\n      </if>\n      <if test=\"pic != null\">\n        #{pic,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsAlbumPicExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_album_pic\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_album_pic\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.albumId != null\">\n        album_id = #{row.albumId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.pic != null\">\n        pic = #{row.pic,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_album_pic\n    set id = #{row.id,jdbcType=BIGINT},\n      album_id = #{row.albumId,jdbcType=BIGINT},\n      pic = #{row.pic,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsAlbumPic\">\n    update pms_album_pic\n    <set>\n      <if test=\"albumId != null\">\n        album_id = #{albumId,jdbcType=BIGINT},\n      </if>\n      <if test=\"pic != null\">\n        pic = #{pic,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsAlbumPic\">\n    update pms_album_pic\n    set album_id = #{albumId,jdbcType=BIGINT},\n      pic = #{pic,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsBrandMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsBrandMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsBrand\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"first_letter\" jdbcType=\"VARCHAR\" property=\"firstLetter\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n    <result column=\"factory_status\" jdbcType=\"INTEGER\" property=\"factoryStatus\" />\n    <result column=\"show_status\" jdbcType=\"INTEGER\" property=\"showStatus\" />\n    <result column=\"product_count\" jdbcType=\"INTEGER\" property=\"productCount\" />\n    <result column=\"product_comment_count\" jdbcType=\"INTEGER\" property=\"productCommentCount\" />\n    <result column=\"logo\" jdbcType=\"VARCHAR\" property=\"logo\" />\n    <result column=\"big_pic\" jdbcType=\"VARCHAR\" property=\"bigPic\" />\n  </resultMap>\n  <resultMap extends=\"BaseResultMap\" id=\"ResultMapWithBLOBs\" type=\"com.macro.mall.model.PmsBrand\">\n    <result column=\"brand_story\" jdbcType=\"LONGVARCHAR\" property=\"brandStory\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, first_letter, sort, factory_status, show_status, product_count, product_comment_count, \n    logo, big_pic\n  </sql>\n  <sql id=\"Blob_Column_List\">\n    brand_story\n  </sql>\n  <select id=\"selectByExampleWithBLOBs\" parameterType=\"com.macro.mall.model.PmsBrandExample\" resultMap=\"ResultMapWithBLOBs\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from pms_brand\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsBrandExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_brand\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"ResultMapWithBLOBs\">\n    select \n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from pms_brand\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_brand\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsBrandExample\">\n    delete from pms_brand\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsBrand\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_brand (name, first_letter, sort, \n      factory_status, show_status, product_count, \n      product_comment_count, logo, big_pic, \n      brand_story)\n    values (#{name,jdbcType=VARCHAR}, #{firstLetter,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, \n      #{factoryStatus,jdbcType=INTEGER}, #{showStatus,jdbcType=INTEGER}, #{productCount,jdbcType=INTEGER}, \n      #{productCommentCount,jdbcType=INTEGER}, #{logo,jdbcType=VARCHAR}, #{bigPic,jdbcType=VARCHAR}, \n      #{brandStory,jdbcType=LONGVARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsBrand\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_brand\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"firstLetter != null\">\n        first_letter,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n      <if test=\"factoryStatus != null\">\n        factory_status,\n      </if>\n      <if test=\"showStatus != null\">\n        show_status,\n      </if>\n      <if test=\"productCount != null\">\n        product_count,\n      </if>\n      <if test=\"productCommentCount != null\">\n        product_comment_count,\n      </if>\n      <if test=\"logo != null\">\n        logo,\n      </if>\n      <if test=\"bigPic != null\">\n        big_pic,\n      </if>\n      <if test=\"brandStory != null\">\n        brand_story,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"firstLetter != null\">\n        #{firstLetter,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"factoryStatus != null\">\n        #{factoryStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"productCount != null\">\n        #{productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"productCommentCount != null\">\n        #{productCommentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"logo != null\">\n        #{logo,jdbcType=VARCHAR},\n      </if>\n      <if test=\"bigPic != null\">\n        #{bigPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"brandStory != null\">\n        #{brandStory,jdbcType=LONGVARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsBrandExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_brand\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_brand\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.firstLetter != null\">\n        first_letter = #{row.firstLetter,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.factoryStatus != null\">\n        factory_status = #{row.factoryStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.showStatus != null\">\n        show_status = #{row.showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.productCount != null\">\n        product_count = #{row.productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.productCommentCount != null\">\n        product_comment_count = #{row.productCommentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.logo != null\">\n        logo = #{row.logo,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.bigPic != null\">\n        big_pic = #{row.bigPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.brandStory != null\">\n        brand_story = #{row.brandStory,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExampleWithBLOBs\" parameterType=\"map\">\n    update pms_brand\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      first_letter = #{row.firstLetter,jdbcType=VARCHAR},\n      sort = #{row.sort,jdbcType=INTEGER},\n      factory_status = #{row.factoryStatus,jdbcType=INTEGER},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      product_count = #{row.productCount,jdbcType=INTEGER},\n      product_comment_count = #{row.productCommentCount,jdbcType=INTEGER},\n      logo = #{row.logo,jdbcType=VARCHAR},\n      big_pic = #{row.bigPic,jdbcType=VARCHAR},\n      brand_story = #{row.brandStory,jdbcType=LONGVARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_brand\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      first_letter = #{row.firstLetter,jdbcType=VARCHAR},\n      sort = #{row.sort,jdbcType=INTEGER},\n      factory_status = #{row.factoryStatus,jdbcType=INTEGER},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      product_count = #{row.productCount,jdbcType=INTEGER},\n      product_comment_count = #{row.productCommentCount,jdbcType=INTEGER},\n      logo = #{row.logo,jdbcType=VARCHAR},\n      big_pic = #{row.bigPic,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsBrand\">\n    update pms_brand\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"firstLetter != null\">\n        first_letter = #{firstLetter,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"factoryStatus != null\">\n        factory_status = #{factoryStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        show_status = #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"productCount != null\">\n        product_count = #{productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"productCommentCount != null\">\n        product_comment_count = #{productCommentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"logo != null\">\n        logo = #{logo,jdbcType=VARCHAR},\n      </if>\n      <if test=\"bigPic != null\">\n        big_pic = #{bigPic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"brandStory != null\">\n        brand_story = #{brandStory,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKeyWithBLOBs\" parameterType=\"com.macro.mall.model.PmsBrand\">\n    update pms_brand\n    set name = #{name,jdbcType=VARCHAR},\n      first_letter = #{firstLetter,jdbcType=VARCHAR},\n      sort = #{sort,jdbcType=INTEGER},\n      factory_status = #{factoryStatus,jdbcType=INTEGER},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      product_count = #{productCount,jdbcType=INTEGER},\n      product_comment_count = #{productCommentCount,jdbcType=INTEGER},\n      logo = #{logo,jdbcType=VARCHAR},\n      big_pic = #{bigPic,jdbcType=VARCHAR},\n      brand_story = #{brandStory,jdbcType=LONGVARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsBrand\">\n    update pms_brand\n    set name = #{name,jdbcType=VARCHAR},\n      first_letter = #{firstLetter,jdbcType=VARCHAR},\n      sort = #{sort,jdbcType=INTEGER},\n      factory_status = #{factoryStatus,jdbcType=INTEGER},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      product_count = #{productCount,jdbcType=INTEGER},\n      product_comment_count = #{productCommentCount,jdbcType=INTEGER},\n      logo = #{logo,jdbcType=VARCHAR},\n      big_pic = #{bigPic,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsCommentMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsCommentMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsComment\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"member_nick_name\" jdbcType=\"VARCHAR\" property=\"memberNickName\" />\n    <result column=\"product_name\" jdbcType=\"VARCHAR\" property=\"productName\" />\n    <result column=\"star\" jdbcType=\"INTEGER\" property=\"star\" />\n    <result column=\"member_ip\" jdbcType=\"VARCHAR\" property=\"memberIp\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"show_status\" jdbcType=\"INTEGER\" property=\"showStatus\" />\n    <result column=\"product_attribute\" jdbcType=\"VARCHAR\" property=\"productAttribute\" />\n    <result column=\"collect_couont\" jdbcType=\"INTEGER\" property=\"collectCouont\" />\n    <result column=\"read_count\" jdbcType=\"INTEGER\" property=\"readCount\" />\n    <result column=\"pics\" jdbcType=\"VARCHAR\" property=\"pics\" />\n    <result column=\"member_icon\" jdbcType=\"VARCHAR\" property=\"memberIcon\" />\n    <result column=\"replay_count\" jdbcType=\"INTEGER\" property=\"replayCount\" />\n  </resultMap>\n  <resultMap extends=\"BaseResultMap\" id=\"ResultMapWithBLOBs\" type=\"com.macro.mall.model.PmsComment\">\n    <result column=\"content\" jdbcType=\"LONGVARCHAR\" property=\"content\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_id, member_nick_name, product_name, star, member_ip, create_time, show_status, \n    product_attribute, collect_couont, read_count, pics, member_icon, replay_count\n  </sql>\n  <sql id=\"Blob_Column_List\">\n    content\n  </sql>\n  <select id=\"selectByExampleWithBLOBs\" parameterType=\"com.macro.mall.model.PmsCommentExample\" resultMap=\"ResultMapWithBLOBs\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from pms_comment\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsCommentExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_comment\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"ResultMapWithBLOBs\">\n    select \n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from pms_comment\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_comment\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsCommentExample\">\n    delete from pms_comment\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsComment\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_comment (product_id, member_nick_name, product_name, \n      star, member_ip, create_time, \n      show_status, product_attribute, collect_couont, \n      read_count, pics, member_icon, \n      replay_count, content)\n    values (#{productId,jdbcType=BIGINT}, #{memberNickName,jdbcType=VARCHAR}, #{productName,jdbcType=VARCHAR}, \n      #{star,jdbcType=INTEGER}, #{memberIp,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, \n      #{showStatus,jdbcType=INTEGER}, #{productAttribute,jdbcType=VARCHAR}, #{collectCouont,jdbcType=INTEGER}, \n      #{readCount,jdbcType=INTEGER}, #{pics,jdbcType=VARCHAR}, #{memberIcon,jdbcType=VARCHAR}, \n      #{replayCount,jdbcType=INTEGER}, #{content,jdbcType=LONGVARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsComment\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_comment\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"memberNickName != null\">\n        member_nick_name,\n      </if>\n      <if test=\"productName != null\">\n        product_name,\n      </if>\n      <if test=\"star != null\">\n        star,\n      </if>\n      <if test=\"memberIp != null\">\n        member_ip,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"showStatus != null\">\n        show_status,\n      </if>\n      <if test=\"productAttribute != null\">\n        product_attribute,\n      </if>\n      <if test=\"collectCouont != null\">\n        collect_couont,\n      </if>\n      <if test=\"readCount != null\">\n        read_count,\n      </if>\n      <if test=\"pics != null\">\n        pics,\n      </if>\n      <if test=\"memberIcon != null\">\n        member_icon,\n      </if>\n      <if test=\"replayCount != null\">\n        replay_count,\n      </if>\n      <if test=\"content != null\">\n        content,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberNickName != null\">\n        #{memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productName != null\">\n        #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"star != null\">\n        #{star,jdbcType=INTEGER},\n      </if>\n      <if test=\"memberIp != null\">\n        #{memberIp,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"showStatus != null\">\n        #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"productAttribute != null\">\n        #{productAttribute,jdbcType=VARCHAR},\n      </if>\n      <if test=\"collectCouont != null\">\n        #{collectCouont,jdbcType=INTEGER},\n      </if>\n      <if test=\"readCount != null\">\n        #{readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"pics != null\">\n        #{pics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberIcon != null\">\n        #{memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"replayCount != null\">\n        #{replayCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"content != null\">\n        #{content,jdbcType=LONGVARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsCommentExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_comment\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_comment\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberNickName != null\">\n        member_nick_name = #{row.memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productName != null\">\n        product_name = #{row.productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.star != null\">\n        star = #{row.star,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.memberIp != null\">\n        member_ip = #{row.memberIp,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.showStatus != null\">\n        show_status = #{row.showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.productAttribute != null\">\n        product_attribute = #{row.productAttribute,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.collectCouont != null\">\n        collect_couont = #{row.collectCouont,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.readCount != null\">\n        read_count = #{row.readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.pics != null\">\n        pics = #{row.pics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.memberIcon != null\">\n        member_icon = #{row.memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.replayCount != null\">\n        replay_count = #{row.replayCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.content != null\">\n        content = #{row.content,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExampleWithBLOBs\" parameterType=\"map\">\n    update pms_comment\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      member_nick_name = #{row.memberNickName,jdbcType=VARCHAR},\n      product_name = #{row.productName,jdbcType=VARCHAR},\n      star = #{row.star,jdbcType=INTEGER},\n      member_ip = #{row.memberIp,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      product_attribute = #{row.productAttribute,jdbcType=VARCHAR},\n      collect_couont = #{row.collectCouont,jdbcType=INTEGER},\n      read_count = #{row.readCount,jdbcType=INTEGER},\n      pics = #{row.pics,jdbcType=VARCHAR},\n      member_icon = #{row.memberIcon,jdbcType=VARCHAR},\n      replay_count = #{row.replayCount,jdbcType=INTEGER},\n      content = #{row.content,jdbcType=LONGVARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_comment\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      member_nick_name = #{row.memberNickName,jdbcType=VARCHAR},\n      product_name = #{row.productName,jdbcType=VARCHAR},\n      star = #{row.star,jdbcType=INTEGER},\n      member_ip = #{row.memberIp,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      product_attribute = #{row.productAttribute,jdbcType=VARCHAR},\n      collect_couont = #{row.collectCouont,jdbcType=INTEGER},\n      read_count = #{row.readCount,jdbcType=INTEGER},\n      pics = #{row.pics,jdbcType=VARCHAR},\n      member_icon = #{row.memberIcon,jdbcType=VARCHAR},\n      replay_count = #{row.replayCount,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsComment\">\n    update pms_comment\n    <set>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberNickName != null\">\n        member_nick_name = #{memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productName != null\">\n        product_name = #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"star != null\">\n        star = #{star,jdbcType=INTEGER},\n      </if>\n      <if test=\"memberIp != null\">\n        member_ip = #{memberIp,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"showStatus != null\">\n        show_status = #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"productAttribute != null\">\n        product_attribute = #{productAttribute,jdbcType=VARCHAR},\n      </if>\n      <if test=\"collectCouont != null\">\n        collect_couont = #{collectCouont,jdbcType=INTEGER},\n      </if>\n      <if test=\"readCount != null\">\n        read_count = #{readCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"pics != null\">\n        pics = #{pics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberIcon != null\">\n        member_icon = #{memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"replayCount != null\">\n        replay_count = #{replayCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"content != null\">\n        content = #{content,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKeyWithBLOBs\" parameterType=\"com.macro.mall.model.PmsComment\">\n    update pms_comment\n    set product_id = #{productId,jdbcType=BIGINT},\n      member_nick_name = #{memberNickName,jdbcType=VARCHAR},\n      product_name = #{productName,jdbcType=VARCHAR},\n      star = #{star,jdbcType=INTEGER},\n      member_ip = #{memberIp,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      product_attribute = #{productAttribute,jdbcType=VARCHAR},\n      collect_couont = #{collectCouont,jdbcType=INTEGER},\n      read_count = #{readCount,jdbcType=INTEGER},\n      pics = #{pics,jdbcType=VARCHAR},\n      member_icon = #{memberIcon,jdbcType=VARCHAR},\n      replay_count = #{replayCount,jdbcType=INTEGER},\n      content = #{content,jdbcType=LONGVARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsComment\">\n    update pms_comment\n    set product_id = #{productId,jdbcType=BIGINT},\n      member_nick_name = #{memberNickName,jdbcType=VARCHAR},\n      product_name = #{productName,jdbcType=VARCHAR},\n      star = #{star,jdbcType=INTEGER},\n      member_ip = #{memberIp,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      product_attribute = #{productAttribute,jdbcType=VARCHAR},\n      collect_couont = #{collectCouont,jdbcType=INTEGER},\n      read_count = #{readCount,jdbcType=INTEGER},\n      pics = #{pics,jdbcType=VARCHAR},\n      member_icon = #{memberIcon,jdbcType=VARCHAR},\n      replay_count = #{replayCount,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsCommentReplayMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsCommentReplayMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsCommentReplay\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"comment_id\" jdbcType=\"BIGINT\" property=\"commentId\" />\n    <result column=\"member_nick_name\" jdbcType=\"VARCHAR\" property=\"memberNickName\" />\n    <result column=\"member_icon\" jdbcType=\"VARCHAR\" property=\"memberIcon\" />\n    <result column=\"content\" jdbcType=\"VARCHAR\" property=\"content\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"type\" jdbcType=\"INTEGER\" property=\"type\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, comment_id, member_nick_name, member_icon, content, create_time, type\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsCommentReplayExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_comment_replay\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_comment_replay\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_comment_replay\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsCommentReplayExample\">\n    delete from pms_comment_replay\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsCommentReplay\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_comment_replay (comment_id, member_nick_name, member_icon, \n      content, create_time, type\n      )\n    values (#{commentId,jdbcType=BIGINT}, #{memberNickName,jdbcType=VARCHAR}, #{memberIcon,jdbcType=VARCHAR}, \n      #{content,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{type,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsCommentReplay\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_comment_replay\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"commentId != null\">\n        comment_id,\n      </if>\n      <if test=\"memberNickName != null\">\n        member_nick_name,\n      </if>\n      <if test=\"memberIcon != null\">\n        member_icon,\n      </if>\n      <if test=\"content != null\">\n        content,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"type != null\">\n        type,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"commentId != null\">\n        #{commentId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberNickName != null\">\n        #{memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberIcon != null\">\n        #{memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\">\n        #{content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"type != null\">\n        #{type,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsCommentReplayExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_comment_replay\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_comment_replay\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.commentId != null\">\n        comment_id = #{row.commentId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberNickName != null\">\n        member_nick_name = #{row.memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.memberIcon != null\">\n        member_icon = #{row.memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.content != null\">\n        content = #{row.content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.type != null\">\n        type = #{row.type,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_comment_replay\n    set id = #{row.id,jdbcType=BIGINT},\n      comment_id = #{row.commentId,jdbcType=BIGINT},\n      member_nick_name = #{row.memberNickName,jdbcType=VARCHAR},\n      member_icon = #{row.memberIcon,jdbcType=VARCHAR},\n      content = #{row.content,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      type = #{row.type,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsCommentReplay\">\n    update pms_comment_replay\n    <set>\n      <if test=\"commentId != null\">\n        comment_id = #{commentId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberNickName != null\">\n        member_nick_name = #{memberNickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberIcon != null\">\n        member_icon = #{memberIcon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"content != null\">\n        content = #{content,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"type != null\">\n        type = #{type,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsCommentReplay\">\n    update pms_comment_replay\n    set comment_id = #{commentId,jdbcType=BIGINT},\n      member_nick_name = #{memberNickName,jdbcType=VARCHAR},\n      member_icon = #{memberIcon,jdbcType=VARCHAR},\n      content = #{content,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      type = #{type,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsFeightTemplateMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsFeightTemplateMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsFeightTemplate\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"charge_type\" jdbcType=\"INTEGER\" property=\"chargeType\" />\n    <result column=\"first_weight\" jdbcType=\"DECIMAL\" property=\"firstWeight\" />\n    <result column=\"first_fee\" jdbcType=\"DECIMAL\" property=\"firstFee\" />\n    <result column=\"continue_weight\" jdbcType=\"DECIMAL\" property=\"continueWeight\" />\n    <result column=\"continme_fee\" jdbcType=\"DECIMAL\" property=\"continmeFee\" />\n    <result column=\"dest\" jdbcType=\"VARCHAR\" property=\"dest\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, charge_type, first_weight, first_fee, continue_weight, continme_fee, dest\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsFeightTemplateExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_feight_template\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_feight_template\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_feight_template\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsFeightTemplateExample\">\n    delete from pms_feight_template\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsFeightTemplate\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_feight_template (name, charge_type, first_weight, \n      first_fee, continue_weight, continme_fee, \n      dest)\n    values (#{name,jdbcType=VARCHAR}, #{chargeType,jdbcType=INTEGER}, #{firstWeight,jdbcType=DECIMAL}, \n      #{firstFee,jdbcType=DECIMAL}, #{continueWeight,jdbcType=DECIMAL}, #{continmeFee,jdbcType=DECIMAL}, \n      #{dest,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsFeightTemplate\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_feight_template\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"chargeType != null\">\n        charge_type,\n      </if>\n      <if test=\"firstWeight != null\">\n        first_weight,\n      </if>\n      <if test=\"firstFee != null\">\n        first_fee,\n      </if>\n      <if test=\"continueWeight != null\">\n        continue_weight,\n      </if>\n      <if test=\"continmeFee != null\">\n        continme_fee,\n      </if>\n      <if test=\"dest != null\">\n        dest,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"chargeType != null\">\n        #{chargeType,jdbcType=INTEGER},\n      </if>\n      <if test=\"firstWeight != null\">\n        #{firstWeight,jdbcType=DECIMAL},\n      </if>\n      <if test=\"firstFee != null\">\n        #{firstFee,jdbcType=DECIMAL},\n      </if>\n      <if test=\"continueWeight != null\">\n        #{continueWeight,jdbcType=DECIMAL},\n      </if>\n      <if test=\"continmeFee != null\">\n        #{continmeFee,jdbcType=DECIMAL},\n      </if>\n      <if test=\"dest != null\">\n        #{dest,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsFeightTemplateExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_feight_template\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_feight_template\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.chargeType != null\">\n        charge_type = #{row.chargeType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.firstWeight != null\">\n        first_weight = #{row.firstWeight,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.firstFee != null\">\n        first_fee = #{row.firstFee,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.continueWeight != null\">\n        continue_weight = #{row.continueWeight,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.continmeFee != null\">\n        continme_fee = #{row.continmeFee,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.dest != null\">\n        dest = #{row.dest,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_feight_template\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      charge_type = #{row.chargeType,jdbcType=INTEGER},\n      first_weight = #{row.firstWeight,jdbcType=DECIMAL},\n      first_fee = #{row.firstFee,jdbcType=DECIMAL},\n      continue_weight = #{row.continueWeight,jdbcType=DECIMAL},\n      continme_fee = #{row.continmeFee,jdbcType=DECIMAL},\n      dest = #{row.dest,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsFeightTemplate\">\n    update pms_feight_template\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"chargeType != null\">\n        charge_type = #{chargeType,jdbcType=INTEGER},\n      </if>\n      <if test=\"firstWeight != null\">\n        first_weight = #{firstWeight,jdbcType=DECIMAL},\n      </if>\n      <if test=\"firstFee != null\">\n        first_fee = #{firstFee,jdbcType=DECIMAL},\n      </if>\n      <if test=\"continueWeight != null\">\n        continue_weight = #{continueWeight,jdbcType=DECIMAL},\n      </if>\n      <if test=\"continmeFee != null\">\n        continme_fee = #{continmeFee,jdbcType=DECIMAL},\n      </if>\n      <if test=\"dest != null\">\n        dest = #{dest,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsFeightTemplate\">\n    update pms_feight_template\n    set name = #{name,jdbcType=VARCHAR},\n      charge_type = #{chargeType,jdbcType=INTEGER},\n      first_weight = #{firstWeight,jdbcType=DECIMAL},\n      first_fee = #{firstFee,jdbcType=DECIMAL},\n      continue_weight = #{continueWeight,jdbcType=DECIMAL},\n      continme_fee = #{continmeFee,jdbcType=DECIMAL},\n      dest = #{dest,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsMemberPriceMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsMemberPriceMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsMemberPrice\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"member_level_id\" jdbcType=\"BIGINT\" property=\"memberLevelId\" />\n    <result column=\"member_price\" jdbcType=\"DECIMAL\" property=\"memberPrice\" />\n    <result column=\"member_level_name\" jdbcType=\"VARCHAR\" property=\"memberLevelName\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_id, member_level_id, member_price, member_level_name\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsMemberPriceExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_member_price\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_member_price\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_member_price\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsMemberPriceExample\">\n    delete from pms_member_price\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsMemberPrice\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_member_price (product_id, member_level_id, member_price, \n      member_level_name)\n    values (#{productId,jdbcType=BIGINT}, #{memberLevelId,jdbcType=BIGINT}, #{memberPrice,jdbcType=DECIMAL}, \n      #{memberLevelName,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsMemberPrice\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_member_price\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"memberLevelId != null\">\n        member_level_id,\n      </if>\n      <if test=\"memberPrice != null\">\n        member_price,\n      </if>\n      <if test=\"memberLevelName != null\">\n        member_level_name,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberLevelId != null\">\n        #{memberLevelId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberPrice != null\">\n        #{memberPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"memberLevelName != null\">\n        #{memberLevelName,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsMemberPriceExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_member_price\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_member_price\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberLevelId != null\">\n        member_level_id = #{row.memberLevelId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberPrice != null\">\n        member_price = #{row.memberPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.memberLevelName != null\">\n        member_level_name = #{row.memberLevelName,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_member_price\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      member_level_id = #{row.memberLevelId,jdbcType=BIGINT},\n      member_price = #{row.memberPrice,jdbcType=DECIMAL},\n      member_level_name = #{row.memberLevelName,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsMemberPrice\">\n    update pms_member_price\n    <set>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberLevelId != null\">\n        member_level_id = #{memberLevelId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberPrice != null\">\n        member_price = #{memberPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"memberLevelName != null\">\n        member_level_name = #{memberLevelName,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsMemberPrice\">\n    update pms_member_price\n    set product_id = #{productId,jdbcType=BIGINT},\n      member_level_id = #{memberLevelId,jdbcType=BIGINT},\n      member_price = #{memberPrice,jdbcType=DECIMAL},\n      member_level_name = #{memberLevelName,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsProductAttributeCategoryMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsProductAttributeCategoryMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsProductAttributeCategory\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"attribute_count\" jdbcType=\"INTEGER\" property=\"attributeCount\" />\n    <result column=\"param_count\" jdbcType=\"INTEGER\" property=\"paramCount\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, attribute_count, param_count\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsProductAttributeCategoryExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_product_attribute_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_product_attribute_category\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_product_attribute_category\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsProductAttributeCategoryExample\">\n    delete from pms_product_attribute_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsProductAttributeCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_attribute_category (name, attribute_count, param_count\n      )\n    values (#{name,jdbcType=VARCHAR}, #{attributeCount,jdbcType=INTEGER}, #{paramCount,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsProductAttributeCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_attribute_category\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"attributeCount != null\">\n        attribute_count,\n      </if>\n      <if test=\"paramCount != null\">\n        param_count,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"attributeCount != null\">\n        #{attributeCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"paramCount != null\">\n        #{paramCount,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsProductAttributeCategoryExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_product_attribute_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_product_attribute_category\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.attributeCount != null\">\n        attribute_count = #{row.attributeCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.paramCount != null\">\n        param_count = #{row.paramCount,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_product_attribute_category\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      attribute_count = #{row.attributeCount,jdbcType=INTEGER},\n      param_count = #{row.paramCount,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsProductAttributeCategory\">\n    update pms_product_attribute_category\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"attributeCount != null\">\n        attribute_count = #{attributeCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"paramCount != null\">\n        param_count = #{paramCount,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsProductAttributeCategory\">\n    update pms_product_attribute_category\n    set name = #{name,jdbcType=VARCHAR},\n      attribute_count = #{attributeCount,jdbcType=INTEGER},\n      param_count = #{paramCount,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsProductAttributeMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsProductAttributeMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsProductAttribute\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_attribute_category_id\" jdbcType=\"BIGINT\" property=\"productAttributeCategoryId\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"select_type\" jdbcType=\"INTEGER\" property=\"selectType\" />\n    <result column=\"input_type\" jdbcType=\"INTEGER\" property=\"inputType\" />\n    <result column=\"input_list\" jdbcType=\"VARCHAR\" property=\"inputList\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n    <result column=\"filter_type\" jdbcType=\"INTEGER\" property=\"filterType\" />\n    <result column=\"search_type\" jdbcType=\"INTEGER\" property=\"searchType\" />\n    <result column=\"related_status\" jdbcType=\"INTEGER\" property=\"relatedStatus\" />\n    <result column=\"hand_add_status\" jdbcType=\"INTEGER\" property=\"handAddStatus\" />\n    <result column=\"type\" jdbcType=\"INTEGER\" property=\"type\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_attribute_category_id, name, select_type, input_type, input_list, sort, \n    filter_type, search_type, related_status, hand_add_status, type\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsProductAttributeExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_product_attribute\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_product_attribute\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_product_attribute\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsProductAttributeExample\">\n    delete from pms_product_attribute\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsProductAttribute\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_attribute (product_attribute_category_id, name, \n      select_type, input_type, input_list, \n      sort, filter_type, search_type, \n      related_status, hand_add_status, type\n      )\n    values (#{productAttributeCategoryId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, \n      #{selectType,jdbcType=INTEGER}, #{inputType,jdbcType=INTEGER}, #{inputList,jdbcType=VARCHAR}, \n      #{sort,jdbcType=INTEGER}, #{filterType,jdbcType=INTEGER}, #{searchType,jdbcType=INTEGER}, \n      #{relatedStatus,jdbcType=INTEGER}, #{handAddStatus,jdbcType=INTEGER}, #{type,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsProductAttribute\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_attribute\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productAttributeCategoryId != null\">\n        product_attribute_category_id,\n      </if>\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"selectType != null\">\n        select_type,\n      </if>\n      <if test=\"inputType != null\">\n        input_type,\n      </if>\n      <if test=\"inputList != null\">\n        input_list,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n      <if test=\"filterType != null\">\n        filter_type,\n      </if>\n      <if test=\"searchType != null\">\n        search_type,\n      </if>\n      <if test=\"relatedStatus != null\">\n        related_status,\n      </if>\n      <if test=\"handAddStatus != null\">\n        hand_add_status,\n      </if>\n      <if test=\"type != null\">\n        type,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productAttributeCategoryId != null\">\n        #{productAttributeCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"selectType != null\">\n        #{selectType,jdbcType=INTEGER},\n      </if>\n      <if test=\"inputType != null\">\n        #{inputType,jdbcType=INTEGER},\n      </if>\n      <if test=\"inputList != null\">\n        #{inputList,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"filterType != null\">\n        #{filterType,jdbcType=INTEGER},\n      </if>\n      <if test=\"searchType != null\">\n        #{searchType,jdbcType=INTEGER},\n      </if>\n      <if test=\"relatedStatus != null\">\n        #{relatedStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"handAddStatus != null\">\n        #{handAddStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"type != null\">\n        #{type,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsProductAttributeExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_product_attribute\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_product_attribute\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productAttributeCategoryId != null\">\n        product_attribute_category_id = #{row.productAttributeCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.selectType != null\">\n        select_type = #{row.selectType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.inputType != null\">\n        input_type = #{row.inputType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.inputList != null\">\n        input_list = #{row.inputList,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.filterType != null\">\n        filter_type = #{row.filterType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.searchType != null\">\n        search_type = #{row.searchType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.relatedStatus != null\">\n        related_status = #{row.relatedStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.handAddStatus != null\">\n        hand_add_status = #{row.handAddStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.type != null\">\n        type = #{row.type,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_product_attribute\n    set id = #{row.id,jdbcType=BIGINT},\n      product_attribute_category_id = #{row.productAttributeCategoryId,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      select_type = #{row.selectType,jdbcType=INTEGER},\n      input_type = #{row.inputType,jdbcType=INTEGER},\n      input_list = #{row.inputList,jdbcType=VARCHAR},\n      sort = #{row.sort,jdbcType=INTEGER},\n      filter_type = #{row.filterType,jdbcType=INTEGER},\n      search_type = #{row.searchType,jdbcType=INTEGER},\n      related_status = #{row.relatedStatus,jdbcType=INTEGER},\n      hand_add_status = #{row.handAddStatus,jdbcType=INTEGER},\n      type = #{row.type,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsProductAttribute\">\n    update pms_product_attribute\n    <set>\n      <if test=\"productAttributeCategoryId != null\">\n        product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"selectType != null\">\n        select_type = #{selectType,jdbcType=INTEGER},\n      </if>\n      <if test=\"inputType != null\">\n        input_type = #{inputType,jdbcType=INTEGER},\n      </if>\n      <if test=\"inputList != null\">\n        input_list = #{inputList,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"filterType != null\">\n        filter_type = #{filterType,jdbcType=INTEGER},\n      </if>\n      <if test=\"searchType != null\">\n        search_type = #{searchType,jdbcType=INTEGER},\n      </if>\n      <if test=\"relatedStatus != null\">\n        related_status = #{relatedStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"handAddStatus != null\">\n        hand_add_status = #{handAddStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"type != null\">\n        type = #{type,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsProductAttribute\">\n    update pms_product_attribute\n    set product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT},\n      name = #{name,jdbcType=VARCHAR},\n      select_type = #{selectType,jdbcType=INTEGER},\n      input_type = #{inputType,jdbcType=INTEGER},\n      input_list = #{inputList,jdbcType=VARCHAR},\n      sort = #{sort,jdbcType=INTEGER},\n      filter_type = #{filterType,jdbcType=INTEGER},\n      search_type = #{searchType,jdbcType=INTEGER},\n      related_status = #{relatedStatus,jdbcType=INTEGER},\n      hand_add_status = #{handAddStatus,jdbcType=INTEGER},\n      type = #{type,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsProductAttributeValueMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsProductAttributeValueMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsProductAttributeValue\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"product_attribute_id\" jdbcType=\"BIGINT\" property=\"productAttributeId\" />\n    <result column=\"value\" jdbcType=\"VARCHAR\" property=\"value\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_id, product_attribute_id, value\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsProductAttributeValueExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_product_attribute_value\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_product_attribute_value\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_product_attribute_value\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsProductAttributeValueExample\">\n    delete from pms_product_attribute_value\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsProductAttributeValue\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_attribute_value (product_id, product_attribute_id, value\n      )\n    values (#{productId,jdbcType=BIGINT}, #{productAttributeId,jdbcType=BIGINT}, #{value,jdbcType=VARCHAR}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsProductAttributeValue\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_attribute_value\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"productAttributeId != null\">\n        product_attribute_id,\n      </if>\n      <if test=\"value != null\">\n        value,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productAttributeId != null\">\n        #{productAttributeId,jdbcType=BIGINT},\n      </if>\n      <if test=\"value != null\">\n        #{value,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsProductAttributeValueExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_product_attribute_value\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_product_attribute_value\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productAttributeId != null\">\n        product_attribute_id = #{row.productAttributeId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.value != null\">\n        value = #{row.value,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_product_attribute_value\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      product_attribute_id = #{row.productAttributeId,jdbcType=BIGINT},\n      value = #{row.value,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsProductAttributeValue\">\n    update pms_product_attribute_value\n    <set>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productAttributeId != null\">\n        product_attribute_id = #{productAttributeId,jdbcType=BIGINT},\n      </if>\n      <if test=\"value != null\">\n        value = #{value,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsProductAttributeValue\">\n    update pms_product_attribute_value\n    set product_id = #{productId,jdbcType=BIGINT},\n      product_attribute_id = #{productAttributeId,jdbcType=BIGINT},\n      value = #{value,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsProductCategoryAttributeRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsProductCategoryAttributeRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsProductCategoryAttributeRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_category_id\" jdbcType=\"BIGINT\" property=\"productCategoryId\" />\n    <result column=\"product_attribute_id\" jdbcType=\"BIGINT\" property=\"productAttributeId\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_category_id, product_attribute_id\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsProductCategoryAttributeRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_product_category_attribute_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_product_category_attribute_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_product_category_attribute_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsProductCategoryAttributeRelationExample\">\n    delete from pms_product_category_attribute_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsProductCategoryAttributeRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_category_attribute_relation (product_category_id, product_attribute_id\n      )\n    values (#{productCategoryId,jdbcType=BIGINT}, #{productAttributeId,jdbcType=BIGINT}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsProductCategoryAttributeRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_category_attribute_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productCategoryId != null\">\n        product_category_id,\n      </if>\n      <if test=\"productAttributeId != null\">\n        product_attribute_id,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productCategoryId != null\">\n        #{productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productAttributeId != null\">\n        #{productAttributeId,jdbcType=BIGINT},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsProductCategoryAttributeRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_product_category_attribute_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_product_category_attribute_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productCategoryId != null\">\n        product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productAttributeId != null\">\n        product_attribute_id = #{row.productAttributeId,jdbcType=BIGINT},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_product_category_attribute_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      product_attribute_id = #{row.productAttributeId,jdbcType=BIGINT}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsProductCategoryAttributeRelation\">\n    update pms_product_category_attribute_relation\n    <set>\n      <if test=\"productCategoryId != null\">\n        product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productAttributeId != null\">\n        product_attribute_id = #{productAttributeId,jdbcType=BIGINT},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsProductCategoryAttributeRelation\">\n    update pms_product_category_attribute_relation\n    set product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      product_attribute_id = #{productAttributeId,jdbcType=BIGINT}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsProductCategoryMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsProductCategoryMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsProductCategory\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"parent_id\" jdbcType=\"BIGINT\" property=\"parentId\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"level\" jdbcType=\"INTEGER\" property=\"level\" />\n    <result column=\"product_count\" jdbcType=\"INTEGER\" property=\"productCount\" />\n    <result column=\"product_unit\" jdbcType=\"VARCHAR\" property=\"productUnit\" />\n    <result column=\"nav_status\" jdbcType=\"INTEGER\" property=\"navStatus\" />\n    <result column=\"show_status\" jdbcType=\"INTEGER\" property=\"showStatus\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n    <result column=\"icon\" jdbcType=\"VARCHAR\" property=\"icon\" />\n    <result column=\"keywords\" jdbcType=\"VARCHAR\" property=\"keywords\" />\n  </resultMap>\n  <resultMap extends=\"BaseResultMap\" id=\"ResultMapWithBLOBs\" type=\"com.macro.mall.model.PmsProductCategory\">\n    <result column=\"description\" jdbcType=\"LONGVARCHAR\" property=\"description\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, parent_id, name, level, product_count, product_unit, nav_status, show_status, \n    sort, icon, keywords\n  </sql>\n  <sql id=\"Blob_Column_List\">\n    description\n  </sql>\n  <select id=\"selectByExampleWithBLOBs\" parameterType=\"com.macro.mall.model.PmsProductCategoryExample\" resultMap=\"ResultMapWithBLOBs\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from pms_product_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsProductCategoryExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_product_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"ResultMapWithBLOBs\">\n    select \n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from pms_product_category\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_product_category\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsProductCategoryExample\">\n    delete from pms_product_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsProductCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_category (parent_id, name, level, \n      product_count, product_unit, nav_status, \n      show_status, sort, icon, \n      keywords, description)\n    values (#{parentId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{level,jdbcType=INTEGER}, \n      #{productCount,jdbcType=INTEGER}, #{productUnit,jdbcType=VARCHAR}, #{navStatus,jdbcType=INTEGER}, \n      #{showStatus,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER}, #{icon,jdbcType=VARCHAR}, \n      #{keywords,jdbcType=VARCHAR}, #{description,jdbcType=LONGVARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsProductCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_category\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"parentId != null\">\n        parent_id,\n      </if>\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"level != null\">\n        level,\n      </if>\n      <if test=\"productCount != null\">\n        product_count,\n      </if>\n      <if test=\"productUnit != null\">\n        product_unit,\n      </if>\n      <if test=\"navStatus != null\">\n        nav_status,\n      </if>\n      <if test=\"showStatus != null\">\n        show_status,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n      <if test=\"icon != null\">\n        icon,\n      </if>\n      <if test=\"keywords != null\">\n        keywords,\n      </if>\n      <if test=\"description != null\">\n        description,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"parentId != null\">\n        #{parentId,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"level != null\">\n        #{level,jdbcType=INTEGER},\n      </if>\n      <if test=\"productCount != null\">\n        #{productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"productUnit != null\">\n        #{productUnit,jdbcType=VARCHAR},\n      </if>\n      <if test=\"navStatus != null\">\n        #{navStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"icon != null\">\n        #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"keywords != null\">\n        #{keywords,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        #{description,jdbcType=LONGVARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsProductCategoryExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_product_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_product_category\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.parentId != null\">\n        parent_id = #{row.parentId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.level != null\">\n        level = #{row.level,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.productCount != null\">\n        product_count = #{row.productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.productUnit != null\">\n        product_unit = #{row.productUnit,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.navStatus != null\">\n        nav_status = #{row.navStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.showStatus != null\">\n        show_status = #{row.showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.icon != null\">\n        icon = #{row.icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.keywords != null\">\n        keywords = #{row.keywords,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.description != null\">\n        description = #{row.description,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExampleWithBLOBs\" parameterType=\"map\">\n    update pms_product_category\n    set id = #{row.id,jdbcType=BIGINT},\n      parent_id = #{row.parentId,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      level = #{row.level,jdbcType=INTEGER},\n      product_count = #{row.productCount,jdbcType=INTEGER},\n      product_unit = #{row.productUnit,jdbcType=VARCHAR},\n      nav_status = #{row.navStatus,jdbcType=INTEGER},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER},\n      icon = #{row.icon,jdbcType=VARCHAR},\n      keywords = #{row.keywords,jdbcType=VARCHAR},\n      description = #{row.description,jdbcType=LONGVARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_product_category\n    set id = #{row.id,jdbcType=BIGINT},\n      parent_id = #{row.parentId,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      level = #{row.level,jdbcType=INTEGER},\n      product_count = #{row.productCount,jdbcType=INTEGER},\n      product_unit = #{row.productUnit,jdbcType=VARCHAR},\n      nav_status = #{row.navStatus,jdbcType=INTEGER},\n      show_status = #{row.showStatus,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER},\n      icon = #{row.icon,jdbcType=VARCHAR},\n      keywords = #{row.keywords,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsProductCategory\">\n    update pms_product_category\n    <set>\n      <if test=\"parentId != null\">\n        parent_id = #{parentId,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"level != null\">\n        level = #{level,jdbcType=INTEGER},\n      </if>\n      <if test=\"productCount != null\">\n        product_count = #{productCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"productUnit != null\">\n        product_unit = #{productUnit,jdbcType=VARCHAR},\n      </if>\n      <if test=\"navStatus != null\">\n        nav_status = #{navStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"showStatus != null\">\n        show_status = #{showStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"icon != null\">\n        icon = #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"keywords != null\">\n        keywords = #{keywords,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        description = #{description,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKeyWithBLOBs\" parameterType=\"com.macro.mall.model.PmsProductCategory\">\n    update pms_product_category\n    set parent_id = #{parentId,jdbcType=BIGINT},\n      name = #{name,jdbcType=VARCHAR},\n      level = #{level,jdbcType=INTEGER},\n      product_count = #{productCount,jdbcType=INTEGER},\n      product_unit = #{productUnit,jdbcType=VARCHAR},\n      nav_status = #{navStatus,jdbcType=INTEGER},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER},\n      icon = #{icon,jdbcType=VARCHAR},\n      keywords = #{keywords,jdbcType=VARCHAR},\n      description = #{description,jdbcType=LONGVARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsProductCategory\">\n    update pms_product_category\n    set parent_id = #{parentId,jdbcType=BIGINT},\n      name = #{name,jdbcType=VARCHAR},\n      level = #{level,jdbcType=INTEGER},\n      product_count = #{productCount,jdbcType=INTEGER},\n      product_unit = #{productUnit,jdbcType=VARCHAR},\n      nav_status = #{navStatus,jdbcType=INTEGER},\n      show_status = #{showStatus,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER},\n      icon = #{icon,jdbcType=VARCHAR},\n      keywords = #{keywords,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsProductFullReductionMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsProductFullReductionMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsProductFullReduction\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"full_price\" jdbcType=\"DECIMAL\" property=\"fullPrice\" />\n    <result column=\"reduce_price\" jdbcType=\"DECIMAL\" property=\"reducePrice\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_id, full_price, reduce_price\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsProductFullReductionExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_product_full_reduction\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_product_full_reduction\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_product_full_reduction\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsProductFullReductionExample\">\n    delete from pms_product_full_reduction\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsProductFullReduction\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_full_reduction (product_id, full_price, reduce_price\n      )\n    values (#{productId,jdbcType=BIGINT}, #{fullPrice,jdbcType=DECIMAL}, #{reducePrice,jdbcType=DECIMAL}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsProductFullReduction\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_full_reduction\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"fullPrice != null\">\n        full_price,\n      </if>\n      <if test=\"reducePrice != null\">\n        reduce_price,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"fullPrice != null\">\n        #{fullPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"reducePrice != null\">\n        #{reducePrice,jdbcType=DECIMAL},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsProductFullReductionExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_product_full_reduction\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_product_full_reduction\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.fullPrice != null\">\n        full_price = #{row.fullPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.reducePrice != null\">\n        reduce_price = #{row.reducePrice,jdbcType=DECIMAL},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_product_full_reduction\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      full_price = #{row.fullPrice,jdbcType=DECIMAL},\n      reduce_price = #{row.reducePrice,jdbcType=DECIMAL}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsProductFullReduction\">\n    update pms_product_full_reduction\n    <set>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"fullPrice != null\">\n        full_price = #{fullPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"reducePrice != null\">\n        reduce_price = #{reducePrice,jdbcType=DECIMAL},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsProductFullReduction\">\n    update pms_product_full_reduction\n    set product_id = #{productId,jdbcType=BIGINT},\n      full_price = #{fullPrice,jdbcType=DECIMAL},\n      reduce_price = #{reducePrice,jdbcType=DECIMAL}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsProductLadderMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsProductLadderMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsProductLadder\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"count\" jdbcType=\"INTEGER\" property=\"count\" />\n    <result column=\"discount\" jdbcType=\"DECIMAL\" property=\"discount\" />\n    <result column=\"price\" jdbcType=\"DECIMAL\" property=\"price\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_id, count, discount, price\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsProductLadderExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_product_ladder\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_product_ladder\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_product_ladder\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsProductLadderExample\">\n    delete from pms_product_ladder\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsProductLadder\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_ladder (product_id, count, discount, \n      price)\n    values (#{productId,jdbcType=BIGINT}, #{count,jdbcType=INTEGER}, #{discount,jdbcType=DECIMAL}, \n      #{price,jdbcType=DECIMAL})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsProductLadder\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_ladder\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"count != null\">\n        count,\n      </if>\n      <if test=\"discount != null\">\n        discount,\n      </if>\n      <if test=\"price != null\">\n        price,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"count != null\">\n        #{count,jdbcType=INTEGER},\n      </if>\n      <if test=\"discount != null\">\n        #{discount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"price != null\">\n        #{price,jdbcType=DECIMAL},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsProductLadderExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_product_ladder\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_product_ladder\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.count != null\">\n        count = #{row.count,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.discount != null\">\n        discount = #{row.discount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.price != null\">\n        price = #{row.price,jdbcType=DECIMAL},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_product_ladder\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      count = #{row.count,jdbcType=INTEGER},\n      discount = #{row.discount,jdbcType=DECIMAL},\n      price = #{row.price,jdbcType=DECIMAL}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsProductLadder\">\n    update pms_product_ladder\n    <set>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"count != null\">\n        count = #{count,jdbcType=INTEGER},\n      </if>\n      <if test=\"discount != null\">\n        discount = #{discount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"price != null\">\n        price = #{price,jdbcType=DECIMAL},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsProductLadder\">\n    update pms_product_ladder\n    set product_id = #{productId,jdbcType=BIGINT},\n      count = #{count,jdbcType=INTEGER},\n      discount = #{discount,jdbcType=DECIMAL},\n      price = #{price,jdbcType=DECIMAL}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsProductMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsProductMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsProduct\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"brand_id\" jdbcType=\"BIGINT\" property=\"brandId\" />\n    <result column=\"product_category_id\" jdbcType=\"BIGINT\" property=\"productCategoryId\" />\n    <result column=\"feight_template_id\" jdbcType=\"BIGINT\" property=\"feightTemplateId\" />\n    <result column=\"product_attribute_category_id\" jdbcType=\"BIGINT\" property=\"productAttributeCategoryId\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"pic\" jdbcType=\"VARCHAR\" property=\"pic\" />\n    <result column=\"product_sn\" jdbcType=\"VARCHAR\" property=\"productSn\" />\n    <result column=\"delete_status\" jdbcType=\"INTEGER\" property=\"deleteStatus\" />\n    <result column=\"publish_status\" jdbcType=\"INTEGER\" property=\"publishStatus\" />\n    <result column=\"new_status\" jdbcType=\"INTEGER\" property=\"newStatus\" />\n    <result column=\"recommand_status\" jdbcType=\"INTEGER\" property=\"recommandStatus\" />\n    <result column=\"verify_status\" jdbcType=\"INTEGER\" property=\"verifyStatus\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n    <result column=\"sale\" jdbcType=\"INTEGER\" property=\"sale\" />\n    <result column=\"price\" jdbcType=\"DECIMAL\" property=\"price\" />\n    <result column=\"promotion_price\" jdbcType=\"DECIMAL\" property=\"promotionPrice\" />\n    <result column=\"gift_growth\" jdbcType=\"INTEGER\" property=\"giftGrowth\" />\n    <result column=\"gift_point\" jdbcType=\"INTEGER\" property=\"giftPoint\" />\n    <result column=\"use_point_limit\" jdbcType=\"INTEGER\" property=\"usePointLimit\" />\n    <result column=\"sub_title\" jdbcType=\"VARCHAR\" property=\"subTitle\" />\n    <result column=\"original_price\" jdbcType=\"DECIMAL\" property=\"originalPrice\" />\n    <result column=\"stock\" jdbcType=\"INTEGER\" property=\"stock\" />\n    <result column=\"low_stock\" jdbcType=\"INTEGER\" property=\"lowStock\" />\n    <result column=\"unit\" jdbcType=\"VARCHAR\" property=\"unit\" />\n    <result column=\"weight\" jdbcType=\"DECIMAL\" property=\"weight\" />\n    <result column=\"preview_status\" jdbcType=\"INTEGER\" property=\"previewStatus\" />\n    <result column=\"service_ids\" jdbcType=\"VARCHAR\" property=\"serviceIds\" />\n    <result column=\"keywords\" jdbcType=\"VARCHAR\" property=\"keywords\" />\n    <result column=\"note\" jdbcType=\"VARCHAR\" property=\"note\" />\n    <result column=\"album_pics\" jdbcType=\"VARCHAR\" property=\"albumPics\" />\n    <result column=\"detail_title\" jdbcType=\"VARCHAR\" property=\"detailTitle\" />\n    <result column=\"promotion_start_time\" jdbcType=\"TIMESTAMP\" property=\"promotionStartTime\" />\n    <result column=\"promotion_end_time\" jdbcType=\"TIMESTAMP\" property=\"promotionEndTime\" />\n    <result column=\"promotion_per_limit\" jdbcType=\"INTEGER\" property=\"promotionPerLimit\" />\n    <result column=\"promotion_type\" jdbcType=\"INTEGER\" property=\"promotionType\" />\n    <result column=\"brand_name\" jdbcType=\"VARCHAR\" property=\"brandName\" />\n    <result column=\"product_category_name\" jdbcType=\"VARCHAR\" property=\"productCategoryName\" />\n  </resultMap>\n  <resultMap extends=\"BaseResultMap\" id=\"ResultMapWithBLOBs\" type=\"com.macro.mall.model.PmsProduct\">\n    <result column=\"description\" jdbcType=\"LONGVARCHAR\" property=\"description\" />\n    <result column=\"detail_desc\" jdbcType=\"LONGVARCHAR\" property=\"detailDesc\" />\n    <result column=\"detail_html\" jdbcType=\"LONGVARCHAR\" property=\"detailHtml\" />\n    <result column=\"detail_mobile_html\" jdbcType=\"LONGVARCHAR\" property=\"detailMobileHtml\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, brand_id, product_category_id, feight_template_id, product_attribute_category_id, \n    name, pic, product_sn, delete_status, publish_status, new_status, recommand_status, \n    verify_status, sort, sale, price, promotion_price, gift_growth, gift_point, use_point_limit, \n    sub_title, original_price, stock, low_stock, unit, weight, preview_status, service_ids, \n    keywords, note, album_pics, detail_title, promotion_start_time, promotion_end_time, \n    promotion_per_limit, promotion_type, brand_name, product_category_name\n  </sql>\n  <sql id=\"Blob_Column_List\">\n    description, detail_desc, detail_html, detail_mobile_html\n  </sql>\n  <select id=\"selectByExampleWithBLOBs\" parameterType=\"com.macro.mall.model.PmsProductExample\" resultMap=\"ResultMapWithBLOBs\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from pms_product\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsProductExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_product\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"ResultMapWithBLOBs\">\n    select \n    <include refid=\"Base_Column_List\" />\n    ,\n    <include refid=\"Blob_Column_List\" />\n    from pms_product\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_product\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsProductExample\">\n    delete from pms_product\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsProduct\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product (brand_id, product_category_id, feight_template_id, \n      product_attribute_category_id, name, pic, \n      product_sn, delete_status, publish_status, \n      new_status, recommand_status, verify_status, \n      sort, sale, price, \n      promotion_price, gift_growth, gift_point, \n      use_point_limit, sub_title, original_price, \n      stock, low_stock, unit, \n      weight, preview_status, service_ids, \n      keywords, note, album_pics, \n      detail_title, promotion_start_time, promotion_end_time, \n      promotion_per_limit, promotion_type, brand_name, \n      product_category_name, description, detail_desc, \n      detail_html, detail_mobile_html)\n    values (#{brandId,jdbcType=BIGINT}, #{productCategoryId,jdbcType=BIGINT}, #{feightTemplateId,jdbcType=BIGINT}, \n      #{productAttributeCategoryId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{pic,jdbcType=VARCHAR}, \n      #{productSn,jdbcType=VARCHAR}, #{deleteStatus,jdbcType=INTEGER}, #{publishStatus,jdbcType=INTEGER}, \n      #{newStatus,jdbcType=INTEGER}, #{recommandStatus,jdbcType=INTEGER}, #{verifyStatus,jdbcType=INTEGER}, \n      #{sort,jdbcType=INTEGER}, #{sale,jdbcType=INTEGER}, #{price,jdbcType=DECIMAL}, \n      #{promotionPrice,jdbcType=DECIMAL}, #{giftGrowth,jdbcType=INTEGER}, #{giftPoint,jdbcType=INTEGER}, \n      #{usePointLimit,jdbcType=INTEGER}, #{subTitle,jdbcType=VARCHAR}, #{originalPrice,jdbcType=DECIMAL}, \n      #{stock,jdbcType=INTEGER}, #{lowStock,jdbcType=INTEGER}, #{unit,jdbcType=VARCHAR}, \n      #{weight,jdbcType=DECIMAL}, #{previewStatus,jdbcType=INTEGER}, #{serviceIds,jdbcType=VARCHAR}, \n      #{keywords,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, #{albumPics,jdbcType=VARCHAR}, \n      #{detailTitle,jdbcType=VARCHAR}, #{promotionStartTime,jdbcType=TIMESTAMP}, #{promotionEndTime,jdbcType=TIMESTAMP}, \n      #{promotionPerLimit,jdbcType=INTEGER}, #{promotionType,jdbcType=INTEGER}, #{brandName,jdbcType=VARCHAR}, \n      #{productCategoryName,jdbcType=VARCHAR}, #{description,jdbcType=LONGVARCHAR}, #{detailDesc,jdbcType=LONGVARCHAR}, \n      #{detailHtml,jdbcType=LONGVARCHAR}, #{detailMobileHtml,jdbcType=LONGVARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsProduct\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"brandId != null\">\n        brand_id,\n      </if>\n      <if test=\"productCategoryId != null\">\n        product_category_id,\n      </if>\n      <if test=\"feightTemplateId != null\">\n        feight_template_id,\n      </if>\n      <if test=\"productAttributeCategoryId != null\">\n        product_attribute_category_id,\n      </if>\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"pic != null\">\n        pic,\n      </if>\n      <if test=\"productSn != null\">\n        product_sn,\n      </if>\n      <if test=\"deleteStatus != null\">\n        delete_status,\n      </if>\n      <if test=\"publishStatus != null\">\n        publish_status,\n      </if>\n      <if test=\"newStatus != null\">\n        new_status,\n      </if>\n      <if test=\"recommandStatus != null\">\n        recommand_status,\n      </if>\n      <if test=\"verifyStatus != null\">\n        verify_status,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n      <if test=\"sale != null\">\n        sale,\n      </if>\n      <if test=\"price != null\">\n        price,\n      </if>\n      <if test=\"promotionPrice != null\">\n        promotion_price,\n      </if>\n      <if test=\"giftGrowth != null\">\n        gift_growth,\n      </if>\n      <if test=\"giftPoint != null\">\n        gift_point,\n      </if>\n      <if test=\"usePointLimit != null\">\n        use_point_limit,\n      </if>\n      <if test=\"subTitle != null\">\n        sub_title,\n      </if>\n      <if test=\"originalPrice != null\">\n        original_price,\n      </if>\n      <if test=\"stock != null\">\n        stock,\n      </if>\n      <if test=\"lowStock != null\">\n        low_stock,\n      </if>\n      <if test=\"unit != null\">\n        unit,\n      </if>\n      <if test=\"weight != null\">\n        weight,\n      </if>\n      <if test=\"previewStatus != null\">\n        preview_status,\n      </if>\n      <if test=\"serviceIds != null\">\n        service_ids,\n      </if>\n      <if test=\"keywords != null\">\n        keywords,\n      </if>\n      <if test=\"note != null\">\n        note,\n      </if>\n      <if test=\"albumPics != null\">\n        album_pics,\n      </if>\n      <if test=\"detailTitle != null\">\n        detail_title,\n      </if>\n      <if test=\"promotionStartTime != null\">\n        promotion_start_time,\n      </if>\n      <if test=\"promotionEndTime != null\">\n        promotion_end_time,\n      </if>\n      <if test=\"promotionPerLimit != null\">\n        promotion_per_limit,\n      </if>\n      <if test=\"promotionType != null\">\n        promotion_type,\n      </if>\n      <if test=\"brandName != null\">\n        brand_name,\n      </if>\n      <if test=\"productCategoryName != null\">\n        product_category_name,\n      </if>\n      <if test=\"description != null\">\n        description,\n      </if>\n      <if test=\"detailDesc != null\">\n        detail_desc,\n      </if>\n      <if test=\"detailHtml != null\">\n        detail_html,\n      </if>\n      <if test=\"detailMobileHtml != null\">\n        detail_mobile_html,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"brandId != null\">\n        #{brandId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productCategoryId != null\">\n        #{productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"feightTemplateId != null\">\n        #{feightTemplateId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productAttributeCategoryId != null\">\n        #{productAttributeCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"pic != null\">\n        #{pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSn != null\">\n        #{productSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"deleteStatus != null\">\n        #{deleteStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"publishStatus != null\">\n        #{publishStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"newStatus != null\">\n        #{newStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"recommandStatus != null\">\n        #{recommandStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"verifyStatus != null\">\n        #{verifyStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"sale != null\">\n        #{sale,jdbcType=INTEGER},\n      </if>\n      <if test=\"price != null\">\n        #{price,jdbcType=DECIMAL},\n      </if>\n      <if test=\"promotionPrice != null\">\n        #{promotionPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"giftGrowth != null\">\n        #{giftGrowth,jdbcType=INTEGER},\n      </if>\n      <if test=\"giftPoint != null\">\n        #{giftPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"usePointLimit != null\">\n        #{usePointLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"subTitle != null\">\n        #{subTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"originalPrice != null\">\n        #{originalPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"stock != null\">\n        #{stock,jdbcType=INTEGER},\n      </if>\n      <if test=\"lowStock != null\">\n        #{lowStock,jdbcType=INTEGER},\n      </if>\n      <if test=\"unit != null\">\n        #{unit,jdbcType=VARCHAR},\n      </if>\n      <if test=\"weight != null\">\n        #{weight,jdbcType=DECIMAL},\n      </if>\n      <if test=\"previewStatus != null\">\n        #{previewStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"serviceIds != null\">\n        #{serviceIds,jdbcType=VARCHAR},\n      </if>\n      <if test=\"keywords != null\">\n        #{keywords,jdbcType=VARCHAR},\n      </if>\n      <if test=\"note != null\">\n        #{note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"albumPics != null\">\n        #{albumPics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"detailTitle != null\">\n        #{detailTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"promotionStartTime != null\">\n        #{promotionStartTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"promotionEndTime != null\">\n        #{promotionEndTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"promotionPerLimit != null\">\n        #{promotionPerLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"promotionType != null\">\n        #{promotionType,jdbcType=INTEGER},\n      </if>\n      <if test=\"brandName != null\">\n        #{brandName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productCategoryName != null\">\n        #{productCategoryName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        #{description,jdbcType=LONGVARCHAR},\n      </if>\n      <if test=\"detailDesc != null\">\n        #{detailDesc,jdbcType=LONGVARCHAR},\n      </if>\n      <if test=\"detailHtml != null\">\n        #{detailHtml,jdbcType=LONGVARCHAR},\n      </if>\n      <if test=\"detailMobileHtml != null\">\n        #{detailMobileHtml,jdbcType=LONGVARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsProductExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_product\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_product\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.brandId != null\">\n        brand_id = #{row.brandId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productCategoryId != null\">\n        product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.feightTemplateId != null\">\n        feight_template_id = #{row.feightTemplateId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productAttributeCategoryId != null\">\n        product_attribute_category_id = #{row.productAttributeCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.pic != null\">\n        pic = #{row.pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productSn != null\">\n        product_sn = #{row.productSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.deleteStatus != null\">\n        delete_status = #{row.deleteStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.publishStatus != null\">\n        publish_status = #{row.publishStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.newStatus != null\">\n        new_status = #{row.newStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.recommandStatus != null\">\n        recommand_status = #{row.recommandStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.verifyStatus != null\">\n        verify_status = #{row.verifyStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sale != null\">\n        sale = #{row.sale,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.price != null\">\n        price = #{row.price,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.promotionPrice != null\">\n        promotion_price = #{row.promotionPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.giftGrowth != null\">\n        gift_growth = #{row.giftGrowth,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.giftPoint != null\">\n        gift_point = #{row.giftPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.usePointLimit != null\">\n        use_point_limit = #{row.usePointLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.subTitle != null\">\n        sub_title = #{row.subTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.originalPrice != null\">\n        original_price = #{row.originalPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.stock != null\">\n        stock = #{row.stock,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.lowStock != null\">\n        low_stock = #{row.lowStock,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.unit != null\">\n        unit = #{row.unit,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.weight != null\">\n        weight = #{row.weight,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.previewStatus != null\">\n        preview_status = #{row.previewStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.serviceIds != null\">\n        service_ids = #{row.serviceIds,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.keywords != null\">\n        keywords = #{row.keywords,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.note != null\">\n        note = #{row.note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.albumPics != null\">\n        album_pics = #{row.albumPics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.detailTitle != null\">\n        detail_title = #{row.detailTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.promotionStartTime != null\">\n        promotion_start_time = #{row.promotionStartTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.promotionEndTime != null\">\n        promotion_end_time = #{row.promotionEndTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.promotionPerLimit != null\">\n        promotion_per_limit = #{row.promotionPerLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.promotionType != null\">\n        promotion_type = #{row.promotionType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.brandName != null\">\n        brand_name = #{row.brandName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productCategoryName != null\">\n        product_category_name = #{row.productCategoryName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.description != null\">\n        description = #{row.description,jdbcType=LONGVARCHAR},\n      </if>\n      <if test=\"row.detailDesc != null\">\n        detail_desc = #{row.detailDesc,jdbcType=LONGVARCHAR},\n      </if>\n      <if test=\"row.detailHtml != null\">\n        detail_html = #{row.detailHtml,jdbcType=LONGVARCHAR},\n      </if>\n      <if test=\"row.detailMobileHtml != null\">\n        detail_mobile_html = #{row.detailMobileHtml,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExampleWithBLOBs\" parameterType=\"map\">\n    update pms_product\n    set id = #{row.id,jdbcType=BIGINT},\n      brand_id = #{row.brandId,jdbcType=BIGINT},\n      product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      feight_template_id = #{row.feightTemplateId,jdbcType=BIGINT},\n      product_attribute_category_id = #{row.productAttributeCategoryId,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      pic = #{row.pic,jdbcType=VARCHAR},\n      product_sn = #{row.productSn,jdbcType=VARCHAR},\n      delete_status = #{row.deleteStatus,jdbcType=INTEGER},\n      publish_status = #{row.publishStatus,jdbcType=INTEGER},\n      new_status = #{row.newStatus,jdbcType=INTEGER},\n      recommand_status = #{row.recommandStatus,jdbcType=INTEGER},\n      verify_status = #{row.verifyStatus,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER},\n      sale = #{row.sale,jdbcType=INTEGER},\n      price = #{row.price,jdbcType=DECIMAL},\n      promotion_price = #{row.promotionPrice,jdbcType=DECIMAL},\n      gift_growth = #{row.giftGrowth,jdbcType=INTEGER},\n      gift_point = #{row.giftPoint,jdbcType=INTEGER},\n      use_point_limit = #{row.usePointLimit,jdbcType=INTEGER},\n      sub_title = #{row.subTitle,jdbcType=VARCHAR},\n      original_price = #{row.originalPrice,jdbcType=DECIMAL},\n      stock = #{row.stock,jdbcType=INTEGER},\n      low_stock = #{row.lowStock,jdbcType=INTEGER},\n      unit = #{row.unit,jdbcType=VARCHAR},\n      weight = #{row.weight,jdbcType=DECIMAL},\n      preview_status = #{row.previewStatus,jdbcType=INTEGER},\n      service_ids = #{row.serviceIds,jdbcType=VARCHAR},\n      keywords = #{row.keywords,jdbcType=VARCHAR},\n      note = #{row.note,jdbcType=VARCHAR},\n      album_pics = #{row.albumPics,jdbcType=VARCHAR},\n      detail_title = #{row.detailTitle,jdbcType=VARCHAR},\n      promotion_start_time = #{row.promotionStartTime,jdbcType=TIMESTAMP},\n      promotion_end_time = #{row.promotionEndTime,jdbcType=TIMESTAMP},\n      promotion_per_limit = #{row.promotionPerLimit,jdbcType=INTEGER},\n      promotion_type = #{row.promotionType,jdbcType=INTEGER},\n      brand_name = #{row.brandName,jdbcType=VARCHAR},\n      product_category_name = #{row.productCategoryName,jdbcType=VARCHAR},\n      description = #{row.description,jdbcType=LONGVARCHAR},\n      detail_desc = #{row.detailDesc,jdbcType=LONGVARCHAR},\n      detail_html = #{row.detailHtml,jdbcType=LONGVARCHAR},\n      detail_mobile_html = #{row.detailMobileHtml,jdbcType=LONGVARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_product\n    set id = #{row.id,jdbcType=BIGINT},\n      brand_id = #{row.brandId,jdbcType=BIGINT},\n      product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      feight_template_id = #{row.feightTemplateId,jdbcType=BIGINT},\n      product_attribute_category_id = #{row.productAttributeCategoryId,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      pic = #{row.pic,jdbcType=VARCHAR},\n      product_sn = #{row.productSn,jdbcType=VARCHAR},\n      delete_status = #{row.deleteStatus,jdbcType=INTEGER},\n      publish_status = #{row.publishStatus,jdbcType=INTEGER},\n      new_status = #{row.newStatus,jdbcType=INTEGER},\n      recommand_status = #{row.recommandStatus,jdbcType=INTEGER},\n      verify_status = #{row.verifyStatus,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER},\n      sale = #{row.sale,jdbcType=INTEGER},\n      price = #{row.price,jdbcType=DECIMAL},\n      promotion_price = #{row.promotionPrice,jdbcType=DECIMAL},\n      gift_growth = #{row.giftGrowth,jdbcType=INTEGER},\n      gift_point = #{row.giftPoint,jdbcType=INTEGER},\n      use_point_limit = #{row.usePointLimit,jdbcType=INTEGER},\n      sub_title = #{row.subTitle,jdbcType=VARCHAR},\n      original_price = #{row.originalPrice,jdbcType=DECIMAL},\n      stock = #{row.stock,jdbcType=INTEGER},\n      low_stock = #{row.lowStock,jdbcType=INTEGER},\n      unit = #{row.unit,jdbcType=VARCHAR},\n      weight = #{row.weight,jdbcType=DECIMAL},\n      preview_status = #{row.previewStatus,jdbcType=INTEGER},\n      service_ids = #{row.serviceIds,jdbcType=VARCHAR},\n      keywords = #{row.keywords,jdbcType=VARCHAR},\n      note = #{row.note,jdbcType=VARCHAR},\n      album_pics = #{row.albumPics,jdbcType=VARCHAR},\n      detail_title = #{row.detailTitle,jdbcType=VARCHAR},\n      promotion_start_time = #{row.promotionStartTime,jdbcType=TIMESTAMP},\n      promotion_end_time = #{row.promotionEndTime,jdbcType=TIMESTAMP},\n      promotion_per_limit = #{row.promotionPerLimit,jdbcType=INTEGER},\n      promotion_type = #{row.promotionType,jdbcType=INTEGER},\n      brand_name = #{row.brandName,jdbcType=VARCHAR},\n      product_category_name = #{row.productCategoryName,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsProduct\">\n    update pms_product\n    <set>\n      <if test=\"brandId != null\">\n        brand_id = #{brandId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productCategoryId != null\">\n        product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"feightTemplateId != null\">\n        feight_template_id = #{feightTemplateId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productAttributeCategoryId != null\">\n        product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"pic != null\">\n        pic = #{pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSn != null\">\n        product_sn = #{productSn,jdbcType=VARCHAR},\n      </if>\n      <if test=\"deleteStatus != null\">\n        delete_status = #{deleteStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"publishStatus != null\">\n        publish_status = #{publishStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"newStatus != null\">\n        new_status = #{newStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"recommandStatus != null\">\n        recommand_status = #{recommandStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"verifyStatus != null\">\n        verify_status = #{verifyStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"sale != null\">\n        sale = #{sale,jdbcType=INTEGER},\n      </if>\n      <if test=\"price != null\">\n        price = #{price,jdbcType=DECIMAL},\n      </if>\n      <if test=\"promotionPrice != null\">\n        promotion_price = #{promotionPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"giftGrowth != null\">\n        gift_growth = #{giftGrowth,jdbcType=INTEGER},\n      </if>\n      <if test=\"giftPoint != null\">\n        gift_point = #{giftPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"usePointLimit != null\">\n        use_point_limit = #{usePointLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"subTitle != null\">\n        sub_title = #{subTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"originalPrice != null\">\n        original_price = #{originalPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"stock != null\">\n        stock = #{stock,jdbcType=INTEGER},\n      </if>\n      <if test=\"lowStock != null\">\n        low_stock = #{lowStock,jdbcType=INTEGER},\n      </if>\n      <if test=\"unit != null\">\n        unit = #{unit,jdbcType=VARCHAR},\n      </if>\n      <if test=\"weight != null\">\n        weight = #{weight,jdbcType=DECIMAL},\n      </if>\n      <if test=\"previewStatus != null\">\n        preview_status = #{previewStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"serviceIds != null\">\n        service_ids = #{serviceIds,jdbcType=VARCHAR},\n      </if>\n      <if test=\"keywords != null\">\n        keywords = #{keywords,jdbcType=VARCHAR},\n      </if>\n      <if test=\"note != null\">\n        note = #{note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"albumPics != null\">\n        album_pics = #{albumPics,jdbcType=VARCHAR},\n      </if>\n      <if test=\"detailTitle != null\">\n        detail_title = #{detailTitle,jdbcType=VARCHAR},\n      </if>\n      <if test=\"promotionStartTime != null\">\n        promotion_start_time = #{promotionStartTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"promotionEndTime != null\">\n        promotion_end_time = #{promotionEndTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"promotionPerLimit != null\">\n        promotion_per_limit = #{promotionPerLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"promotionType != null\">\n        promotion_type = #{promotionType,jdbcType=INTEGER},\n      </if>\n      <if test=\"brandName != null\">\n        brand_name = #{brandName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productCategoryName != null\">\n        product_category_name = #{productCategoryName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        description = #{description,jdbcType=LONGVARCHAR},\n      </if>\n      <if test=\"detailDesc != null\">\n        detail_desc = #{detailDesc,jdbcType=LONGVARCHAR},\n      </if>\n      <if test=\"detailHtml != null\">\n        detail_html = #{detailHtml,jdbcType=LONGVARCHAR},\n      </if>\n      <if test=\"detailMobileHtml != null\">\n        detail_mobile_html = #{detailMobileHtml,jdbcType=LONGVARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKeyWithBLOBs\" parameterType=\"com.macro.mall.model.PmsProduct\">\n    update pms_product\n    set brand_id = #{brandId,jdbcType=BIGINT},\n      product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      feight_template_id = #{feightTemplateId,jdbcType=BIGINT},\n      product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT},\n      name = #{name,jdbcType=VARCHAR},\n      pic = #{pic,jdbcType=VARCHAR},\n      product_sn = #{productSn,jdbcType=VARCHAR},\n      delete_status = #{deleteStatus,jdbcType=INTEGER},\n      publish_status = #{publishStatus,jdbcType=INTEGER},\n      new_status = #{newStatus,jdbcType=INTEGER},\n      recommand_status = #{recommandStatus,jdbcType=INTEGER},\n      verify_status = #{verifyStatus,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER},\n      sale = #{sale,jdbcType=INTEGER},\n      price = #{price,jdbcType=DECIMAL},\n      promotion_price = #{promotionPrice,jdbcType=DECIMAL},\n      gift_growth = #{giftGrowth,jdbcType=INTEGER},\n      gift_point = #{giftPoint,jdbcType=INTEGER},\n      use_point_limit = #{usePointLimit,jdbcType=INTEGER},\n      sub_title = #{subTitle,jdbcType=VARCHAR},\n      original_price = #{originalPrice,jdbcType=DECIMAL},\n      stock = #{stock,jdbcType=INTEGER},\n      low_stock = #{lowStock,jdbcType=INTEGER},\n      unit = #{unit,jdbcType=VARCHAR},\n      weight = #{weight,jdbcType=DECIMAL},\n      preview_status = #{previewStatus,jdbcType=INTEGER},\n      service_ids = #{serviceIds,jdbcType=VARCHAR},\n      keywords = #{keywords,jdbcType=VARCHAR},\n      note = #{note,jdbcType=VARCHAR},\n      album_pics = #{albumPics,jdbcType=VARCHAR},\n      detail_title = #{detailTitle,jdbcType=VARCHAR},\n      promotion_start_time = #{promotionStartTime,jdbcType=TIMESTAMP},\n      promotion_end_time = #{promotionEndTime,jdbcType=TIMESTAMP},\n      promotion_per_limit = #{promotionPerLimit,jdbcType=INTEGER},\n      promotion_type = #{promotionType,jdbcType=INTEGER},\n      brand_name = #{brandName,jdbcType=VARCHAR},\n      product_category_name = #{productCategoryName,jdbcType=VARCHAR},\n      description = #{description,jdbcType=LONGVARCHAR},\n      detail_desc = #{detailDesc,jdbcType=LONGVARCHAR},\n      detail_html = #{detailHtml,jdbcType=LONGVARCHAR},\n      detail_mobile_html = #{detailMobileHtml,jdbcType=LONGVARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsProduct\">\n    update pms_product\n    set brand_id = #{brandId,jdbcType=BIGINT},\n      product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      feight_template_id = #{feightTemplateId,jdbcType=BIGINT},\n      product_attribute_category_id = #{productAttributeCategoryId,jdbcType=BIGINT},\n      name = #{name,jdbcType=VARCHAR},\n      pic = #{pic,jdbcType=VARCHAR},\n      product_sn = #{productSn,jdbcType=VARCHAR},\n      delete_status = #{deleteStatus,jdbcType=INTEGER},\n      publish_status = #{publishStatus,jdbcType=INTEGER},\n      new_status = #{newStatus,jdbcType=INTEGER},\n      recommand_status = #{recommandStatus,jdbcType=INTEGER},\n      verify_status = #{verifyStatus,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER},\n      sale = #{sale,jdbcType=INTEGER},\n      price = #{price,jdbcType=DECIMAL},\n      promotion_price = #{promotionPrice,jdbcType=DECIMAL},\n      gift_growth = #{giftGrowth,jdbcType=INTEGER},\n      gift_point = #{giftPoint,jdbcType=INTEGER},\n      use_point_limit = #{usePointLimit,jdbcType=INTEGER},\n      sub_title = #{subTitle,jdbcType=VARCHAR},\n      original_price = #{originalPrice,jdbcType=DECIMAL},\n      stock = #{stock,jdbcType=INTEGER},\n      low_stock = #{lowStock,jdbcType=INTEGER},\n      unit = #{unit,jdbcType=VARCHAR},\n      weight = #{weight,jdbcType=DECIMAL},\n      preview_status = #{previewStatus,jdbcType=INTEGER},\n      service_ids = #{serviceIds,jdbcType=VARCHAR},\n      keywords = #{keywords,jdbcType=VARCHAR},\n      note = #{note,jdbcType=VARCHAR},\n      album_pics = #{albumPics,jdbcType=VARCHAR},\n      detail_title = #{detailTitle,jdbcType=VARCHAR},\n      promotion_start_time = #{promotionStartTime,jdbcType=TIMESTAMP},\n      promotion_end_time = #{promotionEndTime,jdbcType=TIMESTAMP},\n      promotion_per_limit = #{promotionPerLimit,jdbcType=INTEGER},\n      promotion_type = #{promotionType,jdbcType=INTEGER},\n      brand_name = #{brandName,jdbcType=VARCHAR},\n      product_category_name = #{productCategoryName,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsProductOperateLogMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsProductOperateLogMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsProductOperateLog\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"price_old\" jdbcType=\"DECIMAL\" property=\"priceOld\" />\n    <result column=\"price_new\" jdbcType=\"DECIMAL\" property=\"priceNew\" />\n    <result column=\"sale_price_old\" jdbcType=\"DECIMAL\" property=\"salePriceOld\" />\n    <result column=\"sale_price_new\" jdbcType=\"DECIMAL\" property=\"salePriceNew\" />\n    <result column=\"gift_point_old\" jdbcType=\"INTEGER\" property=\"giftPointOld\" />\n    <result column=\"gift_point_new\" jdbcType=\"INTEGER\" property=\"giftPointNew\" />\n    <result column=\"use_point_limit_old\" jdbcType=\"INTEGER\" property=\"usePointLimitOld\" />\n    <result column=\"use_point_limit_new\" jdbcType=\"INTEGER\" property=\"usePointLimitNew\" />\n    <result column=\"operate_man\" jdbcType=\"VARCHAR\" property=\"operateMan\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_id, price_old, price_new, sale_price_old, sale_price_new, gift_point_old, \n    gift_point_new, use_point_limit_old, use_point_limit_new, operate_man, create_time\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsProductOperateLogExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_product_operate_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_product_operate_log\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_product_operate_log\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsProductOperateLogExample\">\n    delete from pms_product_operate_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsProductOperateLog\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_operate_log (product_id, price_old, price_new, \n      sale_price_old, sale_price_new, gift_point_old, \n      gift_point_new, use_point_limit_old, use_point_limit_new, \n      operate_man, create_time)\n    values (#{productId,jdbcType=BIGINT}, #{priceOld,jdbcType=DECIMAL}, #{priceNew,jdbcType=DECIMAL}, \n      #{salePriceOld,jdbcType=DECIMAL}, #{salePriceNew,jdbcType=DECIMAL}, #{giftPointOld,jdbcType=INTEGER}, \n      #{giftPointNew,jdbcType=INTEGER}, #{usePointLimitOld,jdbcType=INTEGER}, #{usePointLimitNew,jdbcType=INTEGER}, \n      #{operateMan,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsProductOperateLog\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_operate_log\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"priceOld != null\">\n        price_old,\n      </if>\n      <if test=\"priceNew != null\">\n        price_new,\n      </if>\n      <if test=\"salePriceOld != null\">\n        sale_price_old,\n      </if>\n      <if test=\"salePriceNew != null\">\n        sale_price_new,\n      </if>\n      <if test=\"giftPointOld != null\">\n        gift_point_old,\n      </if>\n      <if test=\"giftPointNew != null\">\n        gift_point_new,\n      </if>\n      <if test=\"usePointLimitOld != null\">\n        use_point_limit_old,\n      </if>\n      <if test=\"usePointLimitNew != null\">\n        use_point_limit_new,\n      </if>\n      <if test=\"operateMan != null\">\n        operate_man,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"priceOld != null\">\n        #{priceOld,jdbcType=DECIMAL},\n      </if>\n      <if test=\"priceNew != null\">\n        #{priceNew,jdbcType=DECIMAL},\n      </if>\n      <if test=\"salePriceOld != null\">\n        #{salePriceOld,jdbcType=DECIMAL},\n      </if>\n      <if test=\"salePriceNew != null\">\n        #{salePriceNew,jdbcType=DECIMAL},\n      </if>\n      <if test=\"giftPointOld != null\">\n        #{giftPointOld,jdbcType=INTEGER},\n      </if>\n      <if test=\"giftPointNew != null\">\n        #{giftPointNew,jdbcType=INTEGER},\n      </if>\n      <if test=\"usePointLimitOld != null\">\n        #{usePointLimitOld,jdbcType=INTEGER},\n      </if>\n      <if test=\"usePointLimitNew != null\">\n        #{usePointLimitNew,jdbcType=INTEGER},\n      </if>\n      <if test=\"operateMan != null\">\n        #{operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsProductOperateLogExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_product_operate_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_product_operate_log\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.priceOld != null\">\n        price_old = #{row.priceOld,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.priceNew != null\">\n        price_new = #{row.priceNew,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.salePriceOld != null\">\n        sale_price_old = #{row.salePriceOld,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.salePriceNew != null\">\n        sale_price_new = #{row.salePriceNew,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.giftPointOld != null\">\n        gift_point_old = #{row.giftPointOld,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.giftPointNew != null\">\n        gift_point_new = #{row.giftPointNew,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.usePointLimitOld != null\">\n        use_point_limit_old = #{row.usePointLimitOld,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.usePointLimitNew != null\">\n        use_point_limit_new = #{row.usePointLimitNew,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.operateMan != null\">\n        operate_man = #{row.operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_product_operate_log\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      price_old = #{row.priceOld,jdbcType=DECIMAL},\n      price_new = #{row.priceNew,jdbcType=DECIMAL},\n      sale_price_old = #{row.salePriceOld,jdbcType=DECIMAL},\n      sale_price_new = #{row.salePriceNew,jdbcType=DECIMAL},\n      gift_point_old = #{row.giftPointOld,jdbcType=INTEGER},\n      gift_point_new = #{row.giftPointNew,jdbcType=INTEGER},\n      use_point_limit_old = #{row.usePointLimitOld,jdbcType=INTEGER},\n      use_point_limit_new = #{row.usePointLimitNew,jdbcType=INTEGER},\n      operate_man = #{row.operateMan,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsProductOperateLog\">\n    update pms_product_operate_log\n    <set>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"priceOld != null\">\n        price_old = #{priceOld,jdbcType=DECIMAL},\n      </if>\n      <if test=\"priceNew != null\">\n        price_new = #{priceNew,jdbcType=DECIMAL},\n      </if>\n      <if test=\"salePriceOld != null\">\n        sale_price_old = #{salePriceOld,jdbcType=DECIMAL},\n      </if>\n      <if test=\"salePriceNew != null\">\n        sale_price_new = #{salePriceNew,jdbcType=DECIMAL},\n      </if>\n      <if test=\"giftPointOld != null\">\n        gift_point_old = #{giftPointOld,jdbcType=INTEGER},\n      </if>\n      <if test=\"giftPointNew != null\">\n        gift_point_new = #{giftPointNew,jdbcType=INTEGER},\n      </if>\n      <if test=\"usePointLimitOld != null\">\n        use_point_limit_old = #{usePointLimitOld,jdbcType=INTEGER},\n      </if>\n      <if test=\"usePointLimitNew != null\">\n        use_point_limit_new = #{usePointLimitNew,jdbcType=INTEGER},\n      </if>\n      <if test=\"operateMan != null\">\n        operate_man = #{operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsProductOperateLog\">\n    update pms_product_operate_log\n    set product_id = #{productId,jdbcType=BIGINT},\n      price_old = #{priceOld,jdbcType=DECIMAL},\n      price_new = #{priceNew,jdbcType=DECIMAL},\n      sale_price_old = #{salePriceOld,jdbcType=DECIMAL},\n      sale_price_new = #{salePriceNew,jdbcType=DECIMAL},\n      gift_point_old = #{giftPointOld,jdbcType=INTEGER},\n      gift_point_new = #{giftPointNew,jdbcType=INTEGER},\n      use_point_limit_old = #{usePointLimitOld,jdbcType=INTEGER},\n      use_point_limit_new = #{usePointLimitNew,jdbcType=INTEGER},\n      operate_man = #{operateMan,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsProductVertifyRecordMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsProductVertifyRecordMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsProductVertifyRecord\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"vertify_man\" jdbcType=\"VARCHAR\" property=\"vertifyMan\" />\n    <result column=\"status\" jdbcType=\"INTEGER\" property=\"status\" />\n    <result column=\"detail\" jdbcType=\"VARCHAR\" property=\"detail\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_id, create_time, vertify_man, status, detail\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsProductVertifyRecordExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_product_vertify_record\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_product_vertify_record\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_product_vertify_record\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsProductVertifyRecordExample\">\n    delete from pms_product_vertify_record\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsProductVertifyRecord\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_vertify_record (product_id, create_time, vertify_man, \n      status, detail)\n    values (#{productId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{vertifyMan,jdbcType=VARCHAR}, \n      #{status,jdbcType=INTEGER}, #{detail,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsProductVertifyRecord\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_product_vertify_record\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"vertifyMan != null\">\n        vertify_man,\n      </if>\n      <if test=\"status != null\">\n        status,\n      </if>\n      <if test=\"detail != null\">\n        detail,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"vertifyMan != null\">\n        #{vertifyMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"status != null\">\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"detail != null\">\n        #{detail,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsProductVertifyRecordExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_product_vertify_record\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_product_vertify_record\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.vertifyMan != null\">\n        vertify_man = #{row.vertifyMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.status != null\">\n        status = #{row.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.detail != null\">\n        detail = #{row.detail,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_product_vertify_record\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      vertify_man = #{row.vertifyMan,jdbcType=VARCHAR},\n      status = #{row.status,jdbcType=INTEGER},\n      detail = #{row.detail,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsProductVertifyRecord\">\n    update pms_product_vertify_record\n    <set>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"vertifyMan != null\">\n        vertify_man = #{vertifyMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"status != null\">\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"detail != null\">\n        detail = #{detail,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsProductVertifyRecord\">\n    update pms_product_vertify_record\n    set product_id = #{productId,jdbcType=BIGINT},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      vertify_man = #{vertifyMan,jdbcType=VARCHAR},\n      status = #{status,jdbcType=INTEGER},\n      detail = #{detail,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/PmsSkuStockMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.PmsSkuStockMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.PmsSkuStock\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"sku_code\" jdbcType=\"VARCHAR\" property=\"skuCode\" />\n    <result column=\"price\" jdbcType=\"DECIMAL\" property=\"price\" />\n    <result column=\"stock\" jdbcType=\"INTEGER\" property=\"stock\" />\n    <result column=\"low_stock\" jdbcType=\"INTEGER\" property=\"lowStock\" />\n    <result column=\"pic\" jdbcType=\"VARCHAR\" property=\"pic\" />\n    <result column=\"sale\" jdbcType=\"INTEGER\" property=\"sale\" />\n    <result column=\"promotion_price\" jdbcType=\"DECIMAL\" property=\"promotionPrice\" />\n    <result column=\"lock_stock\" jdbcType=\"INTEGER\" property=\"lockStock\" />\n    <result column=\"sp_data\" jdbcType=\"VARCHAR\" property=\"spData\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_id, sku_code, price, stock, low_stock, pic, sale, promotion_price, lock_stock, \n    sp_data\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.PmsSkuStockExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from pms_sku_stock\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from pms_sku_stock\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from pms_sku_stock\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.PmsSkuStockExample\">\n    delete from pms_sku_stock\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.PmsSkuStock\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_sku_stock (product_id, sku_code, price, \n      stock, low_stock, pic, \n      sale, promotion_price, lock_stock, \n      sp_data)\n    values (#{productId,jdbcType=BIGINT}, #{skuCode,jdbcType=VARCHAR}, #{price,jdbcType=DECIMAL}, \n      #{stock,jdbcType=INTEGER}, #{lowStock,jdbcType=INTEGER}, #{pic,jdbcType=VARCHAR}, \n      #{sale,jdbcType=INTEGER}, #{promotionPrice,jdbcType=DECIMAL}, #{lockStock,jdbcType=INTEGER}, \n      #{spData,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.PmsSkuStock\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into pms_sku_stock\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"skuCode != null\">\n        sku_code,\n      </if>\n      <if test=\"price != null\">\n        price,\n      </if>\n      <if test=\"stock != null\">\n        stock,\n      </if>\n      <if test=\"lowStock != null\">\n        low_stock,\n      </if>\n      <if test=\"pic != null\">\n        pic,\n      </if>\n      <if test=\"sale != null\">\n        sale,\n      </if>\n      <if test=\"promotionPrice != null\">\n        promotion_price,\n      </if>\n      <if test=\"lockStock != null\">\n        lock_stock,\n      </if>\n      <if test=\"spData != null\">\n        sp_data,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"skuCode != null\">\n        #{skuCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"price != null\">\n        #{price,jdbcType=DECIMAL},\n      </if>\n      <if test=\"stock != null\">\n        #{stock,jdbcType=INTEGER},\n      </if>\n      <if test=\"lowStock != null\">\n        #{lowStock,jdbcType=INTEGER},\n      </if>\n      <if test=\"pic != null\">\n        #{pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sale != null\">\n        #{sale,jdbcType=INTEGER},\n      </if>\n      <if test=\"promotionPrice != null\">\n        #{promotionPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"lockStock != null\">\n        #{lockStock,jdbcType=INTEGER},\n      </if>\n      <if test=\"spData != null\">\n        #{spData,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.PmsSkuStockExample\" resultType=\"java.lang.Long\">\n    select count(*) from pms_sku_stock\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update pms_sku_stock\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.skuCode != null\">\n        sku_code = #{row.skuCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.price != null\">\n        price = #{row.price,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.stock != null\">\n        stock = #{row.stock,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.lowStock != null\">\n        low_stock = #{row.lowStock,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.pic != null\">\n        pic = #{row.pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.sale != null\">\n        sale = #{row.sale,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.promotionPrice != null\">\n        promotion_price = #{row.promotionPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.lockStock != null\">\n        lock_stock = #{row.lockStock,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.spData != null\">\n        sp_data = #{row.spData,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update pms_sku_stock\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      sku_code = #{row.skuCode,jdbcType=VARCHAR},\n      price = #{row.price,jdbcType=DECIMAL},\n      stock = #{row.stock,jdbcType=INTEGER},\n      low_stock = #{row.lowStock,jdbcType=INTEGER},\n      pic = #{row.pic,jdbcType=VARCHAR},\n      sale = #{row.sale,jdbcType=INTEGER},\n      promotion_price = #{row.promotionPrice,jdbcType=DECIMAL},\n      lock_stock = #{row.lockStock,jdbcType=INTEGER},\n      sp_data = #{row.spData,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.PmsSkuStock\">\n    update pms_sku_stock\n    <set>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"skuCode != null\">\n        sku_code = #{skuCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"price != null\">\n        price = #{price,jdbcType=DECIMAL},\n      </if>\n      <if test=\"stock != null\">\n        stock = #{stock,jdbcType=INTEGER},\n      </if>\n      <if test=\"lowStock != null\">\n        low_stock = #{lowStock,jdbcType=INTEGER},\n      </if>\n      <if test=\"pic != null\">\n        pic = #{pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sale != null\">\n        sale = #{sale,jdbcType=INTEGER},\n      </if>\n      <if test=\"promotionPrice != null\">\n        promotion_price = #{promotionPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"lockStock != null\">\n        lock_stock = #{lockStock,jdbcType=INTEGER},\n      </if>\n      <if test=\"spData != null\">\n        sp_data = #{spData,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.PmsSkuStock\">\n    update pms_sku_stock\n    set product_id = #{productId,jdbcType=BIGINT},\n      sku_code = #{skuCode,jdbcType=VARCHAR},\n      price = #{price,jdbcType=DECIMAL},\n      stock = #{stock,jdbcType=INTEGER},\n      low_stock = #{lowStock,jdbcType=INTEGER},\n      pic = #{pic,jdbcType=VARCHAR},\n      sale = #{sale,jdbcType=INTEGER},\n      promotion_price = #{promotionPrice,jdbcType=DECIMAL},\n      lock_stock = #{lockStock,jdbcType=INTEGER},\n      sp_data = #{spData,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsCouponHistoryMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsCouponHistoryMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsCouponHistory\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"coupon_id\" jdbcType=\"BIGINT\" property=\"couponId\" />\n    <result column=\"member_id\" jdbcType=\"BIGINT\" property=\"memberId\" />\n    <result column=\"coupon_code\" jdbcType=\"VARCHAR\" property=\"couponCode\" />\n    <result column=\"member_nickname\" jdbcType=\"VARCHAR\" property=\"memberNickname\" />\n    <result column=\"get_type\" jdbcType=\"INTEGER\" property=\"getType\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"use_status\" jdbcType=\"INTEGER\" property=\"useStatus\" />\n    <result column=\"use_time\" jdbcType=\"TIMESTAMP\" property=\"useTime\" />\n    <result column=\"order_id\" jdbcType=\"BIGINT\" property=\"orderId\" />\n    <result column=\"order_sn\" jdbcType=\"VARCHAR\" property=\"orderSn\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, coupon_id, member_id, coupon_code, member_nickname, get_type, create_time, use_status, \n    use_time, order_id, order_sn\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsCouponHistoryExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_coupon_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_coupon_history\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_coupon_history\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsCouponHistoryExample\">\n    delete from sms_coupon_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsCouponHistory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_coupon_history (coupon_id, member_id, coupon_code, \n      member_nickname, get_type, create_time, \n      use_status, use_time, order_id, \n      order_sn)\n    values (#{couponId,jdbcType=BIGINT}, #{memberId,jdbcType=BIGINT}, #{couponCode,jdbcType=VARCHAR}, \n      #{memberNickname,jdbcType=VARCHAR}, #{getType,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, \n      #{useStatus,jdbcType=INTEGER}, #{useTime,jdbcType=TIMESTAMP}, #{orderId,jdbcType=BIGINT}, \n      #{orderSn,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsCouponHistory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_coupon_history\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"couponId != null\">\n        coupon_id,\n      </if>\n      <if test=\"memberId != null\">\n        member_id,\n      </if>\n      <if test=\"couponCode != null\">\n        coupon_code,\n      </if>\n      <if test=\"memberNickname != null\">\n        member_nickname,\n      </if>\n      <if test=\"getType != null\">\n        get_type,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"useStatus != null\">\n        use_status,\n      </if>\n      <if test=\"useTime != null\">\n        use_time,\n      </if>\n      <if test=\"orderId != null\">\n        order_id,\n      </if>\n      <if test=\"orderSn != null\">\n        order_sn,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"couponId != null\">\n        #{couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberId != null\">\n        #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"couponCode != null\">\n        #{couponCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberNickname != null\">\n        #{memberNickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"getType != null\">\n        #{getType,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"useStatus != null\">\n        #{useStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"useTime != null\">\n        #{useTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"orderId != null\">\n        #{orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"orderSn != null\">\n        #{orderSn,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsCouponHistoryExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_coupon_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_coupon_history\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.couponId != null\">\n        coupon_id = #{row.couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberId != null\">\n        member_id = #{row.memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.couponCode != null\">\n        coupon_code = #{row.couponCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.memberNickname != null\">\n        member_nickname = #{row.memberNickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.getType != null\">\n        get_type = #{row.getType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.useStatus != null\">\n        use_status = #{row.useStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.useTime != null\">\n        use_time = #{row.useTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.orderId != null\">\n        order_id = #{row.orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.orderSn != null\">\n        order_sn = #{row.orderSn,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_coupon_history\n    set id = #{row.id,jdbcType=BIGINT},\n      coupon_id = #{row.couponId,jdbcType=BIGINT},\n      member_id = #{row.memberId,jdbcType=BIGINT},\n      coupon_code = #{row.couponCode,jdbcType=VARCHAR},\n      member_nickname = #{row.memberNickname,jdbcType=VARCHAR},\n      get_type = #{row.getType,jdbcType=INTEGER},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      use_status = #{row.useStatus,jdbcType=INTEGER},\n      use_time = #{row.useTime,jdbcType=TIMESTAMP},\n      order_id = #{row.orderId,jdbcType=BIGINT},\n      order_sn = #{row.orderSn,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsCouponHistory\">\n    update sms_coupon_history\n    <set>\n      <if test=\"couponId != null\">\n        coupon_id = #{couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberId != null\">\n        member_id = #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"couponCode != null\">\n        coupon_code = #{couponCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberNickname != null\">\n        member_nickname = #{memberNickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"getType != null\">\n        get_type = #{getType,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"useStatus != null\">\n        use_status = #{useStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"useTime != null\">\n        use_time = #{useTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"orderId != null\">\n        order_id = #{orderId,jdbcType=BIGINT},\n      </if>\n      <if test=\"orderSn != null\">\n        order_sn = #{orderSn,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsCouponHistory\">\n    update sms_coupon_history\n    set coupon_id = #{couponId,jdbcType=BIGINT},\n      member_id = #{memberId,jdbcType=BIGINT},\n      coupon_code = #{couponCode,jdbcType=VARCHAR},\n      member_nickname = #{memberNickname,jdbcType=VARCHAR},\n      get_type = #{getType,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      use_status = #{useStatus,jdbcType=INTEGER},\n      use_time = #{useTime,jdbcType=TIMESTAMP},\n      order_id = #{orderId,jdbcType=BIGINT},\n      order_sn = #{orderSn,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsCouponMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsCouponMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsCoupon\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"type\" jdbcType=\"INTEGER\" property=\"type\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"platform\" jdbcType=\"INTEGER\" property=\"platform\" />\n    <result column=\"count\" jdbcType=\"INTEGER\" property=\"count\" />\n    <result column=\"amount\" jdbcType=\"DECIMAL\" property=\"amount\" />\n    <result column=\"per_limit\" jdbcType=\"INTEGER\" property=\"perLimit\" />\n    <result column=\"min_point\" jdbcType=\"DECIMAL\" property=\"minPoint\" />\n    <result column=\"start_time\" jdbcType=\"TIMESTAMP\" property=\"startTime\" />\n    <result column=\"end_time\" jdbcType=\"TIMESTAMP\" property=\"endTime\" />\n    <result column=\"use_type\" jdbcType=\"INTEGER\" property=\"useType\" />\n    <result column=\"note\" jdbcType=\"VARCHAR\" property=\"note\" />\n    <result column=\"publish_count\" jdbcType=\"INTEGER\" property=\"publishCount\" />\n    <result column=\"use_count\" jdbcType=\"INTEGER\" property=\"useCount\" />\n    <result column=\"receive_count\" jdbcType=\"INTEGER\" property=\"receiveCount\" />\n    <result column=\"enable_time\" jdbcType=\"TIMESTAMP\" property=\"enableTime\" />\n    <result column=\"code\" jdbcType=\"VARCHAR\" property=\"code\" />\n    <result column=\"member_level\" jdbcType=\"INTEGER\" property=\"memberLevel\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, type, name, platform, count, amount, per_limit, min_point, start_time, end_time, \n    use_type, note, publish_count, use_count, receive_count, enable_time, code, member_level\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsCouponExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_coupon\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_coupon\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_coupon\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsCouponExample\">\n    delete from sms_coupon\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsCoupon\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_coupon (type, name, platform, \n      count, amount, per_limit, \n      min_point, start_time, end_time, \n      use_type, note, publish_count, \n      use_count, receive_count, enable_time, \n      code, member_level)\n    values (#{type,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{platform,jdbcType=INTEGER}, \n      #{count,jdbcType=INTEGER}, #{amount,jdbcType=DECIMAL}, #{perLimit,jdbcType=INTEGER}, \n      #{minPoint,jdbcType=DECIMAL}, #{startTime,jdbcType=TIMESTAMP}, #{endTime,jdbcType=TIMESTAMP}, \n      #{useType,jdbcType=INTEGER}, #{note,jdbcType=VARCHAR}, #{publishCount,jdbcType=INTEGER}, \n      #{useCount,jdbcType=INTEGER}, #{receiveCount,jdbcType=INTEGER}, #{enableTime,jdbcType=TIMESTAMP}, \n      #{code,jdbcType=VARCHAR}, #{memberLevel,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsCoupon\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_coupon\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"type != null\">\n        type,\n      </if>\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"platform != null\">\n        platform,\n      </if>\n      <if test=\"count != null\">\n        count,\n      </if>\n      <if test=\"amount != null\">\n        amount,\n      </if>\n      <if test=\"perLimit != null\">\n        per_limit,\n      </if>\n      <if test=\"minPoint != null\">\n        min_point,\n      </if>\n      <if test=\"startTime != null\">\n        start_time,\n      </if>\n      <if test=\"endTime != null\">\n        end_time,\n      </if>\n      <if test=\"useType != null\">\n        use_type,\n      </if>\n      <if test=\"note != null\">\n        note,\n      </if>\n      <if test=\"publishCount != null\">\n        publish_count,\n      </if>\n      <if test=\"useCount != null\">\n        use_count,\n      </if>\n      <if test=\"receiveCount != null\">\n        receive_count,\n      </if>\n      <if test=\"enableTime != null\">\n        enable_time,\n      </if>\n      <if test=\"code != null\">\n        code,\n      </if>\n      <if test=\"memberLevel != null\">\n        member_level,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"type != null\">\n        #{type,jdbcType=INTEGER},\n      </if>\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"platform != null\">\n        #{platform,jdbcType=INTEGER},\n      </if>\n      <if test=\"count != null\">\n        #{count,jdbcType=INTEGER},\n      </if>\n      <if test=\"amount != null\">\n        #{amount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"perLimit != null\">\n        #{perLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"minPoint != null\">\n        #{minPoint,jdbcType=DECIMAL},\n      </if>\n      <if test=\"startTime != null\">\n        #{startTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"endTime != null\">\n        #{endTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"useType != null\">\n        #{useType,jdbcType=INTEGER},\n      </if>\n      <if test=\"note != null\">\n        #{note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"publishCount != null\">\n        #{publishCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"useCount != null\">\n        #{useCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"receiveCount != null\">\n        #{receiveCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"enableTime != null\">\n        #{enableTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"code != null\">\n        #{code,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberLevel != null\">\n        #{memberLevel,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsCouponExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_coupon\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_coupon\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.type != null\">\n        type = #{row.type,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.platform != null\">\n        platform = #{row.platform,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.count != null\">\n        count = #{row.count,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.amount != null\">\n        amount = #{row.amount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.perLimit != null\">\n        per_limit = #{row.perLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.minPoint != null\">\n        min_point = #{row.minPoint,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.startTime != null\">\n        start_time = #{row.startTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.endTime != null\">\n        end_time = #{row.endTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.useType != null\">\n        use_type = #{row.useType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.note != null\">\n        note = #{row.note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.publishCount != null\">\n        publish_count = #{row.publishCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.useCount != null\">\n        use_count = #{row.useCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.receiveCount != null\">\n        receive_count = #{row.receiveCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.enableTime != null\">\n        enable_time = #{row.enableTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.code != null\">\n        code = #{row.code,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.memberLevel != null\">\n        member_level = #{row.memberLevel,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_coupon\n    set id = #{row.id,jdbcType=BIGINT},\n      type = #{row.type,jdbcType=INTEGER},\n      name = #{row.name,jdbcType=VARCHAR},\n      platform = #{row.platform,jdbcType=INTEGER},\n      count = #{row.count,jdbcType=INTEGER},\n      amount = #{row.amount,jdbcType=DECIMAL},\n      per_limit = #{row.perLimit,jdbcType=INTEGER},\n      min_point = #{row.minPoint,jdbcType=DECIMAL},\n      start_time = #{row.startTime,jdbcType=TIMESTAMP},\n      end_time = #{row.endTime,jdbcType=TIMESTAMP},\n      use_type = #{row.useType,jdbcType=INTEGER},\n      note = #{row.note,jdbcType=VARCHAR},\n      publish_count = #{row.publishCount,jdbcType=INTEGER},\n      use_count = #{row.useCount,jdbcType=INTEGER},\n      receive_count = #{row.receiveCount,jdbcType=INTEGER},\n      enable_time = #{row.enableTime,jdbcType=TIMESTAMP},\n      code = #{row.code,jdbcType=VARCHAR},\n      member_level = #{row.memberLevel,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsCoupon\">\n    update sms_coupon\n    <set>\n      <if test=\"type != null\">\n        type = #{type,jdbcType=INTEGER},\n      </if>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"platform != null\">\n        platform = #{platform,jdbcType=INTEGER},\n      </if>\n      <if test=\"count != null\">\n        count = #{count,jdbcType=INTEGER},\n      </if>\n      <if test=\"amount != null\">\n        amount = #{amount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"perLimit != null\">\n        per_limit = #{perLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"minPoint != null\">\n        min_point = #{minPoint,jdbcType=DECIMAL},\n      </if>\n      <if test=\"startTime != null\">\n        start_time = #{startTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"endTime != null\">\n        end_time = #{endTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"useType != null\">\n        use_type = #{useType,jdbcType=INTEGER},\n      </if>\n      <if test=\"note != null\">\n        note = #{note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"publishCount != null\">\n        publish_count = #{publishCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"useCount != null\">\n        use_count = #{useCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"receiveCount != null\">\n        receive_count = #{receiveCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"enableTime != null\">\n        enable_time = #{enableTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"code != null\">\n        code = #{code,jdbcType=VARCHAR},\n      </if>\n      <if test=\"memberLevel != null\">\n        member_level = #{memberLevel,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsCoupon\">\n    update sms_coupon\n    set type = #{type,jdbcType=INTEGER},\n      name = #{name,jdbcType=VARCHAR},\n      platform = #{platform,jdbcType=INTEGER},\n      count = #{count,jdbcType=INTEGER},\n      amount = #{amount,jdbcType=DECIMAL},\n      per_limit = #{perLimit,jdbcType=INTEGER},\n      min_point = #{minPoint,jdbcType=DECIMAL},\n      start_time = #{startTime,jdbcType=TIMESTAMP},\n      end_time = #{endTime,jdbcType=TIMESTAMP},\n      use_type = #{useType,jdbcType=INTEGER},\n      note = #{note,jdbcType=VARCHAR},\n      publish_count = #{publishCount,jdbcType=INTEGER},\n      use_count = #{useCount,jdbcType=INTEGER},\n      receive_count = #{receiveCount,jdbcType=INTEGER},\n      enable_time = #{enableTime,jdbcType=TIMESTAMP},\n      code = #{code,jdbcType=VARCHAR},\n      member_level = #{memberLevel,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsCouponProductCategoryRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsCouponProductCategoryRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsCouponProductCategoryRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"coupon_id\" jdbcType=\"BIGINT\" property=\"couponId\" />\n    <result column=\"product_category_id\" jdbcType=\"BIGINT\" property=\"productCategoryId\" />\n    <result column=\"product_category_name\" jdbcType=\"VARCHAR\" property=\"productCategoryName\" />\n    <result column=\"parent_category_name\" jdbcType=\"VARCHAR\" property=\"parentCategoryName\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, coupon_id, product_category_id, product_category_name, parent_category_name\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsCouponProductCategoryRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_coupon_product_category_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_coupon_product_category_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_coupon_product_category_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsCouponProductCategoryRelationExample\">\n    delete from sms_coupon_product_category_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsCouponProductCategoryRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_coupon_product_category_relation (coupon_id, product_category_id, product_category_name, \n      parent_category_name)\n    values (#{couponId,jdbcType=BIGINT}, #{productCategoryId,jdbcType=BIGINT}, #{productCategoryName,jdbcType=VARCHAR}, \n      #{parentCategoryName,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsCouponProductCategoryRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_coupon_product_category_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"couponId != null\">\n        coupon_id,\n      </if>\n      <if test=\"productCategoryId != null\">\n        product_category_id,\n      </if>\n      <if test=\"productCategoryName != null\">\n        product_category_name,\n      </if>\n      <if test=\"parentCategoryName != null\">\n        parent_category_name,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"couponId != null\">\n        #{couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productCategoryId != null\">\n        #{productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productCategoryName != null\">\n        #{productCategoryName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"parentCategoryName != null\">\n        #{parentCategoryName,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsCouponProductCategoryRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_coupon_product_category_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_coupon_product_category_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.couponId != null\">\n        coupon_id = #{row.couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productCategoryId != null\">\n        product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productCategoryName != null\">\n        product_category_name = #{row.productCategoryName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.parentCategoryName != null\">\n        parent_category_name = #{row.parentCategoryName,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_coupon_product_category_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      coupon_id = #{row.couponId,jdbcType=BIGINT},\n      product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      product_category_name = #{row.productCategoryName,jdbcType=VARCHAR},\n      parent_category_name = #{row.parentCategoryName,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsCouponProductCategoryRelation\">\n    update sms_coupon_product_category_relation\n    <set>\n      <if test=\"couponId != null\">\n        coupon_id = #{couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productCategoryId != null\">\n        product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productCategoryName != null\">\n        product_category_name = #{productCategoryName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"parentCategoryName != null\">\n        parent_category_name = #{parentCategoryName,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsCouponProductCategoryRelation\">\n    update sms_coupon_product_category_relation\n    set coupon_id = #{couponId,jdbcType=BIGINT},\n      product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      product_category_name = #{productCategoryName,jdbcType=VARCHAR},\n      parent_category_name = #{parentCategoryName,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsCouponProductRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsCouponProductRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsCouponProductRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"coupon_id\" jdbcType=\"BIGINT\" property=\"couponId\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"product_name\" jdbcType=\"VARCHAR\" property=\"productName\" />\n    <result column=\"product_sn\" jdbcType=\"VARCHAR\" property=\"productSn\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, coupon_id, product_id, product_name, product_sn\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsCouponProductRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_coupon_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_coupon_product_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_coupon_product_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsCouponProductRelationExample\">\n    delete from sms_coupon_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsCouponProductRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_coupon_product_relation (coupon_id, product_id, product_name, \n      product_sn)\n    values (#{couponId,jdbcType=BIGINT}, #{productId,jdbcType=BIGINT}, #{productName,jdbcType=VARCHAR}, \n      #{productSn,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsCouponProductRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_coupon_product_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"couponId != null\">\n        coupon_id,\n      </if>\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"productName != null\">\n        product_name,\n      </if>\n      <if test=\"productSn != null\">\n        product_sn,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"couponId != null\">\n        #{couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productName != null\">\n        #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSn != null\">\n        #{productSn,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsCouponProductRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_coupon_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_coupon_product_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.couponId != null\">\n        coupon_id = #{row.couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productName != null\">\n        product_name = #{row.productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productSn != null\">\n        product_sn = #{row.productSn,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_coupon_product_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      coupon_id = #{row.couponId,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      product_name = #{row.productName,jdbcType=VARCHAR},\n      product_sn = #{row.productSn,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsCouponProductRelation\">\n    update sms_coupon_product_relation\n    <set>\n      <if test=\"couponId != null\">\n        coupon_id = #{couponId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productName != null\">\n        product_name = #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productSn != null\">\n        product_sn = #{productSn,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsCouponProductRelation\">\n    update sms_coupon_product_relation\n    set coupon_id = #{couponId,jdbcType=BIGINT},\n      product_id = #{productId,jdbcType=BIGINT},\n      product_name = #{productName,jdbcType=VARCHAR},\n      product_sn = #{productSn,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsFlashPromotionLogMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsFlashPromotionLogMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsFlashPromotionLog\">\n    <id column=\"id\" jdbcType=\"INTEGER\" property=\"id\" />\n    <result column=\"member_id\" jdbcType=\"INTEGER\" property=\"memberId\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"member_phone\" jdbcType=\"VARCHAR\" property=\"memberPhone\" />\n    <result column=\"product_name\" jdbcType=\"VARCHAR\" property=\"productName\" />\n    <result column=\"subscribe_time\" jdbcType=\"TIMESTAMP\" property=\"subscribeTime\" />\n    <result column=\"send_time\" jdbcType=\"TIMESTAMP\" property=\"sendTime\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, member_id, product_id, member_phone, product_name, subscribe_time, send_time\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionLogExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_flash_promotion_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Integer\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_flash_promotion_log\n    where id = #{id,jdbcType=INTEGER}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Integer\">\n    delete from sms_flash_promotion_log\n    where id = #{id,jdbcType=INTEGER}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionLogExample\">\n    delete from sms_flash_promotion_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsFlashPromotionLog\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Integer\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_flash_promotion_log (member_id, product_id, member_phone, \n      product_name, subscribe_time, send_time\n      )\n    values (#{memberId,jdbcType=INTEGER}, #{productId,jdbcType=BIGINT}, #{memberPhone,jdbcType=VARCHAR}, \n      #{productName,jdbcType=VARCHAR}, #{subscribeTime,jdbcType=TIMESTAMP}, #{sendTime,jdbcType=TIMESTAMP}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsFlashPromotionLog\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Integer\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_flash_promotion_log\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        member_id,\n      </if>\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"memberPhone != null\">\n        member_phone,\n      </if>\n      <if test=\"productName != null\">\n        product_name,\n      </if>\n      <if test=\"subscribeTime != null\">\n        subscribe_time,\n      </if>\n      <if test=\"sendTime != null\">\n        send_time,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        #{memberId,jdbcType=INTEGER},\n      </if>\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberPhone != null\">\n        #{memberPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productName != null\">\n        #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"subscribeTime != null\">\n        #{subscribeTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"sendTime != null\">\n        #{sendTime,jdbcType=TIMESTAMP},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionLogExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_flash_promotion_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_flash_promotion_log\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.memberId != null\">\n        member_id = #{row.memberId,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberPhone != null\">\n        member_phone = #{row.memberPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.productName != null\">\n        product_name = #{row.productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.subscribeTime != null\">\n        subscribe_time = #{row.subscribeTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.sendTime != null\">\n        send_time = #{row.sendTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_flash_promotion_log\n    set id = #{row.id,jdbcType=INTEGER},\n      member_id = #{row.memberId,jdbcType=INTEGER},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      member_phone = #{row.memberPhone,jdbcType=VARCHAR},\n      product_name = #{row.productName,jdbcType=VARCHAR},\n      subscribe_time = #{row.subscribeTime,jdbcType=TIMESTAMP},\n      send_time = #{row.sendTime,jdbcType=TIMESTAMP}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsFlashPromotionLog\">\n    update sms_flash_promotion_log\n    <set>\n      <if test=\"memberId != null\">\n        member_id = #{memberId,jdbcType=INTEGER},\n      </if>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"memberPhone != null\">\n        member_phone = #{memberPhone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"productName != null\">\n        product_name = #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"subscribeTime != null\">\n        subscribe_time = #{subscribeTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"sendTime != null\">\n        send_time = #{sendTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    where id = #{id,jdbcType=INTEGER}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsFlashPromotionLog\">\n    update sms_flash_promotion_log\n    set member_id = #{memberId,jdbcType=INTEGER},\n      product_id = #{productId,jdbcType=BIGINT},\n      member_phone = #{memberPhone,jdbcType=VARCHAR},\n      product_name = #{productName,jdbcType=VARCHAR},\n      subscribe_time = #{subscribeTime,jdbcType=TIMESTAMP},\n      send_time = #{sendTime,jdbcType=TIMESTAMP}\n    where id = #{id,jdbcType=INTEGER}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsFlashPromotionMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsFlashPromotionMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsFlashPromotion\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"title\" jdbcType=\"VARCHAR\" property=\"title\" />\n    <result column=\"start_date\" jdbcType=\"DATE\" property=\"startDate\" />\n    <result column=\"end_date\" jdbcType=\"DATE\" property=\"endDate\" />\n    <result column=\"status\" jdbcType=\"INTEGER\" property=\"status\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, title, start_date, end_date, status, create_time\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_flash_promotion\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_flash_promotion\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_flash_promotion\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionExample\">\n    delete from sms_flash_promotion\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsFlashPromotion\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_flash_promotion (title, start_date, end_date, \n      status, create_time)\n    values (#{title,jdbcType=VARCHAR}, #{startDate,jdbcType=DATE}, #{endDate,jdbcType=DATE}, \n      #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsFlashPromotion\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_flash_promotion\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"title != null\">\n        title,\n      </if>\n      <if test=\"startDate != null\">\n        start_date,\n      </if>\n      <if test=\"endDate != null\">\n        end_date,\n      </if>\n      <if test=\"status != null\">\n        status,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"title != null\">\n        #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"startDate != null\">\n        #{startDate,jdbcType=DATE},\n      </if>\n      <if test=\"endDate != null\">\n        #{endDate,jdbcType=DATE},\n      </if>\n      <if test=\"status != null\">\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_flash_promotion\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_flash_promotion\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.title != null\">\n        title = #{row.title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.startDate != null\">\n        start_date = #{row.startDate,jdbcType=DATE},\n      </if>\n      <if test=\"row.endDate != null\">\n        end_date = #{row.endDate,jdbcType=DATE},\n      </if>\n      <if test=\"row.status != null\">\n        status = #{row.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_flash_promotion\n    set id = #{row.id,jdbcType=BIGINT},\n      title = #{row.title,jdbcType=VARCHAR},\n      start_date = #{row.startDate,jdbcType=DATE},\n      end_date = #{row.endDate,jdbcType=DATE},\n      status = #{row.status,jdbcType=INTEGER},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsFlashPromotion\">\n    update sms_flash_promotion\n    <set>\n      <if test=\"title != null\">\n        title = #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"startDate != null\">\n        start_date = #{startDate,jdbcType=DATE},\n      </if>\n      <if test=\"endDate != null\">\n        end_date = #{endDate,jdbcType=DATE},\n      </if>\n      <if test=\"status != null\">\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsFlashPromotion\">\n    update sms_flash_promotion\n    set title = #{title,jdbcType=VARCHAR},\n      start_date = #{startDate,jdbcType=DATE},\n      end_date = #{endDate,jdbcType=DATE},\n      status = #{status,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsFlashPromotionProductRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsFlashPromotionProductRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsFlashPromotionProductRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"flash_promotion_id\" jdbcType=\"BIGINT\" property=\"flashPromotionId\" />\n    <result column=\"flash_promotion_session_id\" jdbcType=\"BIGINT\" property=\"flashPromotionSessionId\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"flash_promotion_price\" jdbcType=\"DECIMAL\" property=\"flashPromotionPrice\" />\n    <result column=\"flash_promotion_count\" jdbcType=\"INTEGER\" property=\"flashPromotionCount\" />\n    <result column=\"flash_promotion_limit\" jdbcType=\"INTEGER\" property=\"flashPromotionLimit\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, flash_promotion_id, flash_promotion_session_id, product_id, flash_promotion_price, \n    flash_promotion_count, flash_promotion_limit, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionProductRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_flash_promotion_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_flash_promotion_product_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_flash_promotion_product_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionProductRelationExample\">\n    delete from sms_flash_promotion_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsFlashPromotionProductRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_flash_promotion_product_relation (flash_promotion_id, flash_promotion_session_id, \n      product_id, flash_promotion_price, flash_promotion_count, \n      flash_promotion_limit, sort)\n    values (#{flashPromotionId,jdbcType=BIGINT}, #{flashPromotionSessionId,jdbcType=BIGINT}, \n      #{productId,jdbcType=BIGINT}, #{flashPromotionPrice,jdbcType=DECIMAL}, #{flashPromotionCount,jdbcType=INTEGER}, \n      #{flashPromotionLimit,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsFlashPromotionProductRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_flash_promotion_product_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"flashPromotionId != null\">\n        flash_promotion_id,\n      </if>\n      <if test=\"flashPromotionSessionId != null\">\n        flash_promotion_session_id,\n      </if>\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"flashPromotionPrice != null\">\n        flash_promotion_price,\n      </if>\n      <if test=\"flashPromotionCount != null\">\n        flash_promotion_count,\n      </if>\n      <if test=\"flashPromotionLimit != null\">\n        flash_promotion_limit,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"flashPromotionId != null\">\n        #{flashPromotionId,jdbcType=BIGINT},\n      </if>\n      <if test=\"flashPromotionSessionId != null\">\n        #{flashPromotionSessionId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"flashPromotionPrice != null\">\n        #{flashPromotionPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"flashPromotionCount != null\">\n        #{flashPromotionCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"flashPromotionLimit != null\">\n        #{flashPromotionLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionProductRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_flash_promotion_product_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_flash_promotion_product_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.flashPromotionId != null\">\n        flash_promotion_id = #{row.flashPromotionId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.flashPromotionSessionId != null\">\n        flash_promotion_session_id = #{row.flashPromotionSessionId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.flashPromotionPrice != null\">\n        flash_promotion_price = #{row.flashPromotionPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.flashPromotionCount != null\">\n        flash_promotion_count = #{row.flashPromotionCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.flashPromotionLimit != null\">\n        flash_promotion_limit = #{row.flashPromotionLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_flash_promotion_product_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      flash_promotion_id = #{row.flashPromotionId,jdbcType=BIGINT},\n      flash_promotion_session_id = #{row.flashPromotionSessionId,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      flash_promotion_price = #{row.flashPromotionPrice,jdbcType=DECIMAL},\n      flash_promotion_count = #{row.flashPromotionCount,jdbcType=INTEGER},\n      flash_promotion_limit = #{row.flashPromotionLimit,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsFlashPromotionProductRelation\">\n    update sms_flash_promotion_product_relation\n    <set>\n      <if test=\"flashPromotionId != null\">\n        flash_promotion_id = #{flashPromotionId,jdbcType=BIGINT},\n      </if>\n      <if test=\"flashPromotionSessionId != null\">\n        flash_promotion_session_id = #{flashPromotionSessionId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"flashPromotionPrice != null\">\n        flash_promotion_price = #{flashPromotionPrice,jdbcType=DECIMAL},\n      </if>\n      <if test=\"flashPromotionCount != null\">\n        flash_promotion_count = #{flashPromotionCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"flashPromotionLimit != null\">\n        flash_promotion_limit = #{flashPromotionLimit,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsFlashPromotionProductRelation\">\n    update sms_flash_promotion_product_relation\n    set flash_promotion_id = #{flashPromotionId,jdbcType=BIGINT},\n      flash_promotion_session_id = #{flashPromotionSessionId,jdbcType=BIGINT},\n      product_id = #{productId,jdbcType=BIGINT},\n      flash_promotion_price = #{flashPromotionPrice,jdbcType=DECIMAL},\n      flash_promotion_count = #{flashPromotionCount,jdbcType=INTEGER},\n      flash_promotion_limit = #{flashPromotionLimit,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsFlashPromotionSessionMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsFlashPromotionSessionMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsFlashPromotionSession\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"start_time\" jdbcType=\"TIME\" property=\"startTime\" />\n    <result column=\"end_time\" jdbcType=\"TIME\" property=\"endTime\" />\n    <result column=\"status\" jdbcType=\"INTEGER\" property=\"status\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, start_time, end_time, status, create_time\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionSessionExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_flash_promotion_session\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_flash_promotion_session\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_flash_promotion_session\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionSessionExample\">\n    delete from sms_flash_promotion_session\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsFlashPromotionSession\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_flash_promotion_session (name, start_time, end_time, \n      status, create_time)\n    values (#{name,jdbcType=VARCHAR}, #{startTime,jdbcType=TIME}, #{endTime,jdbcType=TIME}, \n      #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsFlashPromotionSession\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_flash_promotion_session\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"startTime != null\">\n        start_time,\n      </if>\n      <if test=\"endTime != null\">\n        end_time,\n      </if>\n      <if test=\"status != null\">\n        status,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"startTime != null\">\n        #{startTime,jdbcType=TIME},\n      </if>\n      <if test=\"endTime != null\">\n        #{endTime,jdbcType=TIME},\n      </if>\n      <if test=\"status != null\">\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsFlashPromotionSessionExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_flash_promotion_session\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_flash_promotion_session\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.startTime != null\">\n        start_time = #{row.startTime,jdbcType=TIME},\n      </if>\n      <if test=\"row.endTime != null\">\n        end_time = #{row.endTime,jdbcType=TIME},\n      </if>\n      <if test=\"row.status != null\">\n        status = #{row.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_flash_promotion_session\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      start_time = #{row.startTime,jdbcType=TIME},\n      end_time = #{row.endTime,jdbcType=TIME},\n      status = #{row.status,jdbcType=INTEGER},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsFlashPromotionSession\">\n    update sms_flash_promotion_session\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"startTime != null\">\n        start_time = #{startTime,jdbcType=TIME},\n      </if>\n      <if test=\"endTime != null\">\n        end_time = #{endTime,jdbcType=TIME},\n      </if>\n      <if test=\"status != null\">\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsFlashPromotionSession\">\n    update sms_flash_promotion_session\n    set name = #{name,jdbcType=VARCHAR},\n      start_time = #{startTime,jdbcType=TIME},\n      end_time = #{endTime,jdbcType=TIME},\n      status = #{status,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsHomeAdvertiseMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsHomeAdvertiseMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsHomeAdvertise\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"type\" jdbcType=\"INTEGER\" property=\"type\" />\n    <result column=\"pic\" jdbcType=\"VARCHAR\" property=\"pic\" />\n    <result column=\"start_time\" jdbcType=\"TIMESTAMP\" property=\"startTime\" />\n    <result column=\"end_time\" jdbcType=\"TIMESTAMP\" property=\"endTime\" />\n    <result column=\"status\" jdbcType=\"INTEGER\" property=\"status\" />\n    <result column=\"click_count\" jdbcType=\"INTEGER\" property=\"clickCount\" />\n    <result column=\"order_count\" jdbcType=\"INTEGER\" property=\"orderCount\" />\n    <result column=\"url\" jdbcType=\"VARCHAR\" property=\"url\" />\n    <result column=\"note\" jdbcType=\"VARCHAR\" property=\"note\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, type, pic, start_time, end_time, status, click_count, order_count, url, \n    note, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsHomeAdvertiseExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_home_advertise\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_home_advertise\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_home_advertise\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsHomeAdvertiseExample\">\n    delete from sms_home_advertise\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsHomeAdvertise\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_home_advertise (name, type, pic, \n      start_time, end_time, status, \n      click_count, order_count, url, \n      note, sort)\n    values (#{name,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{pic,jdbcType=VARCHAR}, \n      #{startTime,jdbcType=TIMESTAMP}, #{endTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, \n      #{clickCount,jdbcType=INTEGER}, #{orderCount,jdbcType=INTEGER}, #{url,jdbcType=VARCHAR}, \n      #{note,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsHomeAdvertise\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_home_advertise\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"type != null\">\n        type,\n      </if>\n      <if test=\"pic != null\">\n        pic,\n      </if>\n      <if test=\"startTime != null\">\n        start_time,\n      </if>\n      <if test=\"endTime != null\">\n        end_time,\n      </if>\n      <if test=\"status != null\">\n        status,\n      </if>\n      <if test=\"clickCount != null\">\n        click_count,\n      </if>\n      <if test=\"orderCount != null\">\n        order_count,\n      </if>\n      <if test=\"url != null\">\n        url,\n      </if>\n      <if test=\"note != null\">\n        note,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"type != null\">\n        #{type,jdbcType=INTEGER},\n      </if>\n      <if test=\"pic != null\">\n        #{pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"startTime != null\">\n        #{startTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"endTime != null\">\n        #{endTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"status != null\">\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"clickCount != null\">\n        #{clickCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"orderCount != null\">\n        #{orderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"url != null\">\n        #{url,jdbcType=VARCHAR},\n      </if>\n      <if test=\"note != null\">\n        #{note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsHomeAdvertiseExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_home_advertise\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_home_advertise\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.type != null\">\n        type = #{row.type,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.pic != null\">\n        pic = #{row.pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.startTime != null\">\n        start_time = #{row.startTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.endTime != null\">\n        end_time = #{row.endTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.status != null\">\n        status = #{row.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.clickCount != null\">\n        click_count = #{row.clickCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.orderCount != null\">\n        order_count = #{row.orderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.url != null\">\n        url = #{row.url,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.note != null\">\n        note = #{row.note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_home_advertise\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      type = #{row.type,jdbcType=INTEGER},\n      pic = #{row.pic,jdbcType=VARCHAR},\n      start_time = #{row.startTime,jdbcType=TIMESTAMP},\n      end_time = #{row.endTime,jdbcType=TIMESTAMP},\n      status = #{row.status,jdbcType=INTEGER},\n      click_count = #{row.clickCount,jdbcType=INTEGER},\n      order_count = #{row.orderCount,jdbcType=INTEGER},\n      url = #{row.url,jdbcType=VARCHAR},\n      note = #{row.note,jdbcType=VARCHAR},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsHomeAdvertise\">\n    update sms_home_advertise\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"type != null\">\n        type = #{type,jdbcType=INTEGER},\n      </if>\n      <if test=\"pic != null\">\n        pic = #{pic,jdbcType=VARCHAR},\n      </if>\n      <if test=\"startTime != null\">\n        start_time = #{startTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"endTime != null\">\n        end_time = #{endTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"status != null\">\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"clickCount != null\">\n        click_count = #{clickCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"orderCount != null\">\n        order_count = #{orderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"url != null\">\n        url = #{url,jdbcType=VARCHAR},\n      </if>\n      <if test=\"note != null\">\n        note = #{note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsHomeAdvertise\">\n    update sms_home_advertise\n    set name = #{name,jdbcType=VARCHAR},\n      type = #{type,jdbcType=INTEGER},\n      pic = #{pic,jdbcType=VARCHAR},\n      start_time = #{startTime,jdbcType=TIMESTAMP},\n      end_time = #{endTime,jdbcType=TIMESTAMP},\n      status = #{status,jdbcType=INTEGER},\n      click_count = #{clickCount,jdbcType=INTEGER},\n      order_count = #{orderCount,jdbcType=INTEGER},\n      url = #{url,jdbcType=VARCHAR},\n      note = #{note,jdbcType=VARCHAR},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsHomeBrandMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsHomeBrandMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsHomeBrand\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"brand_id\" jdbcType=\"BIGINT\" property=\"brandId\" />\n    <result column=\"brand_name\" jdbcType=\"VARCHAR\" property=\"brandName\" />\n    <result column=\"recommend_status\" jdbcType=\"INTEGER\" property=\"recommendStatus\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, brand_id, brand_name, recommend_status, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsHomeBrandExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_home_brand\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_home_brand\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_home_brand\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsHomeBrandExample\">\n    delete from sms_home_brand\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsHomeBrand\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_home_brand (brand_id, brand_name, recommend_status, \n      sort)\n    values (#{brandId,jdbcType=BIGINT}, #{brandName,jdbcType=VARCHAR}, #{recommendStatus,jdbcType=INTEGER}, \n      #{sort,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsHomeBrand\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_home_brand\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"brandId != null\">\n        brand_id,\n      </if>\n      <if test=\"brandName != null\">\n        brand_name,\n      </if>\n      <if test=\"recommendStatus != null\">\n        recommend_status,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"brandId != null\">\n        #{brandId,jdbcType=BIGINT},\n      </if>\n      <if test=\"brandName != null\">\n        #{brandName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"recommendStatus != null\">\n        #{recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsHomeBrandExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_home_brand\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_home_brand\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.brandId != null\">\n        brand_id = #{row.brandId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.brandName != null\">\n        brand_name = #{row.brandName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.recommendStatus != null\">\n        recommend_status = #{row.recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_home_brand\n    set id = #{row.id,jdbcType=BIGINT},\n      brand_id = #{row.brandId,jdbcType=BIGINT},\n      brand_name = #{row.brandName,jdbcType=VARCHAR},\n      recommend_status = #{row.recommendStatus,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsHomeBrand\">\n    update sms_home_brand\n    <set>\n      <if test=\"brandId != null\">\n        brand_id = #{brandId,jdbcType=BIGINT},\n      </if>\n      <if test=\"brandName != null\">\n        brand_name = #{brandName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"recommendStatus != null\">\n        recommend_status = #{recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsHomeBrand\">\n    update sms_home_brand\n    set brand_id = #{brandId,jdbcType=BIGINT},\n      brand_name = #{brandName,jdbcType=VARCHAR},\n      recommend_status = #{recommendStatus,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsHomeNewProductMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsHomeNewProductMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsHomeNewProduct\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"product_name\" jdbcType=\"VARCHAR\" property=\"productName\" />\n    <result column=\"recommend_status\" jdbcType=\"INTEGER\" property=\"recommendStatus\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_id, product_name, recommend_status, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsHomeNewProductExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_home_new_product\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_home_new_product\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_home_new_product\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsHomeNewProductExample\">\n    delete from sms_home_new_product\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsHomeNewProduct\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_home_new_product (product_id, product_name, recommend_status, \n      sort)\n    values (#{productId,jdbcType=BIGINT}, #{productName,jdbcType=VARCHAR}, #{recommendStatus,jdbcType=INTEGER}, \n      #{sort,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsHomeNewProduct\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_home_new_product\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"productName != null\">\n        product_name,\n      </if>\n      <if test=\"recommendStatus != null\">\n        recommend_status,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productName != null\">\n        #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"recommendStatus != null\">\n        #{recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsHomeNewProductExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_home_new_product\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_home_new_product\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productName != null\">\n        product_name = #{row.productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.recommendStatus != null\">\n        recommend_status = #{row.recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_home_new_product\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      product_name = #{row.productName,jdbcType=VARCHAR},\n      recommend_status = #{row.recommendStatus,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsHomeNewProduct\">\n    update sms_home_new_product\n    <set>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productName != null\">\n        product_name = #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"recommendStatus != null\">\n        recommend_status = #{recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsHomeNewProduct\">\n    update sms_home_new_product\n    set product_id = #{productId,jdbcType=BIGINT},\n      product_name = #{productName,jdbcType=VARCHAR},\n      recommend_status = #{recommendStatus,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsHomeRecommendProductMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsHomeRecommendProductMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsHomeRecommendProduct\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"product_id\" jdbcType=\"BIGINT\" property=\"productId\" />\n    <result column=\"product_name\" jdbcType=\"VARCHAR\" property=\"productName\" />\n    <result column=\"recommend_status\" jdbcType=\"INTEGER\" property=\"recommendStatus\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, product_id, product_name, recommend_status, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsHomeRecommendProductExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_home_recommend_product\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_home_recommend_product\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_home_recommend_product\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsHomeRecommendProductExample\">\n    delete from sms_home_recommend_product\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsHomeRecommendProduct\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_home_recommend_product (product_id, product_name, recommend_status, \n      sort)\n    values (#{productId,jdbcType=BIGINT}, #{productName,jdbcType=VARCHAR}, #{recommendStatus,jdbcType=INTEGER}, \n      #{sort,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsHomeRecommendProduct\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_home_recommend_product\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        product_id,\n      </if>\n      <if test=\"productName != null\">\n        product_name,\n      </if>\n      <if test=\"recommendStatus != null\">\n        recommend_status,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"productId != null\">\n        #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productName != null\">\n        #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"recommendStatus != null\">\n        #{recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsHomeRecommendProductExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_home_recommend_product\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_home_recommend_product\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productId != null\">\n        product_id = #{row.productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productName != null\">\n        product_name = #{row.productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.recommendStatus != null\">\n        recommend_status = #{row.recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_home_recommend_product\n    set id = #{row.id,jdbcType=BIGINT},\n      product_id = #{row.productId,jdbcType=BIGINT},\n      product_name = #{row.productName,jdbcType=VARCHAR},\n      recommend_status = #{row.recommendStatus,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsHomeRecommendProduct\">\n    update sms_home_recommend_product\n    <set>\n      <if test=\"productId != null\">\n        product_id = #{productId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productName != null\">\n        product_name = #{productName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"recommendStatus != null\">\n        recommend_status = #{recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsHomeRecommendProduct\">\n    update sms_home_recommend_product\n    set product_id = #{productId,jdbcType=BIGINT},\n      product_name = #{productName,jdbcType=VARCHAR},\n      recommend_status = #{recommendStatus,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/SmsHomeRecommendSubjectMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.SmsHomeRecommendSubjectMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.SmsHomeRecommendSubject\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"subject_id\" jdbcType=\"BIGINT\" property=\"subjectId\" />\n    <result column=\"subject_name\" jdbcType=\"VARCHAR\" property=\"subjectName\" />\n    <result column=\"recommend_status\" jdbcType=\"INTEGER\" property=\"recommendStatus\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, subject_id, subject_name, recommend_status, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.SmsHomeRecommendSubjectExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from sms_home_recommend_subject\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from sms_home_recommend_subject\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from sms_home_recommend_subject\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.SmsHomeRecommendSubjectExample\">\n    delete from sms_home_recommend_subject\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.SmsHomeRecommendSubject\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_home_recommend_subject (subject_id, subject_name, recommend_status, \n      sort)\n    values (#{subjectId,jdbcType=BIGINT}, #{subjectName,jdbcType=VARCHAR}, #{recommendStatus,jdbcType=INTEGER}, \n      #{sort,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.SmsHomeRecommendSubject\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into sms_home_recommend_subject\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"subjectId != null\">\n        subject_id,\n      </if>\n      <if test=\"subjectName != null\">\n        subject_name,\n      </if>\n      <if test=\"recommendStatus != null\">\n        recommend_status,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"subjectId != null\">\n        #{subjectId,jdbcType=BIGINT},\n      </if>\n      <if test=\"subjectName != null\">\n        #{subjectName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"recommendStatus != null\">\n        #{recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.SmsHomeRecommendSubjectExample\" resultType=\"java.lang.Long\">\n    select count(*) from sms_home_recommend_subject\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update sms_home_recommend_subject\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.subjectId != null\">\n        subject_id = #{row.subjectId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.subjectName != null\">\n        subject_name = #{row.subjectName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.recommendStatus != null\">\n        recommend_status = #{row.recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update sms_home_recommend_subject\n    set id = #{row.id,jdbcType=BIGINT},\n      subject_id = #{row.subjectId,jdbcType=BIGINT},\n      subject_name = #{row.subjectName,jdbcType=VARCHAR},\n      recommend_status = #{row.recommendStatus,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.SmsHomeRecommendSubject\">\n    update sms_home_recommend_subject\n    <set>\n      <if test=\"subjectId != null\">\n        subject_id = #{subjectId,jdbcType=BIGINT},\n      </if>\n      <if test=\"subjectName != null\">\n        subject_name = #{subjectName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"recommendStatus != null\">\n        recommend_status = #{recommendStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.SmsHomeRecommendSubject\">\n    update sms_home_recommend_subject\n    set subject_id = #{subjectId,jdbcType=BIGINT},\n      subject_name = #{subjectName,jdbcType=VARCHAR},\n      recommend_status = #{recommendStatus,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsAdminLoginLogMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsAdminLoginLogMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsAdminLoginLog\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"admin_id\" jdbcType=\"BIGINT\" property=\"adminId\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"ip\" jdbcType=\"VARCHAR\" property=\"ip\" />\n    <result column=\"address\" jdbcType=\"VARCHAR\" property=\"address\" />\n    <result column=\"user_agent\" jdbcType=\"VARCHAR\" property=\"userAgent\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, admin_id, create_time, ip, address, user_agent\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsAdminLoginLogExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_admin_login_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_admin_login_log\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_admin_login_log\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsAdminLoginLogExample\">\n    delete from ums_admin_login_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsAdminLoginLog\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_admin_login_log (admin_id, create_time, ip, \n      address, user_agent)\n    values (#{adminId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{ip,jdbcType=VARCHAR}, \n      #{address,jdbcType=VARCHAR}, #{userAgent,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsAdminLoginLog\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_admin_login_log\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"adminId != null\">\n        admin_id,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"ip != null\">\n        ip,\n      </if>\n      <if test=\"address != null\">\n        address,\n      </if>\n      <if test=\"userAgent != null\">\n        user_agent,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"adminId != null\">\n        #{adminId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"ip != null\">\n        #{ip,jdbcType=VARCHAR},\n      </if>\n      <if test=\"address != null\">\n        #{address,jdbcType=VARCHAR},\n      </if>\n      <if test=\"userAgent != null\">\n        #{userAgent,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsAdminLoginLogExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_admin_login_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_admin_login_log\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.adminId != null\">\n        admin_id = #{row.adminId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.ip != null\">\n        ip = #{row.ip,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.address != null\">\n        address = #{row.address,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.userAgent != null\">\n        user_agent = #{row.userAgent,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_admin_login_log\n    set id = #{row.id,jdbcType=BIGINT},\n      admin_id = #{row.adminId,jdbcType=BIGINT},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      ip = #{row.ip,jdbcType=VARCHAR},\n      address = #{row.address,jdbcType=VARCHAR},\n      user_agent = #{row.userAgent,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsAdminLoginLog\">\n    update ums_admin_login_log\n    <set>\n      <if test=\"adminId != null\">\n        admin_id = #{adminId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"ip != null\">\n        ip = #{ip,jdbcType=VARCHAR},\n      </if>\n      <if test=\"address != null\">\n        address = #{address,jdbcType=VARCHAR},\n      </if>\n      <if test=\"userAgent != null\">\n        user_agent = #{userAgent,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsAdminLoginLog\">\n    update ums_admin_login_log\n    set admin_id = #{adminId,jdbcType=BIGINT},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      ip = #{ip,jdbcType=VARCHAR},\n      address = #{address,jdbcType=VARCHAR},\n      user_agent = #{userAgent,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsAdminMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsAdminMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsAdmin\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"username\" jdbcType=\"VARCHAR\" property=\"username\" />\n    <result column=\"password\" jdbcType=\"VARCHAR\" property=\"password\" />\n    <result column=\"icon\" jdbcType=\"VARCHAR\" property=\"icon\" />\n    <result column=\"email\" jdbcType=\"VARCHAR\" property=\"email\" />\n    <result column=\"nick_name\" jdbcType=\"VARCHAR\" property=\"nickName\" />\n    <result column=\"note\" jdbcType=\"VARCHAR\" property=\"note\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"login_time\" jdbcType=\"TIMESTAMP\" property=\"loginTime\" />\n    <result column=\"status\" jdbcType=\"INTEGER\" property=\"status\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, username, password, icon, email, nick_name, note, create_time, login_time, status\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsAdminExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_admin\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_admin\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_admin\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsAdminExample\">\n    delete from ums_admin\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsAdmin\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_admin (username, password, icon, \n      email, nick_name, note, \n      create_time, login_time, status\n      )\n    values (#{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, #{icon,jdbcType=VARCHAR}, \n      #{email,jdbcType=VARCHAR}, #{nickName,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, \n      #{createTime,jdbcType=TIMESTAMP}, #{loginTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsAdmin\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_admin\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"username != null\">\n        username,\n      </if>\n      <if test=\"password != null\">\n        password,\n      </if>\n      <if test=\"icon != null\">\n        icon,\n      </if>\n      <if test=\"email != null\">\n        email,\n      </if>\n      <if test=\"nickName != null\">\n        nick_name,\n      </if>\n      <if test=\"note != null\">\n        note,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"loginTime != null\">\n        login_time,\n      </if>\n      <if test=\"status != null\">\n        status,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"username != null\">\n        #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\">\n        #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"email != null\">\n        #{email,jdbcType=VARCHAR},\n      </if>\n      <if test=\"nickName != null\">\n        #{nickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"note != null\">\n        #{note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"loginTime != null\">\n        #{loginTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"status != null\">\n        #{status,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsAdminExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_admin\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_admin\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.username != null\">\n        username = #{row.username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.password != null\">\n        password = #{row.password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.icon != null\">\n        icon = #{row.icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.email != null\">\n        email = #{row.email,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.nickName != null\">\n        nick_name = #{row.nickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.note != null\">\n        note = #{row.note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.loginTime != null\">\n        login_time = #{row.loginTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.status != null\">\n        status = #{row.status,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_admin\n    set id = #{row.id,jdbcType=BIGINT},\n      username = #{row.username,jdbcType=VARCHAR},\n      password = #{row.password,jdbcType=VARCHAR},\n      icon = #{row.icon,jdbcType=VARCHAR},\n      email = #{row.email,jdbcType=VARCHAR},\n      nick_name = #{row.nickName,jdbcType=VARCHAR},\n      note = #{row.note,jdbcType=VARCHAR},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      login_time = #{row.loginTime,jdbcType=TIMESTAMP},\n      status = #{row.status,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsAdmin\">\n    update ums_admin\n    <set>\n      <if test=\"username != null\">\n        username = #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\">\n        password = #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        icon = #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"email != null\">\n        email = #{email,jdbcType=VARCHAR},\n      </if>\n      <if test=\"nickName != null\">\n        nick_name = #{nickName,jdbcType=VARCHAR},\n      </if>\n      <if test=\"note != null\">\n        note = #{note,jdbcType=VARCHAR},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"loginTime != null\">\n        login_time = #{loginTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"status != null\">\n        status = #{status,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsAdmin\">\n    update ums_admin\n    set username = #{username,jdbcType=VARCHAR},\n      password = #{password,jdbcType=VARCHAR},\n      icon = #{icon,jdbcType=VARCHAR},\n      email = #{email,jdbcType=VARCHAR},\n      nick_name = #{nickName,jdbcType=VARCHAR},\n      note = #{note,jdbcType=VARCHAR},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      login_time = #{loginTime,jdbcType=TIMESTAMP},\n      status = #{status,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsAdminPermissionRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsAdminPermissionRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsAdminPermissionRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"admin_id\" jdbcType=\"BIGINT\" property=\"adminId\" />\n    <result column=\"permission_id\" jdbcType=\"BIGINT\" property=\"permissionId\" />\n    <result column=\"type\" jdbcType=\"INTEGER\" property=\"type\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, admin_id, permission_id, type\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsAdminPermissionRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_admin_permission_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_admin_permission_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_admin_permission_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsAdminPermissionRelationExample\">\n    delete from ums_admin_permission_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsAdminPermissionRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_admin_permission_relation (admin_id, permission_id, type\n      )\n    values (#{adminId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT}, #{type,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsAdminPermissionRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_admin_permission_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"adminId != null\">\n        admin_id,\n      </if>\n      <if test=\"permissionId != null\">\n        permission_id,\n      </if>\n      <if test=\"type != null\">\n        type,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"adminId != null\">\n        #{adminId,jdbcType=BIGINT},\n      </if>\n      <if test=\"permissionId != null\">\n        #{permissionId,jdbcType=BIGINT},\n      </if>\n      <if test=\"type != null\">\n        #{type,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsAdminPermissionRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_admin_permission_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_admin_permission_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.adminId != null\">\n        admin_id = #{row.adminId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.permissionId != null\">\n        permission_id = #{row.permissionId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.type != null\">\n        type = #{row.type,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_admin_permission_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      admin_id = #{row.adminId,jdbcType=BIGINT},\n      permission_id = #{row.permissionId,jdbcType=BIGINT},\n      type = #{row.type,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsAdminPermissionRelation\">\n    update ums_admin_permission_relation\n    <set>\n      <if test=\"adminId != null\">\n        admin_id = #{adminId,jdbcType=BIGINT},\n      </if>\n      <if test=\"permissionId != null\">\n        permission_id = #{permissionId,jdbcType=BIGINT},\n      </if>\n      <if test=\"type != null\">\n        type = #{type,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsAdminPermissionRelation\">\n    update ums_admin_permission_relation\n    set admin_id = #{adminId,jdbcType=BIGINT},\n      permission_id = #{permissionId,jdbcType=BIGINT},\n      type = #{type,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsAdminRoleRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsAdminRoleRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsAdminRoleRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"admin_id\" jdbcType=\"BIGINT\" property=\"adminId\" />\n    <result column=\"role_id\" jdbcType=\"BIGINT\" property=\"roleId\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, admin_id, role_id\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsAdminRoleRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_admin_role_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_admin_role_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_admin_role_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsAdminRoleRelationExample\">\n    delete from ums_admin_role_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsAdminRoleRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_admin_role_relation (admin_id, role_id)\n    values (#{adminId,jdbcType=BIGINT}, #{roleId,jdbcType=BIGINT})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsAdminRoleRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_admin_role_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"adminId != null\">\n        admin_id,\n      </if>\n      <if test=\"roleId != null\">\n        role_id,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"adminId != null\">\n        #{adminId,jdbcType=BIGINT},\n      </if>\n      <if test=\"roleId != null\">\n        #{roleId,jdbcType=BIGINT},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsAdminRoleRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_admin_role_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_admin_role_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.adminId != null\">\n        admin_id = #{row.adminId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.roleId != null\">\n        role_id = #{row.roleId,jdbcType=BIGINT},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_admin_role_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      admin_id = #{row.adminId,jdbcType=BIGINT},\n      role_id = #{row.roleId,jdbcType=BIGINT}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsAdminRoleRelation\">\n    update ums_admin_role_relation\n    <set>\n      <if test=\"adminId != null\">\n        admin_id = #{adminId,jdbcType=BIGINT},\n      </if>\n      <if test=\"roleId != null\">\n        role_id = #{roleId,jdbcType=BIGINT},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsAdminRoleRelation\">\n    update ums_admin_role_relation\n    set admin_id = #{adminId,jdbcType=BIGINT},\n      role_id = #{roleId,jdbcType=BIGINT}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsGrowthChangeHistoryMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsGrowthChangeHistoryMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsGrowthChangeHistory\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"member_id\" jdbcType=\"BIGINT\" property=\"memberId\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"change_type\" jdbcType=\"INTEGER\" property=\"changeType\" />\n    <result column=\"change_count\" jdbcType=\"INTEGER\" property=\"changeCount\" />\n    <result column=\"operate_man\" jdbcType=\"VARCHAR\" property=\"operateMan\" />\n    <result column=\"operate_note\" jdbcType=\"VARCHAR\" property=\"operateNote\" />\n    <result column=\"source_type\" jdbcType=\"INTEGER\" property=\"sourceType\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, member_id, create_time, change_type, change_count, operate_man, operate_note, \n    source_type\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsGrowthChangeHistoryExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_growth_change_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_growth_change_history\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_growth_change_history\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsGrowthChangeHistoryExample\">\n    delete from ums_growth_change_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsGrowthChangeHistory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_growth_change_history (member_id, create_time, change_type, \n      change_count, operate_man, operate_note, \n      source_type)\n    values (#{memberId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{changeType,jdbcType=INTEGER}, \n      #{changeCount,jdbcType=INTEGER}, #{operateMan,jdbcType=VARCHAR}, #{operateNote,jdbcType=VARCHAR}, \n      #{sourceType,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsGrowthChangeHistory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_growth_change_history\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        member_id,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"changeType != null\">\n        change_type,\n      </if>\n      <if test=\"changeCount != null\">\n        change_count,\n      </if>\n      <if test=\"operateMan != null\">\n        operate_man,\n      </if>\n      <if test=\"operateNote != null\">\n        operate_note,\n      </if>\n      <if test=\"sourceType != null\">\n        source_type,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"changeType != null\">\n        #{changeType,jdbcType=INTEGER},\n      </if>\n      <if test=\"changeCount != null\">\n        #{changeCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"operateMan != null\">\n        #{operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"operateNote != null\">\n        #{operateNote,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sourceType != null\">\n        #{sourceType,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsGrowthChangeHistoryExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_growth_change_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_growth_change_history\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberId != null\">\n        member_id = #{row.memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.changeType != null\">\n        change_type = #{row.changeType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.changeCount != null\">\n        change_count = #{row.changeCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.operateMan != null\">\n        operate_man = #{row.operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.operateNote != null\">\n        operate_note = #{row.operateNote,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.sourceType != null\">\n        source_type = #{row.sourceType,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_growth_change_history\n    set id = #{row.id,jdbcType=BIGINT},\n      member_id = #{row.memberId,jdbcType=BIGINT},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      change_type = #{row.changeType,jdbcType=INTEGER},\n      change_count = #{row.changeCount,jdbcType=INTEGER},\n      operate_man = #{row.operateMan,jdbcType=VARCHAR},\n      operate_note = #{row.operateNote,jdbcType=VARCHAR},\n      source_type = #{row.sourceType,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsGrowthChangeHistory\">\n    update ums_growth_change_history\n    <set>\n      <if test=\"memberId != null\">\n        member_id = #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"changeType != null\">\n        change_type = #{changeType,jdbcType=INTEGER},\n      </if>\n      <if test=\"changeCount != null\">\n        change_count = #{changeCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"operateMan != null\">\n        operate_man = #{operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"operateNote != null\">\n        operate_note = #{operateNote,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sourceType != null\">\n        source_type = #{sourceType,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsGrowthChangeHistory\">\n    update ums_growth_change_history\n    set member_id = #{memberId,jdbcType=BIGINT},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      change_type = #{changeType,jdbcType=INTEGER},\n      change_count = #{changeCount,jdbcType=INTEGER},\n      operate_man = #{operateMan,jdbcType=VARCHAR},\n      operate_note = #{operateNote,jdbcType=VARCHAR},\n      source_type = #{sourceType,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsIntegrationChangeHistoryMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsIntegrationChangeHistoryMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsIntegrationChangeHistory\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"member_id\" jdbcType=\"BIGINT\" property=\"memberId\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"change_type\" jdbcType=\"INTEGER\" property=\"changeType\" />\n    <result column=\"change_count\" jdbcType=\"INTEGER\" property=\"changeCount\" />\n    <result column=\"operate_man\" jdbcType=\"VARCHAR\" property=\"operateMan\" />\n    <result column=\"operate_note\" jdbcType=\"VARCHAR\" property=\"operateNote\" />\n    <result column=\"source_type\" jdbcType=\"INTEGER\" property=\"sourceType\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, member_id, create_time, change_type, change_count, operate_man, operate_note, \n    source_type\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsIntegrationChangeHistoryExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_integration_change_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_integration_change_history\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_integration_change_history\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsIntegrationChangeHistoryExample\">\n    delete from ums_integration_change_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsIntegrationChangeHistory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_integration_change_history (member_id, create_time, change_type, \n      change_count, operate_man, operate_note, \n      source_type)\n    values (#{memberId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{changeType,jdbcType=INTEGER}, \n      #{changeCount,jdbcType=INTEGER}, #{operateMan,jdbcType=VARCHAR}, #{operateNote,jdbcType=VARCHAR}, \n      #{sourceType,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsIntegrationChangeHistory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_integration_change_history\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        member_id,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"changeType != null\">\n        change_type,\n      </if>\n      <if test=\"changeCount != null\">\n        change_count,\n      </if>\n      <if test=\"operateMan != null\">\n        operate_man,\n      </if>\n      <if test=\"operateNote != null\">\n        operate_note,\n      </if>\n      <if test=\"sourceType != null\">\n        source_type,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"changeType != null\">\n        #{changeType,jdbcType=INTEGER},\n      </if>\n      <if test=\"changeCount != null\">\n        #{changeCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"operateMan != null\">\n        #{operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"operateNote != null\">\n        #{operateNote,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sourceType != null\">\n        #{sourceType,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsIntegrationChangeHistoryExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_integration_change_history\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_integration_change_history\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberId != null\">\n        member_id = #{row.memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.changeType != null\">\n        change_type = #{row.changeType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.changeCount != null\">\n        change_count = #{row.changeCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.operateMan != null\">\n        operate_man = #{row.operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.operateNote != null\">\n        operate_note = #{row.operateNote,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.sourceType != null\">\n        source_type = #{row.sourceType,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_integration_change_history\n    set id = #{row.id,jdbcType=BIGINT},\n      member_id = #{row.memberId,jdbcType=BIGINT},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      change_type = #{row.changeType,jdbcType=INTEGER},\n      change_count = #{row.changeCount,jdbcType=INTEGER},\n      operate_man = #{row.operateMan,jdbcType=VARCHAR},\n      operate_note = #{row.operateNote,jdbcType=VARCHAR},\n      source_type = #{row.sourceType,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsIntegrationChangeHistory\">\n    update ums_integration_change_history\n    <set>\n      <if test=\"memberId != null\">\n        member_id = #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"changeType != null\">\n        change_type = #{changeType,jdbcType=INTEGER},\n      </if>\n      <if test=\"changeCount != null\">\n        change_count = #{changeCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"operateMan != null\">\n        operate_man = #{operateMan,jdbcType=VARCHAR},\n      </if>\n      <if test=\"operateNote != null\">\n        operate_note = #{operateNote,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sourceType != null\">\n        source_type = #{sourceType,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsIntegrationChangeHistory\">\n    update ums_integration_change_history\n    set member_id = #{memberId,jdbcType=BIGINT},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      change_type = #{changeType,jdbcType=INTEGER},\n      change_count = #{changeCount,jdbcType=INTEGER},\n      operate_man = #{operateMan,jdbcType=VARCHAR},\n      operate_note = #{operateNote,jdbcType=VARCHAR},\n      source_type = #{sourceType,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsIntegrationConsumeSettingMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsIntegrationConsumeSettingMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsIntegrationConsumeSetting\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"deduction_per_amount\" jdbcType=\"INTEGER\" property=\"deductionPerAmount\" />\n    <result column=\"max_percent_per_order\" jdbcType=\"INTEGER\" property=\"maxPercentPerOrder\" />\n    <result column=\"use_unit\" jdbcType=\"INTEGER\" property=\"useUnit\" />\n    <result column=\"coupon_status\" jdbcType=\"INTEGER\" property=\"couponStatus\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, deduction_per_amount, max_percent_per_order, use_unit, coupon_status\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsIntegrationConsumeSettingExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_integration_consume_setting\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_integration_consume_setting\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_integration_consume_setting\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsIntegrationConsumeSettingExample\">\n    delete from ums_integration_consume_setting\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsIntegrationConsumeSetting\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_integration_consume_setting (deduction_per_amount, max_percent_per_order, \n      use_unit, coupon_status)\n    values (#{deductionPerAmount,jdbcType=INTEGER}, #{maxPercentPerOrder,jdbcType=INTEGER}, \n      #{useUnit,jdbcType=INTEGER}, #{couponStatus,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsIntegrationConsumeSetting\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_integration_consume_setting\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"deductionPerAmount != null\">\n        deduction_per_amount,\n      </if>\n      <if test=\"maxPercentPerOrder != null\">\n        max_percent_per_order,\n      </if>\n      <if test=\"useUnit != null\">\n        use_unit,\n      </if>\n      <if test=\"couponStatus != null\">\n        coupon_status,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"deductionPerAmount != null\">\n        #{deductionPerAmount,jdbcType=INTEGER},\n      </if>\n      <if test=\"maxPercentPerOrder != null\">\n        #{maxPercentPerOrder,jdbcType=INTEGER},\n      </if>\n      <if test=\"useUnit != null\">\n        #{useUnit,jdbcType=INTEGER},\n      </if>\n      <if test=\"couponStatus != null\">\n        #{couponStatus,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsIntegrationConsumeSettingExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_integration_consume_setting\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_integration_consume_setting\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.deductionPerAmount != null\">\n        deduction_per_amount = #{row.deductionPerAmount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.maxPercentPerOrder != null\">\n        max_percent_per_order = #{row.maxPercentPerOrder,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.useUnit != null\">\n        use_unit = #{row.useUnit,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.couponStatus != null\">\n        coupon_status = #{row.couponStatus,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_integration_consume_setting\n    set id = #{row.id,jdbcType=BIGINT},\n      deduction_per_amount = #{row.deductionPerAmount,jdbcType=INTEGER},\n      max_percent_per_order = #{row.maxPercentPerOrder,jdbcType=INTEGER},\n      use_unit = #{row.useUnit,jdbcType=INTEGER},\n      coupon_status = #{row.couponStatus,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsIntegrationConsumeSetting\">\n    update ums_integration_consume_setting\n    <set>\n      <if test=\"deductionPerAmount != null\">\n        deduction_per_amount = #{deductionPerAmount,jdbcType=INTEGER},\n      </if>\n      <if test=\"maxPercentPerOrder != null\">\n        max_percent_per_order = #{maxPercentPerOrder,jdbcType=INTEGER},\n      </if>\n      <if test=\"useUnit != null\">\n        use_unit = #{useUnit,jdbcType=INTEGER},\n      </if>\n      <if test=\"couponStatus != null\">\n        coupon_status = #{couponStatus,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsIntegrationConsumeSetting\">\n    update ums_integration_consume_setting\n    set deduction_per_amount = #{deductionPerAmount,jdbcType=INTEGER},\n      max_percent_per_order = #{maxPercentPerOrder,jdbcType=INTEGER},\n      use_unit = #{useUnit,jdbcType=INTEGER},\n      coupon_status = #{couponStatus,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsMemberLevelMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsMemberLevelMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsMemberLevel\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"growth_point\" jdbcType=\"INTEGER\" property=\"growthPoint\" />\n    <result column=\"default_status\" jdbcType=\"INTEGER\" property=\"defaultStatus\" />\n    <result column=\"free_freight_point\" jdbcType=\"DECIMAL\" property=\"freeFreightPoint\" />\n    <result column=\"comment_growth_point\" jdbcType=\"INTEGER\" property=\"commentGrowthPoint\" />\n    <result column=\"priviledge_free_freight\" jdbcType=\"INTEGER\" property=\"priviledgeFreeFreight\" />\n    <result column=\"priviledge_sign_in\" jdbcType=\"INTEGER\" property=\"priviledgeSignIn\" />\n    <result column=\"priviledge_comment\" jdbcType=\"INTEGER\" property=\"priviledgeComment\" />\n    <result column=\"priviledge_promotion\" jdbcType=\"INTEGER\" property=\"priviledgePromotion\" />\n    <result column=\"priviledge_member_price\" jdbcType=\"INTEGER\" property=\"priviledgeMemberPrice\" />\n    <result column=\"priviledge_birthday\" jdbcType=\"INTEGER\" property=\"priviledgeBirthday\" />\n    <result column=\"note\" jdbcType=\"VARCHAR\" property=\"note\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, growth_point, default_status, free_freight_point, comment_growth_point, \n    priviledge_free_freight, priviledge_sign_in, priviledge_comment, priviledge_promotion, \n    priviledge_member_price, priviledge_birthday, note\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsMemberLevelExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_member_level\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_member_level\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_member_level\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsMemberLevelExample\">\n    delete from ums_member_level\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsMemberLevel\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_level (name, growth_point, default_status, \n      free_freight_point, comment_growth_point, priviledge_free_freight, \n      priviledge_sign_in, priviledge_comment, priviledge_promotion, \n      priviledge_member_price, priviledge_birthday, \n      note)\n    values (#{name,jdbcType=VARCHAR}, #{growthPoint,jdbcType=INTEGER}, #{defaultStatus,jdbcType=INTEGER}, \n      #{freeFreightPoint,jdbcType=DECIMAL}, #{commentGrowthPoint,jdbcType=INTEGER}, #{priviledgeFreeFreight,jdbcType=INTEGER}, \n      #{priviledgeSignIn,jdbcType=INTEGER}, #{priviledgeComment,jdbcType=INTEGER}, #{priviledgePromotion,jdbcType=INTEGER}, \n      #{priviledgeMemberPrice,jdbcType=INTEGER}, #{priviledgeBirthday,jdbcType=INTEGER}, \n      #{note,jdbcType=VARCHAR})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsMemberLevel\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_level\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"growthPoint != null\">\n        growth_point,\n      </if>\n      <if test=\"defaultStatus != null\">\n        default_status,\n      </if>\n      <if test=\"freeFreightPoint != null\">\n        free_freight_point,\n      </if>\n      <if test=\"commentGrowthPoint != null\">\n        comment_growth_point,\n      </if>\n      <if test=\"priviledgeFreeFreight != null\">\n        priviledge_free_freight,\n      </if>\n      <if test=\"priviledgeSignIn != null\">\n        priviledge_sign_in,\n      </if>\n      <if test=\"priviledgeComment != null\">\n        priviledge_comment,\n      </if>\n      <if test=\"priviledgePromotion != null\">\n        priviledge_promotion,\n      </if>\n      <if test=\"priviledgeMemberPrice != null\">\n        priviledge_member_price,\n      </if>\n      <if test=\"priviledgeBirthday != null\">\n        priviledge_birthday,\n      </if>\n      <if test=\"note != null\">\n        note,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"growthPoint != null\">\n        #{growthPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"defaultStatus != null\">\n        #{defaultStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"freeFreightPoint != null\">\n        #{freeFreightPoint,jdbcType=DECIMAL},\n      </if>\n      <if test=\"commentGrowthPoint != null\">\n        #{commentGrowthPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgeFreeFreight != null\">\n        #{priviledgeFreeFreight,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgeSignIn != null\">\n        #{priviledgeSignIn,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgeComment != null\">\n        #{priviledgeComment,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgePromotion != null\">\n        #{priviledgePromotion,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgeMemberPrice != null\">\n        #{priviledgeMemberPrice,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgeBirthday != null\">\n        #{priviledgeBirthday,jdbcType=INTEGER},\n      </if>\n      <if test=\"note != null\">\n        #{note,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsMemberLevelExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_member_level\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_member_level\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.growthPoint != null\">\n        growth_point = #{row.growthPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.defaultStatus != null\">\n        default_status = #{row.defaultStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.freeFreightPoint != null\">\n        free_freight_point = #{row.freeFreightPoint,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.commentGrowthPoint != null\">\n        comment_growth_point = #{row.commentGrowthPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.priviledgeFreeFreight != null\">\n        priviledge_free_freight = #{row.priviledgeFreeFreight,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.priviledgeSignIn != null\">\n        priviledge_sign_in = #{row.priviledgeSignIn,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.priviledgeComment != null\">\n        priviledge_comment = #{row.priviledgeComment,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.priviledgePromotion != null\">\n        priviledge_promotion = #{row.priviledgePromotion,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.priviledgeMemberPrice != null\">\n        priviledge_member_price = #{row.priviledgeMemberPrice,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.priviledgeBirthday != null\">\n        priviledge_birthday = #{row.priviledgeBirthday,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.note != null\">\n        note = #{row.note,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_member_level\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      growth_point = #{row.growthPoint,jdbcType=INTEGER},\n      default_status = #{row.defaultStatus,jdbcType=INTEGER},\n      free_freight_point = #{row.freeFreightPoint,jdbcType=DECIMAL},\n      comment_growth_point = #{row.commentGrowthPoint,jdbcType=INTEGER},\n      priviledge_free_freight = #{row.priviledgeFreeFreight,jdbcType=INTEGER},\n      priviledge_sign_in = #{row.priviledgeSignIn,jdbcType=INTEGER},\n      priviledge_comment = #{row.priviledgeComment,jdbcType=INTEGER},\n      priviledge_promotion = #{row.priviledgePromotion,jdbcType=INTEGER},\n      priviledge_member_price = #{row.priviledgeMemberPrice,jdbcType=INTEGER},\n      priviledge_birthday = #{row.priviledgeBirthday,jdbcType=INTEGER},\n      note = #{row.note,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsMemberLevel\">\n    update ums_member_level\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"growthPoint != null\">\n        growth_point = #{growthPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"defaultStatus != null\">\n        default_status = #{defaultStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"freeFreightPoint != null\">\n        free_freight_point = #{freeFreightPoint,jdbcType=DECIMAL},\n      </if>\n      <if test=\"commentGrowthPoint != null\">\n        comment_growth_point = #{commentGrowthPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgeFreeFreight != null\">\n        priviledge_free_freight = #{priviledgeFreeFreight,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgeSignIn != null\">\n        priviledge_sign_in = #{priviledgeSignIn,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgeComment != null\">\n        priviledge_comment = #{priviledgeComment,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgePromotion != null\">\n        priviledge_promotion = #{priviledgePromotion,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgeMemberPrice != null\">\n        priviledge_member_price = #{priviledgeMemberPrice,jdbcType=INTEGER},\n      </if>\n      <if test=\"priviledgeBirthday != null\">\n        priviledge_birthday = #{priviledgeBirthday,jdbcType=INTEGER},\n      </if>\n      <if test=\"note != null\">\n        note = #{note,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsMemberLevel\">\n    update ums_member_level\n    set name = #{name,jdbcType=VARCHAR},\n      growth_point = #{growthPoint,jdbcType=INTEGER},\n      default_status = #{defaultStatus,jdbcType=INTEGER},\n      free_freight_point = #{freeFreightPoint,jdbcType=DECIMAL},\n      comment_growth_point = #{commentGrowthPoint,jdbcType=INTEGER},\n      priviledge_free_freight = #{priviledgeFreeFreight,jdbcType=INTEGER},\n      priviledge_sign_in = #{priviledgeSignIn,jdbcType=INTEGER},\n      priviledge_comment = #{priviledgeComment,jdbcType=INTEGER},\n      priviledge_promotion = #{priviledgePromotion,jdbcType=INTEGER},\n      priviledge_member_price = #{priviledgeMemberPrice,jdbcType=INTEGER},\n      priviledge_birthday = #{priviledgeBirthday,jdbcType=INTEGER},\n      note = #{note,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsMemberLoginLogMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsMemberLoginLogMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsMemberLoginLog\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"member_id\" jdbcType=\"BIGINT\" property=\"memberId\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"ip\" jdbcType=\"VARCHAR\" property=\"ip\" />\n    <result column=\"city\" jdbcType=\"VARCHAR\" property=\"city\" />\n    <result column=\"login_type\" jdbcType=\"INTEGER\" property=\"loginType\" />\n    <result column=\"province\" jdbcType=\"VARCHAR\" property=\"province\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, member_id, create_time, ip, city, login_type, province\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsMemberLoginLogExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_member_login_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_member_login_log\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_member_login_log\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsMemberLoginLogExample\">\n    delete from ums_member_login_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsMemberLoginLog\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_login_log (member_id, create_time, ip, \n      city, login_type, province\n      )\n    values (#{memberId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{ip,jdbcType=VARCHAR}, \n      #{city,jdbcType=VARCHAR}, #{loginType,jdbcType=INTEGER}, #{province,jdbcType=VARCHAR}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsMemberLoginLog\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_login_log\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        member_id,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"ip != null\">\n        ip,\n      </if>\n      <if test=\"city != null\">\n        city,\n      </if>\n      <if test=\"loginType != null\">\n        login_type,\n      </if>\n      <if test=\"province != null\">\n        province,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"ip != null\">\n        #{ip,jdbcType=VARCHAR},\n      </if>\n      <if test=\"city != null\">\n        #{city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"loginType != null\">\n        #{loginType,jdbcType=INTEGER},\n      </if>\n      <if test=\"province != null\">\n        #{province,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsMemberLoginLogExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_member_login_log\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_member_login_log\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberId != null\">\n        member_id = #{row.memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.ip != null\">\n        ip = #{row.ip,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.city != null\">\n        city = #{row.city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.loginType != null\">\n        login_type = #{row.loginType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.province != null\">\n        province = #{row.province,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_member_login_log\n    set id = #{row.id,jdbcType=BIGINT},\n      member_id = #{row.memberId,jdbcType=BIGINT},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      ip = #{row.ip,jdbcType=VARCHAR},\n      city = #{row.city,jdbcType=VARCHAR},\n      login_type = #{row.loginType,jdbcType=INTEGER},\n      province = #{row.province,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsMemberLoginLog\">\n    update ums_member_login_log\n    <set>\n      <if test=\"memberId != null\">\n        member_id = #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"ip != null\">\n        ip = #{ip,jdbcType=VARCHAR},\n      </if>\n      <if test=\"city != null\">\n        city = #{city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"loginType != null\">\n        login_type = #{loginType,jdbcType=INTEGER},\n      </if>\n      <if test=\"province != null\">\n        province = #{province,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsMemberLoginLog\">\n    update ums_member_login_log\n    set member_id = #{memberId,jdbcType=BIGINT},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      ip = #{ip,jdbcType=VARCHAR},\n      city = #{city,jdbcType=VARCHAR},\n      login_type = #{loginType,jdbcType=INTEGER},\n      province = #{province,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsMemberMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsMemberMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsMember\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"member_level_id\" jdbcType=\"BIGINT\" property=\"memberLevelId\" />\n    <result column=\"username\" jdbcType=\"VARCHAR\" property=\"username\" />\n    <result column=\"password\" jdbcType=\"VARCHAR\" property=\"password\" />\n    <result column=\"nickname\" jdbcType=\"VARCHAR\" property=\"nickname\" />\n    <result column=\"phone\" jdbcType=\"VARCHAR\" property=\"phone\" />\n    <result column=\"status\" jdbcType=\"INTEGER\" property=\"status\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"icon\" jdbcType=\"VARCHAR\" property=\"icon\" />\n    <result column=\"gender\" jdbcType=\"INTEGER\" property=\"gender\" />\n    <result column=\"birthday\" jdbcType=\"DATE\" property=\"birthday\" />\n    <result column=\"city\" jdbcType=\"VARCHAR\" property=\"city\" />\n    <result column=\"job\" jdbcType=\"VARCHAR\" property=\"job\" />\n    <result column=\"personalized_signature\" jdbcType=\"VARCHAR\" property=\"personalizedSignature\" />\n    <result column=\"source_type\" jdbcType=\"INTEGER\" property=\"sourceType\" />\n    <result column=\"integration\" jdbcType=\"INTEGER\" property=\"integration\" />\n    <result column=\"growth\" jdbcType=\"INTEGER\" property=\"growth\" />\n    <result column=\"luckey_count\" jdbcType=\"INTEGER\" property=\"luckeyCount\" />\n    <result column=\"history_integration\" jdbcType=\"INTEGER\" property=\"historyIntegration\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, member_level_id, username, password, nickname, phone, status, create_time, icon, \n    gender, birthday, city, job, personalized_signature, source_type, integration, growth, \n    luckey_count, history_integration\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsMemberExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_member\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_member\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_member\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsMemberExample\">\n    delete from ums_member\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsMember\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member (member_level_id, username, password, \n      nickname, phone, status, \n      create_time, icon, gender, \n      birthday, city, job, personalized_signature, \n      source_type, integration, growth, \n      luckey_count, history_integration)\n    values (#{memberLevelId,jdbcType=BIGINT}, #{username,jdbcType=VARCHAR}, #{password,jdbcType=VARCHAR}, \n      #{nickname,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, \n      #{createTime,jdbcType=TIMESTAMP}, #{icon,jdbcType=VARCHAR}, #{gender,jdbcType=INTEGER}, \n      #{birthday,jdbcType=DATE}, #{city,jdbcType=VARCHAR}, #{job,jdbcType=VARCHAR}, #{personalizedSignature,jdbcType=VARCHAR}, \n      #{sourceType,jdbcType=INTEGER}, #{integration,jdbcType=INTEGER}, #{growth,jdbcType=INTEGER}, \n      #{luckeyCount,jdbcType=INTEGER}, #{historyIntegration,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsMember\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberLevelId != null\">\n        member_level_id,\n      </if>\n      <if test=\"username != null\">\n        username,\n      </if>\n      <if test=\"password != null\">\n        password,\n      </if>\n      <if test=\"nickname != null\">\n        nickname,\n      </if>\n      <if test=\"phone != null\">\n        phone,\n      </if>\n      <if test=\"status != null\">\n        status,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"icon != null\">\n        icon,\n      </if>\n      <if test=\"gender != null\">\n        gender,\n      </if>\n      <if test=\"birthday != null\">\n        birthday,\n      </if>\n      <if test=\"city != null\">\n        city,\n      </if>\n      <if test=\"job != null\">\n        job,\n      </if>\n      <if test=\"personalizedSignature != null\">\n        personalized_signature,\n      </if>\n      <if test=\"sourceType != null\">\n        source_type,\n      </if>\n      <if test=\"integration != null\">\n        integration,\n      </if>\n      <if test=\"growth != null\">\n        growth,\n      </if>\n      <if test=\"luckeyCount != null\">\n        luckey_count,\n      </if>\n      <if test=\"historyIntegration != null\">\n        history_integration,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberLevelId != null\">\n        #{memberLevelId,jdbcType=BIGINT},\n      </if>\n      <if test=\"username != null\">\n        #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\">\n        #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"nickname != null\">\n        #{nickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"phone != null\">\n        #{phone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"status != null\">\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"icon != null\">\n        #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"gender != null\">\n        #{gender,jdbcType=INTEGER},\n      </if>\n      <if test=\"birthday != null\">\n        #{birthday,jdbcType=DATE},\n      </if>\n      <if test=\"city != null\">\n        #{city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"job != null\">\n        #{job,jdbcType=VARCHAR},\n      </if>\n      <if test=\"personalizedSignature != null\">\n        #{personalizedSignature,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sourceType != null\">\n        #{sourceType,jdbcType=INTEGER},\n      </if>\n      <if test=\"integration != null\">\n        #{integration,jdbcType=INTEGER},\n      </if>\n      <if test=\"growth != null\">\n        #{growth,jdbcType=INTEGER},\n      </if>\n      <if test=\"luckeyCount != null\">\n        #{luckeyCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"historyIntegration != null\">\n        #{historyIntegration,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsMemberExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_member\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_member\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberLevelId != null\">\n        member_level_id = #{row.memberLevelId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.username != null\">\n        username = #{row.username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.password != null\">\n        password = #{row.password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.nickname != null\">\n        nickname = #{row.nickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.phone != null\">\n        phone = #{row.phone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.status != null\">\n        status = #{row.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.icon != null\">\n        icon = #{row.icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.gender != null\">\n        gender = #{row.gender,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.birthday != null\">\n        birthday = #{row.birthday,jdbcType=DATE},\n      </if>\n      <if test=\"row.city != null\">\n        city = #{row.city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.job != null\">\n        job = #{row.job,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.personalizedSignature != null\">\n        personalized_signature = #{row.personalizedSignature,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.sourceType != null\">\n        source_type = #{row.sourceType,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.integration != null\">\n        integration = #{row.integration,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.growth != null\">\n        growth = #{row.growth,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.luckeyCount != null\">\n        luckey_count = #{row.luckeyCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.historyIntegration != null\">\n        history_integration = #{row.historyIntegration,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_member\n    set id = #{row.id,jdbcType=BIGINT},\n      member_level_id = #{row.memberLevelId,jdbcType=BIGINT},\n      username = #{row.username,jdbcType=VARCHAR},\n      password = #{row.password,jdbcType=VARCHAR},\n      nickname = #{row.nickname,jdbcType=VARCHAR},\n      phone = #{row.phone,jdbcType=VARCHAR},\n      status = #{row.status,jdbcType=INTEGER},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      icon = #{row.icon,jdbcType=VARCHAR},\n      gender = #{row.gender,jdbcType=INTEGER},\n      birthday = #{row.birthday,jdbcType=DATE},\n      city = #{row.city,jdbcType=VARCHAR},\n      job = #{row.job,jdbcType=VARCHAR},\n      personalized_signature = #{row.personalizedSignature,jdbcType=VARCHAR},\n      source_type = #{row.sourceType,jdbcType=INTEGER},\n      integration = #{row.integration,jdbcType=INTEGER},\n      growth = #{row.growth,jdbcType=INTEGER},\n      luckey_count = #{row.luckeyCount,jdbcType=INTEGER},\n      history_integration = #{row.historyIntegration,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsMember\">\n    update ums_member\n    <set>\n      <if test=\"memberLevelId != null\">\n        member_level_id = #{memberLevelId,jdbcType=BIGINT},\n      </if>\n      <if test=\"username != null\">\n        username = #{username,jdbcType=VARCHAR},\n      </if>\n      <if test=\"password != null\">\n        password = #{password,jdbcType=VARCHAR},\n      </if>\n      <if test=\"nickname != null\">\n        nickname = #{nickname,jdbcType=VARCHAR},\n      </if>\n      <if test=\"phone != null\">\n        phone = #{phone,jdbcType=VARCHAR},\n      </if>\n      <if test=\"status != null\">\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"icon != null\">\n        icon = #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"gender != null\">\n        gender = #{gender,jdbcType=INTEGER},\n      </if>\n      <if test=\"birthday != null\">\n        birthday = #{birthday,jdbcType=DATE},\n      </if>\n      <if test=\"city != null\">\n        city = #{city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"job != null\">\n        job = #{job,jdbcType=VARCHAR},\n      </if>\n      <if test=\"personalizedSignature != null\">\n        personalized_signature = #{personalizedSignature,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sourceType != null\">\n        source_type = #{sourceType,jdbcType=INTEGER},\n      </if>\n      <if test=\"integration != null\">\n        integration = #{integration,jdbcType=INTEGER},\n      </if>\n      <if test=\"growth != null\">\n        growth = #{growth,jdbcType=INTEGER},\n      </if>\n      <if test=\"luckeyCount != null\">\n        luckey_count = #{luckeyCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"historyIntegration != null\">\n        history_integration = #{historyIntegration,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsMember\">\n    update ums_member\n    set member_level_id = #{memberLevelId,jdbcType=BIGINT},\n      username = #{username,jdbcType=VARCHAR},\n      password = #{password,jdbcType=VARCHAR},\n      nickname = #{nickname,jdbcType=VARCHAR},\n      phone = #{phone,jdbcType=VARCHAR},\n      status = #{status,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      icon = #{icon,jdbcType=VARCHAR},\n      gender = #{gender,jdbcType=INTEGER},\n      birthday = #{birthday,jdbcType=DATE},\n      city = #{city,jdbcType=VARCHAR},\n      job = #{job,jdbcType=VARCHAR},\n      personalized_signature = #{personalizedSignature,jdbcType=VARCHAR},\n      source_type = #{sourceType,jdbcType=INTEGER},\n      integration = #{integration,jdbcType=INTEGER},\n      growth = #{growth,jdbcType=INTEGER},\n      luckey_count = #{luckeyCount,jdbcType=INTEGER},\n      history_integration = #{historyIntegration,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsMemberMemberTagRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsMemberMemberTagRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsMemberMemberTagRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"member_id\" jdbcType=\"BIGINT\" property=\"memberId\" />\n    <result column=\"tag_id\" jdbcType=\"BIGINT\" property=\"tagId\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, member_id, tag_id\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsMemberMemberTagRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_member_member_tag_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_member_member_tag_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_member_member_tag_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsMemberMemberTagRelationExample\">\n    delete from ums_member_member_tag_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsMemberMemberTagRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_member_tag_relation (member_id, tag_id)\n    values (#{memberId,jdbcType=BIGINT}, #{tagId,jdbcType=BIGINT})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsMemberMemberTagRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_member_tag_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        member_id,\n      </if>\n      <if test=\"tagId != null\">\n        tag_id,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"tagId != null\">\n        #{tagId,jdbcType=BIGINT},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsMemberMemberTagRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_member_member_tag_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_member_member_tag_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberId != null\">\n        member_id = #{row.memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.tagId != null\">\n        tag_id = #{row.tagId,jdbcType=BIGINT},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_member_member_tag_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      member_id = #{row.memberId,jdbcType=BIGINT},\n      tag_id = #{row.tagId,jdbcType=BIGINT}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsMemberMemberTagRelation\">\n    update ums_member_member_tag_relation\n    <set>\n      <if test=\"memberId != null\">\n        member_id = #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"tagId != null\">\n        tag_id = #{tagId,jdbcType=BIGINT},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsMemberMemberTagRelation\">\n    update ums_member_member_tag_relation\n    set member_id = #{memberId,jdbcType=BIGINT},\n      tag_id = #{tagId,jdbcType=BIGINT}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsMemberProductCategoryRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsMemberProductCategoryRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsMemberProductCategoryRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"member_id\" jdbcType=\"BIGINT\" property=\"memberId\" />\n    <result column=\"product_category_id\" jdbcType=\"BIGINT\" property=\"productCategoryId\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, member_id, product_category_id\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsMemberProductCategoryRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_member_product_category_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_member_product_category_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_member_product_category_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsMemberProductCategoryRelationExample\">\n    delete from ums_member_product_category_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsMemberProductCategoryRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_product_category_relation (member_id, product_category_id)\n    values (#{memberId,jdbcType=BIGINT}, #{productCategoryId,jdbcType=BIGINT})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsMemberProductCategoryRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_product_category_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        member_id,\n      </if>\n      <if test=\"productCategoryId != null\">\n        product_category_id,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productCategoryId != null\">\n        #{productCategoryId,jdbcType=BIGINT},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsMemberProductCategoryRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_member_product_category_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_member_product_category_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberId != null\">\n        member_id = #{row.memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.productCategoryId != null\">\n        product_category_id = #{row.productCategoryId,jdbcType=BIGINT},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_member_product_category_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      member_id = #{row.memberId,jdbcType=BIGINT},\n      product_category_id = #{row.productCategoryId,jdbcType=BIGINT}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsMemberProductCategoryRelation\">\n    update ums_member_product_category_relation\n    <set>\n      <if test=\"memberId != null\">\n        member_id = #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"productCategoryId != null\">\n        product_category_id = #{productCategoryId,jdbcType=BIGINT},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsMemberProductCategoryRelation\">\n    update ums_member_product_category_relation\n    set member_id = #{memberId,jdbcType=BIGINT},\n      product_category_id = #{productCategoryId,jdbcType=BIGINT}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsMemberReceiveAddressMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsMemberReceiveAddressMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsMemberReceiveAddress\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"member_id\" jdbcType=\"BIGINT\" property=\"memberId\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"phone_number\" jdbcType=\"VARCHAR\" property=\"phoneNumber\" />\n    <result column=\"default_status\" jdbcType=\"INTEGER\" property=\"defaultStatus\" />\n    <result column=\"post_code\" jdbcType=\"VARCHAR\" property=\"postCode\" />\n    <result column=\"province\" jdbcType=\"VARCHAR\" property=\"province\" />\n    <result column=\"city\" jdbcType=\"VARCHAR\" property=\"city\" />\n    <result column=\"region\" jdbcType=\"VARCHAR\" property=\"region\" />\n    <result column=\"detail_address\" jdbcType=\"VARCHAR\" property=\"detailAddress\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, member_id, name, phone_number, default_status, post_code, province, city, region, \n    detail_address\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsMemberReceiveAddressExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_member_receive_address\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_member_receive_address\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_member_receive_address\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsMemberReceiveAddressExample\">\n    delete from ums_member_receive_address\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsMemberReceiveAddress\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_receive_address (member_id, name, phone_number, \n      default_status, post_code, province, \n      city, region, detail_address\n      )\n    values (#{memberId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{phoneNumber,jdbcType=VARCHAR}, \n      #{defaultStatus,jdbcType=INTEGER}, #{postCode,jdbcType=VARCHAR}, #{province,jdbcType=VARCHAR}, \n      #{city,jdbcType=VARCHAR}, #{region,jdbcType=VARCHAR}, #{detailAddress,jdbcType=VARCHAR}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsMemberReceiveAddress\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_receive_address\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        member_id,\n      </if>\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"phoneNumber != null\">\n        phone_number,\n      </if>\n      <if test=\"defaultStatus != null\">\n        default_status,\n      </if>\n      <if test=\"postCode != null\">\n        post_code,\n      </if>\n      <if test=\"province != null\">\n        province,\n      </if>\n      <if test=\"city != null\">\n        city,\n      </if>\n      <if test=\"region != null\">\n        region,\n      </if>\n      <if test=\"detailAddress != null\">\n        detail_address,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"phoneNumber != null\">\n        #{phoneNumber,jdbcType=VARCHAR},\n      </if>\n      <if test=\"defaultStatus != null\">\n        #{defaultStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"postCode != null\">\n        #{postCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"province != null\">\n        #{province,jdbcType=VARCHAR},\n      </if>\n      <if test=\"city != null\">\n        #{city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"region != null\">\n        #{region,jdbcType=VARCHAR},\n      </if>\n      <if test=\"detailAddress != null\">\n        #{detailAddress,jdbcType=VARCHAR},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsMemberReceiveAddressExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_member_receive_address\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_member_receive_address\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberId != null\">\n        member_id = #{row.memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.phoneNumber != null\">\n        phone_number = #{row.phoneNumber,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.defaultStatus != null\">\n        default_status = #{row.defaultStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.postCode != null\">\n        post_code = #{row.postCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.province != null\">\n        province = #{row.province,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.city != null\">\n        city = #{row.city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.region != null\">\n        region = #{row.region,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.detailAddress != null\">\n        detail_address = #{row.detailAddress,jdbcType=VARCHAR},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_member_receive_address\n    set id = #{row.id,jdbcType=BIGINT},\n      member_id = #{row.memberId,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      phone_number = #{row.phoneNumber,jdbcType=VARCHAR},\n      default_status = #{row.defaultStatus,jdbcType=INTEGER},\n      post_code = #{row.postCode,jdbcType=VARCHAR},\n      province = #{row.province,jdbcType=VARCHAR},\n      city = #{row.city,jdbcType=VARCHAR},\n      region = #{row.region,jdbcType=VARCHAR},\n      detail_address = #{row.detailAddress,jdbcType=VARCHAR}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsMemberReceiveAddress\">\n    update ums_member_receive_address\n    <set>\n      <if test=\"memberId != null\">\n        member_id = #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"phoneNumber != null\">\n        phone_number = #{phoneNumber,jdbcType=VARCHAR},\n      </if>\n      <if test=\"defaultStatus != null\">\n        default_status = #{defaultStatus,jdbcType=INTEGER},\n      </if>\n      <if test=\"postCode != null\">\n        post_code = #{postCode,jdbcType=VARCHAR},\n      </if>\n      <if test=\"province != null\">\n        province = #{province,jdbcType=VARCHAR},\n      </if>\n      <if test=\"city != null\">\n        city = #{city,jdbcType=VARCHAR},\n      </if>\n      <if test=\"region != null\">\n        region = #{region,jdbcType=VARCHAR},\n      </if>\n      <if test=\"detailAddress != null\">\n        detail_address = #{detailAddress,jdbcType=VARCHAR},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsMemberReceiveAddress\">\n    update ums_member_receive_address\n    set member_id = #{memberId,jdbcType=BIGINT},\n      name = #{name,jdbcType=VARCHAR},\n      phone_number = #{phoneNumber,jdbcType=VARCHAR},\n      default_status = #{defaultStatus,jdbcType=INTEGER},\n      post_code = #{postCode,jdbcType=VARCHAR},\n      province = #{province,jdbcType=VARCHAR},\n      city = #{city,jdbcType=VARCHAR},\n      region = #{region,jdbcType=VARCHAR},\n      detail_address = #{detailAddress,jdbcType=VARCHAR}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsMemberRuleSettingMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsMemberRuleSettingMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsMemberRuleSetting\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"continue_sign_day\" jdbcType=\"INTEGER\" property=\"continueSignDay\" />\n    <result column=\"continue_sign_point\" jdbcType=\"INTEGER\" property=\"continueSignPoint\" />\n    <result column=\"consume_per_point\" jdbcType=\"DECIMAL\" property=\"consumePerPoint\" />\n    <result column=\"low_order_amount\" jdbcType=\"DECIMAL\" property=\"lowOrderAmount\" />\n    <result column=\"max_point_per_order\" jdbcType=\"INTEGER\" property=\"maxPointPerOrder\" />\n    <result column=\"type\" jdbcType=\"INTEGER\" property=\"type\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, continue_sign_day, continue_sign_point, consume_per_point, low_order_amount, \n    max_point_per_order, type\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsMemberRuleSettingExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_member_rule_setting\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_member_rule_setting\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_member_rule_setting\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsMemberRuleSettingExample\">\n    delete from ums_member_rule_setting\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsMemberRuleSetting\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_rule_setting (continue_sign_day, continue_sign_point, \n      consume_per_point, low_order_amount, max_point_per_order, \n      type)\n    values (#{continueSignDay,jdbcType=INTEGER}, #{continueSignPoint,jdbcType=INTEGER}, \n      #{consumePerPoint,jdbcType=DECIMAL}, #{lowOrderAmount,jdbcType=DECIMAL}, #{maxPointPerOrder,jdbcType=INTEGER}, \n      #{type,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsMemberRuleSetting\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_rule_setting\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"continueSignDay != null\">\n        continue_sign_day,\n      </if>\n      <if test=\"continueSignPoint != null\">\n        continue_sign_point,\n      </if>\n      <if test=\"consumePerPoint != null\">\n        consume_per_point,\n      </if>\n      <if test=\"lowOrderAmount != null\">\n        low_order_amount,\n      </if>\n      <if test=\"maxPointPerOrder != null\">\n        max_point_per_order,\n      </if>\n      <if test=\"type != null\">\n        type,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"continueSignDay != null\">\n        #{continueSignDay,jdbcType=INTEGER},\n      </if>\n      <if test=\"continueSignPoint != null\">\n        #{continueSignPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"consumePerPoint != null\">\n        #{consumePerPoint,jdbcType=DECIMAL},\n      </if>\n      <if test=\"lowOrderAmount != null\">\n        #{lowOrderAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"maxPointPerOrder != null\">\n        #{maxPointPerOrder,jdbcType=INTEGER},\n      </if>\n      <if test=\"type != null\">\n        #{type,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsMemberRuleSettingExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_member_rule_setting\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_member_rule_setting\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.continueSignDay != null\">\n        continue_sign_day = #{row.continueSignDay,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.continueSignPoint != null\">\n        continue_sign_point = #{row.continueSignPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.consumePerPoint != null\">\n        consume_per_point = #{row.consumePerPoint,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.lowOrderAmount != null\">\n        low_order_amount = #{row.lowOrderAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.maxPointPerOrder != null\">\n        max_point_per_order = #{row.maxPointPerOrder,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.type != null\">\n        type = #{row.type,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_member_rule_setting\n    set id = #{row.id,jdbcType=BIGINT},\n      continue_sign_day = #{row.continueSignDay,jdbcType=INTEGER},\n      continue_sign_point = #{row.continueSignPoint,jdbcType=INTEGER},\n      consume_per_point = #{row.consumePerPoint,jdbcType=DECIMAL},\n      low_order_amount = #{row.lowOrderAmount,jdbcType=DECIMAL},\n      max_point_per_order = #{row.maxPointPerOrder,jdbcType=INTEGER},\n      type = #{row.type,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsMemberRuleSetting\">\n    update ums_member_rule_setting\n    <set>\n      <if test=\"continueSignDay != null\">\n        continue_sign_day = #{continueSignDay,jdbcType=INTEGER},\n      </if>\n      <if test=\"continueSignPoint != null\">\n        continue_sign_point = #{continueSignPoint,jdbcType=INTEGER},\n      </if>\n      <if test=\"consumePerPoint != null\">\n        consume_per_point = #{consumePerPoint,jdbcType=DECIMAL},\n      </if>\n      <if test=\"lowOrderAmount != null\">\n        low_order_amount = #{lowOrderAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"maxPointPerOrder != null\">\n        max_point_per_order = #{maxPointPerOrder,jdbcType=INTEGER},\n      </if>\n      <if test=\"type != null\">\n        type = #{type,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsMemberRuleSetting\">\n    update ums_member_rule_setting\n    set continue_sign_day = #{continueSignDay,jdbcType=INTEGER},\n      continue_sign_point = #{continueSignPoint,jdbcType=INTEGER},\n      consume_per_point = #{consumePerPoint,jdbcType=DECIMAL},\n      low_order_amount = #{lowOrderAmount,jdbcType=DECIMAL},\n      max_point_per_order = #{maxPointPerOrder,jdbcType=INTEGER},\n      type = #{type,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsMemberStatisticsInfoMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsMemberStatisticsInfoMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsMemberStatisticsInfo\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"member_id\" jdbcType=\"BIGINT\" property=\"memberId\" />\n    <result column=\"consume_amount\" jdbcType=\"DECIMAL\" property=\"consumeAmount\" />\n    <result column=\"order_count\" jdbcType=\"INTEGER\" property=\"orderCount\" />\n    <result column=\"coupon_count\" jdbcType=\"INTEGER\" property=\"couponCount\" />\n    <result column=\"comment_count\" jdbcType=\"INTEGER\" property=\"commentCount\" />\n    <result column=\"return_order_count\" jdbcType=\"INTEGER\" property=\"returnOrderCount\" />\n    <result column=\"login_count\" jdbcType=\"INTEGER\" property=\"loginCount\" />\n    <result column=\"attend_count\" jdbcType=\"INTEGER\" property=\"attendCount\" />\n    <result column=\"fans_count\" jdbcType=\"INTEGER\" property=\"fansCount\" />\n    <result column=\"collect_product_count\" jdbcType=\"INTEGER\" property=\"collectProductCount\" />\n    <result column=\"collect_subject_count\" jdbcType=\"INTEGER\" property=\"collectSubjectCount\" />\n    <result column=\"collect_topic_count\" jdbcType=\"INTEGER\" property=\"collectTopicCount\" />\n    <result column=\"collect_comment_count\" jdbcType=\"INTEGER\" property=\"collectCommentCount\" />\n    <result column=\"invite_friend_count\" jdbcType=\"INTEGER\" property=\"inviteFriendCount\" />\n    <result column=\"recent_order_time\" jdbcType=\"TIMESTAMP\" property=\"recentOrderTime\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, member_id, consume_amount, order_count, coupon_count, comment_count, return_order_count, \n    login_count, attend_count, fans_count, collect_product_count, collect_subject_count, \n    collect_topic_count, collect_comment_count, invite_friend_count, recent_order_time\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsMemberStatisticsInfoExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_member_statistics_info\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_member_statistics_info\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_member_statistics_info\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsMemberStatisticsInfoExample\">\n    delete from ums_member_statistics_info\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsMemberStatisticsInfo\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_statistics_info (member_id, consume_amount, order_count, \n      coupon_count, comment_count, return_order_count, \n      login_count, attend_count, fans_count, \n      collect_product_count, collect_subject_count, \n      collect_topic_count, collect_comment_count, \n      invite_friend_count, recent_order_time)\n    values (#{memberId,jdbcType=BIGINT}, #{consumeAmount,jdbcType=DECIMAL}, #{orderCount,jdbcType=INTEGER}, \n      #{couponCount,jdbcType=INTEGER}, #{commentCount,jdbcType=INTEGER}, #{returnOrderCount,jdbcType=INTEGER}, \n      #{loginCount,jdbcType=INTEGER}, #{attendCount,jdbcType=INTEGER}, #{fansCount,jdbcType=INTEGER}, \n      #{collectProductCount,jdbcType=INTEGER}, #{collectSubjectCount,jdbcType=INTEGER}, \n      #{collectTopicCount,jdbcType=INTEGER}, #{collectCommentCount,jdbcType=INTEGER}, \n      #{inviteFriendCount,jdbcType=INTEGER}, #{recentOrderTime,jdbcType=TIMESTAMP})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsMemberStatisticsInfo\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_statistics_info\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        member_id,\n      </if>\n      <if test=\"consumeAmount != null\">\n        consume_amount,\n      </if>\n      <if test=\"orderCount != null\">\n        order_count,\n      </if>\n      <if test=\"couponCount != null\">\n        coupon_count,\n      </if>\n      <if test=\"commentCount != null\">\n        comment_count,\n      </if>\n      <if test=\"returnOrderCount != null\">\n        return_order_count,\n      </if>\n      <if test=\"loginCount != null\">\n        login_count,\n      </if>\n      <if test=\"attendCount != null\">\n        attend_count,\n      </if>\n      <if test=\"fansCount != null\">\n        fans_count,\n      </if>\n      <if test=\"collectProductCount != null\">\n        collect_product_count,\n      </if>\n      <if test=\"collectSubjectCount != null\">\n        collect_subject_count,\n      </if>\n      <if test=\"collectTopicCount != null\">\n        collect_topic_count,\n      </if>\n      <if test=\"collectCommentCount != null\">\n        collect_comment_count,\n      </if>\n      <if test=\"inviteFriendCount != null\">\n        invite_friend_count,\n      </if>\n      <if test=\"recentOrderTime != null\">\n        recent_order_time,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"memberId != null\">\n        #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"consumeAmount != null\">\n        #{consumeAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"orderCount != null\">\n        #{orderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"couponCount != null\">\n        #{couponCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"commentCount != null\">\n        #{commentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"returnOrderCount != null\">\n        #{returnOrderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"loginCount != null\">\n        #{loginCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"attendCount != null\">\n        #{attendCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"fansCount != null\">\n        #{fansCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"collectProductCount != null\">\n        #{collectProductCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"collectSubjectCount != null\">\n        #{collectSubjectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"collectTopicCount != null\">\n        #{collectTopicCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"collectCommentCount != null\">\n        #{collectCommentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"inviteFriendCount != null\">\n        #{inviteFriendCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"recentOrderTime != null\">\n        #{recentOrderTime,jdbcType=TIMESTAMP},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsMemberStatisticsInfoExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_member_statistics_info\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_member_statistics_info\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.memberId != null\">\n        member_id = #{row.memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.consumeAmount != null\">\n        consume_amount = #{row.consumeAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"row.orderCount != null\">\n        order_count = #{row.orderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.couponCount != null\">\n        coupon_count = #{row.couponCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.commentCount != null\">\n        comment_count = #{row.commentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.returnOrderCount != null\">\n        return_order_count = #{row.returnOrderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.loginCount != null\">\n        login_count = #{row.loginCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.attendCount != null\">\n        attend_count = #{row.attendCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.fansCount != null\">\n        fans_count = #{row.fansCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.collectProductCount != null\">\n        collect_product_count = #{row.collectProductCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.collectSubjectCount != null\">\n        collect_subject_count = #{row.collectSubjectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.collectTopicCount != null\">\n        collect_topic_count = #{row.collectTopicCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.collectCommentCount != null\">\n        collect_comment_count = #{row.collectCommentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.inviteFriendCount != null\">\n        invite_friend_count = #{row.inviteFriendCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.recentOrderTime != null\">\n        recent_order_time = #{row.recentOrderTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_member_statistics_info\n    set id = #{row.id,jdbcType=BIGINT},\n      member_id = #{row.memberId,jdbcType=BIGINT},\n      consume_amount = #{row.consumeAmount,jdbcType=DECIMAL},\n      order_count = #{row.orderCount,jdbcType=INTEGER},\n      coupon_count = #{row.couponCount,jdbcType=INTEGER},\n      comment_count = #{row.commentCount,jdbcType=INTEGER},\n      return_order_count = #{row.returnOrderCount,jdbcType=INTEGER},\n      login_count = #{row.loginCount,jdbcType=INTEGER},\n      attend_count = #{row.attendCount,jdbcType=INTEGER},\n      fans_count = #{row.fansCount,jdbcType=INTEGER},\n      collect_product_count = #{row.collectProductCount,jdbcType=INTEGER},\n      collect_subject_count = #{row.collectSubjectCount,jdbcType=INTEGER},\n      collect_topic_count = #{row.collectTopicCount,jdbcType=INTEGER},\n      collect_comment_count = #{row.collectCommentCount,jdbcType=INTEGER},\n      invite_friend_count = #{row.inviteFriendCount,jdbcType=INTEGER},\n      recent_order_time = #{row.recentOrderTime,jdbcType=TIMESTAMP}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsMemberStatisticsInfo\">\n    update ums_member_statistics_info\n    <set>\n      <if test=\"memberId != null\">\n        member_id = #{memberId,jdbcType=BIGINT},\n      </if>\n      <if test=\"consumeAmount != null\">\n        consume_amount = #{consumeAmount,jdbcType=DECIMAL},\n      </if>\n      <if test=\"orderCount != null\">\n        order_count = #{orderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"couponCount != null\">\n        coupon_count = #{couponCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"commentCount != null\">\n        comment_count = #{commentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"returnOrderCount != null\">\n        return_order_count = #{returnOrderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"loginCount != null\">\n        login_count = #{loginCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"attendCount != null\">\n        attend_count = #{attendCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"fansCount != null\">\n        fans_count = #{fansCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"collectProductCount != null\">\n        collect_product_count = #{collectProductCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"collectSubjectCount != null\">\n        collect_subject_count = #{collectSubjectCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"collectTopicCount != null\">\n        collect_topic_count = #{collectTopicCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"collectCommentCount != null\">\n        collect_comment_count = #{collectCommentCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"inviteFriendCount != null\">\n        invite_friend_count = #{inviteFriendCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"recentOrderTime != null\">\n        recent_order_time = #{recentOrderTime,jdbcType=TIMESTAMP},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsMemberStatisticsInfo\">\n    update ums_member_statistics_info\n    set member_id = #{memberId,jdbcType=BIGINT},\n      consume_amount = #{consumeAmount,jdbcType=DECIMAL},\n      order_count = #{orderCount,jdbcType=INTEGER},\n      coupon_count = #{couponCount,jdbcType=INTEGER},\n      comment_count = #{commentCount,jdbcType=INTEGER},\n      return_order_count = #{returnOrderCount,jdbcType=INTEGER},\n      login_count = #{loginCount,jdbcType=INTEGER},\n      attend_count = #{attendCount,jdbcType=INTEGER},\n      fans_count = #{fansCount,jdbcType=INTEGER},\n      collect_product_count = #{collectProductCount,jdbcType=INTEGER},\n      collect_subject_count = #{collectSubjectCount,jdbcType=INTEGER},\n      collect_topic_count = #{collectTopicCount,jdbcType=INTEGER},\n      collect_comment_count = #{collectCommentCount,jdbcType=INTEGER},\n      invite_friend_count = #{inviteFriendCount,jdbcType=INTEGER},\n      recent_order_time = #{recentOrderTime,jdbcType=TIMESTAMP}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsMemberTagMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsMemberTagMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsMemberTag\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"finish_order_count\" jdbcType=\"INTEGER\" property=\"finishOrderCount\" />\n    <result column=\"finish_order_amount\" jdbcType=\"DECIMAL\" property=\"finishOrderAmount\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, finish_order_count, finish_order_amount\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsMemberTagExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_member_tag\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_member_tag\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_member_tag\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsMemberTagExample\">\n    delete from ums_member_tag\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsMemberTag\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_tag (name, finish_order_count, finish_order_amount\n      )\n    values (#{name,jdbcType=VARCHAR}, #{finishOrderCount,jdbcType=INTEGER}, #{finishOrderAmount,jdbcType=DECIMAL}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsMemberTag\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_tag\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"finishOrderCount != null\">\n        finish_order_count,\n      </if>\n      <if test=\"finishOrderAmount != null\">\n        finish_order_amount,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"finishOrderCount != null\">\n        #{finishOrderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"finishOrderAmount != null\">\n        #{finishOrderAmount,jdbcType=DECIMAL},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsMemberTagExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_member_tag\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_member_tag\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.finishOrderCount != null\">\n        finish_order_count = #{row.finishOrderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.finishOrderAmount != null\">\n        finish_order_amount = #{row.finishOrderAmount,jdbcType=DECIMAL},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_member_tag\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      finish_order_count = #{row.finishOrderCount,jdbcType=INTEGER},\n      finish_order_amount = #{row.finishOrderAmount,jdbcType=DECIMAL}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsMemberTag\">\n    update ums_member_tag\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"finishOrderCount != null\">\n        finish_order_count = #{finishOrderCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"finishOrderAmount != null\">\n        finish_order_amount = #{finishOrderAmount,jdbcType=DECIMAL},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsMemberTag\">\n    update ums_member_tag\n    set name = #{name,jdbcType=VARCHAR},\n      finish_order_count = #{finishOrderCount,jdbcType=INTEGER},\n      finish_order_amount = #{finishOrderAmount,jdbcType=DECIMAL}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsMemberTaskMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsMemberTaskMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsMemberTask\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"growth\" jdbcType=\"INTEGER\" property=\"growth\" />\n    <result column=\"intergration\" jdbcType=\"INTEGER\" property=\"intergration\" />\n    <result column=\"type\" jdbcType=\"INTEGER\" property=\"type\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, growth, intergration, type\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsMemberTaskExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_member_task\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_member_task\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_member_task\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsMemberTaskExample\">\n    delete from ums_member_task\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsMemberTask\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_task (name, growth, intergration, \n      type)\n    values (#{name,jdbcType=VARCHAR}, #{growth,jdbcType=INTEGER}, #{intergration,jdbcType=INTEGER}, \n      #{type,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsMemberTask\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_member_task\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"growth != null\">\n        growth,\n      </if>\n      <if test=\"intergration != null\">\n        intergration,\n      </if>\n      <if test=\"type != null\">\n        type,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"growth != null\">\n        #{growth,jdbcType=INTEGER},\n      </if>\n      <if test=\"intergration != null\">\n        #{intergration,jdbcType=INTEGER},\n      </if>\n      <if test=\"type != null\">\n        #{type,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsMemberTaskExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_member_task\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_member_task\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.growth != null\">\n        growth = #{row.growth,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.intergration != null\">\n        intergration = #{row.intergration,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.type != null\">\n        type = #{row.type,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_member_task\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      growth = #{row.growth,jdbcType=INTEGER},\n      intergration = #{row.intergration,jdbcType=INTEGER},\n      type = #{row.type,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsMemberTask\">\n    update ums_member_task\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"growth != null\">\n        growth = #{growth,jdbcType=INTEGER},\n      </if>\n      <if test=\"intergration != null\">\n        intergration = #{intergration,jdbcType=INTEGER},\n      </if>\n      <if test=\"type != null\">\n        type = #{type,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsMemberTask\">\n    update ums_member_task\n    set name = #{name,jdbcType=VARCHAR},\n      growth = #{growth,jdbcType=INTEGER},\n      intergration = #{intergration,jdbcType=INTEGER},\n      type = #{type,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsMenuMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsMenuMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsMenu\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"parent_id\" jdbcType=\"BIGINT\" property=\"parentId\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"title\" jdbcType=\"VARCHAR\" property=\"title\" />\n    <result column=\"level\" jdbcType=\"INTEGER\" property=\"level\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"icon\" jdbcType=\"VARCHAR\" property=\"icon\" />\n    <result column=\"hidden\" jdbcType=\"INTEGER\" property=\"hidden\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, parent_id, create_time, title, level, sort, name, icon, hidden\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsMenuExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_menu\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_menu\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_menu\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsMenuExample\">\n    delete from ums_menu\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsMenu\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_menu (parent_id, create_time, title, \n      level, sort, name, \n      icon, hidden)\n    values (#{parentId,jdbcType=BIGINT}, #{createTime,jdbcType=TIMESTAMP}, #{title,jdbcType=VARCHAR}, \n      #{level,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, \n      #{icon,jdbcType=VARCHAR}, #{hidden,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsMenu\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_menu\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"parentId != null\">\n        parent_id,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"title != null\">\n        title,\n      </if>\n      <if test=\"level != null\">\n        level,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"icon != null\">\n        icon,\n      </if>\n      <if test=\"hidden != null\">\n        hidden,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"parentId != null\">\n        #{parentId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"title != null\">\n        #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"level != null\">\n        #{level,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"hidden != null\">\n        #{hidden,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsMenuExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_menu\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_menu\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.parentId != null\">\n        parent_id = #{row.parentId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.title != null\">\n        title = #{row.title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.level != null\">\n        level = #{row.level,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.icon != null\">\n        icon = #{row.icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.hidden != null\">\n        hidden = #{row.hidden,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_menu\n    set id = #{row.id,jdbcType=BIGINT},\n      parent_id = #{row.parentId,jdbcType=BIGINT},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      title = #{row.title,jdbcType=VARCHAR},\n      level = #{row.level,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER},\n      name = #{row.name,jdbcType=VARCHAR},\n      icon = #{row.icon,jdbcType=VARCHAR},\n      hidden = #{row.hidden,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsMenu\">\n    update ums_menu\n    <set>\n      <if test=\"parentId != null\">\n        parent_id = #{parentId,jdbcType=BIGINT},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"title != null\">\n        title = #{title,jdbcType=VARCHAR},\n      </if>\n      <if test=\"level != null\">\n        level = #{level,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        icon = #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"hidden != null\">\n        hidden = #{hidden,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsMenu\">\n    update ums_menu\n    set parent_id = #{parentId,jdbcType=BIGINT},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      title = #{title,jdbcType=VARCHAR},\n      level = #{level,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER},\n      name = #{name,jdbcType=VARCHAR},\n      icon = #{icon,jdbcType=VARCHAR},\n      hidden = #{hidden,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsPermissionMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsPermissionMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsPermission\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"pid\" jdbcType=\"BIGINT\" property=\"pid\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"value\" jdbcType=\"VARCHAR\" property=\"value\" />\n    <result column=\"icon\" jdbcType=\"VARCHAR\" property=\"icon\" />\n    <result column=\"type\" jdbcType=\"INTEGER\" property=\"type\" />\n    <result column=\"uri\" jdbcType=\"VARCHAR\" property=\"uri\" />\n    <result column=\"status\" jdbcType=\"INTEGER\" property=\"status\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, pid, name, value, icon, type, uri, status, create_time, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsPermissionExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_permission\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_permission\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_permission\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsPermissionExample\">\n    delete from ums_permission\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsPermission\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_permission (pid, name, value, \n      icon, type, uri, status, \n      create_time, sort)\n    values (#{pid,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR}, #{value,jdbcType=VARCHAR}, \n      #{icon,jdbcType=VARCHAR}, #{type,jdbcType=INTEGER}, #{uri,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, \n      #{createTime,jdbcType=TIMESTAMP}, #{sort,jdbcType=INTEGER})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsPermission\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_permission\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"pid != null\">\n        pid,\n      </if>\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"value != null\">\n        value,\n      </if>\n      <if test=\"icon != null\">\n        icon,\n      </if>\n      <if test=\"type != null\">\n        type,\n      </if>\n      <if test=\"uri != null\">\n        uri,\n      </if>\n      <if test=\"status != null\">\n        status,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"pid != null\">\n        #{pid,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"value != null\">\n        #{value,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"type != null\">\n        #{type,jdbcType=INTEGER},\n      </if>\n      <if test=\"uri != null\">\n        #{uri,jdbcType=VARCHAR},\n      </if>\n      <if test=\"status != null\">\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsPermissionExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_permission\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_permission\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.pid != null\">\n        pid = #{row.pid,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.value != null\">\n        value = #{row.value,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.icon != null\">\n        icon = #{row.icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.type != null\">\n        type = #{row.type,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.uri != null\">\n        uri = #{row.uri,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.status != null\">\n        status = #{row.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_permission\n    set id = #{row.id,jdbcType=BIGINT},\n      pid = #{row.pid,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      value = #{row.value,jdbcType=VARCHAR},\n      icon = #{row.icon,jdbcType=VARCHAR},\n      type = #{row.type,jdbcType=INTEGER},\n      uri = #{row.uri,jdbcType=VARCHAR},\n      status = #{row.status,jdbcType=INTEGER},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsPermission\">\n    update ums_permission\n    <set>\n      <if test=\"pid != null\">\n        pid = #{pid,jdbcType=BIGINT},\n      </if>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"value != null\">\n        value = #{value,jdbcType=VARCHAR},\n      </if>\n      <if test=\"icon != null\">\n        icon = #{icon,jdbcType=VARCHAR},\n      </if>\n      <if test=\"type != null\">\n        type = #{type,jdbcType=INTEGER},\n      </if>\n      <if test=\"uri != null\">\n        uri = #{uri,jdbcType=VARCHAR},\n      </if>\n      <if test=\"status != null\">\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsPermission\">\n    update ums_permission\n    set pid = #{pid,jdbcType=BIGINT},\n      name = #{name,jdbcType=VARCHAR},\n      value = #{value,jdbcType=VARCHAR},\n      icon = #{icon,jdbcType=VARCHAR},\n      type = #{type,jdbcType=INTEGER},\n      uri = #{uri,jdbcType=VARCHAR},\n      status = #{status,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsResourceCategoryMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsResourceCategoryMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsResourceCategory\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, create_time, name, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsResourceCategoryExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_resource_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_resource_category\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_resource_category\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsResourceCategoryExample\">\n    delete from ums_resource_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsResourceCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_resource_category (create_time, name, sort\n      )\n    values (#{createTime,jdbcType=TIMESTAMP}, #{name,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsResourceCategory\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_resource_category\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsResourceCategoryExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_resource_category\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_resource_category\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_resource_category\n    set id = #{row.id,jdbcType=BIGINT},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      name = #{row.name,jdbcType=VARCHAR},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsResourceCategory\">\n    update ums_resource_category\n    <set>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsResourceCategory\">\n    update ums_resource_category\n    set create_time = #{createTime,jdbcType=TIMESTAMP},\n      name = #{name,jdbcType=VARCHAR},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsResourceMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsResourceMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsResource\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"url\" jdbcType=\"VARCHAR\" property=\"url\" />\n    <result column=\"description\" jdbcType=\"VARCHAR\" property=\"description\" />\n    <result column=\"category_id\" jdbcType=\"BIGINT\" property=\"categoryId\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, create_time, name, url, description, category_id\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsResourceExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_resource\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_resource\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_resource\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsResourceExample\">\n    delete from ums_resource\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsResource\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_resource (create_time, name, url, \n      description, category_id)\n    values (#{createTime,jdbcType=TIMESTAMP}, #{name,jdbcType=VARCHAR}, #{url,jdbcType=VARCHAR}, \n      #{description,jdbcType=VARCHAR}, #{categoryId,jdbcType=BIGINT})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsResource\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_resource\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"url != null\">\n        url,\n      </if>\n      <if test=\"description != null\">\n        description,\n      </if>\n      <if test=\"categoryId != null\">\n        category_id,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"url != null\">\n        #{url,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        #{description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"categoryId != null\">\n        #{categoryId,jdbcType=BIGINT},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsResourceExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_resource\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_resource\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.url != null\">\n        url = #{row.url,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.description != null\">\n        description = #{row.description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.categoryId != null\">\n        category_id = #{row.categoryId,jdbcType=BIGINT},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_resource\n    set id = #{row.id,jdbcType=BIGINT},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      name = #{row.name,jdbcType=VARCHAR},\n      url = #{row.url,jdbcType=VARCHAR},\n      description = #{row.description,jdbcType=VARCHAR},\n      category_id = #{row.categoryId,jdbcType=BIGINT}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsResource\">\n    update ums_resource\n    <set>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"url != null\">\n        url = #{url,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        description = #{description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"categoryId != null\">\n        category_id = #{categoryId,jdbcType=BIGINT},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsResource\">\n    update ums_resource\n    set create_time = #{createTime,jdbcType=TIMESTAMP},\n      name = #{name,jdbcType=VARCHAR},\n      url = #{url,jdbcType=VARCHAR},\n      description = #{description,jdbcType=VARCHAR},\n      category_id = #{categoryId,jdbcType=BIGINT}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsRoleMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsRoleMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsRole\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"name\" jdbcType=\"VARCHAR\" property=\"name\" />\n    <result column=\"description\" jdbcType=\"VARCHAR\" property=\"description\" />\n    <result column=\"admin_count\" jdbcType=\"INTEGER\" property=\"adminCount\" />\n    <result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\" />\n    <result column=\"status\" jdbcType=\"INTEGER\" property=\"status\" />\n    <result column=\"sort\" jdbcType=\"INTEGER\" property=\"sort\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, name, description, admin_count, create_time, status, sort\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsRoleExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_role\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_role\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_role\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsRoleExample\">\n    delete from ums_role\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsRole\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_role (name, description, admin_count, \n      create_time, status, sort\n      )\n    values (#{name,jdbcType=VARCHAR}, #{description,jdbcType=VARCHAR}, #{adminCount,jdbcType=INTEGER}, \n      #{createTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}, #{sort,jdbcType=INTEGER}\n      )\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsRole\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_role\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        name,\n      </if>\n      <if test=\"description != null\">\n        description,\n      </if>\n      <if test=\"adminCount != null\">\n        admin_count,\n      </if>\n      <if test=\"createTime != null\">\n        create_time,\n      </if>\n      <if test=\"status != null\">\n        status,\n      </if>\n      <if test=\"sort != null\">\n        sort,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"name != null\">\n        #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        #{description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"adminCount != null\">\n        #{adminCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"status != null\">\n        #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        #{sort,jdbcType=INTEGER},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsRoleExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_role\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_role\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.name != null\">\n        name = #{row.name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.description != null\">\n        description = #{row.description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"row.adminCount != null\">\n        admin_count = #{row.adminCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.createTime != null\">\n        create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"row.status != null\">\n        status = #{row.status,jdbcType=INTEGER},\n      </if>\n      <if test=\"row.sort != null\">\n        sort = #{row.sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_role\n    set id = #{row.id,jdbcType=BIGINT},\n      name = #{row.name,jdbcType=VARCHAR},\n      description = #{row.description,jdbcType=VARCHAR},\n      admin_count = #{row.adminCount,jdbcType=INTEGER},\n      create_time = #{row.createTime,jdbcType=TIMESTAMP},\n      status = #{row.status,jdbcType=INTEGER},\n      sort = #{row.sort,jdbcType=INTEGER}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsRole\">\n    update ums_role\n    <set>\n      <if test=\"name != null\">\n        name = #{name,jdbcType=VARCHAR},\n      </if>\n      <if test=\"description != null\">\n        description = #{description,jdbcType=VARCHAR},\n      </if>\n      <if test=\"adminCount != null\">\n        admin_count = #{adminCount,jdbcType=INTEGER},\n      </if>\n      <if test=\"createTime != null\">\n        create_time = #{createTime,jdbcType=TIMESTAMP},\n      </if>\n      <if test=\"status != null\">\n        status = #{status,jdbcType=INTEGER},\n      </if>\n      <if test=\"sort != null\">\n        sort = #{sort,jdbcType=INTEGER},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsRole\">\n    update ums_role\n    set name = #{name,jdbcType=VARCHAR},\n      description = #{description,jdbcType=VARCHAR},\n      admin_count = #{adminCount,jdbcType=INTEGER},\n      create_time = #{createTime,jdbcType=TIMESTAMP},\n      status = #{status,jdbcType=INTEGER},\n      sort = #{sort,jdbcType=INTEGER}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsRoleMenuRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsRoleMenuRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsRoleMenuRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"role_id\" jdbcType=\"BIGINT\" property=\"roleId\" />\n    <result column=\"menu_id\" jdbcType=\"BIGINT\" property=\"menuId\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, role_id, menu_id\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsRoleMenuRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_role_menu_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_role_menu_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_role_menu_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsRoleMenuRelationExample\">\n    delete from ums_role_menu_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsRoleMenuRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_role_menu_relation (role_id, menu_id)\n    values (#{roleId,jdbcType=BIGINT}, #{menuId,jdbcType=BIGINT})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsRoleMenuRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_role_menu_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"roleId != null\">\n        role_id,\n      </if>\n      <if test=\"menuId != null\">\n        menu_id,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"roleId != null\">\n        #{roleId,jdbcType=BIGINT},\n      </if>\n      <if test=\"menuId != null\">\n        #{menuId,jdbcType=BIGINT},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsRoleMenuRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_role_menu_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_role_menu_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.roleId != null\">\n        role_id = #{row.roleId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.menuId != null\">\n        menu_id = #{row.menuId,jdbcType=BIGINT},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_role_menu_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      role_id = #{row.roleId,jdbcType=BIGINT},\n      menu_id = #{row.menuId,jdbcType=BIGINT}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsRoleMenuRelation\">\n    update ums_role_menu_relation\n    <set>\n      <if test=\"roleId != null\">\n        role_id = #{roleId,jdbcType=BIGINT},\n      </if>\n      <if test=\"menuId != null\">\n        menu_id = #{menuId,jdbcType=BIGINT},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsRoleMenuRelation\">\n    update ums_role_menu_relation\n    set role_id = #{roleId,jdbcType=BIGINT},\n      menu_id = #{menuId,jdbcType=BIGINT}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsRolePermissionRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsRolePermissionRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsRolePermissionRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"role_id\" jdbcType=\"BIGINT\" property=\"roleId\" />\n    <result column=\"permission_id\" jdbcType=\"BIGINT\" property=\"permissionId\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, role_id, permission_id\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsRolePermissionRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_role_permission_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_role_permission_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_role_permission_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsRolePermissionRelationExample\">\n    delete from ums_role_permission_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsRolePermissionRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_role_permission_relation (role_id, permission_id)\n    values (#{roleId,jdbcType=BIGINT}, #{permissionId,jdbcType=BIGINT})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsRolePermissionRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_role_permission_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"roleId != null\">\n        role_id,\n      </if>\n      <if test=\"permissionId != null\">\n        permission_id,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"roleId != null\">\n        #{roleId,jdbcType=BIGINT},\n      </if>\n      <if test=\"permissionId != null\">\n        #{permissionId,jdbcType=BIGINT},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsRolePermissionRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_role_permission_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_role_permission_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.roleId != null\">\n        role_id = #{row.roleId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.permissionId != null\">\n        permission_id = #{row.permissionId,jdbcType=BIGINT},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_role_permission_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      role_id = #{row.roleId,jdbcType=BIGINT},\n      permission_id = #{row.permissionId,jdbcType=BIGINT}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsRolePermissionRelation\">\n    update ums_role_permission_relation\n    <set>\n      <if test=\"roleId != null\">\n        role_id = #{roleId,jdbcType=BIGINT},\n      </if>\n      <if test=\"permissionId != null\">\n        permission_id = #{permissionId,jdbcType=BIGINT},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsRolePermissionRelation\">\n    update ums_role_permission_relation\n    set role_id = #{roleId,jdbcType=BIGINT},\n      permission_id = #{permissionId,jdbcType=BIGINT}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/com/macro/mall/mapper/UmsRoleResourceRelationMapper.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.mapper.UmsRoleResourceRelationMapper\">\n  <resultMap id=\"BaseResultMap\" type=\"com.macro.mall.model.UmsRoleResourceRelation\">\n    <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n    <result column=\"role_id\" jdbcType=\"BIGINT\" property=\"roleId\" />\n    <result column=\"resource_id\" jdbcType=\"BIGINT\" property=\"resourceId\" />\n  </resultMap>\n  <sql id=\"Example_Where_Clause\">\n    <where>\n      <foreach collection=\"oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Update_By_Example_Where_Clause\">\n    <where>\n      <foreach collection=\"example.oredCriteria\" item=\"criteria\" separator=\"or\">\n        <if test=\"criteria.valid\">\n          <trim prefix=\"(\" prefixOverrides=\"and\" suffix=\")\">\n            <foreach collection=\"criteria.criteria\" item=\"criterion\">\n              <choose>\n                <when test=\"criterion.noValue\">\n                  and ${criterion.condition}\n                </when>\n                <when test=\"criterion.singleValue\">\n                  and ${criterion.condition} #{criterion.value}\n                </when>\n                <when test=\"criterion.betweenValue\">\n                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}\n                </when>\n                <when test=\"criterion.listValue\">\n                  and ${criterion.condition}\n                  <foreach close=\")\" collection=\"criterion.value\" item=\"listItem\" open=\"(\" separator=\",\">\n                    #{listItem}\n                  </foreach>\n                </when>\n              </choose>\n            </foreach>\n          </trim>\n        </if>\n      </foreach>\n    </where>\n  </sql>\n  <sql id=\"Base_Column_List\">\n    id, role_id, resource_id\n  </sql>\n  <select id=\"selectByExample\" parameterType=\"com.macro.mall.model.UmsRoleResourceRelationExample\" resultMap=\"BaseResultMap\">\n    select\n    <if test=\"distinct\">\n      distinct\n    </if>\n    <include refid=\"Base_Column_List\" />\n    from ums_role_resource_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n    <if test=\"orderByClause != null\">\n      order by ${orderByClause}\n    </if>\n  </select>\n  <select id=\"selectByPrimaryKey\" parameterType=\"java.lang.Long\" resultMap=\"BaseResultMap\">\n    select \n    <include refid=\"Base_Column_List\" />\n    from ums_role_resource_relation\n    where id = #{id,jdbcType=BIGINT}\n  </select>\n  <delete id=\"deleteByPrimaryKey\" parameterType=\"java.lang.Long\">\n    delete from ums_role_resource_relation\n    where id = #{id,jdbcType=BIGINT}\n  </delete>\n  <delete id=\"deleteByExample\" parameterType=\"com.macro.mall.model.UmsRoleResourceRelationExample\">\n    delete from ums_role_resource_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </delete>\n  <insert id=\"insert\" parameterType=\"com.macro.mall.model.UmsRoleResourceRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_role_resource_relation (role_id, resource_id)\n    values (#{roleId,jdbcType=BIGINT}, #{resourceId,jdbcType=BIGINT})\n  </insert>\n  <insert id=\"insertSelective\" parameterType=\"com.macro.mall.model.UmsRoleResourceRelation\">\n    <selectKey keyProperty=\"id\" order=\"AFTER\" resultType=\"java.lang.Long\">\n      SELECT LAST_INSERT_ID()\n    </selectKey>\n    insert into ums_role_resource_relation\n    <trim prefix=\"(\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"roleId != null\">\n        role_id,\n      </if>\n      <if test=\"resourceId != null\">\n        resource_id,\n      </if>\n    </trim>\n    <trim prefix=\"values (\" suffix=\")\" suffixOverrides=\",\">\n      <if test=\"roleId != null\">\n        #{roleId,jdbcType=BIGINT},\n      </if>\n      <if test=\"resourceId != null\">\n        #{resourceId,jdbcType=BIGINT},\n      </if>\n    </trim>\n  </insert>\n  <select id=\"countByExample\" parameterType=\"com.macro.mall.model.UmsRoleResourceRelationExample\" resultType=\"java.lang.Long\">\n    select count(*) from ums_role_resource_relation\n    <if test=\"_parameter != null\">\n      <include refid=\"Example_Where_Clause\" />\n    </if>\n  </select>\n  <update id=\"updateByExampleSelective\" parameterType=\"map\">\n    update ums_role_resource_relation\n    <set>\n      <if test=\"row.id != null\">\n        id = #{row.id,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.roleId != null\">\n        role_id = #{row.roleId,jdbcType=BIGINT},\n      </if>\n      <if test=\"row.resourceId != null\">\n        resource_id = #{row.resourceId,jdbcType=BIGINT},\n      </if>\n    </set>\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByExample\" parameterType=\"map\">\n    update ums_role_resource_relation\n    set id = #{row.id,jdbcType=BIGINT},\n      role_id = #{row.roleId,jdbcType=BIGINT},\n      resource_id = #{row.resourceId,jdbcType=BIGINT}\n    <if test=\"example != null\">\n      <include refid=\"Update_By_Example_Where_Clause\" />\n    </if>\n  </update>\n  <update id=\"updateByPrimaryKeySelective\" parameterType=\"com.macro.mall.model.UmsRoleResourceRelation\">\n    update ums_role_resource_relation\n    <set>\n      <if test=\"roleId != null\">\n        role_id = #{roleId,jdbcType=BIGINT},\n      </if>\n      <if test=\"resourceId != null\">\n        resource_id = #{resourceId,jdbcType=BIGINT},\n      </if>\n    </set>\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n  <update id=\"updateByPrimaryKey\" parameterType=\"com.macro.mall.model.UmsRoleResourceRelation\">\n    update ums_role_resource_relation\n    set role_id = #{roleId,jdbcType=BIGINT},\n      resource_id = #{resourceId,jdbcType=BIGINT}\n    where id = #{id,jdbcType=BIGINT}\n  </update>\n</mapper>"
  },
  {
    "path": "mall-mbg/src/main/resources/generator.properties",
    "content": "jdbc.driverClass=com.mysql.cj.jdbc.Driver\njdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai\njdbc.userId=root\njdbc.password=root"
  },
  {
    "path": "mall-mbg/src/main/resources/generatorConfig.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE generatorConfiguration\n        PUBLIC \"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN\"\n        \"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd\">\n\n<generatorConfiguration>\n    <properties resource=\"generator.properties\"/>\n    <context id=\"MySqlContext\" targetRuntime=\"MyBatis3\" defaultModelType=\"flat\">\n        <property name=\"beginningDelimiter\" value=\"`\"/>\n        <property name=\"endingDelimiter\" value=\"`\"/>\n        <property name=\"javaFileEncoding\" value=\"UTF-8\"/>\n        <!-- 为模型生成序列化方法-->\n        <plugin type=\"org.mybatis.generator.plugins.SerializablePlugin\"/>\n        <!-- 为生成的Java模型创建一个toString方法 -->\n        <plugin type=\"org.mybatis.generator.plugins.ToStringPlugin\"/>\n        <!--生成mapper.xml时覆盖原文件-->\n        <plugin type=\"org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin\" />\n        <commentGenerator type=\"com.macro.mall.CommentGenerator\">\n            <!-- 是否去除自动生成的注释 true：是 ： false:否 -->\n            <property name=\"suppressAllComments\" value=\"true\"/>\n            <property name=\"suppressDate\" value=\"true\"/>\n            <property name=\"addRemarkComments\" value=\"true\"/>\n        </commentGenerator>\n\n        <jdbcConnection driverClass=\"${jdbc.driverClass}\"\n                        connectionURL=\"${jdbc.connectionURL}\"\n                        userId=\"${jdbc.userId}\"\n                        password=\"${jdbc.password}\">\n            <!--解决mysql驱动升级到8.0后不生成指定数据库代码的问题-->\n            <property name=\"nullCatalogMeansCurrent\" value=\"true\" />\n        </jdbcConnection>\n\n        <javaModelGenerator targetPackage=\"com.macro.mall.model\" targetProject=\"mall-mbg\\src\\main\\java\"/>\n\n        <sqlMapGenerator targetPackage=\"com.macro.mall.mapper\" targetProject=\"mall-mbg\\src\\main\\resources\"/>\n\n        <javaClientGenerator type=\"XMLMAPPER\" targetPackage=\"com.macro.mall.mapper\"\n                             targetProject=\"mall-mbg\\src\\main\\java\"/>\n        <!--生成全部表tableName设为%-->\n        <table tableName=\"%\">\n            <generatedKey column=\"id\" sqlStatement=\"MySql\" identity=\"true\"/>\n        </table>\n    </context>\n</generatorConfiguration>"
  },
  {
    "path": "mall-monitor/.gitignore",
    "content": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n.factorypath\n.project\n.settings\n.springBeans\n.sts4-cache\n\n### IntelliJ IDEA ###\n.idea\n*.iws\n*.iml\n*.ipr\n\n### NetBeans ###\n/nbproject/private/\n/nbbuild/\n/dist/\n/nbdist/\n/.nb-gradle/\nbuild/\n\n### VS Code ###\n.vscode/\n"
  },
  {
    "path": "mall-monitor/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n    <groupId>com.macro.mall</groupId>\n    <artifactId>mall-monitor</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <name>mall-monitor</name>\n    <description>mall-monitor project for mall</description>\n\n    <parent>\n        <groupId>com.macro.mall</groupId>\n        <artifactId>mall-swarm</artifactId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n\n    <dependencies>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-web</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>de.codecentric</groupId>\n            <artifactId>spring-boot-admin-starter-server</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-security</artifactId>\n        </dependency>\n    </dependencies>\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.springframework.boot</groupId>\n                <artifactId>spring-boot-maven-plugin</artifactId>\n            </plugin>\n            <plugin>\n                <groupId>io.fabric8</groupId>\n                <artifactId>docker-maven-plugin</artifactId>\n            </plugin>\n        </plugins>\n    </build>\n\n</project>\n"
  },
  {
    "path": "mall-monitor/src/main/java/com/macro/mall/MallMonitorApplication.java",
    "content": "package com.macro.mall;\n\nimport de.codecentric.boot.admin.server.config.EnableAdminServer;\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.cloud.client.discovery.EnableDiscoveryClient;\n\n@EnableDiscoveryClient\n@EnableAdminServer\n@SpringBootApplication\npublic class MallMonitorApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(MallMonitorApplication.class, args);\n    }\n\n}\n"
  },
  {
    "path": "mall-monitor/src/main/java/com/macro/mall/config/SecuritySecureConfig.java",
    "content": "package com.macro.mall.config;\n\nimport com.macro.mall.filter.CustomCsrfFilter;\nimport de.codecentric.boot.admin.server.config.AdminServerProperties;\nimport jakarta.servlet.DispatcherType;\nimport org.springframework.boot.autoconfigure.security.SecurityProperties;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.security.config.Customizer;\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\nimport org.springframework.security.core.userdetails.User;\nimport org.springframework.security.core.userdetails.UserDetails;\nimport org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;\nimport org.springframework.security.crypto.password.PasswordEncoder;\nimport org.springframework.security.provisioning.InMemoryUserDetailsManager;\nimport org.springframework.security.web.SecurityFilterChain;\nimport org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;\nimport org.springframework.security.web.authentication.www.BasicAuthenticationFilter;\nimport org.springframework.security.web.csrf.CookieCsrfTokenRepository;\nimport org.springframework.security.web.csrf.CsrfTokenRequestAttributeHandler;\nimport org.springframework.security.web.util.matcher.AntPathRequestMatcher;\n\nimport java.util.UUID;\n\n/**\n * @auther macrozheng\n * @description Spring Boot Admin的Security相关配置\n * @date 2024/1/16\n * @github https://github.com/macrozheng\n */\n@Configuration(proxyBeanMethods = false)\npublic class SecuritySecureConfig {\n\n    private final AdminServerProperties adminServer;\n\n    private final SecurityProperties security;\n\n    public SecuritySecureConfig(AdminServerProperties adminServer, SecurityProperties security) {\n        this.adminServer = adminServer;\n        this.security = security;\n    }\n\n    @Bean\n    protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {\n        SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();\n        successHandler.setTargetUrlParameter(\"redirectTo\");\n        successHandler.setDefaultTargetUrl(this.adminServer.path(\"/\"));\n        http.authorizeHttpRequests((authorizeRequests) -> authorizeRequests //\n                .requestMatchers(new AntPathRequestMatcher(this.adminServer.path(\"/assets/**\")))\n                .permitAll()\n                .requestMatchers(new AntPathRequestMatcher(this.adminServer.path(\"/actuator/info\")))\n                .permitAll()\n                .requestMatchers(new AntPathRequestMatcher(adminServer.path(\"/actuator/health\")))\n                .permitAll()\n                .requestMatchers(new AntPathRequestMatcher(this.adminServer.path(\"/login\")))\n                .permitAll()\n                .dispatcherTypeMatchers(DispatcherType.ASYNC)\n                .permitAll()\n                .anyRequest()\n                .authenticated())\n                .formLogin(\n                        (formLogin) -> formLogin.loginPage(this.adminServer.path(\"/login\")).successHandler(successHandler))\n                .logout((logout) -> logout.logoutUrl(this.adminServer.path(\"/logout\")))\n                .httpBasic(Customizer.withDefaults());\n        http.addFilterAfter(new CustomCsrfFilter(), BasicAuthenticationFilter.class)\n                .csrf((csrf) -> csrf.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())\n                        .csrfTokenRequestHandler(new CsrfTokenRequestAttributeHandler())\n                        .ignoringRequestMatchers(\n                                new AntPathRequestMatcher(this.adminServer.path(\"/instances\"), \"POST\"),\n        new AntPathRequestMatcher(this.adminServer.path(\"/instances/*\"), \"DELETE\"),\n        new AntPathRequestMatcher(this.adminServer.path(\"/actuator/**\"))\n                                ));\n        http.rememberMe((rememberMe) -> rememberMe.key(UUID.randomUUID().toString()).tokenValiditySeconds(1209600));\n        return http.build();\n    }\n\n    @Bean\n    public InMemoryUserDetailsManager userDetailsService(PasswordEncoder passwordEncoder) {\n        UserDetails user = User.withUsername(\"macro\")\n                .password(passwordEncoder.encode(\"123456\"))\n                .roles(\"USER\")\n                .build();\n        return new InMemoryUserDetailsManager(user);\n    }\n\n    @Bean\n    public PasswordEncoder passwordEncoder() {\n        return new BCryptPasswordEncoder();\n    }\n\n}\n"
  },
  {
    "path": "mall-monitor/src/main/java/com/macro/mall/filter/CustomCsrfFilter.java",
    "content": "package com.macro.mall.filter;\n\n/*\n * Copyright 2014-2023 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\nimport jakarta.servlet.FilterChain;\nimport jakarta.servlet.ServletException;\nimport jakarta.servlet.http.Cookie;\nimport jakarta.servlet.http.HttpServletRequest;\nimport jakarta.servlet.http.HttpServletResponse;\nimport org.springframework.security.web.csrf.CsrfToken;\nimport org.springframework.web.filter.OncePerRequestFilter;\nimport org.springframework.web.util.WebUtils;\n\nimport java.io.IOException;\n\n/**\n * @auther macrozheng\n * @description 自定义CSRF过滤器\n * @date 2024/1/16\n * @github https://github.com/macrozheng\n */\npublic class CustomCsrfFilter extends OncePerRequestFilter {\n\n    public static final String CSRF_COOKIE_NAME = \"XSRF-TOKEN\";\n\n    @Override\n    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)\n            throws ServletException, IOException {\n        CsrfToken csrf = (CsrfToken) request.getAttribute(CsrfToken.class.getName());\n        if (csrf != null) {\n            Cookie cookie = WebUtils.getCookie(request, CSRF_COOKIE_NAME);\n            String token = csrf.getToken();\n            if (cookie == null || token != null && !token.equals(cookie.getValue())) {\n                cookie = new Cookie(CSRF_COOKIE_NAME, token);\n                cookie.setPath(\"/\");\n                response.addCookie(cookie);\n            }\n        }\n        filterChain.doFilter(request, response);\n    }\n\n}\n"
  },
  {
    "path": "mall-monitor/src/main/resources/application-dev.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://localhost:8848\n"
  },
  {
    "path": "mall-monitor/src/main/resources/application-prod.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://nacos-registry:8848\n"
  },
  {
    "path": "mall-monitor/src/main/resources/application.yml",
    "content": "spring:\n  application:\n    name: mall-monitor\n  profiles:\n    active: dev\n  security: # 配置登录用户名和密码\n    user:\n      name: macro\n      password: 123456\n  boot:  # 不显示admin-server的监控信息\n    admin:\n      discovery:\n        ignored-services: ${spring.application.name}\nserver:\n  port: 8101\n"
  },
  {
    "path": "mall-monitor/src/test/java/com/macro/mall/MallMonitorApplicationTests.java",
    "content": "package com.macro.mall;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.SpringBootTest;\nimport org.springframework.test.context.junit4.SpringRunner;\n\n@SpringBootTest\npublic class MallMonitorApplicationTests {\n\n    @Test\n    public void contextLoads() {\n    }\n\n}\n"
  },
  {
    "path": "mall-portal/.gitignore",
    "content": "/target/\n!.mvn/wrapper/maven-wrapper.jar\n\n### STS ###\n.apt_generated\n.classpath\n.factorypath\n.project\n.settings\n.springBeans\n.sts4-cache\n\n### IntelliJ IDEA ###\n.idea\n*.iws\n*.iml\n*.ipr\n\n### NetBeans ###\n/nbproject/private/\n/build/\n/nbbuild/\n/dist/\n/nbdist/\n/.nb-gradle/"
  },
  {
    "path": "mall-portal/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <groupId>com.macro.mall</groupId>\n    <artifactId>mall-portal</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <packaging>jar</packaging>\n\n    <name>mall-portal</name>\n    <description>mall-portal project for mall</description>\n\n    <parent>\n        <groupId>com.macro.mall</groupId>\n        <artifactId>mall-swarm</artifactId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.macro.mall</groupId>\n            <artifactId>mall-mbg</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-data-mongodb</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-data-redis</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-amqp</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.cloud</groupId>\n            <artifactId>spring-cloud-starter-openfeign</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alipay.sdk</groupId>\n            <artifactId>alipay-sdk-java</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>cn.dev33</groupId>\n            <artifactId>sa-token-spring-boot3-starter</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>cn.dev33</groupId>\n            <artifactId>sa-token-redis-jackson</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.apache.commons</groupId>\n            <artifactId>commons-pool2</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>cn.dev33</groupId>\n            <artifactId>sa-token-jwt</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>de.codecentric</groupId>\n            <artifactId>spring-boot-admin-starter-client</artifactId>\n        </dependency>\n    </dependencies>\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.springframework.boot</groupId>\n                <artifactId>spring-boot-maven-plugin</artifactId>\n            </plugin>\n            <plugin>\n                <groupId>io.fabric8</groupId>\n                <artifactId>docker-maven-plugin</artifactId>\n            </plugin>\n        </plugins>\n    </build>\n\n</project>\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/MallPortalApplication.java",
    "content": "package com.macro.mall.portal;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.cloud.client.discovery.EnableDiscoveryClient;\nimport org.springframework.cloud.openfeign.EnableFeignClients;\n\n@EnableFeignClients\n@EnableDiscoveryClient\n@SpringBootApplication(scanBasePackages = \"com.macro.mall\")\npublic class MallPortalApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(MallPortalApplication.class, args);\n    }\n\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/component/CancelOrderReceiver.java",
    "content": "package com.macro.mall.portal.component;\n\nimport com.macro.mall.portal.service.OmsPortalOrderService;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.amqp.rabbit.annotation.RabbitHandler;\nimport org.springframework.amqp.rabbit.annotation.RabbitListener;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Component;\n\n/**\n * 取消订单消息的处理者\n * Created by macro on 2018/9/14.\n */\n@Component\n@RabbitListener(queues = \"mall.order.cancel\")\npublic class CancelOrderReceiver {\n    private static Logger LOGGER =LoggerFactory.getLogger(CancelOrderReceiver.class);\n    @Autowired\n    private OmsPortalOrderService portalOrderService;\n    @RabbitHandler\n    public void handle(Long orderId){\n        portalOrderService.cancelOrder(orderId);\n        LOGGER.info(\"process orderId:{}\",orderId);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/component/CancelOrderSender.java",
    "content": "package com.macro.mall.portal.component;\n\nimport com.macro.mall.portal.domain.QueueEnum;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.amqp.AmqpException;\nimport org.springframework.amqp.core.AmqpTemplate;\nimport org.springframework.amqp.core.Message;\nimport org.springframework.amqp.core.MessagePostProcessor;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Component;\n\n/**\n * 取消订单消息的发出者\n * Created by macro on 2018/9/14.\n */\n@Component\npublic class CancelOrderSender {\n    private static Logger LOGGER =LoggerFactory.getLogger(CancelOrderSender.class);\n    @Autowired\n    private AmqpTemplate amqpTemplate;\n\n    public void sendMessage(Long orderId,final long delayTimes){\n        //给延迟队列发送消息\n        amqpTemplate.convertAndSend(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getExchange(), QueueEnum.QUEUE_TTL_ORDER_CANCEL.getRouteKey(), orderId, new MessagePostProcessor() {\n            @Override\n            public Message postProcessMessage(Message message) throws AmqpException {\n                //给消息设置延迟毫秒值\n                message.getMessageProperties().setExpiration(String.valueOf(delayTimes));\n                return message;\n            }\n        });\n        LOGGER.info(\"send orderId:{}\",orderId);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/component/OrderTimeOutCancelTask.java",
    "content": "package com.macro.mall.portal.component;\n\nimport com.macro.mall.portal.service.OmsPortalOrderService;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.scheduling.annotation.Scheduled;\nimport org.springframework.stereotype.Component;\n\n/**\n * Created by macro on 2018/8/24.\n * 订单超时取消并解锁库存的定时器\n */\n//@Component\npublic class OrderTimeOutCancelTask {\n    private Logger LOGGER =LoggerFactory.getLogger(OrderTimeOutCancelTask.class);\n    @Autowired\n    private OmsPortalOrderService portalOrderService;\n\n    /**\n     * cron表达式：Seconds Minutes Hours DayofMonth Month DayofWeek [Year]\n     * 每10分钟扫描一次，扫描设定超时时间之前下的订单，如果没支付则取消该订单\n     */\n    @Scheduled(cron = \"0 0/10 * ? * ?\")\n    private void cancelTimeOutOrder(){\n        Integer count = portalOrderService.cancelTimeOutOrder();\n        LOGGER.info(\"取消订单，并根据sku编号释放锁定库存，取消订单数量：{}\",count);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/config/AlipayClientConfig.java",
    "content": "package com.macro.mall.portal.config;\n\nimport com.alipay.api.AlipayClient;\nimport com.alipay.api.DefaultAlipayClient;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\n\n/**\n * @auther macrozheng\n * @description 支付宝请求客户端配置\n * @date 2023/9/8\n * @github https://github.com/macrozheng\n */\n@Configuration\npublic class AlipayClientConfig {\n\n    @Bean\n    public AlipayClient alipayClient(AlipayConfig config){\n        return new DefaultAlipayClient(config.getGatewayUrl(),config.getAppId(),config.getAppPrivateKey(), config.getFormat(),config.getCharset(),config.getAlipayPublicKey(),config.getSignType());\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/config/AlipayConfig.java",
    "content": "package com.macro.mall.portal.config;\n\nimport lombok.Getter;\nimport lombok.Setter;\nimport org.springframework.boot.context.properties.ConfigurationProperties;\nimport org.springframework.stereotype.Component;\n\n/**\n * @auther macrozheng\n * @description 支付宝支付相关配置\n * @date 2023/9/8\n * @github https://github.com/macrozheng\n */\n@Getter\n@Setter\n@Component\n@ConfigurationProperties(prefix = \"alipay\")\npublic class AlipayConfig {\n    /**\n     * 支付宝网关\n     */\n    private String gatewayUrl;\n    /**\n     * 应用ID\n     */\n    private String appId;\n    /**\n     * 应用私钥\n     */\n    private String appPrivateKey;\n    /**\n     * 支付宝公钥\n     */\n    private String alipayPublicKey;\n    /**\n     * 用户确认支付后，支付宝调用的页面返回路径\n     * 开发环境为：http://localhost:8060/#/pages/money/paySuccess\n     */\n    private String returnUrl;\n    /**\n     * 支付成功后，支付宝服务器主动通知商户服务器里的异步通知回调（需要公网能访问）\n     * 开发环境为：http://localhost:8085/alipay/notify\n     */\n    private String notifyUrl;\n    /**\n     * 参数返回格式，只支持JSON\n     */\n    private String format = \"JSON\";\n    /**\n     * 请求使用的编码格式\n     */\n    private String charset = \"UTF-8\";\n    /**\n     * 生成签名字符串所使用的签名算法类型\n     */\n    private String signType = \"RSA2\";\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/config/JacksonConfig.java",
    "content": "package com.macro.mall.portal.config;\n\nimport com.fasterxml.jackson.annotation.JsonInclude;\nimport com.fasterxml.jackson.databind.ObjectMapper;\nimport org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.context.annotation.Primary;\nimport org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;\n\n\n/**\n * Jackson相关配置类\n * json不返回null的字段\n * Created by macro on 2018/8/2.\n */\n@Configuration\npublic class JacksonConfig {\n    @Bean\n    @Primary\n    @ConditionalOnMissingBean(ObjectMapper.class)\n    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {\n        ObjectMapper objectMapper = builder.createXmlMapper(false).build();\n\n        // 通过该方法对mapper对象进行设置，所有序列化的对象都将按改规则进行系列化\n        // Include.Include.ALWAYS 默认\n        // Include.NON_DEFAULT 属性为默认值不序列化\n        // Include.NON_EMPTY 属性为 空（\"\"） 或者为 NULL 都不序列化，则返回的json是没有这个字段的。这样对移动端会更省流量\n        // Include.NON_NULL 属性为NULL 不序列化,就是为null的字段不参加序列化\n        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);\n\n        // 字段保留，将null值转为\"\"\n//        objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>()\n//        {\n//            @Override\n//            public void serialize(Object o, JsonGenerator jsonGenerator,\n//                                  SerializerProvider serializerProvider)\n//                    throws IOException, JsonProcessingException\n//            {\n//                jsonGenerator.writeString(\"\");\n//            }\n//        });\n        return objectMapper;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/config/MyBatisConfig.java",
    "content": "package com.macro.mall.portal.config;\n\nimport org.mybatis.spring.annotation.MapperScan;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.transaction.annotation.EnableTransactionManagement;\n\n/**\n * MyBatis相关配置\n * Created by macro on 2019/4/8.\n */\n@Configuration\n@EnableTransactionManagement\n@MapperScan({\"com.macro.mall.mapper\",\"com.macro.mall.portal.dao\"})\npublic class MyBatisConfig {\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/config/RabbitMqConfig.java",
    "content": "package com.macro.mall.portal.config;\n\nimport com.macro.mall.portal.domain.QueueEnum;\nimport org.springframework.amqp.core.*;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\n\n/**\n * 消息队列相关配置\n * Created by macro on 2018/9/14.\n */\n@Configuration\npublic class RabbitMqConfig {\n\n    /**\n     * 订单消息实际消费队列所绑定的交换机\n     */\n    @Bean\n    DirectExchange orderDirect() {\n        return (DirectExchange) ExchangeBuilder\n                .directExchange(QueueEnum.QUEUE_ORDER_CANCEL.getExchange())\n                .durable(true)\n                .build();\n    }\n\n    /**\n     * 订单延迟队列队列所绑定的交换机\n     */\n    @Bean\n    DirectExchange orderTtlDirect() {\n        return (DirectExchange) ExchangeBuilder\n                .directExchange(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getExchange())\n                .durable(true)\n                .build();\n    }\n\n    /**\n     * 订单实际消费队列\n     */\n    @Bean\n    public Queue orderQueue() {\n        return new Queue(QueueEnum.QUEUE_ORDER_CANCEL.getName());\n    }\n\n    /**\n     * 订单延迟队列（死信队列）\n     */\n    @Bean\n    public Queue orderTtlQueue() {\n        return QueueBuilder\n                .durable(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getName())\n                .withArgument(\"x-dead-letter-exchange\", QueueEnum.QUEUE_ORDER_CANCEL.getExchange())//到期后转发的交换机\n                .withArgument(\"x-dead-letter-routing-key\", QueueEnum.QUEUE_ORDER_CANCEL.getRouteKey())//到期后转发的路由键\n                .build();\n    }\n\n    /**\n     * 将订单队列绑定到交换机\n     */\n    @Bean\n    Binding orderBinding(DirectExchange orderDirect,Queue orderQueue){\n        return BindingBuilder\n                .bind(orderQueue)\n                .to(orderDirect)\n                .with(QueueEnum.QUEUE_ORDER_CANCEL.getRouteKey());\n    }\n\n    /**\n     * 将订单延迟队列绑定到交换机\n     */\n    @Bean\n    Binding orderTtlBinding(DirectExchange orderTtlDirect,Queue orderTtlQueue){\n        return BindingBuilder\n                .bind(orderTtlQueue)\n                .to(orderTtlDirect)\n                .with(QueueEnum.QUEUE_TTL_ORDER_CANCEL.getRouteKey());\n    }\n\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/config/RedisConfig.java",
    "content": "package com.macro.mall.portal.config;\n\nimport com.macro.mall.common.config.BaseRedisConfig;\nimport org.springframework.cache.annotation.EnableCaching;\nimport org.springframework.context.annotation.Configuration;\n\n/**\n * Redis相关配置\n * Created by macro on 2020/3/2.\n */\n@EnableCaching\n@Configuration\npublic class RedisConfig extends BaseRedisConfig {\n\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/config/SpringDocConfig.java",
    "content": "package com.macro.mall.portal.config;\n\nimport io.swagger.v3.oas.models.Components;\nimport io.swagger.v3.oas.models.ExternalDocumentation;\nimport io.swagger.v3.oas.models.OpenAPI;\nimport io.swagger.v3.oas.models.info.Info;\nimport io.swagger.v3.oas.models.info.License;\nimport io.swagger.v3.oas.models.security.SecurityRequirement;\nimport io.swagger.v3.oas.models.security.SecurityScheme;\nimport org.springdoc.core.customizers.GlobalOpenApiCustomizer;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.web.servlet.config.annotation.ViewControllerRegistry;\nimport org.springframework.web.servlet.config.annotation.WebMvcConfigurer;\n\n/**\n * SpringDoc相关配置\n * Created by macro on 2024/3/5.\n */\n@Configuration\npublic class SpringDocConfig implements WebMvcConfigurer {\n\n    private static final String SECURITY_SCHEME_NAME = \"Authorization\";\n\n    @Bean\n    public OpenAPI mallPortalOpenAPI() {\n        return new OpenAPI()\n                .info(new Info().title(\"mall前台系统\")\n                        .description(\"mall前台相关接口文档\")\n                        .version(\"v1.0.0\")\n                        .license(new License().name(\"Apache 2.0\")\n                                .url(\"https://github.com/macrozheng/mall-learning\")))\n                .externalDocs(new ExternalDocumentation()\n                        .description(\"SpringBoot实战电商项目mall（60K+Star）全套文档\")\n                        .url(\"http://www.macrozheng.com\"))\n                .addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME))\n                .components(new Components()\n                        .addSecuritySchemes(SECURITY_SCHEME_NAME,\n                                new SecurityScheme()\n                                        .name(SECURITY_SCHEME_NAME)\n                                        .type(SecurityScheme.Type.HTTP)\n                                        .scheme(\"bearer\")\n                                        .bearerFormat(\"JWT\")));\n    }\n\n    @Override\n    public void addViewControllers(ViewControllerRegistry registry) {\n        //配置访问`/swagger-ui/`路径时可以直接跳转到`/swagger-ui/index.html`\n        registry.addViewController(\"/swagger-ui/\").setViewName(\"redirect:/swagger-ui/index.html\");\n    }\n\n    @Bean\n    public GlobalOpenApiCustomizer orderGlobalOpenApiCustomizer() {\n        //解决Knife4j配置认证后无法自动添加认证头的问题\n        return openApi -> {\n            //全局添加鉴权参数\n            if (openApi.getPaths() != null) {\n                openApi.getPaths().forEach((s, pathItem) -> {\n                    pathItem.readOperations().forEach(operation -> {\n                        operation.addSecurityItem(new SecurityRequirement().addList(SECURITY_SCHEME_NAME));\n                    });\n                });\n            }\n        };\n    }\n\n}\n\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/config/SpringTaskConfig.java",
    "content": "package com.macro.mall.portal.config;\n\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.scheduling.annotation.EnableScheduling;\n\n/**\n * 定时任务相关配置\n * Created by macro on 2019/4/8.\n */\n@Configuration\n@EnableScheduling\npublic class SpringTaskConfig {\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/AlipayController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.portal.config.AlipayConfig;\nimport com.macro.mall.portal.domain.AliPayParam;\nimport com.macro.mall.portal.service.AlipayService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\nimport jakarta.servlet.http.HttpServletRequest;\nimport jakarta.servlet.http.HttpServletResponse;\nimport java.io.IOException;\nimport java.util.HashMap;\nimport java.util.Map;\n\n/**\n * @auther macrozheng\n * @description 支付宝支付Controller\n * @date 2023/9/8\n * @github https://github.com/macrozheng\n */\n@Controller\n@Tag(name = \"AlipayController\", description = \"支付宝支付相关接口\")\n@RequestMapping(\"/alipay\")\npublic class AlipayController {\n\n    @Autowired\n    private AlipayConfig alipayConfig;\n    @Autowired\n    private AlipayService alipayService;\n\n    @Operation(summary = \"支付宝电脑网站支付\")\n    @RequestMapping(value = \"/pay\", method = RequestMethod.GET)\n    public void pay(AliPayParam aliPayParam, HttpServletResponse response) throws IOException {\n        response.setContentType(\"text/html;charset=\" + alipayConfig.getCharset());\n        response.getWriter().write(alipayService.pay(aliPayParam));\n        response.getWriter().flush();\n        response.getWriter().close();\n    }\n\n    @Operation(summary = \"支付宝手机网站支付\")\n    @RequestMapping(value = \"/webPay\", method = RequestMethod.GET)\n    public void webPay(AliPayParam aliPayParam, HttpServletResponse response) throws IOException {\n        response.setContentType(\"text/html;charset=\" + alipayConfig.getCharset());\n        response.getWriter().write(alipayService.webPay(aliPayParam));\n        response.getWriter().flush();\n        response.getWriter().close();\n    }\n\n    @Operation(summary = \"支付宝异步回调\",description = \"必须为POST请求，执行成功返回success，执行失败返回failure\")\n    @RequestMapping(value = \"/notify\", method = RequestMethod.POST)\n    public String notify(HttpServletRequest request){\n        Map<String, String> params = new HashMap<>();\n        Map<String, String[]> requestParams = request.getParameterMap();\n        for (String name : requestParams.keySet()) {\n            params.put(name, request.getParameter(name));\n        }\n        return alipayService.notify(params);\n    }\n\n    @Operation(summary = \"支付宝统一收单线下交易查询\",description = \"订单支付成功返回交易状态：TRADE_SUCCESS\")\n    @RequestMapping(value = \"/query\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<String> query(String outTradeNo, String tradeNo){\n        return CommonResult.success(alipayService.query(outTradeNo,tradeNo));\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/HomeController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.CmsSubject;\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.model.PmsProductCategory;\nimport com.macro.mall.portal.domain.HomeContentResult;\nimport com.macro.mall.portal.service.HomeService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 首页内容管理Controller\n * Created by macro on 2019/1/28.\n */\n@Controller\n@Tag(name = \"HomeController\", description = \"首页内容管理\")\n@RequestMapping(\"/home\")\npublic class HomeController {\n    @Autowired\n    private HomeService homeService;\n\n    @Operation(summary = \"首页内容页信息展示\")\n    @RequestMapping(value = \"/content\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<HomeContentResult> content() {\n        HomeContentResult contentResult = homeService.content();\n        return CommonResult.success(contentResult);\n    }\n\n    @Operation(summary = \"分页获取推荐商品\")\n    @RequestMapping(value = \"/recommendProductList\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsProduct>> recommendProductList(@RequestParam(value = \"pageSize\", defaultValue = \"4\") Integer pageSize,\n                                                               @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<PmsProduct> productList = homeService.recommendProductList(pageSize, pageNum);\n        return CommonResult.success(productList);\n    }\n\n    @Operation(summary = \"获取首页商品分类\")\n    @RequestMapping(value = \"/productCateList/{parentId}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsProductCategory>> getProductCateList(@PathVariable Long parentId) {\n        List<PmsProductCategory> productCategoryList = homeService.getProductCateList(parentId);\n        return CommonResult.success(productCategoryList);\n    }\n\n    @Operation(summary = \"根据分类获取专题\")\n    @RequestMapping(value = \"/subjectList\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<CmsSubject>> getSubjectList(@RequestParam(required = false) Long cateId,\n                                                         @RequestParam(value = \"pageSize\", defaultValue = \"4\") Integer pageSize,\n                                                         @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<CmsSubject> subjectList = homeService.getSubjectList(cateId,pageSize,pageNum);\n        return CommonResult.success(subjectList);\n    }\n\n    @Operation(summary = \"分页获取人气推荐商品\")\n    @RequestMapping(value = \"/hotProductList\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsProduct>> hotProductList(@RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum,\n                                                         @RequestParam(value = \"pageSize\", defaultValue = \"6\") Integer pageSize) {\n        List<PmsProduct> productList = homeService.hotProductList(pageNum,pageSize);\n        return CommonResult.success(productList);\n    }\n\n    @Operation(summary = \"分页获取新品推荐商品\")\n    @RequestMapping(value = \"/newProductList\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsProduct>> newProductList(@RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum,\n                                                         @RequestParam(value = \"pageSize\", defaultValue = \"6\") Integer pageSize) {\n        List<PmsProduct> productList = homeService.newProductList(pageNum,pageSize);\n        return CommonResult.success(productList);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/MemberAttentionController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.portal.domain.MemberBrandAttention;\nimport com.macro.mall.portal.domain.MemberProductCollection;\nimport com.macro.mall.portal.service.MemberAttentionService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.Page;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 会员关注品牌管理Controller\n * Created by macro on 2018/8/2.\n */\n@Controller\n@Tag(name = \"MemberAttentionController\", description = \"会员关注品牌管理\")\n@RequestMapping(\"/member/attention\")\npublic class MemberAttentionController {\n    @Autowired\n    private MemberAttentionService memberAttentionService;\n    @Operation(summary = \"添加品牌关注\")\n    @RequestMapping(value = \"/add\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult add(@RequestBody MemberBrandAttention memberBrandAttention) {\n        int count = memberAttentionService.add(memberBrandAttention);\n        if(count>0){\n            return CommonResult.success(count);\n        }else{\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"取消关注\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(Long brandId) {\n        int count = memberAttentionService.delete(brandId);\n        if(count>0){\n            return CommonResult.success(count);\n        }else{\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"显示关注列表\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<MemberBrandAttention>> list(@RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum,\n                                                               @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize) {\n        Page<MemberBrandAttention> page = memberAttentionService.list(pageNum,pageSize);\n        return CommonResult.success(CommonPage.restPage(page));\n    }\n\n    @Operation(summary = \"显示关注品牌详情\")\n    @RequestMapping(value = \"/detail\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<MemberBrandAttention> detail(@RequestParam Long brandId) {\n        MemberBrandAttention memberBrandAttention = memberAttentionService.detail(brandId);\n        return CommonResult.success(memberBrandAttention);\n    }\n\n    @Operation(summary = \"清空关注列表\")\n    @RequestMapping(value = \"/clear\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult clear() {\n        memberAttentionService.clear();\n        return CommonResult.success(null);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/MemberProductCollectionController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.portal.domain.MemberProductCollection;\nimport com.macro.mall.portal.service.MemberCollectionService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.Page;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 会员收藏管理Controller\n * Created by macro on 2018/8/2.\n */\n@Controller\n@Tag(name = \"MemberCollectionController\", description = \"会员收藏管理\")\n@RequestMapping(\"/member/productCollection\")\npublic class MemberProductCollectionController {\n    @Autowired\n    private MemberCollectionService memberCollectionService;\n\n    @Operation(summary = \"添加商品收藏\")\n    @RequestMapping(value = \"/add\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult add(@RequestBody MemberProductCollection productCollection) {\n        int count = memberCollectionService.add(productCollection);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"删除收藏商品\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(Long productId) {\n        int count = memberCollectionService.delete(productId);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"显示收藏列表\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<MemberProductCollection>> list(@RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum,\n                                                                  @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize) {\n        Page<MemberProductCollection> page = memberCollectionService.list(pageNum,pageSize);\n        return CommonResult.success(CommonPage.restPage(page));\n    }\n\n    @Operation(summary = \"显示收藏商品详情\")\n    @RequestMapping(value = \"/detail\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<MemberProductCollection> detail(@RequestParam Long productId) {\n        MemberProductCollection memberProductCollection = memberCollectionService.detail(productId);\n        return CommonResult.success(memberProductCollection);\n    }\n\n    @Operation(summary = \"清空收藏列表\")\n    @RequestMapping(value = \"/clear\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult clear() {\n        memberCollectionService.clear();\n        return CommonResult.success(null);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/MemberReadHistoryController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.portal.domain.MemberReadHistory;\nimport com.macro.mall.portal.service.MemberReadHistoryService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.Page;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 会员商品浏览记录管理Controller\n * Created by macro on 2018/8/3.\n */\n@Controller\n@Tag(name = \"MemberReadHistoryController\", description = \"会员商品浏览记录管理\")\n@RequestMapping(\"/member/readHistory\")\npublic class MemberReadHistoryController {\n    @Autowired\n    private MemberReadHistoryService memberReadHistoryService;\n\n    @Operation(summary = \"创建浏览记录\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody MemberReadHistory memberReadHistory) {\n        int count = memberReadHistoryService.create(memberReadHistory);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"删除浏览记录\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<String> ids) {\n        int count = memberReadHistoryService.delete(ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"清空除浏览记录\")\n    @RequestMapping(value = \"/clear\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult clear() {\n        memberReadHistoryService.clear();\n        return CommonResult.success(null);\n    }\n\n    @Operation(summary = \"分页获取用户浏览记录\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<MemberReadHistory>> list(@RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum,\n                                                            @RequestParam(value = \"pageSize\", defaultValue = \"5\") Integer pageSize) {\n        Page<MemberReadHistory> page = memberReadHistoryService.list(pageNum, pageSize);\n        return CommonResult.success(CommonPage.restPage(page));\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/OmsCartItemController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.OmsCartItem;\nimport com.macro.mall.portal.domain.CartProduct;\nimport com.macro.mall.portal.domain.CartPromotionItem;\nimport com.macro.mall.portal.service.OmsCartItemService;\nimport com.macro.mall.portal.service.UmsMemberService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 购物车管理Controller\n * Created by macro on 2018/8/2.\n */\n@Controller\n@Tag(name = \"OmsCartItemController\", description = \"购物车管理\")\n@RequestMapping(\"/cart\")\npublic class OmsCartItemController {\n    @Autowired\n    private OmsCartItemService cartItemService;\n    @Autowired\n    private UmsMemberService memberService;\n\n    @Operation(summary = \"添加商品到购物车\")\n    @RequestMapping(value = \"/add\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult add(@RequestBody OmsCartItem cartItem) {\n        int count = cartItemService.add(cartItem);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"获取某个会员的购物车列表\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<OmsCartItem>> list() {\n        List<OmsCartItem> cartItemList = cartItemService.list(memberService.getCurrentMember().getId());\n        return CommonResult.success(cartItemList);\n    }\n\n    @Operation(summary = \"获取某个会员的购物车列表,包括促销信息\")\n    @RequestMapping(value = \"/list/promotion\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<CartPromotionItem>> listPromotion(@RequestParam(required = false) List<Long> cartIds) {\n        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(memberService.getCurrentMember().getId(), cartIds);\n        return CommonResult.success(cartPromotionItemList);\n    }\n\n    @Operation(summary = \"修改购物车中某个商品的数量\")\n    @RequestMapping(value = \"/update/quantity\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult updateQuantity(@RequestParam Long id,\n                                       @RequestParam Integer quantity) {\n        int count = cartItemService.updateQuantity(id, memberService.getCurrentMember().getId(), quantity);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"获取购物车中某个商品的规格,用于重选规格\")\n    @RequestMapping(value = \"/getProduct/{productId}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CartProduct> getCartProduct(@PathVariable Long productId) {\n        CartProduct cartProduct = cartItemService.getCartProduct(productId);\n        return CommonResult.success(cartProduct);\n    }\n\n    @Operation(summary = \"修改购物车中商品的规格\")\n    @RequestMapping(value = \"/update/attr\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updateAttr(@RequestBody OmsCartItem cartItem) {\n        int count = cartItemService.updateAttr(cartItem);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"删除购物车中的某个商品\")\n    @RequestMapping(value = \"/delete\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@RequestParam(\"ids\") List<Long> ids) {\n        int count = cartItemService.delete(memberService.getCurrentMember().getId(), ids);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"清空购物车\")\n    @RequestMapping(value = \"/clear\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult clear() {\n        int count = cartItemService.clear(memberService.getCurrentMember().getId());\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/OmsPortalOrderController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.portal.domain.ConfirmOrderResult;\nimport com.macro.mall.portal.domain.OmsOrderDetail;\nimport com.macro.mall.portal.domain.OrderParam;\nimport com.macro.mall.portal.service.OmsPortalOrderService;\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.Parameter;\nimport io.swagger.v3.oas.annotations.enums.ParameterIn;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\nimport java.util.Map;\n\n/**\n * 订单管理Controller\n * Created by macro on 2018/8/30.\n */\n@Controller\n@Tag(name = \"OmsPortalOrderController\", description = \"订单管理\")\n@RequestMapping(\"/order\")\npublic class OmsPortalOrderController {\n    @Autowired\n    private OmsPortalOrderService portalOrderService;\n\n    @Operation(summary = \"根据购物车信息生成确认单信息\")\n    @RequestMapping(value = \"/generateConfirmOrder\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult<ConfirmOrderResult> generateConfirmOrder(@RequestBody List<Long> cartIds) {\n        ConfirmOrderResult confirmOrderResult = portalOrderService.generateConfirmOrder(cartIds);\n        return CommonResult.success(confirmOrderResult);\n    }\n\n    @Operation(summary = \"根据购物车信息生成订单\")\n    @RequestMapping(value = \"/generateOrder\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult generateOrder(@RequestBody OrderParam orderParam) {\n        Map<String, Object> result = portalOrderService.generateOrder(orderParam);\n        return CommonResult.success(result, \"下单成功\");\n    }\n\n    @Operation(summary = \"用户支付成功的回调\")\n    @RequestMapping(value = \"/paySuccess\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult paySuccess(@RequestParam Long orderId,@RequestParam Integer payType) {\n        Integer count = portalOrderService.paySuccess(orderId,payType);\n        return CommonResult.success(count, \"支付成功\");\n    }\n\n    @Operation(summary = \"自动取消超时订单\")\n    @RequestMapping(value = \"/cancelTimeOutOrder\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult cancelTimeOutOrder() {\n        portalOrderService.cancelTimeOutOrder();\n        return CommonResult.success(null);\n    }\n\n    @Operation(summary = \"取消单个超时订单\")\n    @RequestMapping(value = \"/cancelOrder\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult cancelOrder(Long orderId) {\n        portalOrderService.sendDelayMessageCancelOrder(orderId);\n        return CommonResult.success(null);\n    }\n\n    @Operation(summary = \"按状态分页获取用户订单列表\")\n    @Parameter(name = \"status\", description = \"订单状态：-1->全部；0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭\",\n            in = ParameterIn.QUERY, schema = @Schema(type = \"integer\",defaultValue = \"-1\",allowableValues = {\"-1\",\"0\",\"1\",\"2\",\"3\",\"4\"}))\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<OmsOrderDetail>> list(@RequestParam Integer status,\n                                                   @RequestParam(required = false, defaultValue = \"1\") Integer pageNum,\n                                                   @RequestParam(required = false, defaultValue = \"5\") Integer pageSize) {\n        CommonPage<OmsOrderDetail> orderPage = portalOrderService.list(status,pageNum,pageSize);\n        return CommonResult.success(orderPage);\n    }\n\n    @Operation(summary = \"根据ID获取订单详情\")\n    @RequestMapping(value = \"/detail/{orderId}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<OmsOrderDetail> detail(@PathVariable Long orderId) {\n        OmsOrderDetail orderDetail = portalOrderService.detail(orderId);\n        return CommonResult.success(orderDetail);\n    }\n\n    @Operation(summary = \"用户取消订单\")\n    @RequestMapping(value = \"/cancelUserOrder\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult cancelUserOrder(Long orderId) {\n        portalOrderService.cancelOrder(orderId);\n        return CommonResult.success(null);\n    }\n\n    @Operation(summary = \"用户确认收货\")\n    @RequestMapping(value = \"/confirmReceiveOrder\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult confirmReceiveOrder(Long orderId) {\n        portalOrderService.confirmReceiveOrder(orderId);\n        return CommonResult.success(null);\n    }\n\n    @Operation(summary = \"用户删除订单\")\n    @RequestMapping(value = \"/deleteOrder\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult deleteOrder(Long orderId) {\n        portalOrderService.deleteOrder(orderId);\n        return CommonResult.success(null);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/OmsPortalOrderReturnApplyController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.portal.domain.OmsOrderReturnApplyParam;\nimport com.macro.mall.portal.service.OmsPortalOrderReturnApplyService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestBody;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\n/**\n * 申请退货管理Controller\n * Created by macro on 2018/10/17.\n */\n@Controller\n@Tag(name = \"OmsPortalOrderReturnApplyController\", description = \"申请退货管理\")\n@RequestMapping(\"/returnApply\")\npublic class OmsPortalOrderReturnApplyController {\n    @Autowired\n    private OmsPortalOrderReturnApplyService returnApplyService;\n\n    @Operation(summary = \"申请退货\")\n    @RequestMapping(value = \"/create\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult create(@RequestBody OmsOrderReturnApplyParam returnApply) {\n        int count = returnApplyService.create(returnApply);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/PmsPortalProductController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.portal.domain.PmsPortalProductDetail;\nimport com.macro.mall.portal.domain.PmsProductCategoryNode;\nimport com.macro.mall.portal.service.PmsPortalProductService;\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.Parameter;\nimport io.swagger.v3.oas.annotations.enums.ParameterIn;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 前台商品管理Controller\n * Created by macro on 2020/4/6.\n */\n@Controller\n@Tag(name = \"PmsPortalProductController\", description = \"前台商品管理\")\n@RequestMapping(\"/product\")\npublic class PmsPortalProductController {\n\n    @Autowired\n    private PmsPortalProductService portalProductService;\n\n    @Operation(summary = \"综合搜索、筛选、排序\")\n    @Parameter(name = \"sort\", description = \"排序字段:0->按相关度；1->按新品；2->按销量；3->价格从低到高；4->价格从高到低\",\n            in= ParameterIn.QUERY,schema = @Schema(type = \"integer\",defaultValue = \"0\",allowableValues = {\"0\",\"1\",\"2\",\"3\",\"4\"}))\n    @RequestMapping(value = \"/search\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<PmsProduct>> search(@RequestParam(required = false) String keyword,\n                                                       @RequestParam(required = false) Long brandId,\n                                                       @RequestParam(required = false) Long productCategoryId,\n                                                       @RequestParam(required = false, defaultValue = \"0\") Integer pageNum,\n                                                       @RequestParam(required = false, defaultValue = \"5\") Integer pageSize,\n                                                       @RequestParam(required = false, defaultValue = \"0\") Integer sort) {\n        List<PmsProduct> productList = portalProductService.search(keyword, brandId, productCategoryId, pageNum, pageSize, sort);\n        return CommonResult.success(CommonPage.restPage(productList));\n    }\n\n    @Operation(summary = \"以树形结构获取所有商品分类\")\n    @RequestMapping(value = \"/categoryTreeList\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsProductCategoryNode>> categoryTreeList() {\n        List<PmsProductCategoryNode> list = portalProductService.categoryTreeList();\n        return CommonResult.success(list);\n    }\n\n    @Operation(summary = \"获取前台商品详情\")\n    @RequestMapping(value = \"/detail/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<PmsPortalProductDetail> detail(@PathVariable Long id) {\n        PmsPortalProductDetail productDetail = portalProductService.detail(id);\n        return CommonResult.success(productDetail);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/PortalBrandController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.PmsBrand;\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.portal.service.PortalBrandService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 首页品牌推荐管理Controller\n * Created by macro on 2020/5/15.\n */\n@Controller\n@Tag(name = \"PortalBrandController\", description = \"前台品牌管理\")\n@RequestMapping(\"/brand\")\npublic class PortalBrandController {\n\n    @Autowired\n    private PortalBrandService homeBrandService;\n\n    @Operation(summary = \"分页获取推荐品牌\")\n    @RequestMapping(value = \"/recommendList\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<PmsBrand>> recommendList(@RequestParam(value = \"pageSize\", defaultValue = \"6\") Integer pageSize,\n                                                      @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum) {\n        List<PmsBrand> brandList = homeBrandService.recommendList(pageNum, pageSize);\n        return CommonResult.success(brandList);\n    }\n\n    @Operation(summary = \"获取品牌详情\")\n    @RequestMapping(value = \"/detail/{brandId}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<PmsBrand> detail(@PathVariable Long brandId) {\n        PmsBrand brand = homeBrandService.detail(brandId);\n        return CommonResult.success(brand);\n    }\n\n    @Operation(summary = \"分页获取品牌相关商品\")\n    @RequestMapping(value = \"/productList\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<PmsProduct>> productList(@RequestParam Long brandId,\n                                                            @RequestParam(value = \"pageNum\", defaultValue = \"1\") Integer pageNum,\n                                                            @RequestParam(value = \"pageSize\", defaultValue = \"6\") Integer pageSize) {\n        CommonPage<PmsProduct> result = homeBrandService.productList(brandId,pageNum, pageSize);\n        return CommonResult.success(result);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/UmsMemberController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport cn.dev33.satoken.stp.SaTokenInfo;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.UmsMember;\nimport com.macro.mall.portal.service.UmsMemberService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.RequestMapping;\nimport org.springframework.web.bind.annotation.RequestMethod;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.ResponseBody;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\n/**\n * 会员登录注册管理Controller\n * Created by macro on 2018/8/3.\n */\n@Controller\n@Tag(name = \"UmsMemberController\", description = \"会员登录注册管理\")\n@RequestMapping(\"/sso\")\npublic class UmsMemberController {\n    @Autowired\n    private UmsMemberService memberService;\n    @Value(\"${sa-token.token-prefix}\")\n    private String tokenHead;\n\n    @Operation(summary = \"会员注册\")\n    @RequestMapping(value = \"/register\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult register(@RequestParam String username,\n                                 @RequestParam String password,\n                                 @RequestParam String telephone,\n                                 @RequestParam String authCode) {\n        memberService.register(username, password, telephone, authCode);\n        return CommonResult.success(null,\"注册成功\");\n    }\n\n    @Operation(summary = \"会员登录\")\n    @RequestMapping(value = \"/login\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult login(@RequestParam String username,\n                              @RequestParam String password) {\n        SaTokenInfo saTokenInfo  = memberService.login(username, password);\n        if (saTokenInfo  == null) {\n            return CommonResult.validateFailed(\"用户名或密码错误\");\n        }\n        Map<String, String> tokenMap = new HashMap<>();\n        tokenMap.put(\"token\", saTokenInfo.getTokenValue() );\n        tokenMap.put(\"tokenHead\", tokenHead+\" \");\n        return CommonResult.success(tokenMap);\n    }\n\n    @Operation(summary = \"获取会员信息\")\n    @RequestMapping(value = \"/info\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult info() {\n        UmsMember member = memberService.getCurrentMember();\n        return CommonResult.success(member);\n    }\n\n    @Operation(summary = \"登出功能\")\n    @RequestMapping(value = \"/logout\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult logout() {\n        memberService.logout();\n        return CommonResult.success(null);\n    }\n\n    @Operation(summary = \"获取验证码\")\n    @RequestMapping(value = \"/getAuthCode\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult getAuthCode(@RequestParam String telephone) {\n        String authCode = memberService.generateAuthCode(telephone);\n        return CommonResult.success(authCode,\"获取验证码成功\");\n    }\n\n    @Operation(summary = \"修改密码\")\n    @RequestMapping(value = \"/updatePassword\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult updatePassword(@RequestParam String telephone,\n                                 @RequestParam String password,\n                                 @RequestParam String authCode) {\n        memberService.updatePassword(telephone,password,authCode);\n        return CommonResult.success(null,\"密码修改成功\");\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/UmsMemberCouponController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.SmsCoupon;\nimport com.macro.mall.model.SmsCouponHistory;\nimport com.macro.mall.portal.domain.CartPromotionItem;\nimport com.macro.mall.portal.domain.SmsCouponHistoryDetail;\nimport com.macro.mall.portal.service.OmsCartItemService;\nimport com.macro.mall.portal.service.UmsMemberCouponService;\nimport com.macro.mall.portal.service.UmsMemberService;\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.Parameter;\nimport io.swagger.v3.oas.annotations.enums.ParameterIn;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 会员优惠券管理Controller\n * Created by macro on 2018/8/29.\n */\n@Controller\n@Tag(name = \"UmsMemberCouponController\", description = \"用户优惠券管理\")\n@RequestMapping(\"/member/coupon\")\npublic class UmsMemberCouponController {\n    @Autowired\n    private UmsMemberCouponService memberCouponService;\n    @Autowired\n    private OmsCartItemService cartItemService;\n    @Autowired\n    private UmsMemberService memberService;\n\n    @Operation(summary = \"领取指定优惠券\")\n    @RequestMapping(value = \"/add/{couponId}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult add(@PathVariable Long couponId) {\n        memberCouponService.add(couponId);\n        return CommonResult.success(null,\"领取成功\");\n    }\n\n    @Operation(summary = \"获取会员优惠券历史列表\")\n    @Parameter(name = \"useStatus\", description = \"优惠券筛选类型:0->未使用；1->已使用；2->已过期\",\n            in = ParameterIn.QUERY,schema = @Schema(type = \"integer\",allowableValues = {\"0\",\"1\",\"2\"}))\n    @RequestMapping(value = \"/listHistory\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<SmsCouponHistory>> listHistory(@RequestParam(value = \"useStatus\", required = false) Integer useStatus) {\n        List<SmsCouponHistory> couponHistoryList = memberCouponService.listHistory(useStatus);\n        return CommonResult.success(couponHistoryList);\n    }\n\n    @Operation(summary = \"获取会员优惠券列表\")\n    @Parameter(name = \"useStatus\", description = \"优惠券筛选类型:0->未使用；1->已使用；2->已过期\",\n            in = ParameterIn.QUERY,schema = @Schema(type = \"integer\",allowableValues = {\"0\",\"1\",\"2\"}))\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<SmsCoupon>> list(@RequestParam(value = \"useStatus\", required = false) Integer useStatus) {\n        List<SmsCoupon> couponList = memberCouponService.list(useStatus);\n        return CommonResult.success(couponList);\n    }\n\n    @Operation(summary = \"获取登录会员购物车的相关优惠券\")\n    @Parameter(name = \"type\", description = \"使用可用:0->不可用；1->可用\",\n            in = ParameterIn.PATH,schema = @Schema(type = \"integer\",defaultValue = \"1\",allowableValues = {\"0\",\"1\"}))\n    @RequestMapping(value = \"/list/cart/{type}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<SmsCouponHistoryDetail>> listCart(@PathVariable Integer type) {\n        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(memberService.getCurrentMember().getId(), null);\n        List<SmsCouponHistoryDetail> couponHistoryList = memberCouponService.listCart(cartPromotionItemList, type);\n        return CommonResult.success(couponHistoryList);\n    }\n\n    @Operation(summary = \"获取当前商品相关优惠券\")\n    @RequestMapping(value = \"/listByProduct/{productId}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<SmsCoupon>> listByProduct(@PathVariable Long productId) {\n        List<SmsCoupon> couponHistoryList = memberCouponService.listByProduct(productId);\n        return CommonResult.success(couponHistoryList);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/controller/UmsMemberReceiveAddressController.java",
    "content": "package com.macro.mall.portal.controller;\n\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.model.UmsMemberReceiveAddress;\nimport com.macro.mall.portal.service.UmsMemberReceiveAddressService;\n\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 会员收货地址管理Controller\n * Created by macro on 2018/8/28.\n */\n@Controller\n@Tag(name = \"UmsMemberReceiveAddressController\", description = \"会员收货地址管理\")\n@RequestMapping(\"/member/address\")\npublic class UmsMemberReceiveAddressController {\n    @Autowired\n    private UmsMemberReceiveAddressService memberReceiveAddressService;\n\n    @Operation(summary = \"添加收货地址\")\n    @RequestMapping(value = \"/add\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult add(@RequestBody UmsMemberReceiveAddress address) {\n        int count = memberReceiveAddressService.add(address);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"删除收货地址\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult delete(@PathVariable Long id) {\n        int count = memberReceiveAddressService.delete(id);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"修改收货地址\")\n    @RequestMapping(value = \"/update/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult update(@PathVariable Long id, @RequestBody UmsMemberReceiveAddress address) {\n        int count = memberReceiveAddressService.update(id, address);\n        if (count > 0) {\n            return CommonResult.success(count);\n        }\n        return CommonResult.failed();\n    }\n\n    @Operation(summary = \"显示所有收货地址\")\n    @RequestMapping(value = \"/list\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<List<UmsMemberReceiveAddress>> list() {\n        List<UmsMemberReceiveAddress> addressList = memberReceiveAddressService.list();\n        return CommonResult.success(addressList);\n    }\n\n    @Operation(summary = \"获取收货地址详情\")\n    @RequestMapping(value = \"/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<UmsMemberReceiveAddress> getItem(@PathVariable Long id) {\n        UmsMemberReceiveAddress address = memberReceiveAddressService.getItem(id);\n        return CommonResult.success(address);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/dao/HomeDao.java",
    "content": "package com.macro.mall.portal.dao;\n\nimport com.macro.mall.model.CmsSubject;\nimport com.macro.mall.model.PmsBrand;\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.portal.domain.FlashPromotionProduct;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 首页内容管理自定义Dao\n * Created by macro on 2019/1/28.\n */\npublic interface HomeDao {\n\n    /**\n     * 获取推荐品牌\n     */\n    List<PmsBrand> getRecommendBrandList(@Param(\"offset\") Integer offset,@Param(\"limit\") Integer limit);\n\n    /**\n     * 获取秒杀商品\n     */\n    List<FlashPromotionProduct> getFlashProductList(@Param(\"flashPromotionId\") Long flashPromotionId, @Param(\"sessionId\") Long sessionId);\n\n    /**\n     * 获取新品推荐\n     */\n    List<PmsProduct> getNewProductList(@Param(\"offset\") Integer offset,@Param(\"limit\") Integer limit);\n    /**\n     * 获取人气推荐\n     */\n    List<PmsProduct> getHotProductList(@Param(\"offset\") Integer offset,@Param(\"limit\") Integer limit);\n\n    /**\n     * 获取推荐专题\n     */\n    List<CmsSubject> getRecommendSubjectList(@Param(\"offset\") Integer offset, @Param(\"limit\") Integer limit);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/dao/PortalOrderDao.java",
    "content": "package com.macro.mall.portal.dao;\n\nimport com.macro.mall.model.OmsOrderItem;\nimport com.macro.mall.portal.domain.OmsOrderDetail;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 前台订单自定义Dao\n * Created by macro on 2018/9/4.\n */\npublic interface PortalOrderDao {\n    /**\n     * 获取订单及下单商品详情\n     */\n    OmsOrderDetail getDetail(@Param(\"orderId\") Long orderId);\n\n    /**\n     * 修改 pms_sku_stock表的锁定库存及真实库存\n     */\n    int updateSkuStock(@Param(\"itemList\") List<OmsOrderItem> orderItemList);\n\n    /**\n     * 获取超时订单\n     * @param minute 超时时间（分）\n     */\n    List<OmsOrderDetail> getTimeOutOrders(@Param(\"minute\") Integer minute);\n\n    /**\n     * 批量修改订单状态\n     */\n    int updateOrderStatus(@Param(\"ids\") List<Long> ids,@Param(\"status\") Integer status);\n\n    /**\n     * 解除取消订单的库存锁定\n     */\n    int releaseSkuStockLock(@Param(\"itemList\") List<OmsOrderItem> orderItemList);\n\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/dao/PortalOrderItemDao.java",
    "content": "package com.macro.mall.portal.dao;\n\nimport com.macro.mall.model.OmsOrderItem;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 订单商品信息自定义Dao\n * Created by macro on 2018/9/3.\n */\npublic interface PortalOrderItemDao {\n    int insertList(@Param(\"list\") List<OmsOrderItem> list);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/dao/PortalProductDao.java",
    "content": "package com.macro.mall.portal.dao;\n\nimport com.macro.mall.model.SmsCoupon;\nimport com.macro.mall.portal.domain.CartProduct;\nimport com.macro.mall.portal.domain.PromotionProduct;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 前台系统自定义商品Dao\n * Created by macro on 2018/8/2.\n */\npublic interface PortalProductDao {\n    CartProduct getCartProduct(@Param(\"id\") Long id);\n    List<PromotionProduct> getPromotionProductList(@Param(\"ids\") List<Long> ids);\n    List<SmsCoupon> getAvailableCouponList(@Param(\"productId\") Long productId,@Param(\"productCategoryId\")Long productCategoryId);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/dao/SmsCouponHistoryDao.java",
    "content": "package com.macro.mall.portal.dao;\n\nimport com.macro.mall.model.SmsCoupon;\nimport com.macro.mall.portal.domain.SmsCouponHistoryDetail;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 会员优惠券领取历史自定义Dao\n * Created by macro on 2018/8/29.\n */\npublic interface SmsCouponHistoryDao {\n    List<SmsCouponHistoryDetail> getDetailList(@Param(\"memberId\") Long memberId);\n    List<SmsCoupon> getCouponList(@Param(\"memberId\") Long memberId, @Param(\"useStatus\")Integer useStatus);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/AliPayParam.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport lombok.Data;\n\nimport java.math.BigDecimal;\n\n/**\n * @auther macrozheng\n * @description 支付宝支付请求参数\n * @date 2023/9/8\n * @github https://github.com/macrozheng\n */\n@Data\npublic class AliPayParam {\n    /**\n     * 商户订单号，商家自定义，保持唯一性\n     */\n    private String outTradeNo;\n    /**\n     * 商品的标题/交易标题/订单标题/订单关键字等\n     */\n    private String subject;\n    /**\n     * 订单总金额，单位为元，精确到小数点后两位\n     */\n    private BigDecimal totalAmount;\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/CartProduct.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.model.PmsProductAttribute;\nimport com.macro.mall.model.PmsSkuStock;\n\nimport java.util.List;\n\n/**\n * 购物车中选择规格的商品信息\n * Created by macro on 2018/8/2.\n */\npublic class CartProduct extends PmsProduct {\n    private List<PmsProductAttribute> productAttributeList;\n    private List<PmsSkuStock> skuStockList;\n\n    public List<PmsProductAttribute> getProductAttributeList() {\n        return productAttributeList;\n    }\n\n    public void setProductAttributeList(List<PmsProductAttribute> productAttributeList) {\n        this.productAttributeList = productAttributeList;\n    }\n\n    public List<PmsSkuStock> getSkuStockList() {\n        return skuStockList;\n    }\n\n    public void setSkuStockList(List<PmsSkuStock> skuStockList) {\n        this.skuStockList = skuStockList;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/CartPromotionItem.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport com.macro.mall.model.OmsCartItem;\n\nimport java.math.BigDecimal;\n\n/**\n * Created by macro on 2018/8/27.\n * 购物车中促销信息的封装\n */\npublic class CartPromotionItem extends OmsCartItem{\n    //促销活动信息\n    private String promotionMessage;\n    //促销活动减去的金额，针对每个商品\n    private BigDecimal reduceAmount;\n    //商品的真实库存（剩余库存-锁定库存）\n    private Integer realStock;\n    //购买商品赠送积分\n    private Integer integration;\n    //购买商品赠送成长值\n    private Integer growth;\n    public String getPromotionMessage() {\n        return promotionMessage;\n    }\n\n    public void setPromotionMessage(String promotionMessage) {\n        this.promotionMessage = promotionMessage;\n    }\n\n    public BigDecimal getReduceAmount() {\n        return reduceAmount;\n    }\n\n    public void setReduceAmount(BigDecimal reduceAmount) {\n        this.reduceAmount = reduceAmount;\n    }\n\n    public Integer getRealStock() {\n        return realStock;\n    }\n\n    public void setRealStock(Integer realStock) {\n        this.realStock = realStock;\n    }\n\n    public Integer getIntegration() {\n        return integration;\n    }\n\n    public void setIntegration(Integer integration) {\n        this.integration = integration;\n    }\n\n    public Integer getGrowth() {\n        return growth;\n    }\n\n    public void setGrowth(Integer growth) {\n        this.growth = growth;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/ConfirmOrderResult.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport com.macro.mall.model.UmsIntegrationConsumeSetting;\nimport com.macro.mall.model.UmsMemberReceiveAddress;\n\nimport java.math.BigDecimal;\nimport java.util.List;\n\n/**\n * 确认单信息封装\n * Created by macro on 2018/8/30.\n */\npublic class ConfirmOrderResult {\n    //包含优惠信息的购物车信息\n    private List<CartPromotionItem> cartPromotionItemList;\n    //用户收货地址列表\n    private List<UmsMemberReceiveAddress> memberReceiveAddressList;\n    //用户可用优惠券列表\n    private List<SmsCouponHistoryDetail> couponHistoryDetailList;\n    //积分使用规则\n    private UmsIntegrationConsumeSetting integrationConsumeSetting;\n    //会员持有的积分\n    private Integer memberIntegration;\n    //计算的金额\n    private CalcAmount calcAmount;\n\n    public List<CartPromotionItem> getCartPromotionItemList() {\n        return cartPromotionItemList;\n    }\n\n    public void setCartPromotionItemList(List<CartPromotionItem> cartPromotionItemList) {\n        this.cartPromotionItemList = cartPromotionItemList;\n    }\n\n    public List<UmsMemberReceiveAddress> getMemberReceiveAddressList() {\n        return memberReceiveAddressList;\n    }\n\n    public void setMemberReceiveAddressList(List<UmsMemberReceiveAddress> memberReceiveAddressList) {\n        this.memberReceiveAddressList = memberReceiveAddressList;\n    }\n\n    public List<SmsCouponHistoryDetail> getCouponHistoryDetailList() {\n        return couponHistoryDetailList;\n    }\n\n    public void setCouponHistoryDetailList(List<SmsCouponHistoryDetail> couponHistoryDetailList) {\n        this.couponHistoryDetailList = couponHistoryDetailList;\n    }\n\n    public UmsIntegrationConsumeSetting getIntegrationConsumeSetting() {\n        return integrationConsumeSetting;\n    }\n\n    public void setIntegrationConsumeSetting(UmsIntegrationConsumeSetting integrationConsumeSetting) {\n        this.integrationConsumeSetting = integrationConsumeSetting;\n    }\n\n    public Integer getMemberIntegration() {\n        return memberIntegration;\n    }\n\n    public void setMemberIntegration(Integer memberIntegration) {\n        this.memberIntegration = memberIntegration;\n    }\n\n    public CalcAmount getCalcAmount() {\n        return calcAmount;\n    }\n\n    public void setCalcAmount(CalcAmount calcAmount) {\n        this.calcAmount = calcAmount;\n    }\n\n    public static class CalcAmount{\n        //订单商品总金额\n        private BigDecimal totalAmount;\n        //运费\n        private BigDecimal freightAmount;\n        //活动优惠\n        private BigDecimal promotionAmount;\n        //应付金额\n        private BigDecimal payAmount;\n\n        public BigDecimal getTotalAmount() {\n            return totalAmount;\n        }\n\n        public void setTotalAmount(BigDecimal totalAmount) {\n            this.totalAmount = totalAmount;\n        }\n\n        public BigDecimal getFreightAmount() {\n            return freightAmount;\n        }\n\n        public void setFreightAmount(BigDecimal freightAmount) {\n            this.freightAmount = freightAmount;\n        }\n\n        public BigDecimal getPromotionAmount() {\n            return promotionAmount;\n        }\n\n        public void setPromotionAmount(BigDecimal promotionAmount) {\n            this.promotionAmount = promotionAmount;\n        }\n\n        public BigDecimal getPayAmount() {\n            return payAmount;\n        }\n\n        public void setPayAmount(BigDecimal payAmount) {\n            this.payAmount = payAmount;\n        }\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/FlashPromotionProduct.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport com.macro.mall.model.PmsProduct;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.math.BigDecimal;\n\n/**\n * 秒杀信息和商品对象封装\n * Created by macro on 2019/1/28.\n */\n@Getter\n@Setter\npublic class FlashPromotionProduct extends PmsProduct{\n    private BigDecimal flashPromotionPrice;\n    private Integer flashPromotionCount;\n    private Integer flashPromotionLimit;\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/HomeContentResult.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport com.macro.mall.model.CmsSubject;\nimport com.macro.mall.model.PmsBrand;\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.model.SmsHomeAdvertise;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.util.List;\n\n/**\n * 首页内容返回信息封装\n * Created by macro on 2019/1/28.\n */\n@Getter\n@Setter\npublic class HomeContentResult {\n    //轮播广告\n    private List<SmsHomeAdvertise> advertiseList;\n    //推荐品牌\n    private List<PmsBrand> brandList;\n    //当前秒杀场次\n    private HomeFlashPromotion homeFlashPromotion;\n    //新品推荐\n    private List<PmsProduct> newProductList;\n    //人气推荐\n    private List<PmsProduct> hotProductList;\n    //推荐专题\n    private List<CmsSubject> subjectList;\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/HomeFlashPromotion.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * 首页当前秒杀场次信息\n * Created by macro on 2019/1/28.\n */\n@Getter\n@Setter\npublic class HomeFlashPromotion {\n    private Date startTime;\n    private Date endTime;\n    private Date nextStartTime;\n    private Date nextEndTime;\n    //属于该秒杀活动的商品\n    private List<FlashPromotionProduct> productList;\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/MemberBrandAttention.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport org.springframework.data.annotation.Id;\nimport org.springframework.data.mongodb.core.index.Indexed;\nimport org.springframework.data.mongodb.core.mapping.Document;\n\nimport java.util.Date;\n\n/**\n * 会员关注的品牌\n * Created by macro on 2018/8/2.\n */\n@Document\npublic class MemberBrandAttention {\n    @Id\n    private String id;\n    @Indexed\n    private Long memberId;\n    private String memberNickname;\n    private String memberIcon;\n    @Indexed\n    private Long brandId;\n    private String brandName;\n    private String brandLogo;\n    private String brandCity;\n    private Date createTime;\n\n    public String getId() {\n        return id;\n    }\n\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public String getMemberNickname() {\n        return memberNickname;\n    }\n\n    public void setMemberNickname(String memberNickname) {\n        this.memberNickname = memberNickname;\n    }\n\n    public String getMemberIcon() {\n        return memberIcon;\n    }\n\n    public void setMemberIcon(String memberIcon) {\n        this.memberIcon = memberIcon;\n    }\n\n    public Long getBrandId() {\n        return brandId;\n    }\n\n    public void setBrandId(Long brandId) {\n        this.brandId = brandId;\n    }\n\n    public String getBrandName() {\n        return brandName;\n    }\n\n    public void setBrandName(String brandName) {\n        this.brandName = brandName;\n    }\n\n    public String getBrandLogo() {\n        return brandLogo;\n    }\n\n    public void setBrandLogo(String brandLogo) {\n        this.brandLogo = brandLogo;\n    }\n\n    public String getBrandCity() {\n        return brandCity;\n    }\n\n    public void setBrandCity(String brandCity) {\n        this.brandCity = brandCity;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/MemberProductCollection.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport org.springframework.data.annotation.Id;\nimport org.springframework.data.mongodb.core.index.Indexed;\n\nimport java.util.Date;\n\n/**\n * 用户收藏的商品\n * Created by macro on 2018/8/2.\n */\npublic class MemberProductCollection {\n    @Id\n    private String id;\n    @Indexed\n    private Long memberId;\n    private String memberNickname;\n    private String memberIcon;\n    @Indexed\n    private Long productId;\n    private String productName;\n    private String productPic;\n    private String productSubTitle;\n    private String productPrice;\n    private Date createTime;\n\n    public String getId() {\n        return id;\n    }\n\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public String getMemberNickname() {\n        return memberNickname;\n    }\n\n    public void setMemberNickname(String memberNickname) {\n        this.memberNickname = memberNickname;\n    }\n\n    public String getMemberIcon() {\n        return memberIcon;\n    }\n\n    public void setMemberIcon(String memberIcon) {\n        this.memberIcon = memberIcon;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public String getProductName() {\n        return productName;\n    }\n\n    public void setProductName(String productName) {\n        this.productName = productName;\n    }\n\n    public String getProductPic() {\n        return productPic;\n    }\n\n    public void setProductPic(String productPic) {\n        this.productPic = productPic;\n    }\n\n    public String getProductSubTitle() {\n        return productSubTitle;\n    }\n\n    public void setProductSubTitle(String productSubTitle) {\n        this.productSubTitle = productSubTitle;\n    }\n\n    public String getProductPrice() {\n        return productPrice;\n    }\n\n    public void setProductPrice(String productPrice) {\n        this.productPrice = productPrice;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/MemberReadHistory.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport org.springframework.data.annotation.Id;\nimport org.springframework.data.mongodb.core.index.Indexed;\nimport org.springframework.data.mongodb.core.mapping.Document;\n\nimport java.util.Date;\n\n/**\n * 用户商品浏览历史记录\n * Created by macro on 2018/8/3.\n */\n@Document\npublic class MemberReadHistory {\n    @Id\n    private String id;\n    @Indexed\n    private Long memberId;\n    private String memberNickname;\n    private String memberIcon;\n    @Indexed\n    private Long productId;\n    private String productName;\n    private String productPic;\n    private String productSubTitle;\n    private String productPrice;\n    private Date createTime;\n\n    public String getId() {\n        return id;\n    }\n\n    public void setId(String id) {\n        this.id = id;\n    }\n\n    public Long getMemberId() {\n        return memberId;\n    }\n\n    public void setMemberId(Long memberId) {\n        this.memberId = memberId;\n    }\n\n    public String getMemberNickname() {\n        return memberNickname;\n    }\n\n    public void setMemberNickname(String memberNickname) {\n        this.memberNickname = memberNickname;\n    }\n\n    public String getMemberIcon() {\n        return memberIcon;\n    }\n\n    public void setMemberIcon(String memberIcon) {\n        this.memberIcon = memberIcon;\n    }\n\n    public Long getProductId() {\n        return productId;\n    }\n\n    public void setProductId(Long productId) {\n        this.productId = productId;\n    }\n\n    public String getProductName() {\n        return productName;\n    }\n\n    public void setProductName(String productName) {\n        this.productName = productName;\n    }\n\n    public String getProductPic() {\n        return productPic;\n    }\n\n    public void setProductPic(String productPic) {\n        this.productPic = productPic;\n    }\n\n    public String getProductSubTitle() {\n        return productSubTitle;\n    }\n\n    public void setProductSubTitle(String productSubTitle) {\n        this.productSubTitle = productSubTitle;\n    }\n\n    public String getProductPrice() {\n        return productPrice;\n    }\n\n    public void setProductPrice(String productPrice) {\n        this.productPrice = productPrice;\n    }\n\n    public Date getCreateTime() {\n        return createTime;\n    }\n\n    public void setCreateTime(Date createTime) {\n        this.createTime = createTime;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/OmsOrderDetail.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport com.macro.mall.model.OmsOrder;\nimport com.macro.mall.model.OmsOrderItem;\n\nimport java.util.List;\n\n/**\n * 包含订单商品信息的订单详情\n * Created by macro on 2018/9/4.\n */\npublic class OmsOrderDetail extends OmsOrder {\n    private List<OmsOrderItem> orderItemList;\n\n    public List<OmsOrderItem> getOrderItemList() {\n        return orderItemList;\n    }\n\n    public void setOrderItemList(List<OmsOrderItem> orderItemList) {\n        this.orderItemList = orderItemList;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/OmsOrderReturnApplyParam.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.math.BigDecimal;\n\n/**\n * 申请退货参数\n * Created by macro on 2018/10/17.\n */\n@Getter\n@Setter\npublic class OmsOrderReturnApplyParam {\n    @Schema(title = \"订单id\")\n    private Long orderId;\n    @Schema(title = \"退货商品id\")\n    private Long productId;\n    @Schema(title = \"订单编号\")\n    private String orderSn;\n    @Schema(title = \"会员用户名\")\n    private String memberUsername;\n    @Schema(title = \"退货人姓名\")\n    private String returnName;\n    @Schema(title = \"退货人电话\")\n    private String returnPhone;\n    @Schema(title = \"商品图片\")\n    private String productPic;\n    @Schema(title = \"商品名称\")\n    private String productName;\n    @Schema(title = \"商品品牌\")\n    private String productBrand;\n    @Schema(title = \"商品销售属性：颜色：红色；尺码：xl;\")\n    private String productAttr;\n    @Schema(title = \"退货数量\")\n    private Integer productCount;\n    @Schema(title = \"商品单价\")\n    private BigDecimal productPrice;\n    @Schema(title = \"商品实际支付单价\")\n    private BigDecimal productRealPrice;\n    @Schema(title = \"原因\")\n    private String reason;\n    @Schema(title = \"描述\")\n    private String description;\n    @Schema(title = \"凭证图片，以逗号隔开\")\n    private String proofPics;\n\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/OrderParam.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\n\nimport java.util.List;\n\n/**\n * 生成订单时传入的参数\n * Created by macro on 2018/8/30.\n */\n@Data\n@EqualsAndHashCode(callSuper = false)\npublic class OrderParam {\n    @Schema(title = \"收货地址ID\")\n    private Long memberReceiveAddressId;\n    @Schema(title = \"优惠券ID\")\n    private Long couponId;\n    @Schema(title = \"使用的积分数\")\n    private Integer useIntegration;\n    @Schema(title = \"支付方式\")\n    private Integer payType;\n    @Schema(title = \"被选中的购物车商品ID\")\n    private List<Long> cartIds;\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/PmsPortalProductDetail.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport com.macro.mall.model.*;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.util.List;\n\n/**\n * 前台商品详情\n * Created by macro on 2020/4/6.\n */\n@Getter\n@Setter\npublic class PmsPortalProductDetail{\n    @Schema(title = \"商品信息\")\n    private PmsProduct product;\n    @Schema(title = \"商品品牌\")\n    private PmsBrand brand;\n    @Schema(title = \"商品属性与参数\")\n    private List<PmsProductAttribute> productAttributeList;\n    @Schema(title = \"手动录入的商品属性与参数值\")\n    private List<PmsProductAttributeValue> productAttributeValueList;\n    @Schema(title = \"商品的sku库存信息\")\n    private List<PmsSkuStock> skuStockList;\n    @Schema(title = \"商品阶梯价格设置\")\n    private List<PmsProductLadder> productLadderList;\n    @Schema(title = \"商品满减价格设置\")\n    private List<PmsProductFullReduction> productFullReductionList;\n    @Schema(title = \"商品可用优惠券\")\n    private List<SmsCoupon> couponList;\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/PmsProductCategoryNode.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport com.macro.mall.model.PmsProductCategory;\nimport lombok.Getter;\nimport lombok.Setter;\n\nimport java.util.List;\n\n/**\n * 商品分类，包含子分类\n * Created by macro on 2020/4/6.\n */\n@Getter\n@Setter\npublic class PmsProductCategoryNode extends PmsProductCategory {\n    private List<PmsProductCategoryNode> children;\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/PromotionProduct.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.model.PmsProductFullReduction;\nimport com.macro.mall.model.PmsProductLadder;\nimport com.macro.mall.model.PmsSkuStock;\n\nimport java.util.List;\n\n/**\n * Created by macro on 2018/8/27.\n * 商品的促销信息，包括sku、打折优惠、满减优惠\n */\npublic class PromotionProduct extends PmsProduct {\n    //商品库存信息\n    private List<PmsSkuStock> skuStockList;\n    //商品打折信息\n    private List<PmsProductLadder> productLadderList;\n    //商品满减信息\n    private List<PmsProductFullReduction> productFullReductionList;\n\n    public List<PmsSkuStock> getSkuStockList() {\n        return skuStockList;\n    }\n\n    public void setSkuStockList(List<PmsSkuStock> skuStockList) {\n        this.skuStockList = skuStockList;\n    }\n\n    public List<PmsProductLadder> getProductLadderList() {\n        return productLadderList;\n    }\n\n    public void setProductLadderList(List<PmsProductLadder> productLadderList) {\n        this.productLadderList = productLadderList;\n    }\n\n    public List<PmsProductFullReduction> getProductFullReductionList() {\n        return productFullReductionList;\n    }\n\n    public void setProductFullReductionList(List<PmsProductFullReduction> productFullReductionList) {\n        this.productFullReductionList = productFullReductionList;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/QueueEnum.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport lombok.Getter;\n\n/**\n * 消息队列枚举配置\n * Created by macro on 2018/9/14.\n */\n@Getter\npublic enum QueueEnum {\n    /**\n     * 消息通知队列\n     */\n    QUEUE_ORDER_CANCEL(\"mall.order.direct\", \"mall.order.cancel\", \"mall.order.cancel\"),\n    /**\n     * 消息通知ttl队列\n     */\n    QUEUE_TTL_ORDER_CANCEL(\"mall.order.direct.ttl\", \"mall.order.cancel.ttl\", \"mall.order.cancel.ttl\");\n\n    /**\n     * 交换名称\n     */\n    private String exchange;\n    /**\n     * 队列名称\n     */\n    private String name;\n    /**\n     * 路由键\n     */\n    private String routeKey;\n\n    QueueEnum(String exchange, String name, String routeKey) {\n        this.exchange = exchange;\n        this.name = name;\n        this.routeKey = routeKey;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/domain/SmsCouponHistoryDetail.java",
    "content": "package com.macro.mall.portal.domain;\n\nimport com.macro.mall.model.SmsCoupon;\nimport com.macro.mall.model.SmsCouponHistory;\nimport com.macro.mall.model.SmsCouponProductCategoryRelation;\nimport com.macro.mall.model.SmsCouponProductRelation;\n\nimport java.util.List;\n\n/**\n * 优惠券领取历史详情封装\n * Created by macro on 2018/8/29.\n */\npublic class SmsCouponHistoryDetail extends SmsCouponHistory {\n    //相关优惠券信息\n    private SmsCoupon coupon;\n    //优惠券关联商品\n    private List<SmsCouponProductRelation> productRelationList;\n    //优惠券关联商品分类\n    private List<SmsCouponProductCategoryRelation> categoryRelationList;\n\n    public SmsCoupon getCoupon() {\n        return coupon;\n    }\n\n    public void setCoupon(SmsCoupon coupon) {\n        this.coupon = coupon;\n    }\n\n    public List<SmsCouponProductRelation> getProductRelationList() {\n        return productRelationList;\n    }\n\n    public void setProductRelationList(List<SmsCouponProductRelation> productRelationList) {\n        this.productRelationList = productRelationList;\n    }\n\n    public List<SmsCouponProductCategoryRelation> getCategoryRelationList() {\n        return categoryRelationList;\n    }\n\n    public void setCategoryRelationList(List<SmsCouponProductCategoryRelation> categoryRelationList) {\n        this.categoryRelationList = categoryRelationList;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/repository/MemberBrandAttentionRepository.java",
    "content": "package com.macro.mall.portal.repository;\n\nimport com.macro.mall.portal.domain.MemberBrandAttention;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.Pageable;\nimport org.springframework.data.mongodb.repository.MongoRepository;\n\nimport java.util.List;\n\n/**\n * 会员关注Repository\n * Created by macro on 2018/8/2.\n */\npublic interface MemberBrandAttentionRepository extends MongoRepository<MemberBrandAttention,String> {\n    MemberBrandAttention findByMemberIdAndBrandId(Long memberId, Long brandId);\n    int deleteByMemberIdAndBrandId(Long memberId,Long brandId);\n    Page<MemberBrandAttention> findByMemberId(Long memberId, Pageable pageable);\n    void deleteAllByMemberId(Long memberId);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/repository/MemberProductCollectionRepository.java",
    "content": "package com.macro.mall.portal.repository;\n\nimport com.macro.mall.portal.domain.MemberProductCollection;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.Pageable;\nimport org.springframework.data.mongodb.repository.MongoRepository;\n\nimport java.util.List;\n\n/**\n * 商品收藏Repository\n * Created by macro on 2018/8/2.\n */\npublic interface MemberProductCollectionRepository extends MongoRepository<MemberProductCollection,String> {\n    MemberProductCollection findByMemberIdAndProductId(Long memberId, Long productId);\n    int deleteByMemberIdAndProductId(Long memberId,Long productId);\n    Page<MemberProductCollection> findByMemberId(Long memberId, Pageable pageable);\n    void deleteAllByMemberId(Long memberId);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/repository/MemberReadHistoryRepository.java",
    "content": "package com.macro.mall.portal.repository;\n\nimport com.macro.mall.portal.domain.MemberReadHistory;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.Pageable;\nimport org.springframework.data.mongodb.repository.MongoRepository;\n\nimport java.util.List;\n\n/**\n * 会员商品浏览历史Repository\n * Created by macro on 2018/8/3.\n */\npublic interface MemberReadHistoryRepository extends MongoRepository<MemberReadHistory,String> {\n    Page<MemberReadHistory> findByMemberIdOrderByCreateTimeDesc(Long memberId, Pageable pageable);\n    void deleteAllByMemberId(Long memberId);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/AlipayService.java",
    "content": "package com.macro.mall.portal.service;\n\n\nimport com.macro.mall.portal.domain.AliPayParam;\n\nimport java.util.Map;\n\n/**\n * @auther macrozheng\n * @description 支付宝支付Service\n * @date 2023/9/8\n * @github https://github.com/macrozheng\n */\npublic interface AlipayService {\n    /**\n     * 根据提交参数生成电脑支付页面\n     */\n    String pay(AliPayParam aliPayParam);\n\n    /**\n     * 支付宝异步回调处理\n     */\n    String notify(Map<String, String> params);\n\n    /**\n     * 查询支付宝交易状态\n     * @param outTradeNo 商户订单编号\n     * @param tradeNo 支付宝交易编号\n     * @return 支付宝交易状态\n     */\n    String query(String outTradeNo, String tradeNo);\n\n    /**\n     * 根据提交参数生成手机支付页面\n     */\n    String webPay(AliPayParam aliPayParam);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/HomeService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.model.CmsSubject;\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.model.PmsProductCategory;\nimport com.macro.mall.portal.domain.HomeContentResult;\n\nimport java.util.List;\n\n/**\n * 首页内容管理Service\n * Created by macro on 2019/1/28.\n */\npublic interface HomeService {\n\n    /**\n     * 获取首页内容\n     */\n    HomeContentResult content();\n\n    /**\n     * 首页商品推荐\n     */\n    List<PmsProduct> recommendProductList(Integer pageSize, Integer pageNum);\n\n    /**\n     * 获取商品分类\n     * @param parentId 0:获取一级分类；其他：获取指定二级分类\n     */\n    List<PmsProductCategory> getProductCateList(Long parentId);\n\n    /**\n     * 根据专题分类分页获取专题\n     * @param cateId 专题分类id\n     */\n    List<CmsSubject> getSubjectList(Long cateId, Integer pageSize, Integer pageNum);\n\n    /**\n     * 分页获取人气推荐商品\n     */\n    List<PmsProduct> hotProductList(Integer pageNum, Integer pageSize);\n\n    /**\n     * 分页获取新品推荐商品\n     */\n    List<PmsProduct> newProductList(Integer pageNum, Integer pageSize);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/MemberAttentionService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.portal.domain.MemberBrandAttention;\nimport org.springframework.data.domain.Page;\n\nimport java.util.List;\n\n/**\n * 会员关注Service\n * Created by macro on 2018/8/2.\n */\npublic interface MemberAttentionService {\n    /**\n     * 添加关注\n     */\n    int add(MemberBrandAttention memberBrandAttention);\n\n    /**\n     * 取消关注\n     */\n    int delete(Long brandId);\n\n    /**\n     * 获取用户关注列表\n     */\n    Page<MemberBrandAttention> list(Integer pageNum, Integer pageSize);\n\n    /**\n     * 获取用户关注详情\n     */\n    MemberBrandAttention detail(Long brandId);\n\n    /**\n     * 清空关注列表\n     */\n    void clear();\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/MemberCollectionService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.portal.domain.MemberProductCollection;\nimport org.springframework.data.domain.Page;\n\nimport java.util.List;\n\n/**\n * 会员收藏Service\n * Created by macro on 2018/8/2.\n */\npublic interface MemberCollectionService {\n    int add(MemberProductCollection productCollection);\n\n    int delete(Long productId);\n\n    Page<MemberProductCollection> list(Integer pageNum, Integer pageSize);\n\n    MemberProductCollection detail(Long productId);\n\n    void clear();\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/MemberReadHistoryService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.portal.domain.MemberReadHistory;\nimport org.springframework.data.domain.Page;\n\nimport java.util.List;\n\n/**\n * 会员浏览记录管理Service\n * Created by macro on 2018/8/3.\n */\npublic interface MemberReadHistoryService {\n    /**\n     * 生成浏览记录\n     */\n    int create(MemberReadHistory memberReadHistory);\n\n    /**\n     * 批量删除浏览记录\n     */\n    int delete(List<String> ids);\n\n    /**\n     * 分页获取用户浏览历史记录\n     */\n    Page<MemberReadHistory> list(Integer pageNum, Integer pageSize);\n\n    /**\n     * 清空浏览记录\n     */\n    void clear();\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/OmsCartItemService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.model.OmsCartItem;\nimport com.macro.mall.portal.domain.CartProduct;\nimport com.macro.mall.portal.domain.CartPromotionItem;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 购物车管理Service\n * Created by macro on 2018/8/2.\n */\npublic interface OmsCartItemService {\n    /**\n     * 查询购物车中是否包含该商品，有增加数量，无添加到购物车\n     */\n    @Transactional\n    int add(OmsCartItem cartItem);\n\n    /**\n     * 根据会员编号获取购物车列表\n     */\n    List<OmsCartItem> list(Long memberId);\n\n    /**\n     * 获取包含促销活动信息的购物车列表\n     */\n    List<CartPromotionItem> listPromotion(Long memberId, List<Long> cartIds);\n\n    /**\n     * 修改某个购物车商品的数量\n     */\n    int updateQuantity(Long id, Long memberId, Integer quantity);\n\n    /**\n     * 批量删除购物车中的商品\n     */\n    int delete(Long memberId,List<Long> ids);\n\n    /**\n     *获取购物车中用于选择商品规格的商品信息\n     */\n    CartProduct getCartProduct(Long productId);\n\n    /**\n     * 修改购物车中商品的规格\n     */\n    @Transactional\n    int updateAttr(OmsCartItem cartItem);\n\n    /**\n     * 清空购物车\n     */\n    int clear(Long memberId);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/OmsPortalOrderReturnApplyService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.portal.domain.OmsOrderReturnApplyParam;\n\n/**\n * 订单退货管理Service\n * Created by macro on 2018/10/17.\n */\npublic interface OmsPortalOrderReturnApplyService {\n    /**\n     * 提交申请\n     */\n    int create(OmsOrderReturnApplyParam returnApply);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/OmsPortalOrderService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.portal.domain.ConfirmOrderResult;\nimport com.macro.mall.portal.domain.OmsOrderDetail;\nimport com.macro.mall.portal.domain.OrderParam;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\nimport java.util.Map;\n\n/**\n * 前台订单管理Service\n * Created by macro on 2018/8/30.\n */\npublic interface OmsPortalOrderService {\n    /**\n     * 根据用户购物车信息生成确认单信息\n     */\n    ConfirmOrderResult generateConfirmOrder(List<Long> cartIds);\n\n    /**\n     * 根据提交信息生成订单\n     */\n    @Transactional\n    Map<String, Object> generateOrder(OrderParam orderParam);\n\n    /**\n     * 支付成功后的回调\n     */\n    @Transactional\n    Integer paySuccess(Long orderId, Integer payType);\n\n    /**\n     * 自动取消超时订单\n     */\n    @Transactional\n    Integer cancelTimeOutOrder();\n\n    /**\n     * 取消单个超时订单\n     */\n    @Transactional\n    void cancelOrder(Long orderId);\n\n    /**\n     * 发送延迟消息取消订单\n     */\n    void sendDelayMessageCancelOrder(Long orderId);\n\n    /**\n     * 确认收货\n     */\n    void confirmReceiveOrder(Long orderId);\n\n    /**\n     * 分页获取用户订单\n     */\n    CommonPage<OmsOrderDetail> list(Integer status, Integer pageNum, Integer pageSize);\n\n    /**\n     * 根据订单ID获取订单详情\n     */\n    OmsOrderDetail detail(Long orderId);\n\n    /**\n     * 用户根据订单ID删除订单\n     */\n    void deleteOrder(Long orderId);\n\n    /**\n     * 根据orderSn来实现的支付成功逻辑\n     */\n    @Transactional\n    void paySuccessByOrderSn(String orderSn, Integer payType);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/OmsPromotionService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.model.OmsCartItem;\nimport com.macro.mall.portal.domain.CartPromotionItem;\n\nimport java.util.List;\n\n/**\n * Created by macro on 2018/8/27.\n * 促销管理Service\n */\npublic interface OmsPromotionService {\n    /**\n     * 计算购物车中的促销活动信息\n     * @param cartItemList 购物车\n     */\n    List<CartPromotionItem> calcCartPromotion(List<OmsCartItem> cartItemList);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/PmsPortalProductService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.portal.domain.PmsPortalProductDetail;\nimport com.macro.mall.portal.domain.PmsProductCategoryNode;\n\nimport java.util.List;\n\n/**\n * 前台商品管理Service\n * Created by macro on 2020/4/6.\n */\npublic interface PmsPortalProductService {\n    /**\n     * 综合搜索商品\n     */\n    List<PmsProduct> search(String keyword, Long brandId, Long productCategoryId, Integer pageNum, Integer pageSize, Integer sort);\n\n    /**\n     * 以树形结构获取所有商品分类\n     */\n    List<PmsProductCategoryNode> categoryTreeList();\n\n    /**\n     * 获取前台商品详情\n     */\n    PmsPortalProductDetail detail(Long id);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/PortalBrandService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.model.PmsBrand;\nimport com.macro.mall.model.PmsProduct;\n\nimport java.util.List;\n\n/**\n * 前台品牌管理Service\n * Created by macro on 2020/5/15.\n */\npublic interface PortalBrandService {\n    /**\n     * 分页获取推荐品牌\n     */\n    List<PmsBrand> recommendList(Integer pageNum, Integer pageSize);\n\n    /**\n     * 获取品牌详情\n     */\n    PmsBrand detail(Long brandId);\n\n    /**\n     * 分页获取品牌关联商品\n     */\n    CommonPage<PmsProduct> productList(Long brandId, Integer pageNum, Integer pageSize);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/UmsMemberCacheService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.model.UmsMember;\n\n/**\n * 会员信息缓存业务类\n * Created by macro on 2020/3/14.\n */\npublic interface UmsMemberCacheService {\n    /**\n     * 删除会员用户缓存\n     */\n    void delMember(Long memberId);\n\n    /**\n     * 获取会员用户缓存\n     */\n    UmsMember getMember(Long memberId);\n\n    /**\n     * 设置会员用户缓存\n     */\n    void setMember(UmsMember member);\n\n    /**\n     * 设置验证码\n     */\n    void setAuthCode(String telephone, String authCode);\n\n    /**\n     * 获取验证码\n     */\n    String getAuthCode(String telephone);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/UmsMemberCouponService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.model.SmsCoupon;\nimport com.macro.mall.model.SmsCouponHistory;\nimport com.macro.mall.portal.domain.CartPromotionItem;\nimport com.macro.mall.portal.domain.SmsCouponHistoryDetail;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 用户优惠券管理Service\n * Created by macro on 2018/8/29.\n */\npublic interface UmsMemberCouponService {\n    /**\n     * 会员添加优惠券\n     */\n    @Transactional\n    void add(Long couponId);\n\n    /**\n     * 获取优惠券历史列表\n     */\n    List<SmsCouponHistory> listHistory(Integer useStatus);\n\n    /**\n     * 根据购物车信息获取可用优惠券\n     */\n    List<SmsCouponHistoryDetail> listCart(List<CartPromotionItem> cartItemList, Integer type);\n\n    /**\n     * 获取当前商品相关优惠券\n     */\n    List<SmsCoupon> listByProduct(Long productId);\n\n    /**\n     * 获取用户优惠券列表\n     */\n    List<SmsCoupon> list(Integer useStatus);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/UmsMemberReceiveAddressService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport com.macro.mall.model.UmsMemberReceiveAddress;\nimport org.springframework.transaction.annotation.Transactional;\n\nimport java.util.List;\n\n/**\n * 用户地址管理Service\n * Created by macro on 2018/8/28.\n */\npublic interface UmsMemberReceiveAddressService {\n    /**\n     * 添加收货地址\n     */\n    int add(UmsMemberReceiveAddress address);\n\n    /**\n     * 删除收货地址\n     * @param id 地址表的id\n     */\n    int delete(Long id);\n\n    /**\n     * 修改收货地址\n     * @param id 地址表的id\n     * @param address 修改的收货地址信息\n     */\n    @Transactional\n    int update(Long id, UmsMemberReceiveAddress address);\n\n    /**\n     * 返回当前用户的收货地址\n     */\n    List<UmsMemberReceiveAddress> list();\n\n    /**\n     * 获取地址详情\n     * @param id 地址id\n     */\n    UmsMemberReceiveAddress getItem(Long id);\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/UmsMemberService.java",
    "content": "package com.macro.mall.portal.service;\n\nimport cn.dev33.satoken.stp.SaTokenInfo;\nimport com.macro.mall.model.UmsMember;\nimport org.springframework.transaction.annotation.Transactional;\n\n/**\n * 会员管理Service\n * Created by macro on 2018/8/3.\n */\npublic interface UmsMemberService {\n    /**\n     * 根据用户名获取会员\n     */\n    UmsMember getByUsername(String username);\n\n    /**\n     * 根据会员编号获取会员\n     */\n    UmsMember getById(Long id);\n\n    /**\n     * 用户注册\n     */\n    @Transactional\n    void register(String username, String password, String telephone, String authCode);\n\n    /**\n     * 生成验证码\n     */\n    String generateAuthCode(String telephone);\n\n    /**\n     * 修改密码\n     */\n    @Transactional\n    void updatePassword(String telephone, String password, String authCode);\n\n    /**\n     * 获取当前登录会员\n     */\n    UmsMember getCurrentMember();\n\n    /**\n     * 根据会员id修改会员积分\n     */\n    void updateIntegration(Long id,Integer integration);\n\n    /**\n     * 登录后获取token\n     */\n    SaTokenInfo login(String username, String password);\n\n    /**\n     * 登出功能\n     */\n    void logout();\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/AlipayServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport cn.hutool.core.util.StrUtil;\nimport com.alibaba.fastjson.JSONObject;\nimport com.alipay.api.AlipayApiException;\nimport com.alipay.api.AlipayClient;\nimport com.alipay.api.internal.util.AlipaySignature;\nimport com.alipay.api.request.AlipayTradePagePayRequest;\nimport com.alipay.api.request.AlipayTradeQueryRequest;\nimport com.alipay.api.request.AlipayTradeWapPayRequest;\nimport com.alipay.api.response.AlipayTradeQueryResponse;\nimport com.macro.mall.mapper.OmsOrderMapper;\nimport com.macro.mall.portal.config.AlipayConfig;\nimport com.macro.mall.portal.domain.AliPayParam;\nimport com.macro.mall.portal.service.AlipayService;\nimport com.macro.mall.portal.service.OmsPortalOrderService;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.Map;\n\n/**\n * @auther macrozheng\n * @description 支付宝支付Service实现类\n * @date 2023/9/8\n * @github https://github.com/macrozheng\n */\n@Slf4j\n@Service\npublic class AlipayServiceImpl implements AlipayService {\n    @Autowired\n    private AlipayConfig alipayConfig;\n    @Autowired\n    private AlipayClient alipayClient;\n    @Autowired\n    private OmsOrderMapper orderMapper;\n    @Autowired\n    private OmsPortalOrderService portalOrderService;\n    @Override\n    public String pay(AliPayParam aliPayParam) {\n        AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();\n        if(StrUtil.isNotEmpty(alipayConfig.getNotifyUrl())){\n            //异步接收地址，公网可访问\n            request.setNotifyUrl(alipayConfig.getNotifyUrl());\n        }\n        if(StrUtil.isNotEmpty(alipayConfig.getReturnUrl())){\n            //同步跳转地址\n            request.setReturnUrl(alipayConfig.getReturnUrl());\n        }\n        //******必传参数******\n        JSONObject bizContent = new JSONObject();\n        //商户订单号，商家自定义，保持唯一性\n        bizContent.put(\"out_trade_no\", aliPayParam.getOutTradeNo());\n        //支付金额，最小值0.01元\n        bizContent.put(\"total_amount\", aliPayParam.getTotalAmount());\n        //订单标题，不可使用特殊符号\n        bizContent.put(\"subject\", aliPayParam.getSubject());\n        //电脑网站支付场景固定传值FAST_INSTANT_TRADE_PAY\n        bizContent.put(\"product_code\", \"FAST_INSTANT_TRADE_PAY\");\n        request.setBizContent(bizContent.toString());\n        String formHtml = null;\n        try {\n            formHtml = alipayClient.pageExecute(request).getBody();\n        } catch (AlipayApiException e) {\n            e.printStackTrace();\n        }\n        return formHtml;\n    }\n\n    @Override\n    public String notify(Map<String, String> params) {\n        String result = \"failure\";\n        boolean signVerified = false;\n        try {\n            //调用SDK验证签名\n            signVerified = AlipaySignature.rsaCheckV1(params, alipayConfig.getAlipayPublicKey(), alipayConfig.getCharset(), alipayConfig.getSignType());\n        } catch (AlipayApiException e) {\n            log.error(\"支付回调签名校验异常！\",e);\n            e.printStackTrace();\n        }\n        if (signVerified) {\n            String tradeStatus = params.get(\"trade_status\");\n            if(\"TRADE_SUCCESS\".equals(tradeStatus)){\n                result = \"success\";\n                log.info(\"notify方法被调用了，tradeStatus:{}\",tradeStatus);\n                String outTradeNo = params.get(\"out_trade_no\");\n                portalOrderService.paySuccessByOrderSn(outTradeNo,1);\n            }else{\n                log.warn(\"订单未支付成功，trade_status:{}\",tradeStatus);\n            }\n        } else {\n            log.warn(\"支付回调签名校验失败！\");\n        }\n        return result;\n    }\n\n    @Override\n    public String query(String outTradeNo, String tradeNo) {\n        AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();\n        //******必传参数******\n        JSONObject bizContent = new JSONObject();\n        //设置查询参数，out_trade_no和trade_no至少传一个\n        if(StrUtil.isNotEmpty(outTradeNo)){\n            bizContent.put(\"out_trade_no\",outTradeNo);\n        }\n        if(StrUtil.isNotEmpty(tradeNo)){\n            bizContent.put(\"trade_no\",tradeNo);\n        }\n        //交易结算信息: trade_settle_info\n        String[] queryOptions = {\"trade_settle_info\"};\n        bizContent.put(\"query_options\", queryOptions);\n        request.setBizContent(bizContent.toString());\n        AlipayTradeQueryResponse response = null;\n        try {\n            response = alipayClient.execute(request);\n        } catch (AlipayApiException e) {\n            log.error(\"查询支付宝账单异常！\",e);\n        }\n        if(response.isSuccess()){\n            log.info(\"查询支付宝账单成功！\");\n            if(\"TRADE_SUCCESS\".equals(response.getTradeStatus())){\n                portalOrderService.paySuccessByOrderSn(outTradeNo,1);\n            }\n        } else {\n            log.error(\"查询支付宝账单失败！\");\n        }\n        //交易状态：WAIT_BUYER_PAY（交易创建，等待买家付款）、TRADE_CLOSED（未付款交易超时关闭，或支付完成后全额退款）、TRADE_SUCCESS（交易支付成功）、TRADE_FINISHED（交易结束，不可退款）\n        return response.getTradeStatus();\n    }\n\n    @Override\n    public String webPay(AliPayParam aliPayParam) {\n        AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest ();\n        if(StrUtil.isNotEmpty(alipayConfig.getNotifyUrl())){\n            //异步接收地址，公网可访问\n            request.setNotifyUrl(alipayConfig.getNotifyUrl());\n        }\n        if(StrUtil.isNotEmpty(alipayConfig.getReturnUrl())){\n            //同步跳转地址\n            request.setReturnUrl(alipayConfig.getReturnUrl());\n        }\n        //******必传参数******\n        JSONObject bizContent = new JSONObject();\n        //商户订单号，商家自定义，保持唯一性\n        bizContent.put(\"out_trade_no\", aliPayParam.getOutTradeNo());\n        //支付金额，最小值0.01元\n        bizContent.put(\"total_amount\", aliPayParam.getTotalAmount());\n        //订单标题，不可使用特殊符号\n        bizContent.put(\"subject\", aliPayParam.getSubject());\n        //手机网站支付默认传值FAST_INSTANT_TRADE_PAY\n        bizContent.put(\"product_code\", \"QUICK_WAP_WAY\");\n        request.setBizContent(bizContent.toString());\n        String formHtml = null;\n        try {\n            formHtml = alipayClient.pageExecute(request).getBody();\n        } catch (AlipayApiException e) {\n            e.printStackTrace();\n        }\n        return formHtml;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/HomeServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.mapper.*;\nimport com.macro.mall.model.*;\nimport com.macro.mall.portal.dao.HomeDao;\nimport com.macro.mall.portal.domain.FlashPromotionProduct;\nimport com.macro.mall.portal.domain.HomeContentResult;\nimport com.macro.mall.portal.domain.HomeFlashPromotion;\nimport com.macro.mall.portal.service.HomeService;\nimport com.macro.mall.portal.util.DateUtil;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.CollectionUtils;\n\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * 首页内容管理Service实现类\n * Created by macro on 2019/1/28.\n */\n@Service\npublic class HomeServiceImpl implements HomeService {\n    @Autowired\n    private SmsHomeAdvertiseMapper advertiseMapper;\n    @Autowired\n    private HomeDao homeDao;\n    @Autowired\n    private SmsFlashPromotionMapper flashPromotionMapper;\n    @Autowired\n    private SmsFlashPromotionSessionMapper promotionSessionMapper;\n    @Autowired\n    private PmsProductMapper productMapper;\n    @Autowired\n    private PmsProductCategoryMapper productCategoryMapper;\n    @Autowired\n    private CmsSubjectMapper subjectMapper;\n\n    @Override\n    public HomeContentResult content() {\n        HomeContentResult result = new HomeContentResult();\n        //获取首页广告\n        result.setAdvertiseList(getHomeAdvertiseList());\n        //获取推荐品牌\n        result.setBrandList(homeDao.getRecommendBrandList(0,6));\n        //获取秒杀信息\n        result.setHomeFlashPromotion(getHomeFlashPromotion());\n        //获取新品推荐\n        result.setNewProductList(homeDao.getNewProductList(0,4));\n        //获取人气推荐\n        result.setHotProductList(homeDao.getHotProductList(0,4));\n        //获取推荐专题\n        result.setSubjectList(homeDao.getRecommendSubjectList(0,4));\n        return result;\n    }\n\n    @Override\n    public List<PmsProduct> recommendProductList(Integer pageSize, Integer pageNum) {\n        // TODO: 2019/1/29 暂时默认推荐所有商品\n        PageHelper.startPage(pageNum,pageSize);\n        PmsProductExample example = new PmsProductExample();\n        example.createCriteria()\n                .andDeleteStatusEqualTo(0)\n                .andPublishStatusEqualTo(1);\n        return productMapper.selectByExample(example);\n    }\n\n    @Override\n    public List<PmsProductCategory> getProductCateList(Long parentId) {\n        PmsProductCategoryExample example = new PmsProductCategoryExample();\n        example.createCriteria()\n                .andShowStatusEqualTo(1)\n                .andParentIdEqualTo(parentId);\n        example.setOrderByClause(\"sort desc\");\n        return productCategoryMapper.selectByExample(example);\n    }\n\n    @Override\n    public List<CmsSubject> getSubjectList(Long cateId, Integer pageSize, Integer pageNum) {\n        PageHelper.startPage(pageNum,pageSize);\n        CmsSubjectExample example = new CmsSubjectExample();\n        CmsSubjectExample.Criteria criteria = example.createCriteria();\n        criteria.andShowStatusEqualTo(1);\n        if(cateId!=null){\n            criteria.andCategoryIdEqualTo(cateId);\n        }\n        return subjectMapper.selectByExample(example);\n    }\n\n    @Override\n    public List<PmsProduct> hotProductList(Integer pageNum, Integer pageSize) {\n        int offset = pageSize * (pageNum - 1);\n        return homeDao.getHotProductList(offset, pageSize);\n    }\n\n    @Override\n    public List<PmsProduct> newProductList(Integer pageNum, Integer pageSize) {\n        int offset = pageSize * (pageNum - 1);\n        return homeDao.getNewProductList(offset, pageSize);\n    }\n\n    private HomeFlashPromotion getHomeFlashPromotion() {\n        HomeFlashPromotion homeFlashPromotion = new HomeFlashPromotion();\n        //获取当前秒杀活动\n        Date now = new Date();\n        SmsFlashPromotion flashPromotion = getFlashPromotion(now);\n        if (flashPromotion != null) {\n            //获取当前秒杀场次\n            SmsFlashPromotionSession flashPromotionSession = getFlashPromotionSession(now);\n            if (flashPromotionSession != null) {\n                homeFlashPromotion.setStartTime(flashPromotionSession.getStartTime());\n                homeFlashPromotion.setEndTime(flashPromotionSession.getEndTime());\n                //获取下一个秒杀场次\n                SmsFlashPromotionSession nextSession = getNextFlashPromotionSession(homeFlashPromotion.getStartTime());\n                if(nextSession!=null){\n                    homeFlashPromotion.setNextStartTime(nextSession.getStartTime());\n                    homeFlashPromotion.setNextEndTime(nextSession.getEndTime());\n                }\n                //获取秒杀商品\n                List<FlashPromotionProduct> flashProductList = homeDao.getFlashProductList(flashPromotion.getId(), flashPromotionSession.getId());\n                homeFlashPromotion.setProductList(flashProductList);\n            }\n        }\n        return homeFlashPromotion;\n    }\n\n    //获取下一个场次信息\n    private SmsFlashPromotionSession getNextFlashPromotionSession(Date date) {\n        SmsFlashPromotionSessionExample sessionExample = new SmsFlashPromotionSessionExample();\n        sessionExample.createCriteria()\n                .andStartTimeGreaterThan(date);\n        sessionExample.setOrderByClause(\"start_time asc\");\n        List<SmsFlashPromotionSession> promotionSessionList = promotionSessionMapper.selectByExample(sessionExample);\n        if (!CollectionUtils.isEmpty(promotionSessionList)) {\n            return promotionSessionList.get(0);\n        }\n        return null;\n    }\n\n    private List<SmsHomeAdvertise> getHomeAdvertiseList() {\n        SmsHomeAdvertiseExample example = new SmsHomeAdvertiseExample();\n        example.createCriteria().andTypeEqualTo(1).andStatusEqualTo(1);\n        example.setOrderByClause(\"sort desc\");\n        return advertiseMapper.selectByExample(example);\n    }\n\n    //根据时间获取秒杀活动\n    private SmsFlashPromotion getFlashPromotion(Date date) {\n        Date currDate = DateUtil.getDate(date);\n        SmsFlashPromotionExample example = new SmsFlashPromotionExample();\n        example.createCriteria()\n                .andStatusEqualTo(1)\n                .andStartDateLessThanOrEqualTo(currDate)\n                .andEndDateGreaterThanOrEqualTo(currDate);\n        List<SmsFlashPromotion> flashPromotionList = flashPromotionMapper.selectByExample(example);\n        if (!CollectionUtils.isEmpty(flashPromotionList)) {\n            return flashPromotionList.get(0);\n        }\n        return null;\n    }\n\n    //根据时间获取秒杀场次\n    private SmsFlashPromotionSession getFlashPromotionSession(Date date) {\n        Date currTime = DateUtil.getTime(date);\n        SmsFlashPromotionSessionExample sessionExample = new SmsFlashPromotionSessionExample();\n        sessionExample.createCriteria()\n                .andStartTimeLessThanOrEqualTo(currTime)\n                .andEndTimeGreaterThanOrEqualTo(currTime);\n        List<SmsFlashPromotionSession> promotionSessionList = promotionSessionMapper.selectByExample(sessionExample);\n        if (!CollectionUtils.isEmpty(promotionSessionList)) {\n            return promotionSessionList.get(0);\n        }\n        return null;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/MemberAttentionServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport com.macro.mall.model.UmsMember;\nimport com.macro.mall.portal.domain.MemberBrandAttention;\nimport com.macro.mall.portal.repository.MemberBrandAttentionRepository;\nimport com.macro.mall.portal.service.MemberAttentionService;\nimport com.macro.mall.portal.service.UmsMemberService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageRequest;\nimport org.springframework.data.domain.Pageable;\nimport org.springframework.stereotype.Service;\n\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * 会员关注Service实现类\n * Created by macro on 2018/8/2.\n */\n@Service\npublic class MemberAttentionServiceImpl implements MemberAttentionService {\n    @Autowired\n    private MemberBrandAttentionRepository memberBrandAttentionRepository;\n    @Autowired\n    private UmsMemberService memberService;\n\n    @Override\n    public int add(MemberBrandAttention memberBrandAttention) {\n        int count = 0;\n        UmsMember member = memberService.getCurrentMember();\n        memberBrandAttention.setMemberId(member.getId());\n        memberBrandAttention.setMemberNickname(member.getNickname());\n        memberBrandAttention.setMemberIcon(member.getIcon());\n        memberBrandAttention.setCreateTime(new Date());\n        MemberBrandAttention findAttention = memberBrandAttentionRepository.findByMemberIdAndBrandId(memberBrandAttention.getMemberId(), memberBrandAttention.getBrandId());\n        if (findAttention == null) {\n            memberBrandAttentionRepository.save(memberBrandAttention);\n            count = 1;\n        }\n        return count;\n    }\n\n    @Override\n    public int delete(Long brandId) {\n        UmsMember member = memberService.getCurrentMember();\n        return memberBrandAttentionRepository.deleteByMemberIdAndBrandId(member.getId(),brandId);\n    }\n\n    @Override\n    public Page<MemberBrandAttention> list(Integer pageNum, Integer pageSize) {\n        UmsMember member = memberService.getCurrentMember();\n        Pageable pageable = PageRequest.of(pageNum-1,pageSize);\n        return memberBrandAttentionRepository.findByMemberId(member.getId(),pageable);\n    }\n\n    @Override\n    public MemberBrandAttention detail(Long brandId) {\n        UmsMember member = memberService.getCurrentMember();\n        return memberBrandAttentionRepository.findByMemberIdAndBrandId(member.getId(), brandId);\n    }\n\n    @Override\n    public void clear() {\n        UmsMember member = memberService.getCurrentMember();\n        memberBrandAttentionRepository.deleteAllByMemberId(member.getId());\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/MemberCollectionServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport com.macro.mall.model.UmsMember;\nimport com.macro.mall.portal.domain.MemberProductCollection;\nimport com.macro.mall.portal.repository.MemberProductCollectionRepository;\nimport com.macro.mall.portal.service.MemberCollectionService;\nimport com.macro.mall.portal.service.UmsMemberService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageRequest;\nimport org.springframework.data.domain.Pageable;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * 会员收藏Service实现类\n * Created by macro on 2018/8/2.\n */\n@Service\npublic class MemberCollectionServiceImpl implements MemberCollectionService {\n    @Autowired\n    private MemberProductCollectionRepository productCollectionRepository;\n    @Autowired\n    private UmsMemberService memberService;\n\n    @Override\n    public int add(MemberProductCollection productCollection) {\n        int count = 0;\n        UmsMember member = memberService.getCurrentMember();\n        productCollection.setMemberId(member.getId());\n        productCollection.setMemberNickname(member.getNickname());\n        productCollection.setMemberIcon(member.getIcon());\n        MemberProductCollection findCollection = productCollectionRepository.findByMemberIdAndProductId(productCollection.getMemberId(), productCollection.getProductId());\n        if (findCollection == null) {\n            productCollectionRepository.save(productCollection);\n            count = 1;\n        }\n        return count;\n    }\n\n    @Override\n    public int delete(Long productId) {\n        UmsMember member = memberService.getCurrentMember();\n        return productCollectionRepository.deleteByMemberIdAndProductId(member.getId(), productId);\n    }\n\n    @Override\n    public Page<MemberProductCollection> list(Integer pageNum, Integer pageSize) {\n        UmsMember member = memberService.getCurrentMember();\n        Pageable pageable = PageRequest.of(pageNum - 1, pageSize);\n        return productCollectionRepository.findByMemberId(member.getId(), pageable);\n    }\n\n    @Override\n    public MemberProductCollection detail(Long productId) {\n        UmsMember member = memberService.getCurrentMember();\n        return productCollectionRepository.findByMemberIdAndProductId(member.getId(), productId);\n    }\n\n    @Override\n    public void clear() {\n        UmsMember member = memberService.getCurrentMember();\n        productCollectionRepository.deleteAllByMemberId(member.getId());\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/MemberReadHistoryServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport com.macro.mall.model.UmsMember;\nimport com.macro.mall.portal.domain.MemberReadHistory;\nimport com.macro.mall.portal.repository.MemberReadHistoryRepository;\nimport com.macro.mall.portal.service.MemberReadHistoryService;\nimport com.macro.mall.portal.service.UmsMemberService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.PageRequest;\nimport org.springframework.data.domain.Pageable;\nimport org.springframework.stereotype.Service;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\n\n/**\n * 会员浏览记录管理Service实现类\n * Created by macro on 2018/8/3.\n */\n@Service\npublic class MemberReadHistoryServiceImpl implements MemberReadHistoryService {\n    @Autowired\n    private MemberReadHistoryRepository memberReadHistoryRepository;\n    @Autowired\n    private UmsMemberService memberService;\n    @Override\n    public int create(MemberReadHistory memberReadHistory) {\n        UmsMember member = memberService.getCurrentMember();\n        memberReadHistory.setMemberId(member.getId());\n        memberReadHistory.setMemberNickname(member.getNickname());\n        memberReadHistory.setMemberIcon(member.getIcon());\n        memberReadHistory.setId(null);\n        memberReadHistory.setCreateTime(new Date());\n        memberReadHistoryRepository.save(memberReadHistory);\n        return 1;\n    }\n\n    @Override\n    public int delete(List<String> ids) {\n        List<MemberReadHistory> deleteList = new ArrayList<>();\n        for(String id:ids){\n            MemberReadHistory memberReadHistory = new MemberReadHistory();\n            memberReadHistory.setId(id);\n            deleteList.add(memberReadHistory);\n        }\n        memberReadHistoryRepository.deleteAll(deleteList);\n        return ids.size();\n    }\n\n    @Override\n    public Page<MemberReadHistory> list(Integer pageNum, Integer pageSize) {\n        UmsMember member = memberService.getCurrentMember();\n        Pageable pageable = PageRequest.of(pageNum-1, pageSize);\n        return memberReadHistoryRepository.findByMemberIdOrderByCreateTimeDesc(member.getId(),pageable);\n    }\n\n    @Override\n    public void clear() {\n        UmsMember member = memberService.getCurrentMember();\n        memberReadHistoryRepository.deleteAllByMemberId(member.getId());\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsCartItemServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport cn.hutool.core.collection.CollUtil;\nimport com.macro.mall.mapper.OmsCartItemMapper;\nimport com.macro.mall.model.OmsCartItem;\nimport com.macro.mall.model.OmsCartItemExample;\nimport com.macro.mall.model.UmsMember;\nimport com.macro.mall.portal.dao.PortalProductDao;\nimport com.macro.mall.portal.domain.CartProduct;\nimport com.macro.mall.portal.domain.CartPromotionItem;\nimport com.macro.mall.portal.service.OmsCartItemService;\nimport com.macro.mall.portal.service.OmsPromotionService;\nimport com.macro.mall.portal.service.UmsMemberService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.CollectionUtils;\n\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\nimport java.util.stream.Collectors;\n\n/**\n * 购物车管理Service实现类\n * Created by macro on 2018/8/2.\n */\n@Service\npublic class OmsCartItemServiceImpl implements OmsCartItemService {\n    @Autowired\n    private OmsCartItemMapper cartItemMapper;\n    @Autowired\n    private PortalProductDao productDao;\n    @Autowired\n    private OmsPromotionService promotionService;\n    @Autowired\n    private UmsMemberService memberService;\n\n    @Override\n    public int add(OmsCartItem cartItem) {\n        int count;\n        UmsMember currentMember =memberService.getCurrentMember();\n        cartItem.setMemberId(currentMember.getId());\n        cartItem.setMemberNickname(currentMember.getNickname());\n        cartItem.setDeleteStatus(0);\n        OmsCartItem existCartItem = getCartItem(cartItem);\n        if (existCartItem == null) {\n            cartItem.setCreateDate(new Date());\n            count = cartItemMapper.insert(cartItem);\n        } else {\n            cartItem.setModifyDate(new Date());\n            existCartItem.setQuantity(existCartItem.getQuantity() + cartItem.getQuantity());\n            count = cartItemMapper.updateByPrimaryKey(existCartItem);\n        }\n        return count;\n    }\n\n    /**\n     * 根据会员id,商品id和规格获取购物车中商品\n     */\n    private OmsCartItem getCartItem(OmsCartItem cartItem) {\n        OmsCartItemExample example = new OmsCartItemExample();\n        OmsCartItemExample.Criteria criteria = example.createCriteria().andMemberIdEqualTo(cartItem.getMemberId())\n                .andProductIdEqualTo(cartItem.getProductId()).andDeleteStatusEqualTo(0);\n        if (cartItem.getProductSkuId()!=null) {\n            criteria.andProductSkuIdEqualTo(cartItem.getProductSkuId());\n        }\n        List<OmsCartItem> cartItemList = cartItemMapper.selectByExample(example);\n        if (!CollectionUtils.isEmpty(cartItemList)) {\n            return cartItemList.get(0);\n        }\n        return null;\n    }\n\n    @Override\n    public List<OmsCartItem> list(Long memberId) {\n        OmsCartItemExample example = new OmsCartItemExample();\n        example.createCriteria().andDeleteStatusEqualTo(0).andMemberIdEqualTo(memberId);\n        return cartItemMapper.selectByExample(example);\n    }\n\n    @Override\n    public List<CartPromotionItem> listPromotion(Long memberId, List<Long> cartIds) {\n        List<OmsCartItem> cartItemList = list(memberId);\n        if(CollUtil.isNotEmpty(cartIds)){\n            cartItemList = cartItemList.stream().filter(item->cartIds.contains(item.getId())).collect(Collectors.toList());\n        }\n        List<CartPromotionItem> cartPromotionItemList = new ArrayList<>();\n        if(!CollectionUtils.isEmpty(cartItemList)){\n            cartPromotionItemList = promotionService.calcCartPromotion(cartItemList);\n        }\n        return cartPromotionItemList;\n    }\n\n    @Override\n    public int updateQuantity(Long id, Long memberId, Integer quantity) {\n        OmsCartItem cartItem = new OmsCartItem();\n        cartItem.setQuantity(quantity);\n        OmsCartItemExample example = new OmsCartItemExample();\n        example.createCriteria().andDeleteStatusEqualTo(0)\n                .andIdEqualTo(id).andMemberIdEqualTo(memberId);\n        return cartItemMapper.updateByExampleSelective(cartItem, example);\n    }\n\n    @Override\n    public int delete(Long memberId, List<Long> ids) {\n        OmsCartItem record = new OmsCartItem();\n        record.setDeleteStatus(1);\n        OmsCartItemExample example = new OmsCartItemExample();\n        example.createCriteria().andIdIn(ids).andMemberIdEqualTo(memberId);\n        return cartItemMapper.updateByExampleSelective(record, example);\n    }\n\n    @Override\n    public CartProduct getCartProduct(Long productId) {\n        return productDao.getCartProduct(productId);\n    }\n\n    @Override\n    public int updateAttr(OmsCartItem cartItem) {\n        //删除原购物车信息\n        OmsCartItem updateCart = new OmsCartItem();\n        updateCart.setId(cartItem.getId());\n        updateCart.setModifyDate(new Date());\n        updateCart.setDeleteStatus(1);\n        cartItemMapper.updateByPrimaryKeySelective(updateCart);\n        cartItem.setId(null);\n        add(cartItem);\n        return 1;\n    }\n\n    @Override\n    public int clear(Long memberId) {\n        OmsCartItem record = new OmsCartItem();\n        record.setDeleteStatus(1);\n        OmsCartItemExample example = new OmsCartItemExample();\n        example.createCriteria().andMemberIdEqualTo(memberId);\n        return cartItemMapper.updateByExampleSelective(record,example);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsPortalOrderReturnApplyServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport com.macro.mall.mapper.OmsOrderReturnApplyMapper;\nimport com.macro.mall.model.OmsOrderReturnApply;\nimport com.macro.mall.portal.domain.OmsOrderReturnApplyParam;\nimport com.macro.mall.portal.service.OmsPortalOrderReturnApplyService;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.Date;\n\n/**\n * 订单退货管理Service实现类\n * Created by macro on 2018/10/17.\n */\n@Service\npublic class OmsPortalOrderReturnApplyServiceImpl implements OmsPortalOrderReturnApplyService {\n    @Autowired\n    private OmsOrderReturnApplyMapper returnApplyMapper;\n    @Override\n    public int create(OmsOrderReturnApplyParam returnApply) {\n        OmsOrderReturnApply realApply = new OmsOrderReturnApply();\n        BeanUtils.copyProperties(returnApply,realApply);\n        realApply.setCreateTime(new Date());\n        realApply.setStatus(0);\n        return returnApplyMapper.insert(realApply);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsPortalOrderServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport cn.hutool.core.collection.CollUtil;\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.exception.Asserts;\nimport com.macro.mall.common.service.RedisService;\nimport com.macro.mall.mapper.*;\nimport com.macro.mall.model.*;\nimport com.macro.mall.portal.component.CancelOrderSender;\nimport com.macro.mall.portal.dao.PortalOrderDao;\nimport com.macro.mall.portal.dao.PortalOrderItemDao;\nimport com.macro.mall.portal.dao.SmsCouponHistoryDao;\nimport com.macro.mall.portal.domain.*;\nimport com.macro.mall.portal.service.*;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.CollectionUtils;\n\nimport java.math.BigDecimal;\nimport java.math.RoundingMode;\nimport java.text.SimpleDateFormat;\nimport java.util.*;\nimport java.util.stream.Collectors;\n\n/**\n * 前台订单管理Service\n * Created by macro on 2018/8/30.\n */\n@Service\npublic class OmsPortalOrderServiceImpl implements OmsPortalOrderService {\n    @Autowired\n    private UmsMemberService memberService;\n    @Autowired\n    private OmsCartItemService cartItemService;\n    @Autowired\n    private UmsMemberReceiveAddressService memberReceiveAddressService;\n    @Autowired\n    private UmsMemberCouponService memberCouponService;\n    @Autowired\n    private UmsIntegrationConsumeSettingMapper integrationConsumeSettingMapper;\n    @Autowired\n    private PmsSkuStockMapper skuStockMapper;\n    @Autowired\n    private SmsCouponHistoryDao couponHistoryDao;\n    @Autowired\n    private OmsOrderMapper orderMapper;\n    @Autowired\n    private PortalOrderItemDao orderItemDao;\n    @Autowired\n    private SmsCouponHistoryMapper couponHistoryMapper;\n    @Autowired\n    private RedisService redisService;\n    @Value(\"${redis.key.orderId}\")\n    private String REDIS_KEY_ORDER_ID;\n    @Value(\"${redis.database}\")\n    private String REDIS_DATABASE;\n    @Autowired\n    private PortalOrderDao portalOrderDao;\n    @Autowired\n    private OmsOrderSettingMapper orderSettingMapper;\n    @Autowired\n    private OmsOrderItemMapper orderItemMapper;\n    @Autowired\n    private CancelOrderSender cancelOrderSender;\n\n    @Override\n    public ConfirmOrderResult generateConfirmOrder(List<Long> cartIds) {\n        ConfirmOrderResult result = new ConfirmOrderResult();\n        //获取购物车信息\n        UmsMember currentMember = memberService.getCurrentMember();\n        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(currentMember.getId(),cartIds);\n        result.setCartPromotionItemList(cartPromotionItemList);\n        //获取用户收货地址列表\n        List<UmsMemberReceiveAddress> memberReceiveAddressList = memberReceiveAddressService.list();\n        result.setMemberReceiveAddressList(memberReceiveAddressList);\n        //获取用户可用优惠券列表\n        List<SmsCouponHistoryDetail> couponHistoryDetailList = memberCouponService.listCart(cartPromotionItemList, 1);\n        result.setCouponHistoryDetailList(couponHistoryDetailList);\n        //获取用户积分\n        result.setMemberIntegration(currentMember.getIntegration());\n        //获取积分使用规则\n        UmsIntegrationConsumeSetting integrationConsumeSetting = integrationConsumeSettingMapper.selectByPrimaryKey(1L);\n        result.setIntegrationConsumeSetting(integrationConsumeSetting);\n        //计算总金额、活动优惠、应付金额\n        ConfirmOrderResult.CalcAmount calcAmount = calcCartAmount(cartPromotionItemList);\n        result.setCalcAmount(calcAmount);\n        return result;\n    }\n\n    @Override\n    public Map<String, Object> generateOrder(OrderParam orderParam) {\n        List<OmsOrderItem> orderItemList = new ArrayList<>();\n        //校验收货地址\n        if(orderParam.getMemberReceiveAddressId()==null){\n            Asserts.fail(\"请选择收货地址！\");\n        }\n        //获取购物车及优惠信息\n        UmsMember currentMember = memberService.getCurrentMember();\n        List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(currentMember.getId(), orderParam.getCartIds());\n        for (CartPromotionItem cartPromotionItem : cartPromotionItemList) {\n            //生成下单商品信息\n            OmsOrderItem orderItem = new OmsOrderItem();\n            orderItem.setProductId(cartPromotionItem.getProductId());\n            orderItem.setProductName(cartPromotionItem.getProductName());\n            orderItem.setProductPic(cartPromotionItem.getProductPic());\n            orderItem.setProductAttr(cartPromotionItem.getProductAttr());\n            orderItem.setProductBrand(cartPromotionItem.getProductBrand());\n            orderItem.setProductSn(cartPromotionItem.getProductSn());\n            orderItem.setProductPrice(cartPromotionItem.getPrice());\n            orderItem.setProductQuantity(cartPromotionItem.getQuantity());\n            orderItem.setProductSkuId(cartPromotionItem.getProductSkuId());\n            orderItem.setProductSkuCode(cartPromotionItem.getProductSkuCode());\n            orderItem.setProductCategoryId(cartPromotionItem.getProductCategoryId());\n            orderItem.setPromotionAmount(cartPromotionItem.getReduceAmount());\n            orderItem.setPromotionName(cartPromotionItem.getPromotionMessage());\n            orderItem.setGiftIntegration(cartPromotionItem.getIntegration());\n            orderItem.setGiftGrowth(cartPromotionItem.getGrowth());\n            orderItemList.add(orderItem);\n        }\n        //判断购物车中商品是否都有库存\n        if (!hasStock(cartPromotionItemList)) {\n            Asserts.fail(\"库存不足，无法下单\");\n        }\n        //判断使用使用了优惠券\n        if (orderParam.getCouponId() == null) {\n            //不用优惠券\n            for (OmsOrderItem orderItem : orderItemList) {\n                orderItem.setCouponAmount(new BigDecimal(0));\n            }\n        } else {\n            //使用优惠券\n            SmsCouponHistoryDetail couponHistoryDetail = getUseCoupon(cartPromotionItemList, orderParam.getCouponId());\n            if (couponHistoryDetail == null) {\n                Asserts.fail(\"该优惠券不可用\");\n            }\n            //对下单商品的优惠券进行处理\n            handleCouponAmount(orderItemList, couponHistoryDetail);\n        }\n        //判断是否使用积分\n        if (orderParam.getUseIntegration() == null||orderParam.getUseIntegration().equals(0)) {\n            //不使用积分\n            for (OmsOrderItem orderItem : orderItemList) {\n                orderItem.setIntegrationAmount(new BigDecimal(0));\n            }\n        } else {\n            //使用积分\n            BigDecimal totalAmount = calcTotalAmount(orderItemList);\n            BigDecimal integrationAmount = getUseIntegrationAmount(orderParam.getUseIntegration(), totalAmount, currentMember, orderParam.getCouponId() != null);\n            if (integrationAmount.compareTo(new BigDecimal(0)) == 0) {\n                Asserts.fail(\"积分不可用\");\n            } else {\n                //可用情况下分摊到可用商品中\n                for (OmsOrderItem orderItem : orderItemList) {\n                    BigDecimal perAmount = orderItem.getProductPrice().divide(totalAmount, 3, RoundingMode.HALF_EVEN).multiply(integrationAmount);\n                    orderItem.setIntegrationAmount(perAmount);\n                }\n            }\n        }\n        //计算order_item的实付金额\n        handleRealAmount(orderItemList);\n        //进行库存锁定\n        lockStock(cartPromotionItemList);\n        //根据商品合计、运费、活动优惠、优惠券、积分计算应付金额\n        OmsOrder order = new OmsOrder();\n        order.setDiscountAmount(new BigDecimal(0));\n        order.setTotalAmount(calcTotalAmount(orderItemList));\n        order.setFreightAmount(new BigDecimal(0));\n        order.setPromotionAmount(calcPromotionAmount(orderItemList));\n        order.setPromotionInfo(getOrderPromotionInfo(orderItemList));\n        if (orderParam.getCouponId() == null) {\n            order.setCouponAmount(new BigDecimal(0));\n        } else {\n            order.setCouponId(orderParam.getCouponId());\n            order.setCouponAmount(calcCouponAmount(orderItemList));\n        }\n        if (orderParam.getUseIntegration() == null) {\n            order.setIntegration(0);\n            order.setIntegrationAmount(new BigDecimal(0));\n        } else {\n            order.setIntegration(orderParam.getUseIntegration());\n            order.setIntegrationAmount(calcIntegrationAmount(orderItemList));\n        }\n        order.setPayAmount(calcPayAmount(order));\n        //转化为订单信息并插入数据库\n        order.setMemberId(currentMember.getId());\n        order.setCreateTime(new Date());\n        order.setMemberUsername(currentMember.getUsername());\n        //支付方式：0->未支付；1->支付宝；2->微信\n        order.setPayType(orderParam.getPayType());\n        //订单来源：0->PC订单；1->app订单\n        order.setSourceType(1);\n        //订单状态：0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单\n        order.setStatus(0);\n        //订单类型：0->正常订单；1->秒杀订单\n        order.setOrderType(0);\n        //收货人信息：姓名、电话、邮编、地址\n        UmsMemberReceiveAddress address = memberReceiveAddressService.getItem(orderParam.getMemberReceiveAddressId());\n        order.setReceiverName(address.getName());\n        order.setReceiverPhone(address.getPhoneNumber());\n        order.setReceiverPostCode(address.getPostCode());\n        order.setReceiverProvince(address.getProvince());\n        order.setReceiverCity(address.getCity());\n        order.setReceiverRegion(address.getRegion());\n        order.setReceiverDetailAddress(address.getDetailAddress());\n        //0->未确认；1->已确认\n        order.setConfirmStatus(0);\n        order.setDeleteStatus(0);\n        //计算赠送积分\n        order.setIntegration(calcGifIntegration(orderItemList));\n        //计算赠送成长值\n        order.setGrowth(calcGiftGrowth(orderItemList));\n        //生成订单号\n        order.setOrderSn(generateOrderSn(order));\n        //设置自动收货天数\n        List<OmsOrderSetting> orderSettings = orderSettingMapper.selectByExample(new OmsOrderSettingExample());\n        if(CollUtil.isNotEmpty(orderSettings)){\n            order.setAutoConfirmDay(orderSettings.get(0).getConfirmOvertime());\n        }\n        // TODO: 2018/9/3 bill_*,delivery_*\n        //插入order表和order_item表\n        orderMapper.insert(order);\n        for (OmsOrderItem orderItem : orderItemList) {\n            orderItem.setOrderId(order.getId());\n            orderItem.setOrderSn(order.getOrderSn());\n        }\n        orderItemDao.insertList(orderItemList);\n        //如使用优惠券更新优惠券使用状态\n        if (orderParam.getCouponId() != null) {\n            updateCouponStatus(orderParam.getCouponId(), currentMember.getId(), 1);\n        }\n        //如使用积分需要扣除积分\n        if (orderParam.getUseIntegration() != null) {\n            order.setUseIntegration(orderParam.getUseIntegration());\n            if(currentMember.getIntegration()==null){\n                currentMember.setIntegration(0);\n            }\n            memberService.updateIntegration(currentMember.getId(), currentMember.getIntegration() - orderParam.getUseIntegration());\n        }\n        //删除购物车中的下单商品\n        deleteCartItemList(cartPromotionItemList, currentMember);\n        //发送延迟消息取消订单\n        sendDelayMessageCancelOrder(order.getId());\n        Map<String, Object> result = new HashMap<>();\n        result.put(\"order\", order);\n        result.put(\"orderItemList\", orderItemList);\n        return result;\n    }\n\n    @Override\n    public Integer paySuccess(Long orderId, Integer payType) {\n        //修改订单支付状态\n        OmsOrder order = new OmsOrder();\n        order.setId(orderId);\n        order.setStatus(1);\n        order.setPaymentTime(new Date());\n        order.setPayType(payType);\n        orderMapper.updateByPrimaryKeySelective(order);\n        //恢复所有下单商品的锁定库存，扣减真实库存\n        OmsOrderDetail orderDetail = portalOrderDao.getDetail(orderId);\n        int count = portalOrderDao.updateSkuStock(orderDetail.getOrderItemList());\n        return count;\n    }\n\n    @Override\n    public Integer cancelTimeOutOrder() {\n        Integer count=0;\n        OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L);\n        //查询超时、未支付的订单及订单详情\n        List<OmsOrderDetail> timeOutOrders = portalOrderDao.getTimeOutOrders(orderSetting.getNormalOrderOvertime());\n        if (CollectionUtils.isEmpty(timeOutOrders)) {\n            return count;\n        }\n        //修改订单状态为交易取消\n        List<Long> ids = new ArrayList<>();\n        for (OmsOrderDetail timeOutOrder : timeOutOrders) {\n            ids.add(timeOutOrder.getId());\n        }\n        portalOrderDao.updateOrderStatus(ids, 4);\n        for (OmsOrderDetail timeOutOrder : timeOutOrders) {\n            //解除订单商品库存锁定\n            portalOrderDao.releaseSkuStockLock(timeOutOrder.getOrderItemList());\n            //修改优惠券使用状态\n            updateCouponStatus(timeOutOrder.getCouponId(), timeOutOrder.getMemberId(), 0);\n            //返还使用积分\n            if (timeOutOrder.getUseIntegration() != null) {\n                UmsMember member = memberService.getById(timeOutOrder.getMemberId());\n                memberService.updateIntegration(timeOutOrder.getMemberId(), member.getIntegration() + timeOutOrder.getUseIntegration());\n            }\n        }\n        return timeOutOrders.size();\n    }\n\n    @Override\n    public void cancelOrder(Long orderId) {\n        //查询未付款的取消订单\n        OmsOrderExample example = new OmsOrderExample();\n        example.createCriteria().andIdEqualTo(orderId).andStatusEqualTo(0).andDeleteStatusEqualTo(0);\n        List<OmsOrder> cancelOrderList = orderMapper.selectByExample(example);\n        if (CollectionUtils.isEmpty(cancelOrderList)) {\n            return;\n        }\n        OmsOrder cancelOrder = cancelOrderList.get(0);\n        if (cancelOrder != null) {\n            //修改订单状态为取消\n            cancelOrder.setStatus(4);\n            orderMapper.updateByPrimaryKeySelective(cancelOrder);\n            OmsOrderItemExample orderItemExample = new OmsOrderItemExample();\n            orderItemExample.createCriteria().andOrderIdEqualTo(orderId);\n            List<OmsOrderItem> orderItemList = orderItemMapper.selectByExample(orderItemExample);\n            //解除订单商品库存锁定\n            if (!CollectionUtils.isEmpty(orderItemList)) {\n                portalOrderDao.releaseSkuStockLock(orderItemList);\n            }\n            //修改优惠券使用状态\n            updateCouponStatus(cancelOrder.getCouponId(), cancelOrder.getMemberId(), 0);\n            //返还使用积分\n            if (cancelOrder.getUseIntegration() != null) {\n                UmsMember member = memberService.getById(cancelOrder.getMemberId());\n                memberService.updateIntegration(cancelOrder.getMemberId(), member.getIntegration() + cancelOrder.getUseIntegration());\n            }\n        }\n    }\n\n    @Override\n    public void sendDelayMessageCancelOrder(Long orderId) {\n        //获取订单超时时间\n        OmsOrderSetting orderSetting = orderSettingMapper.selectByPrimaryKey(1L);\n        long delayTimes = orderSetting.getNormalOrderOvertime() * 60 * 1000;\n        //发送延迟消息\n        cancelOrderSender.sendMessage(orderId, delayTimes);\n    }\n\n    @Override\n    public void confirmReceiveOrder(Long orderId) {\n        UmsMember member = memberService.getCurrentMember();\n        OmsOrder order = orderMapper.selectByPrimaryKey(orderId);\n        if(!member.getId().equals(order.getMemberId())){\n            Asserts.fail(\"不能确认他人订单！\");\n        }\n        if(order.getStatus()!=2){\n            Asserts.fail(\"该订单还未发货！\");\n        }\n        order.setStatus(3);\n        order.setConfirmStatus(1);\n        order.setReceiveTime(new Date());\n        orderMapper.updateByPrimaryKey(order);\n    }\n\n    @Override\n    public CommonPage<OmsOrderDetail> list(Integer status, Integer pageNum, Integer pageSize) {\n        if(status==-1){\n            status = null;\n        }\n        UmsMember member = memberService.getCurrentMember();\n        PageHelper.startPage(pageNum,pageSize);\n        OmsOrderExample orderExample = new OmsOrderExample();\n        OmsOrderExample.Criteria criteria = orderExample.createCriteria();\n        criteria.andDeleteStatusEqualTo(0)\n                .andMemberIdEqualTo(member.getId());\n        if(status!=null){\n            criteria.andStatusEqualTo(status);\n        }\n        orderExample.setOrderByClause(\"create_time desc\");\n        List<OmsOrder> orderList = orderMapper.selectByExample(orderExample);\n        CommonPage<OmsOrder> orderPage = CommonPage.restPage(orderList);\n        //设置分页信息\n        CommonPage<OmsOrderDetail> resultPage = new CommonPage<>();\n        resultPage.setPageNum(orderPage.getPageNum());\n        resultPage.setPageSize(orderPage.getPageSize());\n        resultPage.setTotal(orderPage.getTotal());\n        resultPage.setTotalPage(orderPage.getTotalPage());\n        if(CollUtil.isEmpty(orderList)){\n            return resultPage;\n        }\n        //设置数据信息\n        List<Long> orderIds = orderList.stream().map(OmsOrder::getId).collect(Collectors.toList());\n        OmsOrderItemExample orderItemExample = new OmsOrderItemExample();\n        orderItemExample.createCriteria().andOrderIdIn(orderIds);\n        List<OmsOrderItem> orderItemList = orderItemMapper.selectByExample(orderItemExample);\n        List<OmsOrderDetail> orderDetailList = new ArrayList<>();\n        for (OmsOrder omsOrder : orderList) {\n            OmsOrderDetail orderDetail = new OmsOrderDetail();\n            BeanUtil.copyProperties(omsOrder,orderDetail);\n            List<OmsOrderItem> relatedItemList = orderItemList.stream().filter(item -> item.getOrderId().equals(orderDetail.getId())).collect(Collectors.toList());\n            orderDetail.setOrderItemList(relatedItemList);\n            orderDetailList.add(orderDetail);\n        }\n        resultPage.setList(orderDetailList);\n        return resultPage;\n    }\n\n    @Override\n    public OmsOrderDetail detail(Long orderId) {\n        OmsOrder omsOrder = orderMapper.selectByPrimaryKey(orderId);\n        OmsOrderItemExample example = new OmsOrderItemExample();\n        example.createCriteria().andOrderIdEqualTo(orderId);\n        List<OmsOrderItem> orderItemList = orderItemMapper.selectByExample(example);\n        OmsOrderDetail orderDetail = new OmsOrderDetail();\n        BeanUtil.copyProperties(omsOrder,orderDetail);\n        orderDetail.setOrderItemList(orderItemList);\n        return orderDetail;\n    }\n\n    @Override\n    public void deleteOrder(Long orderId) {\n        UmsMember member = memberService.getCurrentMember();\n        OmsOrder order = orderMapper.selectByPrimaryKey(orderId);\n        if(!member.getId().equals(order.getMemberId())){\n            Asserts.fail(\"不能删除他人订单！\");\n        }\n        if(order.getStatus()==3||order.getStatus()==4){\n            order.setDeleteStatus(1);\n            orderMapper.updateByPrimaryKey(order);\n        }else{\n            Asserts.fail(\"只能删除已完成或已关闭的订单！\");\n        }\n    }\n\n    @Override\n    public void paySuccessByOrderSn(String orderSn, Integer payType) {\n        OmsOrderExample example =  new OmsOrderExample();\n        example.createCriteria()\n                .andOrderSnEqualTo(orderSn)\n                .andStatusEqualTo(0)\n                .andDeleteStatusEqualTo(0);\n        List<OmsOrder> orderList = orderMapper.selectByExample(example);\n        if(CollUtil.isNotEmpty(orderList)){\n            OmsOrder order = orderList.get(0);\n            paySuccess(order.getId(),payType);\n        }\n    }\n\n    /**\n     * 生成18位订单编号:8位日期+2位平台号码+2位支付方式+6位以上自增id\n     */\n    private String generateOrderSn(OmsOrder order) {\n        StringBuilder sb = new StringBuilder();\n        String date = new SimpleDateFormat(\"yyyyMMdd\").format(new Date());\n        String key = REDIS_DATABASE+\":\"+ REDIS_KEY_ORDER_ID + date;\n        Long increment = redisService.incr(key, 1);\n        sb.append(date);\n        sb.append(String.format(\"%02d\", order.getSourceType()));\n        sb.append(String.format(\"%02d\", order.getPayType()));\n        String incrementStr = increment.toString();\n        if (incrementStr.length() <= 6) {\n            sb.append(String.format(\"%06d\", increment));\n        } else {\n            sb.append(incrementStr);\n        }\n        return sb.toString();\n    }\n\n    /**\n     * 删除下单商品的购物车信息\n     */\n    private void deleteCartItemList(List<CartPromotionItem> cartPromotionItemList, UmsMember currentMember) {\n        List<Long> ids = new ArrayList<>();\n        for (CartPromotionItem cartPromotionItem : cartPromotionItemList) {\n            ids.add(cartPromotionItem.getId());\n        }\n        cartItemService.delete(currentMember.getId(), ids);\n    }\n\n    /**\n     * 计算该订单赠送的成长值\n     */\n    private Integer calcGiftGrowth(List<OmsOrderItem> orderItemList) {\n        Integer sum = 0;\n        for (OmsOrderItem orderItem : orderItemList) {\n            sum = sum + orderItem.getGiftGrowth() * orderItem.getProductQuantity();\n        }\n        return sum;\n    }\n\n    /**\n     * 计算该订单赠送的积分\n     */\n    private Integer calcGifIntegration(List<OmsOrderItem> orderItemList) {\n        int sum = 0;\n        for (OmsOrderItem orderItem : orderItemList) {\n            sum += orderItem.getGiftIntegration() * orderItem.getProductQuantity();\n        }\n        return sum;\n    }\n\n    /**\n     * 将优惠券信息更改为指定状态\n     *\n     * @param couponId  优惠券id\n     * @param memberId  会员id\n     * @param useStatus 0->未使用；1->已使用\n     */\n    private void updateCouponStatus(Long couponId, Long memberId, Integer useStatus) {\n        if (couponId == null) return;\n        //查询第一张优惠券\n        SmsCouponHistoryExample example = new SmsCouponHistoryExample();\n        example.createCriteria().andMemberIdEqualTo(memberId)\n                .andCouponIdEqualTo(couponId).andUseStatusEqualTo(useStatus == 0 ? 1 : 0);\n        List<SmsCouponHistory> couponHistoryList = couponHistoryMapper.selectByExample(example);\n        if (!CollectionUtils.isEmpty(couponHistoryList)) {\n            SmsCouponHistory couponHistory = couponHistoryList.get(0);\n            couponHistory.setUseTime(new Date());\n            couponHistory.setUseStatus(useStatus);\n            couponHistoryMapper.updateByPrimaryKeySelective(couponHistory);\n        }\n    }\n\n    private void handleRealAmount(List<OmsOrderItem> orderItemList) {\n        for (OmsOrderItem orderItem : orderItemList) {\n            //原价-促销优惠-优惠券抵扣-积分抵扣\n            BigDecimal realAmount = orderItem.getProductPrice()\n                    .subtract(orderItem.getPromotionAmount())\n                    .subtract(orderItem.getCouponAmount())\n                    .subtract(orderItem.getIntegrationAmount());\n            orderItem.setRealAmount(realAmount);\n        }\n    }\n\n    /**\n     * 获取订单促销信息\n     */\n    private String getOrderPromotionInfo(List<OmsOrderItem> orderItemList) {\n        StringBuilder sb = new StringBuilder();\n        for (OmsOrderItem orderItem : orderItemList) {\n            sb.append(orderItem.getPromotionName());\n            sb.append(\";\");\n        }\n        String result = sb.toString();\n        if (result.endsWith(\";\")) {\n            result = result.substring(0, result.length() - 1);\n        }\n        return result;\n    }\n\n    /**\n     * 计算订单应付金额\n     */\n    private BigDecimal calcPayAmount(OmsOrder order) {\n        //总金额+运费-促销优惠-优惠券优惠-积分抵扣\n        BigDecimal payAmount = order.getTotalAmount()\n                .add(order.getFreightAmount())\n                .subtract(order.getPromotionAmount())\n                .subtract(order.getCouponAmount())\n                .subtract(order.getIntegrationAmount());\n        return payAmount;\n    }\n\n    /**\n     * 计算订单优惠券金额\n     */\n    private BigDecimal calcIntegrationAmount(List<OmsOrderItem> orderItemList) {\n        BigDecimal integrationAmount = new BigDecimal(0);\n        for (OmsOrderItem orderItem : orderItemList) {\n            if (orderItem.getIntegrationAmount() != null) {\n                integrationAmount = integrationAmount.add(orderItem.getIntegrationAmount().multiply(new BigDecimal(orderItem.getProductQuantity())));\n            }\n        }\n        return integrationAmount;\n    }\n\n    /**\n     * 计算订单优惠券金额\n     */\n    private BigDecimal calcCouponAmount(List<OmsOrderItem> orderItemList) {\n        BigDecimal couponAmount = new BigDecimal(0);\n        for (OmsOrderItem orderItem : orderItemList) {\n            if (orderItem.getCouponAmount() != null) {\n                couponAmount = couponAmount.add(orderItem.getCouponAmount().multiply(new BigDecimal(orderItem.getProductQuantity())));\n            }\n        }\n        return couponAmount;\n    }\n\n    /**\n     * 计算订单活动优惠\n     */\n    private BigDecimal calcPromotionAmount(List<OmsOrderItem> orderItemList) {\n        BigDecimal promotionAmount = new BigDecimal(0);\n        for (OmsOrderItem orderItem : orderItemList) {\n            if (orderItem.getPromotionAmount() != null) {\n                promotionAmount = promotionAmount.add(orderItem.getPromotionAmount().multiply(new BigDecimal(orderItem.getProductQuantity())));\n            }\n        }\n        return promotionAmount;\n    }\n\n    /**\n     * 获取可用积分抵扣金额\n     *\n     * @param useIntegration 使用的积分数量\n     * @param totalAmount    订单总金额\n     * @param currentMember  使用的用户\n     * @param hasCoupon      是否已经使用优惠券\n     */\n    private BigDecimal getUseIntegrationAmount(Integer useIntegration, BigDecimal totalAmount, UmsMember currentMember, boolean hasCoupon) {\n        BigDecimal zeroAmount = new BigDecimal(0);\n        //判断用户是否有这么多积分\n        if (useIntegration.compareTo(currentMember.getIntegration()) > 0) {\n            return zeroAmount;\n        }\n        //根据积分使用规则判断是否可用\n        //是否可与优惠券共用\n        UmsIntegrationConsumeSetting integrationConsumeSetting = integrationConsumeSettingMapper.selectByPrimaryKey(1L);\n        if (hasCoupon && integrationConsumeSetting.getCouponStatus().equals(0)) {\n            //不可与优惠券共用\n            return zeroAmount;\n        }\n        //是否达到最低使用积分门槛\n        if (useIntegration.compareTo(integrationConsumeSetting.getUseUnit()) < 0) {\n            return zeroAmount;\n        }\n        //是否超过订单抵用最高百分比\n        BigDecimal integrationAmount = new BigDecimal(useIntegration).divide(new BigDecimal(integrationConsumeSetting.getUseUnit()), 2, RoundingMode.HALF_EVEN);\n        BigDecimal maxPercent = new BigDecimal(integrationConsumeSetting.getMaxPercentPerOrder()).divide(new BigDecimal(100), 2, RoundingMode.HALF_EVEN);\n        if (integrationAmount.compareTo(totalAmount.multiply(maxPercent)) > 0) {\n            return zeroAmount;\n        }\n        return integrationAmount;\n    }\n\n    /**\n     * 对优惠券优惠进行处理\n     *\n     * @param orderItemList       order_item列表\n     * @param couponHistoryDetail 可用优惠券详情\n     */\n    private void handleCouponAmount(List<OmsOrderItem> orderItemList, SmsCouponHistoryDetail couponHistoryDetail) {\n        SmsCoupon coupon = couponHistoryDetail.getCoupon();\n        if (coupon.getUseType().equals(0)) {\n            //全场通用\n            calcPerCouponAmount(orderItemList, coupon);\n        } else if (coupon.getUseType().equals(1)) {\n            //指定分类\n            List<OmsOrderItem> couponOrderItemList = getCouponOrderItemByRelation(couponHistoryDetail, orderItemList, 0);\n            calcPerCouponAmount(couponOrderItemList, coupon);\n        } else if (coupon.getUseType().equals(2)) {\n            //指定商品\n            List<OmsOrderItem> couponOrderItemList = getCouponOrderItemByRelation(couponHistoryDetail, orderItemList, 1);\n            calcPerCouponAmount(couponOrderItemList, coupon);\n        }\n    }\n\n    /**\n     * 对每个下单商品进行优惠券金额分摊的计算\n     *\n     * @param orderItemList 可用优惠券的下单商品商品\n     */\n    private void calcPerCouponAmount(List<OmsOrderItem> orderItemList, SmsCoupon coupon) {\n        BigDecimal totalAmount = calcTotalAmount(orderItemList);\n        for (OmsOrderItem orderItem : orderItemList) {\n            //(商品价格/可用商品总价)*优惠券面额\n            BigDecimal couponAmount = orderItem.getProductPrice().divide(totalAmount, 3, RoundingMode.HALF_EVEN).multiply(coupon.getAmount());\n            orderItem.setCouponAmount(couponAmount);\n        }\n    }\n\n    /**\n     * 获取与优惠券有关系的下单商品\n     *\n     * @param couponHistoryDetail 优惠券详情\n     * @param orderItemList       下单商品\n     * @param type                使用关系类型：0->相关分类；1->指定商品\n     */\n    private List<OmsOrderItem> getCouponOrderItemByRelation(SmsCouponHistoryDetail couponHistoryDetail, List<OmsOrderItem> orderItemList, int type) {\n        List<OmsOrderItem> result = new ArrayList<>();\n        if (type == 0) {\n            List<Long> categoryIdList = new ArrayList<>();\n            for (SmsCouponProductCategoryRelation productCategoryRelation : couponHistoryDetail.getCategoryRelationList()) {\n                categoryIdList.add(productCategoryRelation.getProductCategoryId());\n            }\n            for (OmsOrderItem orderItem : orderItemList) {\n                if (categoryIdList.contains(orderItem.getProductCategoryId())) {\n                    result.add(orderItem);\n                } else {\n                    orderItem.setCouponAmount(new BigDecimal(0));\n                }\n            }\n        } else if (type == 1) {\n            List<Long> productIdList = new ArrayList<>();\n            for (SmsCouponProductRelation productRelation : couponHistoryDetail.getProductRelationList()) {\n                productIdList.add(productRelation.getProductId());\n            }\n            for (OmsOrderItem orderItem : orderItemList) {\n                if (productIdList.contains(orderItem.getProductId())) {\n                    result.add(orderItem);\n                } else {\n                    orderItem.setCouponAmount(new BigDecimal(0));\n                }\n            }\n        }\n        return result;\n    }\n\n    /**\n     * 获取该用户可以使用的优惠券\n     *\n     * @param cartPromotionItemList 购物车优惠列表\n     * @param couponId              使用优惠券id\n     */\n    private SmsCouponHistoryDetail getUseCoupon(List<CartPromotionItem> cartPromotionItemList, Long couponId) {\n        List<SmsCouponHistoryDetail> couponHistoryDetailList = memberCouponService.listCart(cartPromotionItemList, 1);\n        for (SmsCouponHistoryDetail couponHistoryDetail : couponHistoryDetailList) {\n            if (couponHistoryDetail.getCoupon().getId().equals(couponId)) {\n                return couponHistoryDetail;\n            }\n        }\n        return null;\n    }\n\n    /**\n     * 计算总金额\n     */\n    private BigDecimal calcTotalAmount(List<OmsOrderItem> orderItemList) {\n        BigDecimal totalAmount = new BigDecimal(\"0\");\n        for (OmsOrderItem item : orderItemList) {\n            totalAmount = totalAmount.add(item.getProductPrice().multiply(new BigDecimal(item.getProductQuantity())));\n        }\n        return totalAmount;\n    }\n\n    /**\n     * 锁定下单商品的所有库存\n     */\n    private void lockStock(List<CartPromotionItem> cartPromotionItemList) {\n        for (CartPromotionItem cartPromotionItem : cartPromotionItemList) {\n            PmsSkuStock skuStock = skuStockMapper.selectByPrimaryKey(cartPromotionItem.getProductSkuId());\n            skuStock.setLockStock(skuStock.getLockStock() + cartPromotionItem.getQuantity());\n            skuStockMapper.updateByPrimaryKeySelective(skuStock);\n        }\n    }\n\n    /**\n     * 判断下单商品是否都有库存\n     */\n    private boolean hasStock(List<CartPromotionItem> cartPromotionItemList) {\n        for (CartPromotionItem cartPromotionItem : cartPromotionItemList) {\n            if (cartPromotionItem.getRealStock()==null //判断真实库存是否为空\n                    ||cartPromotionItem.getRealStock() <= 0 //判断真实库存是否小于0\n                    || cartPromotionItem.getRealStock() < cartPromotionItem.getQuantity()) //判断真实库存是否小于下单的数量\n            {\n                return false;\n            }\n        }\n        return true;\n    }\n\n    /**\n     * 计算购物车中商品的价格\n     */\n    private ConfirmOrderResult.CalcAmount calcCartAmount(List<CartPromotionItem> cartPromotionItemList) {\n        ConfirmOrderResult.CalcAmount calcAmount = new ConfirmOrderResult.CalcAmount();\n        calcAmount.setFreightAmount(new BigDecimal(0));\n        BigDecimal totalAmount = new BigDecimal(\"0\");\n        BigDecimal promotionAmount = new BigDecimal(\"0\");\n        for (CartPromotionItem cartPromotionItem : cartPromotionItemList) {\n            totalAmount = totalAmount.add(cartPromotionItem.getPrice().multiply(new BigDecimal(cartPromotionItem.getQuantity())));\n            promotionAmount = promotionAmount.add(cartPromotionItem.getReduceAmount().multiply(new BigDecimal(cartPromotionItem.getQuantity())));\n        }\n        calcAmount.setTotalAmount(totalAmount);\n        calcAmount.setPromotionAmount(promotionAmount);\n        calcAmount.setPayAmount(totalAmount.subtract(promotionAmount));\n        return calcAmount;\n    }\n\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/OmsPromotionServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport com.macro.mall.model.OmsCartItem;\nimport com.macro.mall.model.PmsProductFullReduction;\nimport com.macro.mall.model.PmsProductLadder;\nimport com.macro.mall.model.PmsSkuStock;\nimport com.macro.mall.portal.dao.PortalProductDao;\nimport com.macro.mall.portal.domain.CartPromotionItem;\nimport com.macro.mall.portal.domain.PromotionProduct;\nimport com.macro.mall.portal.service.OmsPromotionService;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.CollectionUtils;\n\nimport java.math.BigDecimal;\nimport java.math.RoundingMode;\nimport java.util.*;\n\n/**\n * Created by macro on 2018/8/27.\n * 促销管理Service实现类\n */\n@Service\npublic class OmsPromotionServiceImpl implements OmsPromotionService {\n    @Autowired\n    private PortalProductDao portalProductDao;\n\n    @Override\n    public List<CartPromotionItem> calcCartPromotion(List<OmsCartItem> cartItemList) {\n        //1.先根据productId对CartItem进行分组，以spu为单位进行计算优惠\n        Map<Long, List<OmsCartItem>> productCartMap = groupCartItemBySpu(cartItemList);\n        //2.查询所有商品的优惠相关信息\n        List<PromotionProduct> promotionProductList = getPromotionProductList(cartItemList);\n        //3.根据商品促销类型计算商品促销优惠价格\n        List<CartPromotionItem> cartPromotionItemList = new ArrayList<>();\n        for (Map.Entry<Long, List<OmsCartItem>> entry : productCartMap.entrySet()) {\n            Long productId = entry.getKey();\n            PromotionProduct promotionProduct = getPromotionProductById(productId, promotionProductList);\n            List<OmsCartItem> itemList = entry.getValue();\n            Integer promotionType = promotionProduct.getPromotionType();\n            if (promotionType == 1) {\n                //单品促销\n                for (OmsCartItem item : itemList) {\n                    CartPromotionItem cartPromotionItem = new CartPromotionItem();\n                    BeanUtils.copyProperties(item,cartPromotionItem);\n                    cartPromotionItem.setPromotionMessage(\"单品促销\");\n                    //商品原价-促销价\n                    PmsSkuStock skuStock = getOriginalPrice(promotionProduct, item.getProductSkuId());\n                    BigDecimal originalPrice = skuStock.getPrice();\n                    //单品促销使用原价\n                    cartPromotionItem.setPrice(originalPrice);\n                    cartPromotionItem.setReduceAmount(originalPrice.subtract(skuStock.getPromotionPrice()));\n                    cartPromotionItem.setRealStock(skuStock.getStock()-skuStock.getLockStock());\n                    cartPromotionItem.setIntegration(promotionProduct.getGiftPoint());\n                    cartPromotionItem.setGrowth(promotionProduct.getGiftGrowth());\n                    cartPromotionItemList.add(cartPromotionItem);\n                }\n            } else if (promotionType == 3) {\n                //打折优惠\n                int count = getCartItemCount(itemList);\n                PmsProductLadder ladder = getProductLadder(count, promotionProduct.getProductLadderList());\n                if(ladder!=null){\n                    for (OmsCartItem item : itemList) {\n                        CartPromotionItem cartPromotionItem = new CartPromotionItem();\n                        BeanUtils.copyProperties(item,cartPromotionItem);\n                        String message = getLadderPromotionMessage(ladder);\n                        cartPromotionItem.setPromotionMessage(message);\n                        //商品原价-折扣*商品原价\n                        PmsSkuStock skuStock = getOriginalPrice(promotionProduct,item.getProductSkuId());\n                        BigDecimal originalPrice = skuStock.getPrice();\n                        BigDecimal reduceAmount = originalPrice.subtract(ladder.getDiscount().multiply(originalPrice));\n                        cartPromotionItem.setReduceAmount(reduceAmount);\n                        cartPromotionItem.setRealStock(skuStock.getStock()-skuStock.getLockStock());\n                        cartPromotionItem.setIntegration(promotionProduct.getGiftPoint());\n                        cartPromotionItem.setGrowth(promotionProduct.getGiftGrowth());\n                        cartPromotionItemList.add(cartPromotionItem);\n                    }\n                }else{\n                    handleNoReduce(cartPromotionItemList,itemList,promotionProduct);\n                }\n            } else if (promotionType == 4) {\n                //满减\n                BigDecimal totalAmount= getCartItemAmount(itemList,promotionProductList);\n                PmsProductFullReduction fullReduction = getProductFullReduction(totalAmount,promotionProduct.getProductFullReductionList());\n                if(fullReduction!=null){\n                    for (OmsCartItem item : itemList) {\n                        CartPromotionItem cartPromotionItem = new CartPromotionItem();\n                        BeanUtils.copyProperties(item,cartPromotionItem);\n                        String message = getFullReductionPromotionMessage(fullReduction);\n                        cartPromotionItem.setPromotionMessage(message);\n                        //(商品原价/总价)*满减金额\n                        PmsSkuStock skuStock= getOriginalPrice(promotionProduct, item.getProductSkuId());\n                        BigDecimal originalPrice = skuStock.getPrice();\n                        BigDecimal reduceAmount = originalPrice.divide(totalAmount,RoundingMode.HALF_EVEN).multiply(fullReduction.getReducePrice());\n                        cartPromotionItem.setReduceAmount(reduceAmount);\n                        cartPromotionItem.setRealStock(skuStock.getStock()-skuStock.getLockStock());\n                        cartPromotionItem.setIntegration(promotionProduct.getGiftPoint());\n                        cartPromotionItem.setGrowth(promotionProduct.getGiftGrowth());\n                        cartPromotionItemList.add(cartPromotionItem);\n                    }\n                }else{\n                    handleNoReduce(cartPromotionItemList,itemList,promotionProduct);\n                }\n            } else {\n                //无优惠\n                handleNoReduce(cartPromotionItemList, itemList,promotionProduct);\n            }\n        }\n        return cartPromotionItemList;\n    }\n\n    /**\n     * 查询所有商品的优惠相关信息\n     */\n    private List<PromotionProduct> getPromotionProductList(List<OmsCartItem> cartItemList) {\n        List<Long> productIdList = new ArrayList<>();\n        for(OmsCartItem cartItem:cartItemList){\n            productIdList.add(cartItem.getProductId());\n        }\n        return portalProductDao.getPromotionProductList(productIdList);\n    }\n\n    /**\n     * 以spu为单位对购物车中商品进行分组\n     */\n    private Map<Long, List<OmsCartItem>> groupCartItemBySpu(List<OmsCartItem> cartItemList) {\n        Map<Long, List<OmsCartItem>> productCartMap = new TreeMap<>();\n        for (OmsCartItem cartItem : cartItemList) {\n            List<OmsCartItem> productCartItemList = productCartMap.get(cartItem.getProductId());\n            if (productCartItemList == null) {\n                productCartItemList = new ArrayList<>();\n                productCartItemList.add(cartItem);\n                productCartMap.put(cartItem.getProductId(), productCartItemList);\n            } else {\n                productCartItemList.add(cartItem);\n            }\n        }\n        return productCartMap;\n    }\n\n    /**\n     * 获取满减促销消息\n     */\n    private String getFullReductionPromotionMessage(PmsProductFullReduction fullReduction) {\n        StringBuilder sb = new StringBuilder();\n        sb.append(\"满减优惠：\");\n        sb.append(\"满\");\n        sb.append(fullReduction.getFullPrice());\n        sb.append(\"元，\");\n        sb.append(\"减\");\n        sb.append(fullReduction.getReducePrice());\n        sb.append(\"元\");\n        return sb.toString();\n    }\n\n    /**\n     * 对没满足优惠条件的商品进行处理\n     */\n    private void handleNoReduce(List<CartPromotionItem> cartPromotionItemList, List<OmsCartItem> itemList,PromotionProduct promotionProduct) {\n        for (OmsCartItem item : itemList) {\n            CartPromotionItem cartPromotionItem = new CartPromotionItem();\n            BeanUtils.copyProperties(item,cartPromotionItem);\n            cartPromotionItem.setPromotionMessage(\"无优惠\");\n            cartPromotionItem.setReduceAmount(new BigDecimal(0));\n            PmsSkuStock skuStock = getOriginalPrice(promotionProduct,item.getProductSkuId());\n            if(skuStock!=null){\n                cartPromotionItem.setRealStock(skuStock.getStock()-skuStock.getLockStock());\n            }\n            cartPromotionItem.setIntegration(promotionProduct.getGiftPoint());\n            cartPromotionItem.setGrowth(promotionProduct.getGiftGrowth());\n            cartPromotionItemList.add(cartPromotionItem);\n        }\n    }\n\n    private PmsProductFullReduction getProductFullReduction(BigDecimal totalAmount,List<PmsProductFullReduction> fullReductionList) {\n        //按条件从高到低排序\n        fullReductionList.sort(new Comparator<PmsProductFullReduction>() {\n            @Override\n            public int compare(PmsProductFullReduction o1, PmsProductFullReduction o2) {\n                return o2.getFullPrice().subtract(o1.getFullPrice()).intValue();\n            }\n        });\n        for(PmsProductFullReduction fullReduction:fullReductionList){\n            if(totalAmount.subtract(fullReduction.getFullPrice()).intValue()>=0){\n                return fullReduction;\n            }\n        }\n        return null;\n    }\n\n    /**\n     * 获取打折优惠的促销信息\n     */\n    private String getLadderPromotionMessage(PmsProductLadder ladder) {\n        StringBuilder sb = new StringBuilder();\n        sb.append(\"打折优惠：\");\n        sb.append(\"满\");\n        sb.append(ladder.getCount());\n        sb.append(\"件，\");\n        sb.append(\"打\");\n        sb.append(ladder.getDiscount().multiply(new BigDecimal(10)));\n        sb.append(\"折\");\n        return sb.toString();\n    }\n\n    /**\n     * 根据购买商品数量获取满足条件的打折优惠策略\n     */\n    private PmsProductLadder getProductLadder(int count, List<PmsProductLadder> productLadderList) {\n        //按数量从大到小排序\n        productLadderList.sort(new Comparator<PmsProductLadder>() {\n            @Override\n            public int compare(PmsProductLadder o1, PmsProductLadder o2) {\n                return o2.getCount() - o1.getCount();\n            }\n        });\n        for (PmsProductLadder productLadder : productLadderList) {\n            if (count >= productLadder.getCount()) {\n                return productLadder;\n            }\n        }\n        return null;\n    }\n\n    /**\n     * 获取购物车中指定商品的数量\n     */\n    private int getCartItemCount(List<OmsCartItem> itemList) {\n        int count = 0;\n        for (OmsCartItem item : itemList) {\n            count += item.getQuantity();\n        }\n        return count;\n    }\n\n    /**\n     * 获取购物车中指定商品的总价\n     */\n    private BigDecimal getCartItemAmount(List<OmsCartItem> itemList, List<PromotionProduct> promotionProductList) {\n        BigDecimal amount = new BigDecimal(0);\n        for (OmsCartItem item : itemList) {\n            //计算出商品原价\n            PromotionProduct promotionProduct = getPromotionProductById(item.getProductId(), promotionProductList);\n            PmsSkuStock skuStock = getOriginalPrice(promotionProduct,item.getProductSkuId());\n            amount = amount.add(skuStock.getPrice().multiply(new BigDecimal(item.getQuantity())));\n        }\n        return amount;\n    }\n\n    /**\n     * 获取商品的原价\n     */\n    private PmsSkuStock getOriginalPrice(PromotionProduct promotionProduct, Long productSkuId) {\n        for (PmsSkuStock skuStock : promotionProduct.getSkuStockList()) {\n            if (productSkuId.equals(skuStock.getId())) {\n                return skuStock;\n            }\n        }\n        return null;\n    }\n\n    /**\n     * 根据商品id获取商品的促销信息\n     */\n    private PromotionProduct getPromotionProductById(Long productId, List<PromotionProduct> promotionProductList) {\n        for (PromotionProduct promotionProduct : promotionProductList) {\n            if (productId.equals(promotionProduct.getId())) {\n                return promotionProduct;\n            }\n        }\n        return null;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/PmsPortalProductServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport cn.hutool.core.collection.CollUtil;\nimport cn.hutool.core.util.StrUtil;\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.mapper.*;\nimport com.macro.mall.model.*;\nimport com.macro.mall.portal.dao.PortalProductDao;\nimport com.macro.mall.portal.domain.PmsPortalProductDetail;\nimport com.macro.mall.portal.domain.PmsProductCategoryNode;\nimport com.macro.mall.portal.service.PmsPortalProductService;\nimport org.springframework.beans.BeanUtils;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\nimport java.util.stream.Collectors;\n\n/**\n * 前台订单管理Service实现类\n * Created by macro on 2020/4/6.\n */\n@Service\npublic class PmsPortalProductServiceImpl implements PmsPortalProductService {\n    @Autowired\n    private PmsProductMapper productMapper;\n    @Autowired\n    private PmsProductCategoryMapper productCategoryMapper;\n    @Autowired\n    private PmsBrandMapper brandMapper;\n    @Autowired\n    private PmsProductAttributeMapper productAttributeMapper;\n    @Autowired\n    private PmsProductAttributeValueMapper productAttributeValueMapper;\n    @Autowired\n    private PmsSkuStockMapper skuStockMapper;\n    @Autowired\n    private PmsProductLadderMapper productLadderMapper;\n    @Autowired\n    private PmsProductFullReductionMapper productFullReductionMapper;\n    @Autowired\n    private PortalProductDao portalProductDao;\n\n    @Override\n    public List<PmsProduct> search(String keyword, Long brandId, Long productCategoryId, Integer pageNum, Integer pageSize, Integer sort) {\n        PageHelper.startPage(pageNum, pageSize);\n        PmsProductExample example = new PmsProductExample();\n        PmsProductExample.Criteria criteria = example.createCriteria();\n        criteria.andDeleteStatusEqualTo(0);\n        if (StrUtil.isNotEmpty(keyword)) {\n            criteria.andNameLike(\"%\" + keyword + \"%\");\n        }\n        if (brandId != null) {\n            criteria.andBrandIdEqualTo(brandId);\n        }\n        if (productCategoryId != null) {\n            criteria.andProductCategoryIdEqualTo(productCategoryId);\n        }\n        //1->按新品；2->按销量；3->价格从低到高；4->价格从高到低\n        if (sort == 1) {\n            example.setOrderByClause(\"id desc\");\n        } else if (sort == 2) {\n            example.setOrderByClause(\"sale desc\");\n        } else if (sort == 3) {\n            example.setOrderByClause(\"price asc\");\n        } else if (sort == 4) {\n            example.setOrderByClause(\"price desc\");\n        }\n        return productMapper.selectByExample(example);\n    }\n\n    @Override\n    public List<PmsProductCategoryNode> categoryTreeList() {\n        PmsProductCategoryExample example = new PmsProductCategoryExample();\n        List<PmsProductCategory> allList = productCategoryMapper.selectByExample(example);\n        List<PmsProductCategoryNode> result = allList.stream()\n                .filter(item -> item.getParentId().equals(0L))\n                .map(item -> covert(item, allList)).collect(Collectors.toList());\n        return result;\n    }\n\n    @Override\n    public PmsPortalProductDetail detail(Long id) {\n        PmsPortalProductDetail result = new PmsPortalProductDetail();\n        //获取商品信息\n        PmsProduct product = productMapper.selectByPrimaryKey(id);\n        result.setProduct(product);\n        //获取品牌信息\n        PmsBrand brand = brandMapper.selectByPrimaryKey(product.getBrandId());\n        result.setBrand(brand);\n        //获取商品属性信息\n        PmsProductAttributeExample attributeExample = new PmsProductAttributeExample();\n        attributeExample.createCriteria().andProductAttributeCategoryIdEqualTo(product.getProductAttributeCategoryId());\n        List<PmsProductAttribute> productAttributeList = productAttributeMapper.selectByExample(attributeExample);\n        result.setProductAttributeList(productAttributeList);\n        //获取商品属性值信息\n        if(CollUtil.isNotEmpty(productAttributeList)){\n            List<Long> attributeIds = productAttributeList.stream().map(PmsProductAttribute::getId).collect(Collectors.toList());\n            PmsProductAttributeValueExample attributeValueExample = new PmsProductAttributeValueExample();\n            attributeValueExample.createCriteria().andProductIdEqualTo(product.getId())\n                    .andProductAttributeIdIn(attributeIds);\n            List<PmsProductAttributeValue> productAttributeValueList = productAttributeValueMapper.selectByExample(attributeValueExample);\n            result.setProductAttributeValueList(productAttributeValueList);\n        }\n        //获取商品SKU库存信息\n        PmsSkuStockExample skuExample = new PmsSkuStockExample();\n        skuExample.createCriteria().andProductIdEqualTo(product.getId());\n        List<PmsSkuStock> skuStockList = skuStockMapper.selectByExample(skuExample);\n        result.setSkuStockList(skuStockList);\n        //商品阶梯价格设置\n        if(product.getPromotionType()==3){\n            PmsProductLadderExample ladderExample = new PmsProductLadderExample();\n            ladderExample.createCriteria().andProductIdEqualTo(product.getId());\n            List<PmsProductLadder> productLadderList = productLadderMapper.selectByExample(ladderExample);\n            result.setProductLadderList(productLadderList);\n        }\n        //商品满减价格设置\n        if(product.getPromotionType()==4){\n            PmsProductFullReductionExample fullReductionExample = new PmsProductFullReductionExample();\n            fullReductionExample.createCriteria().andProductIdEqualTo(product.getId());\n            List<PmsProductFullReduction> productFullReductionList = productFullReductionMapper.selectByExample(fullReductionExample);\n            result.setProductFullReductionList(productFullReductionList);\n        }\n        //商品可用优惠券\n        result.setCouponList(portalProductDao.getAvailableCouponList(product.getId(),product.getProductCategoryId()));\n        return result;\n    }\n\n\n    /**\n     * 初始对象转化为节点对象\n     */\n    private PmsProductCategoryNode covert(PmsProductCategory item, List<PmsProductCategory> allList) {\n        PmsProductCategoryNode node = new PmsProductCategoryNode();\n        BeanUtils.copyProperties(item, node);\n        List<PmsProductCategoryNode> children = allList.stream()\n                .filter(subItem -> subItem.getParentId().equals(item.getId()))\n                .map(subItem -> covert(subItem, allList)).collect(Collectors.toList());\n        node.setChildren(children);\n        return node;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/PortalBrandServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport com.github.pagehelper.PageHelper;\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.mapper.PmsBrandMapper;\nimport com.macro.mall.mapper.PmsProductMapper;\nimport com.macro.mall.model.PmsBrand;\nimport com.macro.mall.model.PmsProduct;\nimport com.macro.mall.model.PmsProductExample;\nimport com.macro.mall.portal.dao.HomeDao;\nimport com.macro.mall.portal.service.PortalBrandService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.util.List;\n\n/**\n * 前台品牌管理Service实现类\n * Created by macro on 2020/5/15.\n */\n@Service\npublic class PortalBrandServiceImpl implements PortalBrandService {\n    @Autowired\n    private HomeDao homeDao;\n    @Autowired\n    private PmsBrandMapper brandMapper;\n    @Autowired\n    private PmsProductMapper productMapper;\n\n    @Override\n    public List<PmsBrand> recommendList(Integer pageNum, Integer pageSize) {\n        int offset = (pageNum - 1) * pageSize;\n        return homeDao.getRecommendBrandList(offset, pageSize);\n    }\n\n    @Override\n    public PmsBrand detail(Long brandId) {\n        return brandMapper.selectByPrimaryKey(brandId);\n    }\n\n    @Override\n    public CommonPage<PmsProduct> productList(Long brandId, Integer pageNum, Integer pageSize) {\n        PageHelper.startPage(pageNum,pageSize);\n        PmsProductExample example = new PmsProductExample();\n        example.createCriteria().andDeleteStatusEqualTo(0)\n                .andBrandIdEqualTo(brandId);\n        List<PmsProduct> productList = productMapper.selectByExample(example);\n        return CommonPage.restPage(productList);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberCacheServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport com.macro.mall.common.annotation.CacheException;\nimport com.macro.mall.common.service.RedisService;\nimport com.macro.mall.mapper.UmsMemberMapper;\nimport com.macro.mall.model.UmsMember;\nimport com.macro.mall.portal.service.UmsMemberCacheService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.stereotype.Service;\n\n/**\n * UmsMemberCacheService实现类\n * Created by macro on 2020/3/14.\n */\n@Service\npublic class UmsMemberCacheServiceImpl implements UmsMemberCacheService {\n    @Autowired\n    private RedisService redisService;\n    @Value(\"${redis.database}\")\n    private String REDIS_DATABASE;\n    @Value(\"${redis.expire.common}\")\n    private Long REDIS_EXPIRE;\n    @Value(\"${redis.expire.authCode}\")\n    private Long REDIS_EXPIRE_AUTH_CODE;\n    @Value(\"${redis.key.member}\")\n    private String REDIS_KEY_MEMBER;\n    @Value(\"${redis.key.authCode}\")\n    private String REDIS_KEY_AUTH_CODE;\n\n    @Override\n    public void delMember(Long memberId) {\n        String key = REDIS_DATABASE + \":\" + REDIS_KEY_MEMBER + \":\" + memberId;\n        redisService.del(key);\n    }\n\n    @Override\n    public UmsMember getMember(Long memberId) {\n        String key = REDIS_DATABASE + \":\" + REDIS_KEY_MEMBER + \":\" + memberId;\n        return (UmsMember) redisService.get(key);\n    }\n\n    @Override\n    public void setMember(UmsMember member) {\n        String key = REDIS_DATABASE + \":\" + REDIS_KEY_MEMBER + \":\" + member.getId();\n        redisService.set(key, member, REDIS_EXPIRE);\n    }\n\n    @CacheException\n    @Override\n    public void setAuthCode(String telephone, String authCode) {\n        String key = REDIS_DATABASE + \":\" + REDIS_KEY_AUTH_CODE + \":\" + telephone;\n        redisService.set(key, authCode, REDIS_EXPIRE_AUTH_CODE);\n    }\n\n    @CacheException\n    @Override\n    public String getAuthCode(String telephone) {\n        String key = REDIS_DATABASE + \":\" + REDIS_KEY_AUTH_CODE + \":\" + telephone;\n        return (String) redisService.get(key);\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberCouponServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport cn.hutool.core.collection.CollUtil;\nimport com.macro.mall.common.exception.Asserts;\nimport com.macro.mall.mapper.*;\nimport com.macro.mall.model.*;\nimport com.macro.mall.portal.dao.SmsCouponHistoryDao;\nimport com.macro.mall.portal.domain.CartPromotionItem;\nimport com.macro.mall.portal.domain.SmsCouponHistoryDetail;\nimport com.macro.mall.portal.service.UmsMemberCouponService;\nimport com.macro.mall.portal.service.UmsMemberService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\n\nimport java.math.BigDecimal;\nimport java.util.ArrayList;\nimport java.util.Date;\nimport java.util.List;\nimport java.util.Random;\nimport java.util.stream.Collectors;\n\n/**\n * 会员优惠券管理Service实现类\n * Created by macro on 2018/8/29.\n */\n@Service\npublic class UmsMemberCouponServiceImpl implements UmsMemberCouponService {\n    @Autowired\n    private UmsMemberService memberService;\n    @Autowired\n    private SmsCouponMapper couponMapper;\n    @Autowired\n    private SmsCouponHistoryMapper couponHistoryMapper;\n    @Autowired\n    private SmsCouponHistoryDao couponHistoryDao;\n    @Autowired\n    private SmsCouponProductRelationMapper couponProductRelationMapper;\n    @Autowired\n    private SmsCouponProductCategoryRelationMapper couponProductCategoryRelationMapper;\n    @Autowired\n    private PmsProductMapper productMapper;\n    @Override\n    public void add(Long couponId) {\n        UmsMember currentMember = memberService.getCurrentMember();\n        //获取优惠券信息，判断数量\n        SmsCoupon coupon = couponMapper.selectByPrimaryKey(couponId);\n        if(coupon==null){\n            Asserts.fail(\"优惠券不存在\");\n        }\n        if(coupon.getCount()<=0){\n            Asserts.fail(\"优惠券已经领完了\");\n        }\n        Date now = new Date();\n        if(now.before(coupon.getEnableTime())){\n            Asserts.fail(\"优惠券还没到领取时间\");\n        }\n        //判断用户领取的优惠券数量是否超过限制\n        SmsCouponHistoryExample couponHistoryExample = new SmsCouponHistoryExample();\n        couponHistoryExample.createCriteria().andCouponIdEqualTo(couponId).andMemberIdEqualTo(currentMember.getId());\n        long count = couponHistoryMapper.countByExample(couponHistoryExample);\n        if(count>=coupon.getPerLimit()){\n            Asserts.fail(\"您已经领取过该优惠券\");\n        }\n        //生成领取优惠券历史\n        SmsCouponHistory couponHistory = new SmsCouponHistory();\n        couponHistory.setCouponId(couponId);\n        couponHistory.setCouponCode(generateCouponCode(currentMember.getId()));\n        couponHistory.setCreateTime(now);\n        couponHistory.setMemberId(currentMember.getId());\n        couponHistory.setMemberNickname(currentMember.getNickname());\n        //主动领取\n        couponHistory.setGetType(1);\n        //未使用\n        couponHistory.setUseStatus(0);\n        couponHistoryMapper.insert(couponHistory);\n        //修改优惠券表的数量、领取数量\n        coupon.setCount(coupon.getCount()-1);\n        coupon.setReceiveCount(coupon.getReceiveCount()==null?1:coupon.getReceiveCount()+1);\n        couponMapper.updateByPrimaryKey(coupon);\n    }\n\n    /**\n     * 16位优惠码生成：时间戳后8位+4位随机数+用户id后4位\n     */\n    private String generateCouponCode(Long memberId) {\n        StringBuilder sb = new StringBuilder();\n        Long currentTimeMillis = System.currentTimeMillis();\n        String timeMillisStr = currentTimeMillis.toString();\n        sb.append(timeMillisStr.substring(timeMillisStr.length() - 8));\n        for (int i = 0; i < 4; i++) {\n            sb.append(new Random().nextInt(10));\n        }\n        String memberIdStr = memberId.toString();\n        if (memberIdStr.length() <= 4) {\n            sb.append(String.format(\"%04d\", memberId));\n        } else {\n            sb.append(memberIdStr.substring(memberIdStr.length()-4));\n        }\n        return sb.toString();\n    }\n\n    @Override\n    public List<SmsCouponHistory> listHistory(Integer useStatus) {\n        UmsMember currentMember = memberService.getCurrentMember();\n        SmsCouponHistoryExample couponHistoryExample=new SmsCouponHistoryExample();\n        SmsCouponHistoryExample.Criteria criteria = couponHistoryExample.createCriteria();\n        criteria.andMemberIdEqualTo(currentMember.getId());\n        if(useStatus!=null){\n            criteria.andUseStatusEqualTo(useStatus);\n        }\n        return couponHistoryMapper.selectByExample(couponHistoryExample);\n    }\n\n    @Override\n    public List<SmsCouponHistoryDetail> listCart(List<CartPromotionItem> cartItemList, Integer type) {\n        UmsMember currentMember = memberService.getCurrentMember();\n        Date now = new Date();\n        //获取该用户所有优惠券\n        List<SmsCouponHistoryDetail> allList = couponHistoryDao.getDetailList(currentMember.getId());\n        //根据优惠券使用类型来判断优惠券是否可用\n        List<SmsCouponHistoryDetail> enableList = new ArrayList<>();\n        List<SmsCouponHistoryDetail> disableList = new ArrayList<>();\n        for (SmsCouponHistoryDetail couponHistoryDetail : allList) {\n            Integer useType = couponHistoryDetail.getCoupon().getUseType();\n            BigDecimal minPoint = couponHistoryDetail.getCoupon().getMinPoint();\n            Date endTime = couponHistoryDetail.getCoupon().getEndTime();\n            if(useType.equals(0)){\n                //0->全场通用\n                //判断是否满足优惠起点\n                //计算购物车商品的总价\n                BigDecimal totalAmount = calcTotalAmount(cartItemList);\n                if(now.before(endTime)&&totalAmount.subtract(minPoint).intValue()>=0){\n                    enableList.add(couponHistoryDetail);\n                }else{\n                    disableList.add(couponHistoryDetail);\n                }\n            }else if(useType.equals(1)){\n                //1->指定分类\n                //计算指定分类商品的总价\n                List<Long> productCategoryIds = new ArrayList<>();\n                for (SmsCouponProductCategoryRelation categoryRelation : couponHistoryDetail.getCategoryRelationList()) {\n                    productCategoryIds.add(categoryRelation.getProductCategoryId());\n                }\n                BigDecimal totalAmount = calcTotalAmountByproductCategoryId(cartItemList,productCategoryIds);\n                if(now.before(endTime)&&totalAmount.intValue()>0&&totalAmount.subtract(minPoint).intValue()>=0){\n                    enableList.add(couponHistoryDetail);\n                }else{\n                    disableList.add(couponHistoryDetail);\n                }\n            }else if(useType.equals(2)){\n                //2->指定商品\n                //计算指定商品的总价\n                List<Long> productIds = new ArrayList<>();\n                for (SmsCouponProductRelation productRelation : couponHistoryDetail.getProductRelationList()) {\n                    productIds.add(productRelation.getProductId());\n                }\n                BigDecimal totalAmount = calcTotalAmountByProductId(cartItemList,productIds);\n                if(now.before(endTime)&&totalAmount.intValue()>0&&totalAmount.subtract(minPoint).intValue()>=0){\n                    enableList.add(couponHistoryDetail);\n                }else{\n                    disableList.add(couponHistoryDetail);\n                }\n            }\n        }\n        if(type.equals(1)){\n            return enableList;\n        }else{\n            return disableList;\n        }\n    }\n\n    @Override\n    public List<SmsCoupon> listByProduct(Long productId) {\n        List<Long> allCouponIds = new ArrayList<>();\n        //获取指定商品优惠券\n        SmsCouponProductRelationExample cprExample = new SmsCouponProductRelationExample();\n        cprExample.createCriteria().andProductIdEqualTo(productId);\n        List<SmsCouponProductRelation> cprList = couponProductRelationMapper.selectByExample(cprExample);\n        if(CollUtil.isNotEmpty(cprList)){\n            List<Long> couponIds = cprList.stream().map(SmsCouponProductRelation::getCouponId).collect(Collectors.toList());\n            allCouponIds.addAll(couponIds);\n        }\n        //获取指定分类优惠券\n        PmsProduct product = productMapper.selectByPrimaryKey(productId);\n        SmsCouponProductCategoryRelationExample cpcrExample = new SmsCouponProductCategoryRelationExample();\n        cpcrExample.createCriteria().andProductCategoryIdEqualTo(product.getProductCategoryId());\n        List<SmsCouponProductCategoryRelation> cpcrList = couponProductCategoryRelationMapper.selectByExample(cpcrExample);\n        if(CollUtil.isNotEmpty(cpcrList)){\n            List<Long> couponIds = cpcrList.stream().map(SmsCouponProductCategoryRelation::getCouponId).collect(Collectors.toList());\n            allCouponIds.addAll(couponIds);\n        }\n        if(CollUtil.isEmpty(allCouponIds)){\n            return new ArrayList<>();\n        }\n        //所有优惠券\n        SmsCouponExample couponExample = new SmsCouponExample();\n        couponExample.createCriteria().andEndTimeGreaterThan(new Date())\n                .andStartTimeLessThan(new Date())\n                .andUseTypeEqualTo(0);\n        couponExample.or(couponExample.createCriteria()\n                .andEndTimeGreaterThan(new Date())\n                .andStartTimeLessThan(new Date())\n                .andUseTypeNotEqualTo(0)\n                .andIdIn(allCouponIds));\n        return couponMapper.selectByExample(couponExample);\n    }\n\n    @Override\n    public List<SmsCoupon> list(Integer useStatus) {\n        UmsMember member = memberService.getCurrentMember();\n        return couponHistoryDao.getCouponList(member.getId(),useStatus);\n    }\n\n    private BigDecimal calcTotalAmount(List<CartPromotionItem> cartItemList) {\n        BigDecimal total = new BigDecimal(\"0\");\n        for (CartPromotionItem item : cartItemList) {\n            BigDecimal realPrice = item.getPrice().subtract(item.getReduceAmount());\n            total=total.add(realPrice.multiply(new BigDecimal(item.getQuantity())));\n        }\n        return total;\n    }\n\n    private BigDecimal calcTotalAmountByproductCategoryId(List<CartPromotionItem> cartItemList,List<Long> productCategoryIds) {\n        BigDecimal total = new BigDecimal(\"0\");\n        for (CartPromotionItem item : cartItemList) {\n            if(productCategoryIds.contains(item.getProductCategoryId())){\n                BigDecimal realPrice = item.getPrice().subtract(item.getReduceAmount());\n                total=total.add(realPrice.multiply(new BigDecimal(item.getQuantity())));\n            }\n        }\n        return total;\n    }\n\n    private BigDecimal calcTotalAmountByProductId(List<CartPromotionItem> cartItemList,List<Long> productIds) {\n        BigDecimal total = new BigDecimal(\"0\");\n        for (CartPromotionItem item : cartItemList) {\n            if(productIds.contains(item.getProductId())){\n                BigDecimal realPrice = item.getPrice().subtract(item.getReduceAmount());\n                total=total.add(realPrice.multiply(new BigDecimal(item.getQuantity())));\n            }\n        }\n        return total;\n    }\n\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberReceiveAddressServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport com.macro.mall.mapper.UmsMemberReceiveAddressMapper;\nimport com.macro.mall.model.UmsMember;\nimport com.macro.mall.model.UmsMemberReceiveAddress;\nimport com.macro.mall.model.UmsMemberReceiveAddressExample;\nimport com.macro.mall.portal.service.UmsMemberReceiveAddressService;\nimport com.macro.mall.portal.service.UmsMemberService;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.CollectionUtils;\n\nimport java.util.List;\n\n/**\n * 用户地址管理Service实现类\n * Created by macro on 2018/8/28.\n */\n@Service\npublic class UmsMemberReceiveAddressServiceImpl implements UmsMemberReceiveAddressService {\n    @Autowired\n    private UmsMemberService memberService;\n    @Autowired\n    private UmsMemberReceiveAddressMapper addressMapper;\n    @Override\n    public int add(UmsMemberReceiveAddress address) {\n        UmsMember currentMember = memberService.getCurrentMember();\n        address.setMemberId(currentMember.getId());\n        return addressMapper.insert(address);\n    }\n\n    @Override\n    public int delete(Long id) {\n        UmsMember currentMember = memberService.getCurrentMember();\n        UmsMemberReceiveAddressExample example = new UmsMemberReceiveAddressExample();\n        example.createCriteria().andMemberIdEqualTo(currentMember.getId()).andIdEqualTo(id);\n        return addressMapper.deleteByExample(example);\n    }\n\n    @Override\n    public int update(Long id, UmsMemberReceiveAddress address) {\n        address.setId(null);\n        UmsMember currentMember = memberService.getCurrentMember();\n        UmsMemberReceiveAddressExample example = new UmsMemberReceiveAddressExample();\n        example.createCriteria().andMemberIdEqualTo(currentMember.getId()).andIdEqualTo(id);\n        if(address.getDefaultStatus()==1){\n            //先将原来的默认地址去除\n            UmsMemberReceiveAddress record= new UmsMemberReceiveAddress();\n            record.setDefaultStatus(0);\n            UmsMemberReceiveAddressExample updateExample = new UmsMemberReceiveAddressExample();\n            updateExample.createCriteria()\n                    .andMemberIdEqualTo(currentMember.getId())\n                    .andDefaultStatusEqualTo(1);\n            addressMapper.updateByExampleSelective(record,updateExample);\n        }\n        return addressMapper.updateByExampleSelective(address,example);\n    }\n\n    @Override\n    public List<UmsMemberReceiveAddress> list() {\n        UmsMember currentMember = memberService.getCurrentMember();\n        UmsMemberReceiveAddressExample example = new UmsMemberReceiveAddressExample();\n        example.createCriteria().andMemberIdEqualTo(currentMember.getId());\n        return addressMapper.selectByExample(example);\n    }\n\n    @Override\n    public UmsMemberReceiveAddress getItem(Long id) {\n        UmsMember currentMember = memberService.getCurrentMember();\n        UmsMemberReceiveAddressExample example = new UmsMemberReceiveAddressExample();\n        example.createCriteria().andMemberIdEqualTo(currentMember.getId()).andIdEqualTo(id);\n        List<UmsMemberReceiveAddress> addressList = addressMapper.selectByExample(example);\n        if(!CollectionUtils.isEmpty(addressList)){\n            return addressList.get(0);\n        }\n        return null;\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberServiceImpl.java",
    "content": "package com.macro.mall.portal.service.impl;\n\nimport cn.dev33.satoken.stp.SaTokenInfo;\nimport cn.hutool.core.util.StrUtil;\nimport cn.hutool.crypto.digest.BCrypt;\nimport com.macro.mall.common.constant.AuthConstant;\nimport com.macro.mall.common.dto.UserDto;\nimport com.macro.mall.common.exception.Asserts;\nimport com.macro.mall.mapper.UmsMemberLevelMapper;\nimport com.macro.mall.mapper.UmsMemberMapper;\nimport com.macro.mall.model.UmsMember;\nimport com.macro.mall.model.UmsMemberExample;\nimport com.macro.mall.model.UmsMemberLevel;\nimport com.macro.mall.model.UmsMemberLevelExample;\nimport com.macro.mall.portal.service.UmsMemberCacheService;\nimport com.macro.mall.portal.service.UmsMemberService;\nimport com.macro.mall.portal.util.StpMemberUtil;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.beans.factory.annotation.Value;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.CollectionUtils;\nimport org.springframework.util.StringUtils;\n\nimport java.util.Date;\nimport java.util.List;\nimport java.util.Random;\n\n/**\n * 会员管理Service实现类\n * Created by macro on 2018/8/3.\n */\n@Service\npublic class UmsMemberServiceImpl implements UmsMemberService {\n    private static final Logger LOGGER = LoggerFactory.getLogger(UmsMemberServiceImpl.class);\n    @Autowired\n    private UmsMemberMapper memberMapper;\n    @Autowired\n    private UmsMemberLevelMapper memberLevelMapper;\n    @Autowired\n    private UmsMemberCacheService memberCacheService;\n    @Value(\"${redis.key.authCode}\")\n    private String REDIS_KEY_PREFIX_AUTH_CODE;\n    @Value(\"${redis.expire.authCode}\")\n    private Long AUTH_CODE_EXPIRE_SECONDS;\n\n    @Override\n    public UmsMember getByUsername(String username) {\n        UmsMemberExample example = new UmsMemberExample();\n        example.createCriteria().andUsernameEqualTo(username);\n        List<UmsMember> memberList = memberMapper.selectByExample(example);\n        if (!CollectionUtils.isEmpty(memberList)) {\n            return memberList.get(0);\n        }\n        return null;\n    }\n\n    @Override\n    public UmsMember getById(Long id) {\n        return memberMapper.selectByPrimaryKey(id);\n    }\n\n    @Override\n    public void register(String username, String password, String telephone, String authCode) {\n        //验证验证码\n        if(!verifyAuthCode(authCode,telephone)){\n            Asserts.fail(\"验证码错误\");\n        }\n        //查询是否已有该用户\n        UmsMemberExample example = new UmsMemberExample();\n        example.createCriteria().andUsernameEqualTo(username);\n        example.or(example.createCriteria().andPhoneEqualTo(telephone));\n        List<UmsMember> umsMembers = memberMapper.selectByExample(example);\n        if (!CollectionUtils.isEmpty(umsMembers)) {\n            Asserts.fail(\"该用户已经存在\");\n        }\n        //没有该用户进行添加操作\n        UmsMember umsMember = new UmsMember();\n        umsMember.setUsername(username);\n        umsMember.setPhone(telephone);\n        umsMember.setPassword(BCrypt.hashpw(password));\n        umsMember.setCreateTime(new Date());\n        umsMember.setStatus(1);\n        //获取默认会员等级并设置\n        UmsMemberLevelExample levelExample = new UmsMemberLevelExample();\n        levelExample.createCriteria().andDefaultStatusEqualTo(1);\n        List<UmsMemberLevel> memberLevelList = memberLevelMapper.selectByExample(levelExample);\n        if (!CollectionUtils.isEmpty(memberLevelList)) {\n            umsMember.setMemberLevelId(memberLevelList.get(0).getId());\n        }\n        memberMapper.insert(umsMember);\n        umsMember.setPassword(null);\n    }\n\n    @Override\n    public String generateAuthCode(String telephone) {\n        StringBuilder sb = new StringBuilder();\n        Random random = new Random();\n        for(int i=0;i<6;i++){\n            sb.append(random.nextInt(10));\n        }\n        memberCacheService.setAuthCode(telephone,sb.toString());\n        return sb.toString();\n    }\n\n    @Override\n    public void updatePassword(String telephone, String password, String authCode) {\n        UmsMemberExample example = new UmsMemberExample();\n        example.createCriteria().andPhoneEqualTo(telephone);\n        List<UmsMember> memberList = memberMapper.selectByExample(example);\n        if(CollectionUtils.isEmpty(memberList)){\n            Asserts.fail(\"该账号不存在\");\n        }\n        //验证验证码\n        if(!verifyAuthCode(authCode,telephone)){\n            Asserts.fail(\"验证码错误\");\n        }\n        UmsMember umsMember = memberList.get(0);\n        umsMember.setPassword(BCrypt.hashpw(password));\n        memberMapper.updateByPrimaryKeySelective(umsMember);\n        memberCacheService.delMember(umsMember.getId());\n    }\n\n    @Override\n    public UmsMember getCurrentMember() {\n        UserDto userDto = (UserDto) StpMemberUtil.getSession().get(AuthConstant.STP_MEMBER_INFO);\n        UmsMember member = memberCacheService.getMember(userDto.getId());\n        if(member!=null){\n            return member;\n        }else{\n            member = getById(userDto.getId());\n            memberCacheService.setMember(member);\n            return member;\n        }\n    }\n\n    @Override\n    public void updateIntegration(Long id, Integer integration) {\n        UmsMember record=new UmsMember();\n        record.setId(id);\n        record.setIntegration(integration);\n        memberMapper.updateByPrimaryKeySelective(record);\n        memberCacheService.delMember(id);\n    }\n\n    @Override\n    public SaTokenInfo login(String username, String password) {\n        if(StrUtil.isEmpty(username)||StrUtil.isEmpty(password)){\n            Asserts.fail(\"用户名或密码不能为空！\");\n        }\n        UmsMember member = getByUsername(username);\n        if(member==null){\n            Asserts.fail(\"找不到该用户！\");\n        }\n        if (!BCrypt.checkpw(password, member.getPassword())) {\n            Asserts.fail(\"密码不正确！\");\n        }\n        if(member.getStatus()!=1){\n            Asserts.fail(\"该账号已被禁用！\");\n        }\n        // 登录校验成功后，一行代码实现登录\n        StpMemberUtil.login(member.getId());\n        UserDto userDto = new UserDto();\n        userDto.setId(member.getId());\n        userDto.setUsername(member.getUsername());\n        userDto.setClientId(AuthConstant.PORTAL_CLIENT_ID);\n        // 将用户信息存储到Session中\n        StpMemberUtil.getSession().set(AuthConstant.STP_MEMBER_INFO,userDto);\n        // 获取当前登录用户Token信息\n        return StpMemberUtil.getTokenInfo();\n    }\n\n    @Override\n    public void logout() {\n        //先清空缓存\n        UserDto userDto = (UserDto) StpMemberUtil.getSession().get(AuthConstant.STP_MEMBER_INFO);\n        memberCacheService.delMember(userDto.getId());\n        //再调用sa-token的登出方法\n        StpMemberUtil.logout();\n    }\n\n    //对输入的验证码进行校验\n    private boolean verifyAuthCode(String authCode, String telephone){\n        if(StringUtils.isEmpty(authCode)){\n            return false;\n        }\n        String realAuthCode = memberCacheService.getAuthCode(telephone);\n        return authCode.equals(realAuthCode);\n    }\n\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/util/DateUtil.java",
    "content": "package com.macro.mall.portal.util;\n\nimport java.util.Calendar;\nimport java.util.Date;\n\n/**\n * 日期工具类\n * Created by macro on 2019/1/29.\n */\npublic class DateUtil {\n\n    /**\n     * 从Date类型的时间中提取日期部分\n     */\n    public static Date getDate(Date date) {\n        Calendar calendar = Calendar.getInstance();\n        calendar.setTime(date);\n        calendar.set(Calendar.HOUR_OF_DAY, 0);\n        calendar.set(Calendar.MINUTE, 0);\n        calendar.set(Calendar.SECOND, 0);\n        return calendar.getTime();\n    }\n\n    /**\n     * 从Date类型的时间中提取时间部分\n     */\n    public static Date getTime(Date date) {\n        Calendar calendar = Calendar.getInstance();\n        calendar.setTime(date);\n        calendar.set(Calendar.YEAR, 1970);\n        calendar.set(Calendar.MONTH, 0);\n        calendar.set(Calendar.DAY_OF_MONTH, 1);\n        return calendar.getTime();\n    }\n}\n"
  },
  {
    "path": "mall-portal/src/main/java/com/macro/mall/portal/util/StpMemberUtil.java",
    "content": "/*\n * Copyright 2020-2099 sa-token.cc\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\npackage com.macro.mall.portal.util;\n\nimport cn.dev33.satoken.SaManager;\nimport cn.dev33.satoken.fun.SaFunction;\nimport cn.dev33.satoken.jwt.StpLogicJwtForSimple;\nimport cn.dev33.satoken.listener.SaTokenEventCenter;\nimport cn.dev33.satoken.session.SaSession;\nimport cn.dev33.satoken.session.TokenSign;\nimport cn.dev33.satoken.stp.SaLoginModel;\nimport cn.dev33.satoken.stp.SaTokenInfo;\nimport cn.dev33.satoken.stp.StpLogic;\n\nimport java.util.List;\n\n/**\n * @auther macrozheng\n * @description 前台商城用户登录认证工具类\n * 拷贝于默认的StpUtil，仅改动了TYPE和stpLogic对象\n * @date 2024/1/26\n * @github https://github.com/macrozheng\n */\npublic class StpMemberUtil {\n\n\tprivate StpMemberUtil() {}\n\t\n\t/**\n\t * 多账号体系下的类型标识\n\t */\n\tpublic static final String TYPE = \"memberLogin\";\n\t\n\t/**\n\t * 底层使用的 StpLogic 对象\n\t */\n\tpublic static StpLogic stpLogic = new StpLogicJwtForSimple(TYPE);\n\n\t/**\n\t * 获取当前 StpLogic 的账号类型\n\t *\n\t * @return /\n\t */\n\tpublic static String getLoginType(){\n\t\treturn stpLogic.getLoginType();\n\t}\n\n\t/**\n\t * 安全的重置 StpLogic 对象\n\t *\n\t * <br> 1、更改此账户的 StpLogic 对象 \n\t * <br> 2、put 到全局 StpLogic 集合中 \n\t * <br> 3、发送日志 \n\t * \n\t * @param newStpLogic / \n\t */\n\tpublic static void setStpLogic(StpLogic newStpLogic) {\n\t\t// 1、重置此账户的 StpLogic 对象\n\t\tstpLogic = newStpLogic;\n\t\t\n\t\t// 2、添加到全局 StpLogic 集合中\n\t\t//    以便可以通过 SaManager.getStpLogic(type) 的方式来全局获取到这个 StpLogic\n\t\tSaManager.putStpLogic(newStpLogic);\n\t\t\n\t\t// 3、$$ 发布事件：更新了 stpLogic 对象\n\t\tSaTokenEventCenter.doSetStpLogic(stpLogic);\n\t}\n\n\t/**\n\t * 获取 StpLogic 对象\n\t *\n\t * @return / \n\t */\n\tpublic static StpLogic getStpLogic() {\n\t\treturn stpLogic;\n\t}\n\t\n\t\n\t// ------------------- 获取 token 相关 -------------------\n\n\t/**\n\t * 返回 token 名称，此名称在以下地方体现：Cookie 保存 token 时的名称、提交 token 时参数的名称、存储 token 时的 key 前缀\n\t *\n\t * @return /\n\t */\n\tpublic static String getTokenName() {\n \t\treturn stpLogic.getTokenName();\n \t}\n\n\t/**\n\t * 在当前会话写入指定 token 值\n\t *\n\t * @param tokenValue token 值\n\t */\n\tpublic static void setTokenValue(String tokenValue){\n\t\tstpLogic.setTokenValue(tokenValue);\n\t}\n\n\t/**\n\t * 在当前会话写入指定 token 值\n\t *\n\t * @param tokenValue token 值\n\t * @param cookieTimeout Cookie存活时间(秒)\n\t */\n\tpublic static void setTokenValue(String tokenValue, int cookieTimeout){\n\t\tstpLogic.setTokenValue(tokenValue, cookieTimeout);\n\t}\n\n\t/**\n\t * 在当前会话写入指定 token 值\n\t *\n\t * @param tokenValue token 值\n\t * @param loginModel 登录参数\n\t */\n\tpublic static void setTokenValue(String tokenValue, SaLoginModel loginModel){\n\t\tstpLogic.setTokenValue(tokenValue, loginModel);\n\t}\n\n\t/**\n\t * 获取当前请求的 token 值\n\t *\n\t * @return 当前tokenValue\n\t */\n\tpublic static String getTokenValue() {\n\t\treturn stpLogic.getTokenValue();\n\t}\n\n\t/**\n\t * 获取当前请求的 token 值 （不裁剪前缀）\n\t *\n\t * @return / \n\t */\n\tpublic static String getTokenValueNotCut(){\n\t\treturn stpLogic.getTokenValueNotCut();\n\t}\n\n\t/**\n\t * 获取当前会话的 token 参数信息\n\t *\n\t * @return token 参数信息\n\t */\n\tpublic static SaTokenInfo getTokenInfo() {\n\t\treturn stpLogic.getTokenInfo();\n\t}\n\n\t\n\t// ------------------- 登录相关操作 -------------------\n\n\t// --- 登录 \n\n\t/**\n\t * 会话登录\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t */\n\tpublic static void login(Object id) {\n\t\tstpLogic.login(id);\n\t}\n\n\t/**\n\t * 会话登录，并指定登录设备类型\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t * @param device 设备类型\n\t */\n\tpublic static void login(Object id, String device) {\n\t\tstpLogic.login(id, device);\n\t}\n\n\t/**\n\t * 会话登录，并指定是否 [记住我]\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t * @param isLastingCookie 是否为持久Cookie，值为 true 时记住我，值为 false 时关闭浏览器需要重新登录\n\t */\n\tpublic static void login(Object id, boolean isLastingCookie) {\n\t\tstpLogic.login(id, isLastingCookie);\n\t}\n\n\t/**\n\t * 会话登录，并指定此次登录 token 的有效期, 单位:秒\n\t *\n\t * @param id      账号id，建议的类型：（long | int | String）\n\t * @param timeout 此次登录 token 的有效期, 单位:秒\n\t */\n\tpublic static void login(Object id, long timeout) {\n\t\tstpLogic.login(id, timeout);\n\t}\n\n\t/**\n\t * 会话登录，并指定所有登录参数 Model\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t * @param loginModel 此次登录的参数Model\n\t */\n\tpublic static void login(Object id, SaLoginModel loginModel) {\n\t\tstpLogic.login(id, loginModel);\n\t}\n\n\t/**\n\t * 创建指定账号 id 的登录会话数据\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t * @return 返回会话令牌\n\t */\n\tpublic static String createLoginSession(Object id) {\n\t\treturn stpLogic.createLoginSession(id);\n\t}\n\n\t/**\n\t * 创建指定账号 id 的登录会话数据\n\t *\n\t * @param id 账号id，建议的类型：（long | int | String）\n\t * @param loginModel 此次登录的参数Model \n\t * @return 返回会话令牌\n\t */\n\tpublic static String createLoginSession(Object id, SaLoginModel loginModel) {\n\t\treturn stpLogic.createLoginSession(id, loginModel);\n\t}\n\t\n\t// --- 注销 \n\n\t/**\n\t * 在当前客户端会话注销\n\t */\n\tpublic static void logout() {\n\t\tstpLogic.logout();\n\t}\n\n\t/**\n\t * 会话注销，根据账号id \n\t *\n\t * @param loginId 账号id\n\t */\n\tpublic static void logout(Object loginId) {\n\t\tstpLogic.logout(loginId);\n\t}\n\n\t/**\n\t * 会话注销，根据账号id 和 设备类型\n\t *\n\t * @param loginId 账号id \n\t * @param device 设备类型 (填 null 代表注销该账号的所有设备类型)\n\t */\n\tpublic static void logout(Object loginId, String device) {\n\t\tstpLogic.logout(loginId, device);\n\t}\n\n\t/**\n\t * 会话注销，根据指定 Token \n\t *\n\t * @param tokenValue 指定 token\n\t */\n\tpublic static void logoutByTokenValue(String tokenValue) {\n\t\tstpLogic.logoutByTokenValue(tokenValue);\n\t}\n\n\t/**\n\t * 踢人下线，根据账号id \n\t * <p> 当对方再次访问系统时，会抛出 NotLoginException 异常，场景值=-5 </p>\n\t *\n\t * @param loginId 账号id \n\t */\n\tpublic static void kickout(Object loginId) {\n\t\tstpLogic.kickout(loginId);\n\t}\n\n\t/**\n\t * 踢人下线，根据账号id 和 设备类型\n\t * <p> 当对方再次访问系统时，会抛出 NotLoginException 异常，场景值=-5 </p>\n\t *\n\t * @param loginId 账号id\n\t * @param device 设备类型 (填 null 代表踢出该账号的所有设备类型)\n\t */\n\tpublic static void kickout(Object loginId, String device) {\n\t\tstpLogic.kickout(loginId, device);\n\t}\n\n\t/**\n\t * 踢人下线，根据指定 token\n\t * <p> 当对方再次访问系统时，会抛出 NotLoginException 异常，场景值=-5 </p>\n\t *\n\t * @param tokenValue 指定 token\n\t */\n\tpublic static void kickoutByTokenValue(String tokenValue) {\n\t\tstpLogic.kickoutByTokenValue(tokenValue);\n\t}\n\n\t/**\n\t * 顶人下线，根据账号id 和 设备类型\n\t * <p> 当对方再次访问系统时，会抛出 NotLoginException 异常，场景值=-4 </p>\n\t *\n\t * @param loginId 账号id\n\t * @param device 设备类型 （填 null 代表顶替该账号的所有设备类型）\n\t */\n\tpublic static void replaced(Object loginId, String device) {\n\t\tstpLogic.replaced(loginId, device);\n\t}\n\n\t// 会话查询\n\n\t/**\n\t * 判断当前会话是否已经登录\n\t *\n\t * @return 已登录返回 true，未登录返回 false\n\t */\n\tpublic static boolean isLogin() {\n\t\treturn stpLogic.isLogin();\n\t}\n\n\t/**\n\t * 判断指定账号是否已经登录\n\t *\n\t * @return 已登录返回 true，未登录返回 false\n\t */\n\tpublic static boolean isLogin(Object loginId) {\n\t\treturn stpLogic.isLogin(loginId);\n\t}\n\n\t/**\n\t * 检验当前会话是否已经登录，如未登录，则抛出异常\n\t */\n \tpublic static void checkLogin() {\n \t\tstpLogic.checkLogin();\n \t}\n\n\t/**\n\t * 获取当前会话账号id，如果未登录，则抛出异常\n\t *\n\t * @return 账号id\n\t */\n\tpublic static Object getLoginId() {\n\t\treturn stpLogic.getLoginId();\n\t}\n\n\t/**\n\t * 获取当前会话账号id, 如果未登录，则返回默认值\n\t *\n\t * @param <T> 返回类型 \n\t * @param defaultValue 默认值\n\t * @return 登录id\n\t */\n\tpublic static <T> T getLoginId(T defaultValue) {\n\t\treturn stpLogic.getLoginId(defaultValue);\n\t}\n\n\t/**\n\t * 获取当前会话账号id, 如果未登录，则返回null\n\t *\n\t * @return 账号id\n\t */\n\tpublic static Object getLoginIdDefaultNull() {\n\t\treturn stpLogic.getLoginIdDefaultNull();\n \t}\n\n\t/**\n\t * 获取当前会话账号id, 并转换为 String 类型\n\t *\n\t * @return 账号id\n\t */\n\tpublic static String getLoginIdAsString() {\n\t\treturn stpLogic.getLoginIdAsString();\n\t}\n\n\t/**\n\t * 获取当前会话账号id, 并转换为 int 类型\n\t *\n\t * @return 账号id\n\t */\n\tpublic static int getLoginIdAsInt() {\n\t\treturn stpLogic.getLoginIdAsInt();\n\t}\n\n\t/**\n\t * 获取当前会话账号id, 并转换为 long 类型\n\t *\n\t * @return 账号id\n\t */\n\tpublic static long getLoginIdAsLong() {\n\t\treturn stpLogic.getLoginIdAsLong();\n\t}\n\n\t/**\n\t * 获取指定 token 对应的账号id，如果未登录，则返回 null\n\t *\n\t * @param tokenValue token\n\t * @return 账号id\n\t */\n \tpublic static Object getLoginIdByToken(String tokenValue) {\n \t\treturn stpLogic.getLoginIdByToken(tokenValue);\n \t}\n\n\t/**\n\t * 获取当前 Token 的扩展信息（此函数只在jwt模式下生效）\n\t *\n\t * @param key 键值 \n\t * @return 对应的扩展数据\n\t */\n\tpublic static Object getExtra(String key) {\n\t\treturn stpLogic.getExtra(key);\n\t}\n\n\t/**\n\t * 获取指定 Token 的扩展信息（此函数只在jwt模式下生效）\n\t *\n\t * @param tokenValue 指定的 Token 值\n\t * @param key 键值\n\t * @return 对应的扩展数据\n\t */\n\tpublic static Object getExtra(String tokenValue, String key) {\n\t\treturn stpLogic.getExtra(tokenValue, key);\n\t}\n \t\n \t\n\t// ------------------- Account-Session 相关 -------------------\n\n\t/**\n\t * 获取指定账号 id 的 Account-Session, 如果该 SaSession 尚未创建，isCreate=是否新建并返回\n\t *\n\t * @param loginId 账号id\n\t * @param isCreate 是否新建\n\t * @return SaSession 对象\n\t */\n\tpublic static SaSession getSessionByLoginId(Object loginId, boolean isCreate) {\n\t\treturn stpLogic.getSessionByLoginId(loginId, isCreate);\n\t}\n\n\t/**\n\t * 获取指定 key 的 SaSession, 如果该 SaSession 尚未创建，则返回 null\n\t *\n\t * @param sessionId SessionId\n\t * @return Session对象\n\t */\n\tpublic static SaSession getSessionBySessionId(String sessionId) {\n\t\treturn stpLogic.getSessionBySessionId(sessionId);\n\t}\n\n\t/**\n\t * 获取指定账号 id 的 Account-Session，如果该 SaSession 尚未创建，则新建并返回\n\t *\n\t * @param loginId 账号id\n\t * @return SaSession 对象\n\t */\n\tpublic static SaSession getSessionByLoginId(Object loginId) {\n\t\treturn stpLogic.getSessionByLoginId(loginId);\n\t}\n\n\t/**\n\t * 获取当前已登录账号的 Account-Session, 如果该 SaSession 尚未创建，isCreate=是否新建并返回\n\t *\n\t * @param isCreate 是否新建 \n\t * @return Session对象\n\t */\n\tpublic static SaSession getSession(boolean isCreate) {\n\t\treturn stpLogic.getSession(isCreate);\n\t}\n\n\t/**\n\t * 获取当前已登录账号的 Account-Session，如果该 SaSession 尚未创建，则新建并返回\n\t *\n\t * @return Session对象\n\t */\n\tpublic static SaSession getSession() {\n\t\treturn stpLogic.getSession();\n\t}\n\n\t\n\t// ------------------- Token-Session 相关 -------------------  \n\n\t/**\n\t * 获取指定 token 的 Token-Session，如果该 SaSession 尚未创建，则新建并返回\n\t *\n\t * @param tokenValue Token值\n\t * @return Session对象\n\t */\n\tpublic static SaSession getTokenSessionByToken(String tokenValue) {\n\t\treturn stpLogic.getTokenSessionByToken(tokenValue);\n\t}\n\n\t/**\n\t * 获取当前 token 的 Token-Session，如果该 SaSession 尚未创建，则新建并返回\n\t *\n\t * @return Session对象\n\t */\n\tpublic static SaSession getTokenSession() {\n\t\treturn stpLogic.getTokenSession();\n\t}\n\n\t/**\n\t * 获取当前匿名 Token-Session （可在未登录情况下使用的Token-Session）\n\t *\n\t * @return Token-Session 对象\n\t */\n\tpublic static SaSession getAnonTokenSession() {\n\t\treturn stpLogic.getAnonTokenSession();\n\t}\n\t\n\n\t// ------------------- Active-Timeout token 最低活跃度 验证相关 -------------------\n\n\t/**\n\t * 续签当前 token：(将 [最后操作时间] 更新为当前时间戳)\n\t * <h2>\n\t * \t\t请注意: 即使 token 已被冻结 也可续签成功，\n\t * \t\t如果此场景下需要提示续签失败，可在此之前调用 checkActiveTimeout() 强制检查是否冻结即可\n\t * </h2>\n\t */\n\tpublic static void updateLastActiveToNow() {\n\t\tstpLogic.updateLastActiveToNow();\n\t}\n\n\t/**\n\t * 检查当前 token 是否已被冻结，如果是则抛出异常\n\t */\n \tpublic static void checkActiveTimeout() {\n \t\tstpLogic.checkActiveTimeout();\n \t}\n\n\n\t// ------------------- 过期时间相关 -------------------  \n\n\t/**\n\t * 获取当前会话 token 剩余有效时间（单位: 秒，返回 -1 代表永久有效，-2 代表没有这个值）\n\t *\n\t * @return token剩余有效时间\n\t */\n \tpublic static long getTokenTimeout() {\n \t\treturn stpLogic.getTokenTimeout();\n \t}\n\n\t/**\n\t * 获取指定 token 剩余有效时间（单位: 秒，返回 -1 代表永久有效，-2 代表没有这个值）\n\t *\n\t * @param token 指定token\n\t * @return token剩余有效时间\n\t */\n\tpublic static long getTokenTimeout(String token) {\n\t\treturn stpLogic.getTokenTimeout(token);\n\t}\n\n\t/**\n\t * 获取当前登录账号的 Account-Session 剩余有效时间（单位: 秒，返回 -1 代表永久有效，-2 代表没有这个值）\n\t *\n\t * @return token剩余有效时间\n\t */\n \tpublic static long getSessionTimeout() {\n \t\treturn stpLogic.getSessionTimeout();\n \t}\n\n\t/**\n\t * 获取当前 token 的 Token-Session 剩余有效时间（单位: 秒，返回 -1 代表永久有效，-2 代表没有这个值）\n\t *\n\t * @return token剩余有效时间\n\t */\n \tpublic static long getTokenSessionTimeout() {\n \t\treturn stpLogic.getTokenSessionTimeout();\n \t}\n\n\t/**\n\t * 获取当前 token 剩余活跃有效期：当前 token 距离被冻结还剩多少时间（单位: 秒，返回 -1 代表永不冻结，-2 代表没有这个值或 token 已被冻结了）\n\t *\n\t * @return /\n\t */\n \tpublic static long getTokenActiveTimeout() {\n \t\treturn stpLogic.getTokenActiveTimeout();\n \t}\n\n\t/**\n\t * 对当前 token 的 timeout 值进行续期\n\t *\n\t * @param timeout 要修改成为的有效时间 (单位: 秒)\n\t */\n \tpublic static void renewTimeout(long timeout) {\n \t\tstpLogic.renewTimeout(timeout);\n \t}\n\n\t/**\n\t * 对指定 token 的 timeout 值进行续期\n\t *\n\t * @param tokenValue 指定 token\n\t * @param timeout 要修改成为的有效时间 (单位: 秒，填 -1 代表要续为永久有效)\n\t */\n \tpublic static void renewTimeout(String tokenValue, long timeout) {\n \t\tstpLogic.renewTimeout(tokenValue, timeout);\n \t}\n \t\n \t\n\t// ------------------- 角色认证操作 -------------------\n\n\t/**\n\t * 获取：当前账号的角色集合\n\t *\n\t * @return /\n\t */\n\tpublic static List<String> getRoleList() {\n\t\treturn stpLogic.getRoleList();\n\t}\n\n\t/**\n\t * 获取：指定账号的角色集合\n\t *\n\t * @param loginId 指定账号id \n\t * @return /\n\t */\n\tpublic static List<String> getRoleList(Object loginId) {\n\t\treturn stpLogic.getRoleList(loginId);\n\t}\n\n\t/**\n\t * 判断：当前账号是否拥有指定角色, 返回 true 或 false\n\t *\n\t * @param role 角色\n\t * @return /\n\t */\n \tpublic static boolean hasRole(String role) {\n \t\treturn stpLogic.hasRole(role);\n \t}\n\n\t/**\n\t * 判断：指定账号是否含有指定角色标识, 返回 true 或 false\n\t *\n\t * @param loginId 账号id\n\t * @param role 角色标识\n\t * @return 是否含有指定角色标识\n\t */\n \tpublic static boolean hasRole(Object loginId, String role) {\n \t\treturn stpLogic.hasRole(loginId, role);\n \t}\n\n\t/**\n\t * 判断：当前账号是否含有指定角色标识 [ 指定多个，必须全部验证通过 ]\n\t *\n\t * @param roleArray 角色标识数组\n\t * @return true或false\n\t */\n \tpublic static boolean hasRoleAnd(String... roleArray){\n \t\treturn stpLogic.hasRoleAnd(roleArray);\n \t}\n\n\t/**\n\t * 判断：当前账号是否含有指定角色标识 [ 指定多个，只要其一验证通过即可 ]\n\t *\n\t * @param roleArray 角色标识数组\n\t * @return true或false\n\t */\n \tpublic static boolean hasRoleOr(String... roleArray){\n \t\treturn stpLogic.hasRoleOr(roleArray);\n \t}\n\n\t/**\n\t * 校验：当前账号是否含有指定角色标识, 如果验证未通过，则抛出异常: NotRoleException\n\t *\n\t * @param role 角色标识\n\t */\n \tpublic static void checkRole(String role) {\n \t\tstpLogic.checkRole(role);\n \t}\n\n\t/**\n\t * 校验：当前账号是否含有指定角色标识 [ 指定多个，必须全部验证通过 ]\n\t *\n\t * @param roleArray 角色标识数组\n\t */\n \tpublic static void checkRoleAnd(String... roleArray){\n \t\tstpLogic.checkRoleAnd(roleArray);\n \t}\n\n\t/**\n\t * 校验：当前账号是否含有指定角色标识 [ 指定多个，只要其一验证通过即可 ]\n\t *\n\t * @param roleArray 角色标识数组\n\t */\n \tpublic static void checkRoleOr(String... roleArray){\n \t\tstpLogic.checkRoleOr(roleArray);\n \t}\n\n\t\n\t// ------------------- 权限认证操作 -------------------\n\n\t/**\n\t * 获取：当前账号的权限码集合\n\t *\n\t * @return / \n\t */\n\tpublic static List<String> getPermissionList() {\n\t\treturn stpLogic.getPermissionList();\n\t}\n\n\t/**\n\t * 获取：指定账号的权限码集合\n\t *\n\t * @param loginId 指定账号id\n\t * @return / \n\t */\n\tpublic static List<String> getPermissionList(Object loginId) {\n\t\treturn stpLogic.getPermissionList(loginId);\n\t}\n\n\t/**\n\t * 判断：当前账号是否含有指定权限, 返回 true 或 false\n\t *\n\t * @param permission 权限码\n\t * @return 是否含有指定权限\n\t */\n\tpublic static boolean hasPermission(String permission) {\n\t\treturn stpLogic.hasPermission(permission);\n\t}\n\n\t/**\n\t * 判断：指定账号 id 是否含有指定权限, 返回 true 或 false\n\t *\n\t * @param loginId 账号 id\n\t * @param permission 权限码\n\t * @return 是否含有指定权限\n\t */\n\tpublic static boolean hasPermission(Object loginId, String permission) {\n\t\treturn stpLogic.hasPermission(loginId, permission);\n\t}\n\n\t/**\n\t * 判断：当前账号是否含有指定权限 [ 指定多个，必须全部具有 ]\n\t *\n\t * @param permissionArray 权限码数组\n\t * @return true 或 false\n\t */\n \tpublic static boolean hasPermissionAnd(String... permissionArray){\n \t\treturn stpLogic.hasPermissionAnd(permissionArray);\n \t}\n\n\t/**\n\t * 判断：当前账号是否含有指定权限 [ 指定多个，只要其一验证通过即可 ]\n\t *\n\t * @param permissionArray 权限码数组\n\t * @return true 或 false\n\t */\n \tpublic static boolean hasPermissionOr(String... permissionArray){\n \t\treturn stpLogic.hasPermissionOr(permissionArray);\n \t}\n\n\t/**\n\t * 校验：当前账号是否含有指定权限, 如果验证未通过，则抛出异常: NotPermissionException\n\t *\n\t * @param permission 权限码\n\t */\n\tpublic static void checkPermission(String permission) {\n\t\tstpLogic.checkPermission(permission);\n\t}\n\n\t/**\n\t * 校验：当前账号是否含有指定权限 [ 指定多个，必须全部验证通过 ]\n\t *\n\t * @param permissionArray 权限码数组\n\t */\n\tpublic static void checkPermissionAnd(String... permissionArray) {\n\t\tstpLogic.checkPermissionAnd(permissionArray);\n\t}\n\n\t/**\n\t * 校验：当前账号是否含有指定权限 [ 指定多个，只要其一验证通过即可 ]\n\t *\n\t * @param permissionArray 权限码数组\n\t */\n\tpublic static void checkPermissionOr(String... permissionArray) {\n\t\tstpLogic.checkPermissionOr(permissionArray);\n\t}\n\n\n\t// ------------------- id 反查 token 相关操作 -------------------\n\n\t/**\n\t * 获取指定账号 id 的 token\n\t * <p>\n\t * \t\t在配置为允许并发登录时，此方法只会返回队列的最后一个 token，\n\t * \t\t如果你需要返回此账号 id 的所有 token，请调用 getTokenValueListByLoginId\n\t * </p>\n\t *\n\t * @param loginId 账号id\n\t * @return token值\n\t */\n\tpublic static String getTokenValueByLoginId(Object loginId) {\n\t\treturn stpLogic.getTokenValueByLoginId(loginId);\n\t}\n\n\t/**\n\t * 获取指定账号 id 指定设备类型端的 token\n\t * <p>\n\t * \t\t在配置为允许并发登录时，此方法只会返回队列的最后一个 token，\n\t * \t\t如果你需要返回此账号 id 的所有 token，请调用 getTokenValueListByLoginId\n\t * </p>\n\t *\n\t * @param loginId 账号id\n\t * @param device 设备类型，填 null 代表不限设备类型\n\t * @return token值\n\t */\n\tpublic static String getTokenValueByLoginId(Object loginId, String device) {\n\t\treturn stpLogic.getTokenValueByLoginId(loginId, device);\n\t}\n\n\t/**\n\t * 获取指定账号 id 的 token 集合\n\t *\n\t * @param loginId 账号id\n\t * @return 此 loginId 的所有相关 token\n\t */\n\tpublic static List<String> getTokenValueListByLoginId(Object loginId) {\n\t\treturn stpLogic.getTokenValueListByLoginId(loginId);\n\t}\n\n\t/**\n\t * 获取指定账号 id 指定设备类型端的 token 集合\n\t *\n\t * @param loginId 账号id\n\t * @param device 设备类型，填 null 代表不限设备类型\n\t * @return 此 loginId 的所有登录 token\n\t */\n\tpublic static List<String> getTokenValueListByLoginId(Object loginId, String device) {\n\t\treturn stpLogic.getTokenValueListByLoginId(loginId, device);\n\t}\n\n\t/**\n\t * 获取指定账号 id 指定设备类型端的 tokenSign 集合\n\t *\n\t * @param loginId 账号id\n\t * @param device 设备类型，填 null 代表不限设备类型\n\t * @return 此 loginId 的所有登录 tokenSign\n\t */\n\tpublic static List<TokenSign> getTokenSignListByLoginId(Object loginId, String device) {\n\t\treturn stpLogic.getTokenSignListByLoginId(loginId, device);\n\t}\n\n\t/**\n\t * 返回当前会话的登录设备类型\n\t *\n\t * @return 当前令牌的登录设备类型\n\t */\n\tpublic static String getLoginDevice() {\n\t\treturn stpLogic.getLoginDevice(); \n\t}\n\n\t\n\t// ------------------- 会话管理 -------------------  \n\n\t/**\n\t * 根据条件查询缓存中所有的 token\n\t *\n\t * @param keyword 关键字\n\t * @param start 开始处索引\n\t * @param size 获取数量 (-1代表一直获取到末尾)\n\t * @param sortType 排序类型（true=正序，false=反序）\n\t *\n\t * @return token集合\n\t */\n\tpublic static List<String> searchTokenValue(String keyword, int start, int size, boolean sortType) {\n\t\treturn stpLogic.searchTokenValue(keyword, start, size, sortType);\n\t}\n\n\t/**\n\t * 根据条件查询缓存中所有的 SessionId\n\t *\n\t * @param keyword 关键字\n\t * @param start 开始处索引\n\t * @param size 获取数量  (-1代表一直获取到末尾)\n\t * @param sortType 排序类型（true=正序，false=反序）\n\t *\n\t * @return sessionId集合\n\t */\n\tpublic static List<String> searchSessionId(String keyword, int start, int size, boolean sortType) {\n\t\treturn stpLogic.searchSessionId(keyword, start, size, sortType);\n\t}\n\n\t/**\n\t * 根据条件查询缓存中所有的 Token-Session-Id\n\t *\n\t * @param keyword 关键字\n\t * @param start 开始处索引\n\t * @param size 获取数量 (-1代表一直获取到末尾)\n\t * @param sortType 排序类型（true=正序，false=反序）\n\t *\n\t * @return sessionId集合\n\t */\n\tpublic static List<String> searchTokenSessionId(String keyword, int start, int size, boolean sortType) {\n\t\treturn stpLogic.searchTokenSessionId(keyword, start, size, sortType);\n\t}\n\n\t\n\t// ------------------- 账号封禁 -------------------  \n\n\t/**\n\t * 封禁：指定账号\n\t * <p> 此方法不会直接将此账号id踢下线，如需封禁后立即掉线，请追加调用 StpUtil.logout(id)\n\t *\n\t * @param loginId 指定账号id \n\t * @param time 封禁时间, 单位: 秒 （-1=永久封禁）\n\t */\n\tpublic static void disable(Object loginId, long time) {\n\t\tstpLogic.disable(loginId, time);\n\t}\n\n\t/**\n\t * 判断：指定账号是否已被封禁 (true=已被封禁, false=未被封禁) \n\t *\n\t * @param loginId 账号id\n\t * @return / \n\t */\n\tpublic static boolean isDisable(Object loginId) {\n\t\treturn stpLogic.isDisable(loginId);\n\t}\n\n\t/**\n\t * 校验：指定账号是否已被封禁，如果被封禁则抛出异常\n\t *\n\t * @param loginId 账号id\n\t */\n\tpublic static void checkDisable(Object loginId) {\n\t\tstpLogic.checkDisable(loginId);\n\t}\n\n\t/**\n\t * 获取：指定账号剩余封禁时间，单位：秒（-1=永久封禁，-2=未被封禁）\n\t *\n\t * @param loginId 账号id\n\t * @return / \n\t */\n\tpublic static long getDisableTime(Object loginId) {\n\t\treturn stpLogic.getDisableTime(loginId);\n\t}\n\n\t/**\n\t * 解封：指定账号\n\t *\n\t * @param loginId 账号id\n\t */\n\tpublic static void untieDisable(Object loginId) {\n\t\tstpLogic.untieDisable(loginId);\n\t}\n\n\t\n\t// ------------------- 分类封禁 -------------------  \n\n\t/**\n\t * 封禁：指定账号的指定服务 \n\t * <p> 此方法不会直接将此账号id踢下线，如需封禁后立即掉线，请追加调用 StpUtil.logout(id)\n\t *\n\t * @param loginId 指定账号id\n\t * @param service 指定服务 \n\t * @param time 封禁时间, 单位: 秒 （-1=永久封禁）\n\t */\n\tpublic static void disable(Object loginId, String service, long time) {\n\t\tstpLogic.disable(loginId, service, time);\n\t}\n\n\t/**\n\t * 判断：指定账号的指定服务 是否已被封禁（true=已被封禁, false=未被封禁）\n\t *\n\t * @param loginId 账号id\n\t * @param service 指定服务 \n\t * @return / \n\t */\n\tpublic static boolean isDisable(Object loginId, String service) {\n\t\treturn stpLogic.isDisable(loginId, service);\n\t}\n\n\t/**\n\t * 校验：指定账号 指定服务 是否已被封禁，如果被封禁则抛出异常\n\t *\n\t * @param loginId 账号id\n\t * @param services 指定服务，可以指定多个 \n\t */\n\tpublic static void checkDisable(Object loginId, String... services) {\n\t\tstpLogic.checkDisable(loginId, services);\n\t}\n\n\t/**\n\t * 获取：指定账号 指定服务 剩余封禁时间，单位：秒（-1=永久封禁，-2=未被封禁）\n\t *\n\t * @param loginId 账号id\n\t * @param service 指定服务 \n\t * @return see note \n\t */\n\tpublic static long getDisableTime(Object loginId, String service) {\n\t\treturn stpLogic.getDisableTime(loginId, service);\n\t}\n\n\t/**\n\t * 解封：指定账号、指定服务\n\t *\n\t * @param loginId 账号id\n\t * @param services 指定服务，可以指定多个 \n\t */\n\tpublic static void untieDisable(Object loginId, String... services) {\n\t\tstpLogic.untieDisable(loginId, services);\n\t}\n\n\n\t// ------------------- 阶梯封禁 -------------------  \n\n\t/**\n\t * 封禁：指定账号，并指定封禁等级\n\t *\n\t * @param loginId 指定账号id \n\t * @param level 指定封禁等级 \n\t * @param time 封禁时间, 单位: 秒 （-1=永久封禁）\n\t */\n\tpublic static void disableLevel(Object loginId, int level, long time) {\n\t\tstpLogic.disableLevel(loginId, level, time);\n\t}\n\n\t/**\n\t * 封禁：指定账号的指定服务，并指定封禁等级\n\t *\n\t * @param loginId 指定账号id \n\t * @param service 指定封禁服务 \n\t * @param level 指定封禁等级 \n\t * @param time 封禁时间, 单位: 秒 （-1=永久封禁）\n\t */\n\tpublic static void disableLevel(Object loginId, String service, int level, long time) {\n\t\tstpLogic.disableLevel(loginId, service, level, time);\n\t}\n\n\t/**\n\t * 判断：指定账号是否已被封禁到指定等级\n\t *\n\t * @param loginId 指定账号id \n\t * @param level 指定封禁等级 \n\t * @return / \n\t */\n\tpublic static boolean isDisableLevel(Object loginId, int level) {\n\t\treturn stpLogic.isDisableLevel(loginId, level);\n\t}\n\n\t/**\n\t * 判断：指定账号的指定服务，是否已被封禁到指定等级 \n\t *\n\t * @param loginId 指定账号id \n\t * @param service 指定封禁服务 \n\t * @param level 指定封禁等级 \n\t * @return / \n\t */\n\tpublic static boolean isDisableLevel(Object loginId, String service, int level) {\n\t\treturn stpLogic.isDisableLevel(loginId, service, level);\n\t}\n\n\t/**\n\t * 校验：指定账号是否已被封禁到指定等级（如果已经达到，则抛出异常）\n\t *\n\t * @param loginId 指定账号id \n\t * @param level 封禁等级 （只有 封禁等级 ≥ 此值 才会抛出异常）\n\t */\n\tpublic static void checkDisableLevel(Object loginId, int level) {\n\t\tstpLogic.checkDisableLevel(loginId, level);\n\t}\n\n\t/**\n\t * 校验：指定账号的指定服务，是否已被封禁到指定等级（如果已经达到，则抛出异常）\n\t *\n\t * @param loginId 指定账号id \n\t * @param service 指定封禁服务 \n\t * @param level 封禁等级 （只有 封禁等级 ≥ 此值 才会抛出异常）\n\t */\n\tpublic static void checkDisableLevel(Object loginId, String service, int level) {\n\t\tstpLogic.checkDisableLevel(loginId, service, level);\n\t}\n\n\t/**\n\t * 获取：指定账号被封禁的等级，如果未被封禁则返回-2 \n\t *\n\t * @param loginId 指定账号id \n\t * @return / \n\t */\n\tpublic static int getDisableLevel(Object loginId) {\n\t\treturn stpLogic.getDisableLevel(loginId);\n\t}\n\n\t/**\n\t * 获取：指定账号的 指定服务 被封禁的等级，如果未被封禁则返回-2 \n\t *\n\t * @param loginId 指定账号id \n\t * @param service 指定封禁服务 \n\t * @return / \n\t */\n\tpublic static int getDisableLevel(Object loginId, String service) {\n\t\treturn stpLogic.getDisableLevel(loginId, service);\n\t}\n\t\n\t\n\t// ------------------- 临时身份切换 -------------------\n\n\t/**\n\t * 临时切换身份为指定账号id\n\t *\n\t * @param loginId 指定loginId \n\t */\n\tpublic static void switchTo(Object loginId) {\n\t\tstpLogic.switchTo(loginId);\n\t}\n\n\t/**\n\t * 结束临时切换身份\n\t */\n\tpublic static void endSwitch() {\n\t\tstpLogic.endSwitch();\n\t}\n\n\t/**\n\t * 判断当前请求是否正处于 [ 身份临时切换 ] 中\n\t *\n\t * @return /\n\t */\n\tpublic static boolean isSwitch() {\n\t\treturn stpLogic.isSwitch();\n\t}\n\n\t/**\n\t * 在一个 lambda 代码段里，临时切换身份为指定账号id，lambda 结束后自动恢复\n\t *\n\t * @param loginId 指定账号id \n\t * @param function 要执行的方法 \n\t */\n\tpublic static void switchTo(Object loginId, SaFunction function) {\n\t\tstpLogic.switchTo(loginId, function);\n\t}\n\t\n\n\t// ------------------- 二级认证 -------------------  \n\n\t/**\n\t * 在当前会话 开启二级认证\n\t *\n\t * @param safeTime 维持时间 (单位: 秒) \n\t */\n\tpublic static void openSafe(long safeTime) {\n\t\tstpLogic.openSafe(safeTime);\n\t}\n\n\t/**\n\t * 在当前会话 开启二级认证\n\t *\n\t * @param service 业务标识  \n\t * @param safeTime 维持时间 (单位: 秒) \n\t */\n\tpublic static void openSafe(String service, long safeTime) {\n\t\tstpLogic.openSafe(service, safeTime);\n\t}\n\n\t/**\n\t * 判断：当前会话是否处于二级认证时间内\n\t *\n\t * @return true=二级认证已通过, false=尚未进行二级认证或认证已超时 \n\t */\n\tpublic static boolean isSafe() {\n\t\treturn stpLogic.isSafe();\n\t}\n\n\t/**\n\t * 判断：当前会话 是否处于指定业务的二级认证时间内\n\t *\n\t * @param service 业务标识  \n\t * @return true=二级认证已通过, false=尚未进行二级认证或认证已超时 \n\t */\n\tpublic static boolean isSafe(String service) {\n\t\treturn stpLogic.isSafe(service);\n\t}\n\n\t/**\n\t * 判断：指定 token 是否处于二级认证时间内\n\t *\n\t * @param tokenValue Token 值  \n\t * @param service 业务标识  \n\t * @return true=二级认证已通过, false=尚未进行二级认证或认证已超时 \n\t */\n\tpublic static boolean isSafe(String tokenValue, String service) {\n\t\treturn stpLogic.isSafe(tokenValue, service);\n\t}\n\n\t/**\n\t * 校验：当前会话是否已通过二级认证，如未通过则抛出异常\n\t */\n\tpublic static void checkSafe() {\n\t\tstpLogic.checkSafe();\n\t}\n\n\t/**\n\t * 校验：检查当前会话是否已通过指定业务的二级认证，如未通过则抛出异常\n\t *\n\t * @param service 业务标识  \n\t */\n\tpublic static void checkSafe(String service) {\n\t\tstpLogic.checkSafe(service);\n\t}\n\n\t/**\n\t * 获取：当前会话的二级认证剩余有效时间（单位: 秒, 返回-2代表尚未通过二级认证）\n\t *\n\t * @return 剩余有效时间\n\t */\n\tpublic static long getSafeTime() {\n\t\treturn stpLogic.getSafeTime();\n\t}\n\n\t/**\n\t * 获取：当前会话的二级认证剩余有效时间（单位: 秒, 返回-2代表尚未通过二级认证）\n\t *\n\t * @param service 业务标识  \n\t * @return 剩余有效时间\n\t */\n\tpublic static long getSafeTime(String service) {\n\t\treturn stpLogic.getSafeTime(service);\n\t}\n\n\t/**\n\t * 在当前会话 结束二级认证 \n\t */\n\tpublic static void closeSafe() {\n\t\tstpLogic.closeSafe();\n\t}\n\n\t/**\n\t * 在当前会话 结束指定业务标识的二级认证\n\t *\n\t * @param service 业务标识  \n\t */\n\tpublic static void closeSafe(String service) {\n\t\tstpLogic.closeSafe(service);\n\t}\n\n}\n"
  },
  {
    "path": "mall-portal/src/main/resources/application.yml",
    "content": "server:\n  port: 8085\nspring:\n  mvc:\n    pathmatch:\n      matching-strategy: ant_path_matcher\n  datasource:\n    url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false\n    username: root\n    password: root\n    druid:\n      initial-size: 5 #连接池初始化大小\n      min-idle: 10 #最小空闲连接数\n      max-active: 20 #最大连接数\n      web-stat-filter:\n        exclusions: \"*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*\" #不统计这些请求数据\n      stat-view-servlet: #访问监控网页的登录用户名和密码\n        login-username: druid\n        login-password: druid\n  data:\n    mongodb:\n      host: localhost\n      port: 27017\n      database: mall-port\n    redis:\n      host: localhost # Redis服务器地址\n      database: 0 # Redis数据库索引（默认为0）\n      port: 6379 # Redis服务器连接端口\n      password:  # Redis服务器连接密码（默认为空）\n      timeout: 3000ms # 连接超时时间（毫秒）\n  rabbitmq:\n    host: localhost\n    port: 5672\n    virtual-host: /mall\n    username: mall\n    password: mall\nmybatis:\n  mapper-locations:\n    - classpath:dao/*.xml\n    - classpath*:com/**/mapper/*.xml\nmanagement:\n  endpoints:\n    web:\n      exposure:\n        include: '*' #暴露Actuator的监控端点\n  endpoint:\n    health:\n      show-details: always #显示健康的详细信息\n    env:\n      show-values: always #默认Actuator的环境变量会以****显示，这里开启显示\n    configprops:\n      show-values: always #默认Actuator的配置属性会以****显示，这里开启显示\n    info:\n      enabled: true\nredis:\n  database: mall-swarm\n  key:\n    authCode: 'ums:authCode'\n    orderId: 'oms:orderId'\n    member: 'ums:member'\n  expire:\n    authCode: 90 # 验证码超期时间\n    common: 86400 # 24小时\nrabbitmq:\n  queue:\n    name:\n      cancelOrder: cancelOrderQueue\nspringdoc:\n  swagger-ui:\n    # 修改Swagger UI路径\n    path: /swagger-ui.html\n    # 开启Swagger UI界面\n    enabled: true\n    # 用于配置tag和operation的展开方式，这里配置为都不展开\n    doc-expansion: 'none'\n  api-docs:\n    # 修改api-docs路径\n    path: /v3/api-docs\n    # 开启api-docs\n    enabled: true\n  group-configs:\n    - group: 'mall-portal'\n      packages-to-scan: com.macro.mall.portal.controller\nsa-token:\n  # token名称 (同时也是cookie名称)\n  token-name: Authorization\n  # token有效期，单位秒，-1代表永不过期\n  timeout: 604800\n  # token临时有效期 (指定时间内无操作就视为token过期)，单位秒\n  active-timeout: -1\n  # 是否允许同一账号并发登录 (为false时新登录挤掉旧登录)\n  is-concurrent: true\n  # 在多人登录同一账号时，是否共用一个token (为false时每次登录新建一个token)\n  is-share: false\n  # token风格\n  token-style: uuid\n  # 是否输出操作日志\n  is-log: false\n  # 是否从cookie中读取token\n  is-read-cookie: false\n  # 是否从head中读取token\n  is-read-header: true\n  # token前缀\n  token-prefix: Bearer\n  # jwt秘钥\n  jwt-secret-key: sa-secret-key123\n  # 是否打印banner\n  is-print: false\n"
  },
  {
    "path": "mall-portal/src/main/resources/bootstrap-dev.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://localhost:8848\n      config:\n        server-addr: http://localhost:8848\n        file-extension: yaml"
  },
  {
    "path": "mall-portal/src/main/resources/bootstrap-prod.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://nacos-registry:8848\n      config:\n        server-addr: http://nacos-registry:8848\n        file-extension: yaml"
  },
  {
    "path": "mall-portal/src/main/resources/bootstrap.yml",
    "content": "spring:\n  profiles:\n    active: dev\n  application:\n    name: mall-portal"
  },
  {
    "path": "mall-portal/src/main/resources/dao/HomeDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.portal.dao.HomeDao\">\n    <resultMap id=\"flashPromotionProduct\" type=\"com.macro.mall.portal.domain.FlashPromotionProduct\"\n               extends=\"com.macro.mall.mapper.PmsProductMapper.BaseResultMap\">\n        <result column=\"flash_promotion_price\" property=\"flashPromotionPrice\"/>\n        <result column=\"flash_promotion_count\" property=\"flashPromotionCount\"/>\n        <result column=\"flash_promotion_limit\" property=\"flashPromotionLimit\"/>\n    </resultMap>\n\n    <select id=\"getRecommendBrandList\" resultMap=\"com.macro.mall.mapper.PmsBrandMapper.BaseResultMap\">\n        SELECT b.*\n        FROM\n            sms_home_brand hb\n            LEFT JOIN pms_brand b ON hb.brand_id = b.id\n        WHERE\n            hb.recommend_status = 1\n            AND b.show_status = 1\n        ORDER BY\n            hb.sort DESC\n        LIMIT #{offset}, #{limit}\n    </select>\n\n    <select id=\"getFlashProductList\" resultMap=\"flashPromotionProduct\">\n        SELECT\n            pr.flash_promotion_price,\n            pr.flash_promotion_count,\n            pr.flash_promotion_limit,\n            p.*\n        FROM\n            sms_flash_promotion_product_relation pr\n            LEFT JOIN pms_product p ON pr.product_id = p.id\n        WHERE\n            pr.flash_promotion_id = #{flashPromotionId}\n            AND pr.flash_promotion_session_id = #{sessionId}\n    </select>\n\n    <select id=\"getNewProductList\" resultMap=\"com.macro.mall.mapper.PmsProductMapper.BaseResultMap\">\n        SELECT p.*\n        FROM\n            sms_home_new_product hp\n            LEFT JOIN pms_product p ON hp.product_id = p.id\n        WHERE\n            hp.recommend_status = 1\n            AND p.publish_status = 1\n        ORDER BY\n            hp.sort DESC\n        LIMIT #{offset}, #{limit};\n    </select>\n\n    <select id=\"getHotProductList\" resultMap=\"com.macro.mall.mapper.PmsProductMapper.BaseResultMap\">\n        SELECT p.*\n        FROM\n            sms_home_recommend_product hp\n            LEFT JOIN pms_product p ON hp.product_id = p.id\n        WHERE\n            hp.recommend_status = 1\n            AND p.publish_status = 1\n        ORDER BY\n            hp.sort DESC\n        LIMIT #{offset}, #{limit};\n    </select>\n\n    <select id=\"getRecommendSubjectList\" resultMap=\"com.macro.mall.mapper.CmsSubjectMapper.BaseResultMap\">\n        SELECT s.*\n        FROM\n            sms_home_recommend_subject hs\n            LEFT JOIN cms_subject s ON hs.subject_id = s.id\n        WHERE\n            hs.recommend_status = 1\n            AND s.show_status = 1\n        ORDER BY\n            hs.sort DESC\n        LIMIT #{offset}, #{limit};\n    </select>\n</mapper>"
  },
  {
    "path": "mall-portal/src/main/resources/dao/PortalOrderDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.portal.dao.PortalOrderDao\">\n    <resultMap id=\"orderDetailMap\" type=\"com.macro.mall.portal.domain.OmsOrderDetail\"\n               extends=\"com.macro.mall.mapper.OmsOrderMapper.BaseResultMap\">\n        <collection property=\"orderItemList\" columnPrefix=\"ot_\"\n                    resultMap=\"com.macro.mall.mapper.OmsOrderItemMapper.BaseResultMap\">\n        </collection>\n    </resultMap>\n    <select id=\"getDetail\" resultMap=\"orderDetailMap\">\n        SELECT\n            o.id,\n            o.order_sn,\n            o.coupon_id,\n            o.integration,\n            o.member_id,\n            ot.id ot_id,\n            ot.product_name ot_product_name,\n            ot.product_sku_id ot_product_sku_id,\n            ot.product_sku_code ot_product_sku_code,\n            ot.product_quantity ot_product_quantity\n        FROM\n            oms_order o\n            LEFT JOIN oms_order_item ot ON o.id = ot.order_id\n        WHERE\n            o.id = #{orderId}\n    </select>\n\n    <select id=\"getTimeOutOrders\" resultMap=\"orderDetailMap\">\n        SELECT\n            o.id,\n            o.order_sn,\n            o.coupon_id,\n            o.integration,\n            o.member_id,\n            o.use_integration,\n            ot.id               ot_id,\n            ot.product_name     ot_product_name,\n            ot.product_sku_id   ot_product_sku_id,\n            ot.product_sku_code ot_product_sku_code,\n            ot.product_quantity ot_product_quantity\n        FROM\n            oms_order o\n            LEFT JOIN oms_order_item ot ON o.id = ot.order_id\n        WHERE\n            o.status = 0\n            AND o.create_time &lt; date_add(NOW(), INTERVAL -#{minute} MINUTE);\n    </select>\n\n    <update id=\"updateSkuStock\">\n        UPDATE pms_sku_stock\n        SET\n            stock = CASE id\n            <foreach collection=\"itemList\" item=\"item\">\n              WHEN #{item.productSkuId} THEN stock - #{item.productQuantity}\n            </foreach>\n            END,\n            lock_stock = CASE id\n            <foreach collection=\"itemList\" item=\"item\">\n              WHEN #{item.productSkuId} THEN lock_stock - #{item.productQuantity}\n            </foreach>\n            END\n        WHERE\n            id IN\n        <foreach collection=\"itemList\" item=\"item\" separator=\",\" open=\"(\" close=\")\">\n            #{item.productSkuId}\n        </foreach>\n    </update>\n    <update id=\"updateOrderStatus\">\n        update oms_order\n        set status=#{status}\n        where id in\n        <foreach collection=\"ids\" item=\"id\" separator=\",\" open=\"(\" close=\")\">\n            #{id}\n        </foreach>\n    </update>\n    <update id=\"releaseSkuStockLock\">\n        UPDATE pms_sku_stock\n        SET\n        lock_stock = CASE id\n        <foreach collection=\"itemList\" item=\"item\">\n            WHEN #{item.productSkuId} THEN lock_stock - #{item.productQuantity}\n        </foreach>\n        END\n        WHERE\n        id IN\n        <foreach collection=\"itemList\" item=\"item\" separator=\",\" open=\"(\" close=\")\">\n            #{item.productSkuId}\n        </foreach>\n    </update>\n</mapper>"
  },
  {
    "path": "mall-portal/src/main/resources/dao/PortalOrderItemDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.portal.dao.PortalOrderItemDao\">\n    <insert id=\"insertList\">\n        insert into oms_order_item (order_id, order_sn, product_id,\n        product_pic, product_name, product_brand,\n        product_sn, product_price, product_quantity,\n        product_sku_id, product_category_id, product_sku_code,promotion_name,\n        promotion_amount, coupon_amount, integration_amount,\n        real_amount,product_attr) values\n        <foreach collection=\"list\" item=\"item\" separator=\",\" index=\"index\">\n            (#{item.orderId,jdbcType=BIGINT}, #{item.orderSn,jdbcType=VARCHAR}, #{item.productId,jdbcType=BIGINT},\n            #{item.productPic,jdbcType=VARCHAR}, #{item.productName,jdbcType=VARCHAR}, #{item.productBrand,jdbcType=VARCHAR},\n            #{item.productSn,jdbcType=VARCHAR}, #{item.productPrice,jdbcType=DECIMAL}, #{item.productQuantity,jdbcType=INTEGER},\n            #{item.productSkuId,jdbcType=BIGINT}, #{item.productCategoryId,jdbcType=BIGINT}, #{item.productSkuCode,jdbcType=VARCHAR},\n            #{item.promotionName,jdbcType=VARCHAR},\n            #{item.promotionAmount,jdbcType=DECIMAL}, #{item.couponAmount,jdbcType=DECIMAL},\n            #{item.integrationAmount,jdbcType=DECIMAL},\n            #{item.realAmount,jdbcType=DECIMAL},#{item.productAttr,jdbcType=VARCHAR})\n        </foreach>\n    </insert>\n</mapper>"
  },
  {
    "path": "mall-portal/src/main/resources/dao/PortalProductDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.portal.dao.PortalProductDao\">\n    <resultMap id=\"cartProductMap\" type=\"com.macro.mall.portal.domain.CartProduct\" autoMapping=\"true\">\n        <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n        <collection property=\"productAttributeList\" columnPrefix=\"attr_\" resultMap=\"com.macro.mall.mapper.PmsProductAttributeMapper.BaseResultMap\">\n        </collection>\n        <collection property=\"skuStockList\" columnPrefix=\"sku_\" resultMap=\"com.macro.mall.mapper.PmsSkuStockMapper.BaseResultMap\">\n        </collection>\n    </resultMap>\n    <resultMap id=\"promotionProductMap\" type=\"com.macro.mall.portal.domain.PromotionProduct\" extends=\"com.macro.mall.mapper.PmsProductMapper.BaseResultMap\">\n        <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n        <collection property=\"skuStockList\" columnPrefix=\"sku_\" resultMap=\"com.macro.mall.mapper.PmsSkuStockMapper.BaseResultMap\">\n        </collection>\n        <collection property=\"productLadderList\" columnPrefix=\"ladder_\" resultMap=\"com.macro.mall.mapper.PmsProductLadderMapper.BaseResultMap\">\n        </collection>\n        <collection property=\"productFullReductionList\" columnPrefix=\"full_\" resultMap=\"com.macro.mall.mapper.PmsProductFullReductionMapper.BaseResultMap\">\n        </collection>\n    </resultMap>\n    <select id=\"getCartProduct\" resultMap=\"cartProductMap\">\n        SELECT\n            p.id id,\n            p.`name` name,\n            p.sub_title subTitle,\n            p.price price,\n            p.pic pic,\n            p.product_attribute_category_id productAttributeCategoryId,\n            p.stock stock,\n            pa.id attr_id,\n            pa.`name` attr_name,\n            ps.id sku_id,\n            ps.sku_code sku_code,\n            ps.price sku_price,\n            ps.stock sku_stock,\n            ps.pic sku_pic\n        FROM\n            pms_product p\n            LEFT JOIN pms_product_attribute pa ON p.product_attribute_category_id = pa.product_attribute_category_id\n            LEFT JOIN pms_sku_stock ps ON p.id=ps.product_id\n        WHERE\n            p.id = #{id}\n            AND pa.type = 0\n        ORDER BY pa.sort desc\n    </select>\n    <select id=\"getPromotionProductList\" resultMap=\"promotionProductMap\">\n        SELECT\n            p.id,\n            p.`name`,\n            p.promotion_type,\n            p.gift_growth,\n            p.gift_point,\n            sku.id sku_id,\n            sku.price sku_price,\n            sku.sku_code sku_sku_code,\n            sku.promotion_price sku_promotion_price,\n            sku.stock sku_stock,\n            sku.lock_stock sku_lock_stock,\n            ladder.id ladder_id,\n            ladder.count ladder_count,\n            ladder.discount ladder_discount,\n            full_re.id full_id,\n            full_re.full_price full_full_price,\n            full_re.reduce_price full_reduce_price\n        FROM\n            pms_product p\n            LEFT JOIN pms_sku_stock sku ON p.id = sku.product_id\n            LEFT JOIN pms_product_ladder ladder ON p.id = ladder.product_id\n            LEFT JOIN pms_product_full_reduction full_re ON p.id = full_re.product_id\n        WHERE\n            p.id IN\n        <foreach collection=\"ids\" open=\"(\" close=\")\" item=\"id\" separator=\",\">\n            #{id}\n        </foreach>\n    </select>\n    <select id=\"getAvailableCouponList\" resultMap=\"com.macro.mall.mapper.SmsCouponMapper.BaseResultMap\">\n        SELECT *\n        FROM sms_coupon\n        WHERE use_type = 0\n          AND start_time &lt; NOW()\n          AND end_time &gt; NOW()\n        UNION\n        (\n            SELECT c.*\n            FROM sms_coupon_product_category_relation cpc\n                     LEFT JOIN sms_coupon c ON cpc.coupon_id = c.id\n            WHERE c.use_type = 1\n              AND c.start_time &lt; NOW()\n              AND c.end_time &gt; NOW()\n              AND cpc.product_category_id = #{productCategoryId}\n        )\n        UNION\n        (\n            SELECT c.*\n            FROM sms_coupon_product_relation cp\n                     LEFT JOIN sms_coupon c ON cp.coupon_id = c.id\n            WHERE c.use_type = 2\n              AND c.start_time &lt; NOW()\n              AND c.end_time &gt; NOW()\n              AND cp.product_id = #{productId}\n        )\n    </select>\n</mapper>"
  },
  {
    "path": "mall-portal/src/main/resources/dao/SmsCouponHistoryDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.portal.dao.SmsCouponHistoryDao\">\n    <resultMap id=\"couponHistoryDetailMap\" type=\"com.macro.mall.portal.domain.SmsCouponHistoryDetail\"\n               extends=\"com.macro.mall.mapper.SmsCouponHistoryMapper.BaseResultMap\">\n        <association property=\"coupon\" resultMap=\"com.macro.mall.mapper.SmsCouponMapper.BaseResultMap\" columnPrefix=\"c_\">\n        </association>\n        <collection property=\"productRelationList\" columnPrefix=\"cpr_\" resultMap=\"com.macro.mall.mapper.SmsCouponProductRelationMapper.BaseResultMap\">\n        </collection>\n        <collection property=\"categoryRelationList\" columnPrefix=\"cpcr_\" resultMap=\"com.macro.mall.mapper.SmsCouponProductCategoryRelationMapper.BaseResultMap\">\n        </collection>\n    </resultMap>\n    <select id=\"getDetailList\" resultMap=\"couponHistoryDetailMap\">\n        SELECT\n            ch.*,\n            c.id c_id,\n            c.name c_name,\n            c.amount c_amount,\n            c.min_point c_min_point,\n            c.platform c_platform,\n            c.start_time c_start_time,\n            c.end_time c_end_time,\n            c.note c_note,\n            c.use_type c_use_type,\n            c.type c_type,\n            cpr.id cpr_id,cpr.product_id cpr_product_id,\n            cpcr.id cpcr_id,cpcr.product_category_id cpcr_product_category_id\n        FROM\n            sms_coupon_history ch\n            LEFT JOIN sms_coupon c ON ch.coupon_id = c.id\n            LEFT JOIN sms_coupon_product_relation cpr ON cpr.coupon_id = c.id\n            LEFT JOIN sms_coupon_product_category_relation cpcr ON cpcr.coupon_id = c.id\n        WHERE ch.member_id = #{memberId}\n        AND ch.use_status = 0\n    </select>\n\n    <select id=\"getCouponList\" resultMap=\"com.macro.mall.mapper.SmsCouponMapper.BaseResultMap\">\n        SELECT\n          c.*\n        FROM\n            sms_coupon_history ch\n                LEFT JOIN sms_coupon c ON ch.coupon_id = c.id\n        WHERE ch.member_id = #{memberId}\n        <if test=\"useStatus!=null and useStatus!=2\">\n            AND ch.use_status = #{useStatus}\n            AND NOW() > c.start_time\n            AND c.end_time > NOW()\n        </if>\n        <if test=\"useStatus!=null and useStatus==2\">\n            AND NOW() > c.end_time\n        </if>\n    </select>\n</mapper>"
  },
  {
    "path": "mall-portal/src/test/java/com/macro/mall/portal/MallPortalApplicationTests.java",
    "content": "package com.macro.mall.portal;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.SpringBootTest;\nimport org.springframework.test.context.junit4.SpringRunner;\n\n@SpringBootTest\npublic class MallPortalApplicationTests {\n\n    @Test\n    public void contextLoads() {\n    }\n\n}\n"
  },
  {
    "path": "mall-portal/src/test/java/com/macro/mall/portal/PortalProductDaoTests.java",
    "content": "package com.macro.mall.portal;\n\nimport com.macro.mall.portal.dao.PortalProductDao;\nimport com.macro.mall.portal.domain.PromotionProduct;\nimport org.junit.jupiter.api.Test;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.boot.test.context.SpringBootTest;\nimport org.springframework.test.context.junit4.SpringRunner;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\nimport static org.junit.jupiter.api.Assertions.assertEquals;\n\n/**\n * Created by macro on 2018/8/27.\n * 前台商品查询逻辑单元测试\n */\n@SpringBootTest\npublic class PortalProductDaoTests {\n    @Autowired\n    private PortalProductDao portalProductDao;\n    @Test\n    public void testGetPromotionProductList(){\n        List<Long> ids = new ArrayList<>();\n        ids.add(26L);\n        ids.add(27L);\n        ids.add(28L);\n        ids.add(29L);\n        List<PromotionProduct> promotionProductList = portalProductDao.getPromotionProductList(ids);\n        assertEquals(4,promotionProductList.size());\n    }\n}\n"
  },
  {
    "path": "mall-search/.gitignore",
    "content": "/target/\n!.mvn/wrapper/maven-wrapper.jar\n\n### STS ###\n.apt_generated\n.classpath\n.factorypath\n.project\n.settings\n.springBeans\n.sts4-cache\n\n### IntelliJ IDEA ###\n.idea\n*.iws\n*.iml\n*.ipr\n\n### NetBeans ###\n/nbproject/private/\n/build/\n/nbbuild/\n/dist/\n/nbdist/\n/.nb-gradle/"
  },
  {
    "path": "mall-search/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <groupId>com.macro.mall</groupId>\n    <artifactId>mall-search</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <packaging>jar</packaging>\n\n    <name>mall-search</name>\n    <description>mall-search project for mall</description>\n\n    <parent>\n        <groupId>com.macro.mall</groupId>\n        <artifactId>mall-swarm</artifactId>\n        <version>1.0-SNAPSHOT</version>\n    </parent>\n\n    <dependencies>\n        <dependency>\n            <groupId>com.macro.mall</groupId>\n            <artifactId>mall-mbg</artifactId>\n            <exclusions>\n                <exclusion>\n                    <groupId>org.springframework.boot</groupId>\n                    <artifactId>spring-boot-starter-data-redis</artifactId>\n                </exclusion>\n            </exclusions>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-web</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.alibaba.cloud</groupId>\n            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>de.codecentric</groupId>\n            <artifactId>spring-boot-admin-starter-client</artifactId>\n        </dependency>\n    </dependencies>\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.springframework.boot</groupId>\n                <artifactId>spring-boot-maven-plugin</artifactId>\n            </plugin>\n            <plugin>\n                <groupId>io.fabric8</groupId>\n                <artifactId>docker-maven-plugin</artifactId>\n            </plugin>\n        </plugins>\n    </build>\n\n</project>\n"
  },
  {
    "path": "mall-search/src/main/java/com/macro/mall/search/MallSearchApplication.java",
    "content": "package com.macro.mall.search;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\nimport org.springframework.cloud.client.discovery.EnableDiscoveryClient;\n\n@EnableDiscoveryClient\n@SpringBootApplication\npublic class MallSearchApplication {\n\n    public static void main(String[] args) {\n        SpringApplication.run(MallSearchApplication.class, args);\n    }\n}\n"
  },
  {
    "path": "mall-search/src/main/java/com/macro/mall/search/config/MyBatisConfig.java",
    "content": "package com.macro.mall.search.config;\n\nimport org.mybatis.spring.annotation.MapperScan;\nimport org.springframework.context.annotation.Configuration;\n\n/**\n * MyBatis相关配置\n * Created by macro on 2019/4/8.\n */\n@Configuration\n@MapperScan({\"com.macro.mall.mapper\",\"com.macro.mall.search.dao\"})\npublic class MyBatisConfig {\n}\n"
  },
  {
    "path": "mall-search/src/main/java/com/macro/mall/search/config/SpringDocConfig.java",
    "content": "package com.macro.mall.search.config;\n\nimport io.swagger.v3.oas.models.ExternalDocumentation;\nimport io.swagger.v3.oas.models.OpenAPI;\nimport io.swagger.v3.oas.models.info.Info;\nimport io.swagger.v3.oas.models.info.License;\nimport org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.web.servlet.config.annotation.ViewControllerRegistry;\nimport org.springframework.web.servlet.config.annotation.WebMvcConfigurer;\n\n/**\n * SpringDoc相关配置\n * Created by macro on 2024/3/5.\n */\n@Configuration\npublic class SpringDocConfig implements WebMvcConfigurer {\n\n    @Bean\n    public OpenAPI mallSearchOpenAPI() {\n        return new OpenAPI()\n                .info(new Info().title(\"mall搜索系统\")\n                        .description(\"mall搜索相关接口文档\")\n                        .version(\"v1.0.0\")\n                        .license(new License().name(\"Apache 2.0\")\n                                .url(\"https://github.com/macrozheng/mall-learning\")))\n                .externalDocs(new ExternalDocumentation()\n                        .description(\"SpringBoot实战电商项目mall（60K+Star）全套文档\")\n                        .url(\"http://www.macrozheng.com\"));\n    }\n\n    @Override\n    public void addViewControllers(ViewControllerRegistry registry) {\n        //配置访问`/swagger-ui/`路径时可以直接跳转到`/swagger-ui/index.html`\n        registry.addViewController(\"/swagger-ui/\").setViewName(\"redirect:/swagger-ui/index.html\");\n    }\n\n}\n\n"
  },
  {
    "path": "mall-search/src/main/java/com/macro/mall/search/controller/EsProductController.java",
    "content": "package com.macro.mall.search.controller;\n\nimport com.macro.mall.common.api.CommonPage;\nimport com.macro.mall.common.api.CommonResult;\nimport com.macro.mall.search.domain.EsProduct;\nimport com.macro.mall.search.domain.EsProductRelatedInfo;\nimport com.macro.mall.search.service.EsProductService;\nimport io.swagger.v3.oas.annotations.Operation;\nimport io.swagger.v3.oas.annotations.Parameter;\nimport io.swagger.v3.oas.annotations.enums.ParameterIn;\nimport io.swagger.v3.oas.annotations.media.Schema;\nimport io.swagger.v3.oas.annotations.tags.Tag;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.Page;\nimport org.springframework.stereotype.Controller;\nimport org.springframework.web.bind.annotation.*;\n\nimport java.util.List;\n\n/**\n * 搜索商品管理Controller\n * Created by macro on 2018/6/19.\n */\n@Controller\n@Tag(name = \"EsProductController\", description = \"搜索商品管理\")\n@RequestMapping(\"/esProduct\")\npublic class EsProductController {\n    @Autowired\n    private EsProductService esProductService;\n\n    @Operation(summary = \"导入所有数据库中商品到ES\")\n    @RequestMapping(value = \"/importAll\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult<Integer> importAllList() {\n        int count = esProductService.importAll();\n        return CommonResult.success(count);\n    }\n\n    @Operation(summary = \"根据id删除商品\")\n    @RequestMapping(value = \"/delete/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<Object> delete(@PathVariable Long id) {\n        esProductService.delete(id);\n        return CommonResult.success(null);\n    }\n\n    @Operation(summary = \"根据id批量删除商品\")\n    @RequestMapping(value = \"/delete/batch\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult<Object> delete(@RequestParam(\"ids\") List<Long> ids) {\n        esProductService.delete(ids);\n        return CommonResult.success(null);\n    }\n\n    @Operation(summary = \"根据id创建商品\")\n    @RequestMapping(value = \"/create/{id}\", method = RequestMethod.POST)\n    @ResponseBody\n    public CommonResult<EsProduct> create(@PathVariable Long id) {\n        EsProduct esProduct = esProductService.create(id);\n        if (esProduct != null) {\n            return CommonResult.success(esProduct);\n        } else {\n            return CommonResult.failed();\n        }\n    }\n\n    @Operation(summary = \"简单搜索\")\n    @RequestMapping(value = \"/search/simple\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<EsProduct>> search(@RequestParam(required = false) String keyword,\n                                                      @RequestParam(required = false, defaultValue = \"0\") Integer pageNum,\n                                                      @RequestParam(required = false, defaultValue = \"5\") Integer pageSize) {\n        Page<EsProduct> esProductPage = esProductService.search(keyword, pageNum, pageSize);\n        return CommonResult.success(CommonPage.restPage(esProductPage));\n    }\n\n    @Operation(summary = \"综合搜索、筛选、排序\")\n    @Parameter(name = \"sort\", description = \"排序字段:0->按相关度；1->按新品；2->按销量；3->价格从低到高；4->价格从高到低\", in = ParameterIn.QUERY, schema = @Schema(type = \"integer\",defaultValue = \"0\",allowableValues = {\"0\",\"1\",\"2\",\"3\",\"4\"}))\n    @RequestMapping(value = \"/search\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<EsProduct>> search(@RequestParam(required = false) String keyword,\n                                                      @RequestParam(required = false) Long brandId,\n                                                      @RequestParam(required = false) Long productCategoryId,\n                                                      @RequestParam(required = false, defaultValue = \"0\") Integer pageNum,\n                                                      @RequestParam(required = false, defaultValue = \"5\") Integer pageSize,\n                                                      @RequestParam(required = false, defaultValue = \"0\") Integer sort) {\n        Page<EsProduct> esProductPage = esProductService.search(keyword, brandId, productCategoryId, pageNum, pageSize, sort);\n        return CommonResult.success(CommonPage.restPage(esProductPage));\n    }\n\n    @Operation(summary = \"根据商品id推荐商品\")\n    @RequestMapping(value = \"/recommend/{id}\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<CommonPage<EsProduct>> recommend(@PathVariable Long id,\n                                                         @RequestParam(required = false, defaultValue = \"0\") Integer pageNum,\n                                                         @RequestParam(required = false, defaultValue = \"5\") Integer pageSize) {\n        Page<EsProduct> esProductPage = esProductService.recommend(id, pageNum, pageSize);\n        return CommonResult.success(CommonPage.restPage(esProductPage));\n    }\n\n    @Operation(summary = \"获取搜索的相关品牌、分类及筛选属性\")\n    @RequestMapping(value = \"/search/relate\", method = RequestMethod.GET)\n    @ResponseBody\n    public CommonResult<EsProductRelatedInfo> searchRelatedInfo(@RequestParam(required = false) String keyword) {\n        EsProductRelatedInfo productRelatedInfo = esProductService.searchRelatedInfo(keyword);\n        return CommonResult.success(productRelatedInfo);\n    }\n}\n"
  },
  {
    "path": "mall-search/src/main/java/com/macro/mall/search/dao/EsProductDao.java",
    "content": "package com.macro.mall.search.dao;\n\nimport com.macro.mall.search.domain.EsProduct;\nimport org.apache.ibatis.annotations.Param;\n\nimport java.util.List;\n\n/**\n * 搜索商品管理自定义Dao\n * Created by macro on 2018/6/19.\n */\npublic interface EsProductDao {\n    /**\n     * 获取指定ID的搜索商品\n     */\n    List<EsProduct> getAllEsProductList(@Param(\"id\") Long id);\n}\n"
  },
  {
    "path": "mall-search/src/main/java/com/macro/mall/search/domain/EsProduct.java",
    "content": "package com.macro.mall.search.domain;\n\nimport org.springframework.data.annotation.Id;\nimport org.springframework.data.elasticsearch.annotations.Document;\nimport org.springframework.data.elasticsearch.annotations.Field;\nimport org.springframework.data.elasticsearch.annotations.FieldType;\nimport org.springframework.data.elasticsearch.annotations.Setting;\n\nimport java.io.Serializable;\nimport java.math.BigDecimal;\nimport java.util.List;\n\n/**\n * 搜索商品的信息\n * Created by macro on 2018/6/19.\n */\n@Document(indexName = \"pms\")\n@Setting(shards = 1,replicas = 0)\npublic class EsProduct implements Serializable {\n    private static final long serialVersionUID = -1L;\n    @Id\n    private Long id;\n    @Field(type = FieldType.Keyword)\n    private String productSn;\n    private Long brandId;\n    @Field(type = FieldType.Keyword)\n    private String brandName;\n    private Long productCategoryId;\n    @Field(type = FieldType.Keyword)\n    private String productCategoryName;\n    private String pic;\n    @Field(analyzer = \"ik_max_word\",type = FieldType.Text)\n    private String name;\n    @Field(analyzer = \"ik_max_word\",type = FieldType.Text)\n    private String subTitle;\n    @Field(analyzer = \"ik_max_word\",type = FieldType.Text)\n    private String keywords;\n    private BigDecimal price;\n    private Integer sale;\n    private Integer newStatus;\n    private Integer recommandStatus;\n    private Integer stock;\n    private Integer promotionType;\n    private Integer sort;\n    @Field(type =FieldType.Nested)\n    private List<EsProductAttributeValue> attrValueList;\n\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public String getProductSn() {\n        return productSn;\n    }\n\n    public void setProductSn(String productSn) {\n        this.productSn = productSn;\n    }\n\n    public Long getBrandId() {\n        return brandId;\n    }\n\n    public void setBrandId(Long brandId) {\n        this.brandId = brandId;\n    }\n\n    public String getBrandName() {\n        return brandName;\n    }\n\n    public void setBrandName(String brandName) {\n        this.brandName = brandName;\n    }\n\n    public Long getProductCategoryId() {\n        return productCategoryId;\n    }\n\n    public void setProductCategoryId(Long productCategoryId) {\n        this.productCategoryId = productCategoryId;\n    }\n\n    public String getProductCategoryName() {\n        return productCategoryName;\n    }\n\n    public void setProductCategoryName(String productCategoryName) {\n        this.productCategoryName = productCategoryName;\n    }\n\n    public String getPic() {\n        return pic;\n    }\n\n    public void setPic(String pic) {\n        this.pic = pic;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    public String getSubTitle() {\n        return subTitle;\n    }\n\n    public void setSubTitle(String subTitle) {\n        this.subTitle = subTitle;\n    }\n\n    public BigDecimal getPrice() {\n        return price;\n    }\n\n    public void setPrice(BigDecimal price) {\n        this.price = price;\n    }\n\n    public Integer getSale() {\n        return sale;\n    }\n\n    public void setSale(Integer sale) {\n        this.sale = sale;\n    }\n\n    public Integer getNewStatus() {\n        return newStatus;\n    }\n\n    public void setNewStatus(Integer newStatus) {\n        this.newStatus = newStatus;\n    }\n\n    public Integer getRecommandStatus() {\n        return recommandStatus;\n    }\n\n    public void setRecommandStatus(Integer recommandStatus) {\n        this.recommandStatus = recommandStatus;\n    }\n\n    public Integer getStock() {\n        return stock;\n    }\n\n    public void setStock(Integer stock) {\n        this.stock = stock;\n    }\n\n    public Integer getPromotionType() {\n        return promotionType;\n    }\n\n    public void setPromotionType(Integer promotionType) {\n        this.promotionType = promotionType;\n    }\n\n    public Integer getSort() {\n        return sort;\n    }\n\n    public void setSort(Integer sort) {\n        this.sort = sort;\n    }\n\n    public List<EsProductAttributeValue> getAttrValueList() {\n        return attrValueList;\n    }\n\n    public void setAttrValueList(List<EsProductAttributeValue> attrValueList) {\n        this.attrValueList = attrValueList;\n    }\n\n    public String getKeywords() {\n        return keywords;\n    }\n\n    public void setKeywords(String keywords) {\n        this.keywords = keywords;\n    }\n}\n"
  },
  {
    "path": "mall-search/src/main/java/com/macro/mall/search/domain/EsProductAttributeValue.java",
    "content": "package com.macro.mall.search.domain;\n\nimport org.springframework.data.elasticsearch.annotations.Field;\nimport org.springframework.data.elasticsearch.annotations.FieldType;\n\nimport java.io.Serializable;\n\n/**\n * 搜索商品的属性信息\n * Created by macro on 2018/6/27.\n */\npublic class EsProductAttributeValue implements Serializable {\n    private static final long serialVersionUID = 1L;\n    private Long id;\n    private Long productAttributeId;\n    //属性值\n    @Field(type = FieldType.Keyword)\n    private String value;\n    //属性参数：0->规格；1->参数\n    private Integer type;\n    //属性名称\n    @Field(type=FieldType.Keyword)\n    private String name;\n    public Long getId() {\n        return id;\n    }\n\n    public void setId(Long id) {\n        this.id = id;\n    }\n\n    public Long getProductAttributeId() {\n        return productAttributeId;\n    }\n\n    public void setProductAttributeId(Long productAttributeId) {\n        this.productAttributeId = productAttributeId;\n    }\n\n    public String getValue() {\n        return value;\n    }\n\n    public void setValue(String value) {\n        this.value = value;\n    }\n\n    public Integer getType() {\n        return type;\n    }\n\n    public void setType(Integer type) {\n        this.type = type;\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n}\n"
  },
  {
    "path": "mall-search/src/main/java/com/macro/mall/search/domain/EsProductRelatedInfo.java",
    "content": "package com.macro.mall.search.domain;\n\nimport java.util.List;\n\n/**\n * 搜索商品的品牌名称，分类名称及属性\n * Created by macro on 2018/6/27.\n */\npublic class EsProductRelatedInfo {\n    private List<String> brandNames;\n    private List<String> productCategoryNames;\n    private List<ProductAttr>   productAttrs;\n\n    public List<String> getBrandNames() {\n        return brandNames;\n    }\n\n    public void setBrandNames(List<String> brandNames) {\n        this.brandNames = brandNames;\n    }\n\n    public List<String> getProductCategoryNames() {\n        return productCategoryNames;\n    }\n\n    public void setProductCategoryNames(List<String> productCategoryNames) {\n        this.productCategoryNames = productCategoryNames;\n    }\n\n    public List<ProductAttr> getProductAttrs() {\n        return productAttrs;\n    }\n\n    public void setProductAttrs(List<ProductAttr> productAttrs) {\n        this.productAttrs = productAttrs;\n    }\n\n    public static class ProductAttr{\n        private Long attrId;\n        private String attrName;\n        private List<String> attrValues;\n\n        public Long getAttrId() {\n            return attrId;\n        }\n\n        public void setAttrId(Long attrId) {\n            this.attrId = attrId;\n        }\n\n        public List<String> getAttrValues() {\n            return attrValues;\n        }\n\n        public void setAttrValues(List<String> attrValues) {\n            this.attrValues = attrValues;\n        }\n\n        public String getAttrName() {\n            return attrName;\n        }\n\n        public void setAttrName(String attrName) {\n            this.attrName = attrName;\n        }\n    }\n}\n"
  },
  {
    "path": "mall-search/src/main/java/com/macro/mall/search/repository/EsProductRepository.java",
    "content": "package com.macro.mall.search.repository;\n\nimport com.macro.mall.search.domain.EsProduct;\nimport org.springframework.data.domain.Page;\nimport org.springframework.data.domain.Pageable;\nimport org.springframework.data.elasticsearch.repository.ElasticsearchRepository;\n\n/**\n * 搜索商品ES操作类\n * Created by macro on 2018/6/19.\n */\npublic interface EsProductRepository extends ElasticsearchRepository<EsProduct, Long> {\n    /**\n     * 搜索查询\n     *\n     * @param name              商品名称\n     * @param subTitle          商品标题\n     * @param keywords          商品关键字\n     * @param page              分页信息\n     */\n    Page<EsProduct> findByNameOrSubTitleOrKeywords(String name, String subTitle, String keywords,Pageable page);\n\n}\n"
  },
  {
    "path": "mall-search/src/main/java/com/macro/mall/search/service/EsProductService.java",
    "content": "package com.macro.mall.search.service;\n\nimport com.macro.mall.search.domain.EsProduct;\nimport com.macro.mall.search.domain.EsProductRelatedInfo;\nimport org.springframework.data.domain.Page;\n\nimport java.util.List;\n\n/**\n * 商品搜索管理Service\n * Created by macro on 2018/6/19.\n */\npublic interface EsProductService {\n    /**\n     * 从数据库中导入所有商品到ES\n     */\n    int importAll();\n\n    /**\n     * 根据id删除商品\n     */\n    void delete(Long id);\n\n    /**\n     * 根据id创建商品\n     */\n    EsProduct create(Long id);\n\n    /**\n     * 批量删除商品\n     */\n    void delete(List<Long> ids);\n\n    /**\n     * 根据关键字搜索名称或者副标题\n     */\n    Page<EsProduct> search(String keyword, Integer pageNum, Integer pageSize);\n\n    /**\n     * 根据关键字搜索名称或者副标题复合查询\n     */\n    Page<EsProduct> search(String keyword, Long brandId, Long productCategoryId, Integer pageNum, Integer pageSize,Integer sort);\n\n    /**\n     * 根据商品id推荐相关商品\n     */\n    Page<EsProduct> recommend(Long id, Integer pageNum, Integer pageSize);\n\n    /**\n     * 获取搜索词相关品牌、分类、属性\n     */\n    EsProductRelatedInfo searchRelatedInfo(String keyword);\n}\n"
  },
  {
    "path": "mall-search/src/main/java/com/macro/mall/search/service/impl/EsProductServiceImpl.java",
    "content": "package com.macro.mall.search.service.impl;\n\nimport cn.hutool.core.collection.ListUtil;\nimport cn.hutool.core.map.MapUtil;\nimport cn.hutool.core.util.StrUtil;\nimport co.elastic.clients.elasticsearch._types.aggregations.*;\nimport co.elastic.clients.elasticsearch._types.aggregations.Aggregation;\nimport co.elastic.clients.elasticsearch._types.query_dsl.*;\nimport co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;\nimport co.elastic.clients.util.ObjectBuilder;\nimport com.macro.mall.search.dao.EsProductDao;\nimport com.macro.mall.search.domain.EsProduct;\nimport com.macro.mall.search.domain.EsProductRelatedInfo;\nimport com.macro.mall.search.repository.EsProductRepository;\nimport com.macro.mall.search.service.EsProductService;\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.data.domain.*;\nimport org.springframework.data.elasticsearch.client.elc.*;\nimport org.springframework.data.elasticsearch.core.SearchHit;\nimport org.springframework.data.elasticsearch.core.SearchHits;\nimport org.springframework.stereotype.Service;\nimport org.springframework.util.CollectionUtils;\n\nimport java.util.*;\nimport java.util.function.Function;\nimport java.util.stream.Collectors;\n\n\n/**\n * 搜索商品管理Service实现类\n * Created by macro on 2018/6/19.\n */\n@Service\npublic class EsProductServiceImpl implements EsProductService {\n    private static final Logger LOGGER = LoggerFactory.getLogger(EsProductServiceImpl.class);\n    @Autowired\n    private EsProductDao productDao;\n    @Autowired\n    private EsProductRepository productRepository;\n    @Autowired\n    private ElasticsearchTemplate elasticsearchTemplate;\n    @Override\n    public int importAll() {\n        List<EsProduct> esProductList = productDao.getAllEsProductList(null);\n        Iterable<EsProduct> esProductIterable = productRepository.saveAll(esProductList);\n        Iterator<EsProduct> iterator = esProductIterable.iterator();\n        int result = 0;\n        while (iterator.hasNext()) {\n            result++;\n            iterator.next();\n        }\n        return result;\n    }\n\n    @Override\n    public void delete(Long id) {\n        productRepository.deleteById(id);\n    }\n\n    @Override\n    public EsProduct create(Long id) {\n        EsProduct result = null;\n        List<EsProduct> esProductList = productDao.getAllEsProductList(id);\n        if (esProductList.size() > 0) {\n            EsProduct esProduct = esProductList.get(0);\n            result = productRepository.save(esProduct);\n        }\n        return result;\n    }\n\n    @Override\n    public void delete(List<Long> ids) {\n        if (!CollectionUtils.isEmpty(ids)) {\n            List<EsProduct> esProductList = new ArrayList<>();\n            for (Long id : ids) {\n                EsProduct esProduct = new EsProduct();\n                esProduct.setId(id);\n                esProductList.add(esProduct);\n            }\n            productRepository.deleteAll(esProductList);\n        }\n    }\n\n    @Override\n    public Page<EsProduct> search(String keyword, Integer pageNum, Integer pageSize) {\n        Pageable pageable = PageRequest.of(pageNum, pageSize);\n        return productRepository.findByNameOrSubTitleOrKeywords(keyword, keyword, keyword, pageable);\n    }\n\n    @Override\n    public Page<EsProduct> search(String keyword, Long brandId, Long productCategoryId, Integer pageNum, Integer pageSize,Integer sort) {\n        Pageable pageable = PageRequest.of(pageNum, pageSize);\n        NativeQueryBuilder nativeQueryBuilder = new NativeQueryBuilder();\n        //分页\n        nativeQueryBuilder.withPageable(pageable);\n        //过滤\n        if (brandId != null || productCategoryId != null) {\n            Query boolQuery = QueryBuilders.bool(builder -> {\n                if (brandId != null) {\n                    builder.must(QueryBuilders.term(b -> b.field(\"brandId\").value(brandId)));\n                }\n                if (productCategoryId != null) {\n                    builder.must(QueryBuilders.term(b -> b.field(\"productCategoryId\").value(productCategoryId)));\n                }\n                return builder;\n            });\n            nativeQueryBuilder.withFilter(boolQuery);\n        }\n        //搜索\n        if (StrUtil.isEmpty(keyword)) {\n            nativeQueryBuilder.withQuery(QueryBuilders.matchAll(builder -> builder));\n        } else {\n            List<FunctionScore> functionScoreList = new ArrayList<>();\n            functionScoreList.add(new FunctionScore.Builder()\n                    .filter(QueryBuilders.match(builder -> builder.field(\"name\").query(keyword)))\n                    .weight(10.0)\n                    .build());\n            functionScoreList.add(new FunctionScore.Builder()\n                    .filter(QueryBuilders.match(builder -> builder.field(\"subTitle\").query(keyword)))\n                    .weight(5.0)\n                    .build());\n            functionScoreList.add(new FunctionScore.Builder()\n                    .filter(QueryBuilders.match(builder -> builder.field(\"keywords\").query(keyword)))\n                    .weight(2.0)\n                    .build());\n            FunctionScoreQuery.Builder functionScoreQueryBuilder = QueryBuilders.functionScore()\n                    .functions(functionScoreList)\n                    .scoreMode(FunctionScoreMode.Sum)\n                    .minScore(2.0);\n            nativeQueryBuilder.withQuery(builder -> builder.functionScore(functionScoreQueryBuilder.build()));\n        }\n        //排序\n        if(sort==1){\n            //按新品从新到旧\n            nativeQueryBuilder.withSort(Sort.by(Sort.Order.desc(\"id\")));\n        }else if(sort==2){\n            //按销量从高到低\n            nativeQueryBuilder.withSort(Sort.by(Sort.Order.desc(\"sale\")));\n        }else if(sort==3){\n            //按价格从低到高\n            nativeQueryBuilder.withSort(Sort.by(Sort.Order.asc(\"price\")));\n        }else if(sort==4){\n            //按价格从高到低\n            nativeQueryBuilder.withSort(Sort.by(Sort.Order.desc(\"price\")));\n        }\n        //按相关度\n        nativeQueryBuilder.withSort(Sort.by(Sort.Order.desc(\"_score\")));\n        NativeQuery nativeQuery = nativeQueryBuilder.build();\n        LOGGER.info(\"DSL:{}\", nativeQuery.getQuery().toString());\n        SearchHits<EsProduct> searchHits = elasticsearchTemplate.search(nativeQuery, EsProduct.class);\n        if(searchHits.getTotalHits()<=0){\n            return new PageImpl<>(ListUtil.empty(),pageable,0);\n        }\n        List<EsProduct> searchProductList = searchHits.stream().map(SearchHit::getContent).collect(Collectors.toList());\n        return new PageImpl<>(searchProductList,pageable,searchHits.getTotalHits());\n    }\n\n    @Override\n    public Page<EsProduct> recommend(Long id, Integer pageNum, Integer pageSize) {\n        Pageable pageable = PageRequest.of(pageNum, pageSize);\n        List<EsProduct> esProductList = productDao.getAllEsProductList(id);\n        if (esProductList.size() > 0) {\n            EsProduct esProduct = esProductList.get(0);\n            String keyword = esProduct.getName();\n            Long brandId = esProduct.getBrandId();\n            Long productCategoryId = esProduct.getProductCategoryId();\n            //构建查询条件\n            NativeQueryBuilder nativeQueryBuilder = new NativeQueryBuilder();\n            //分页\n            nativeQueryBuilder.withPageable(pageable);\n            //用于过滤掉相同的商品\n            nativeQueryBuilder.withFilter(QueryBuilders.bool(build -> build.mustNot(QueryBuilders.term(b->b.field(\"id\").value(id)))));\n            //根据商品标题、品牌、分类进行搜索\n            List<FunctionScore> functionScoreList = new ArrayList<>();\n            functionScoreList.add(new FunctionScore.Builder()\n                    .filter(QueryBuilders.match(builder -> builder.field(\"name\").query(keyword)))\n                    .weight(8.0)\n                    .build());\n            functionScoreList.add(new FunctionScore.Builder()\n                    .filter(QueryBuilders.match(builder -> builder.field(\"subTitle\").query(keyword)))\n                    .weight(2.0)\n                    .build());\n            functionScoreList.add(new FunctionScore.Builder()\n                    .filter(QueryBuilders.match(builder -> builder.field(\"keywords\").query(keyword)))\n                    .weight(2.0)\n                    .build());\n            functionScoreList.add(new FunctionScore.Builder()\n                    .filter(QueryBuilders.match(builder -> builder.field(\"brandId\").query(brandId)))\n                    .weight(5.0)\n                    .build());\n            functionScoreList.add(new FunctionScore.Builder()\n                    .filter(QueryBuilders.match(builder -> builder.field(\"productCategoryId\").query(productCategoryId)))\n                    .weight(3.0)\n                    .build());\n            FunctionScoreQuery.Builder functionScoreQueryBuilder = QueryBuilders.functionScore()\n                    .functions(functionScoreList)\n                    .scoreMode(FunctionScoreMode.Sum)\n                    .minScore(2.0);\n            nativeQueryBuilder.withQuery(builder -> builder.functionScore(functionScoreQueryBuilder.build()));\n            NativeQuery nativeQuery = nativeQueryBuilder.build();\n            LOGGER.info(\"DSL:{}\", nativeQuery.getQuery().toString());\n            SearchHits<EsProduct> searchHits = elasticsearchTemplate.search(nativeQuery, EsProduct.class);\n            if(searchHits.getTotalHits()<=0){\n                return new PageImpl<>(ListUtil.empty(),pageable,0);\n            }\n            List<EsProduct> searchProductList = searchHits.stream().map(SearchHit::getContent).collect(Collectors.toList());\n            return new PageImpl<>(searchProductList,pageable,searchHits.getTotalHits());\n        }\n        return new PageImpl<>(ListUtil.empty());\n    }\n\n    @Override\n    public EsProductRelatedInfo searchRelatedInfo(String keyword) {\n        NativeQueryBuilder nativeQueryBuilder = new NativeQueryBuilder();\n        //搜索条件\n        if(StrUtil.isEmpty(keyword)){\n            nativeQueryBuilder.withQuery(QueryBuilders.matchAll(builder -> builder));\n        }else{\n            nativeQueryBuilder.withQuery(QueryBuilders.multiMatch(builder -> builder.fields(\"name\",\"subTitle\",\"keywords\").query(keyword)));\n        }\n        //聚合搜索品牌名称\n        nativeQueryBuilder.withAggregation(\"brandNames\",AggregationBuilders.terms(builder -> builder.field(\"brandName\").size(10)));\n        //聚合搜索分类名称\n        nativeQueryBuilder.withAggregation(\"productCategoryNames\",AggregationBuilders.terms(builder -> builder.field(\"productCategoryName\").size(10)));\n        //聚合搜索商品属性，去除type=0的属性\n        Aggregation aggregation = new Aggregation.Builder().nested(builder -> builder.path(\"attrValueList\"))\n                .aggregations(\"productAttrs\",new Aggregation.Builder()\n                        .filter(b->b.term(a->a.field(\"attrValueList.type\").value(\"1\")))\n                        .aggregations(\"attrIds\",new Aggregation.Builder().terms(b->b.field(\"attrValueList.productAttributeId\").size(10))\n                                .aggregations(\"attrValues\",new Aggregation.Builder().terms(b->b.field(\"attrValueList.value\").size(10)).build())\n                                .aggregations(\"attrNames\",new Aggregation.Builder().terms(b->b.field(\"attrValueList.name\").size(10)).build())\n                                .build()).build()).build();\n        nativeQueryBuilder.withAggregation(\"allAttrValues\",aggregation);\n        NativeQuery nativeQuery = nativeQueryBuilder.build();\n        LOGGER.info(\"DSL:{}\", nativeQueryBuilder.getQuery().toString());\n        SearchHits<EsProduct> searchHits = elasticsearchTemplate.search(nativeQuery, EsProduct.class);\n        return convertProductRelatedInfo(searchHits);\n    }\n\n    /**\n     * 将返回结果转换为对象\n     */\n    private EsProductRelatedInfo convertProductRelatedInfo(SearchHits<EsProduct> response) {\n        EsProductRelatedInfo productRelatedInfo = new EsProductRelatedInfo();\n        Map<String, ElasticsearchAggregation> esAggregationMap = ((ElasticsearchAggregations) response.getAggregations()).aggregationsAsMap();\n        //设置品牌\n        ElasticsearchAggregation brandNames = esAggregationMap.get(\"brandNames\");\n        List<String> brandNameList = new ArrayList<>();\n        List<StringTermsBucket> brandNameBuckets = ((StringTermsAggregate) brandNames.aggregation().getAggregate()._get()).buckets().array();\n        for(int i = 0; i<brandNameBuckets.size(); i++){\n            brandNameList.add(brandNameBuckets.get(i).key().stringValue());\n        }\n        productRelatedInfo.setBrandNames(brandNameList);\n        //设置分类\n        ElasticsearchAggregation productCategoryNames = esAggregationMap.get(\"productCategoryNames\");\n        List<String> productCategoryNameList = new ArrayList<>();\n        List<StringTermsBucket> productCategoryNameBuckets = ((StringTermsAggregate) productCategoryNames.aggregation().getAggregate()._get()).buckets().array();\n        for(int i = 0; i<productCategoryNameBuckets.size(); i++){\n            productCategoryNameList.add(productCategoryNameBuckets.get(i).key().stringValue());\n        }\n        productRelatedInfo.setProductCategoryNames(productCategoryNameList);\n        //设置参数\n        ElasticsearchAggregation productAttrs = esAggregationMap.get(\"allAttrValues\");\n        List<LongTermsBucket> attrIdBuckets = ((LongTermsAggregate) ((FilterAggregate) ((NestedAggregate) productAttrs.aggregation().getAggregate()._get()).aggregations().get(\"productAttrs\")._get()).aggregations().get(\"attrIds\")._get()).buckets().array();\n        List<EsProductRelatedInfo.ProductAttr> attrList = new ArrayList<>();\n        for (LongTermsBucket item : attrIdBuckets) {\n            EsProductRelatedInfo.ProductAttr attr = new EsProductRelatedInfo.ProductAttr();\n            attr.setAttrId(item.key());\n            List<String> attrValueList = new ArrayList<>();\n            List<StringTermsBucket> attrValues = ((StringTermsAggregate) item.aggregations().get(\"attrValues\")._get()).buckets().array();\n            List<StringTermsBucket> attrNames = ((StringTermsAggregate) item.aggregations().get(\"attrNames\")._get()).buckets().array();\n            for (StringTermsBucket attrValue : attrValues) {\n                attrValueList.add(attrValue.key().stringValue());\n            }\n            attr.setAttrValues(attrValueList);\n            if(!CollectionUtils.isEmpty(attrNames)){\n                String attrName = attrNames.get(0).key().stringValue();\n                attr.setAttrName(attrName);\n            }\n            attrList.add(attr);\n        }\n        productRelatedInfo.setProductAttrs(attrList);\n        return productRelatedInfo;\n    }\n}\n"
  },
  {
    "path": "mall-search/src/main/resources/application.yml",
    "content": "server:\n  port: 8081\nspring:\n  mvc:\n    pathmatch:\n      matching-strategy: ant_path_matcher\n  datasource:\n    url: jdbc:mysql://localhost:3306/mall?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false\n    username: root\n    password: root\n    druid:\n      initial-size: 5 #连接池初始化大小\n      min-idle: 10 #最小空闲连接数\n      max-active: 20 #最大连接数\n      web-stat-filter:\n        exclusions: \"*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*\" #不统计这些请求数据\n      stat-view-servlet: #访问监控网页的登录用户名和密码\n        login-username: druid\n        login-password: druid\n  data:\n    elasticsearch:\n      repositories:\n        enabled: true\n  elasticsearch:\n    uris: localhost:9200\nmybatis:\n  mapper-locations:\n    - classpath:dao/*.xml\n    - classpath*:com/**/mapper/*.xml\nmanagement:\n  endpoints:\n    web:\n      exposure:\n        include: '*' #暴露Actuator的监控端点\n  endpoint:\n    health:\n      show-details: always #显示健康的详细信息\n    env:\n      show-values: always #默认Actuator的环境变量会以****显示，这里开启显示\n    configprops:\n      show-values: always #默认Actuator的配置属性会以****显示，这里开启显示\n    info:\n      enabled: true\nspringdoc:\n  swagger-ui:\n    # 修改Swagger UI路径\n    path: /swagger-ui.html\n    # 开启Swagger UI界面\n    enabled: true\n    # 用于配置tag和operation的展开方式，这里配置为都不展开\n    doc-expansion: 'none'\n  api-docs:\n    # 修改api-docs路径\n    path: /v3/api-docs\n    # 开启api-docs\n    enabled: true\n  group-configs:\n    - group: 'mall-search'\n      packages-to-scan: com.macro.mall.search.controller\n\n\n\n"
  },
  {
    "path": "mall-search/src/main/resources/bootstrap-dev.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://localhost:8848\n      config:\n        server-addr: http://localhost:8848\n        file-extension: yaml"
  },
  {
    "path": "mall-search/src/main/resources/bootstrap-prod.yml",
    "content": "spring:\n  cloud:\n    nacos:\n      discovery:\n        server-addr: http://nacos-registry:8848\n      config:\n        server-addr: http://nacos-registry:8848\n        file-extension: yaml"
  },
  {
    "path": "mall-search/src/main/resources/bootstrap.yml",
    "content": "spring:\n  profiles:\n    active: dev\n  application:\n    name: mall-search"
  },
  {
    "path": "mall-search/src/main/resources/dao/EsProductDao.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org/dtd/mybatis-3-mapper.dtd\">\n<mapper namespace=\"com.macro.mall.search.dao.EsProductDao\">\n    <resultMap id=\"esProductListMap\" type=\"com.macro.mall.search.domain.EsProduct\" autoMapping=\"true\">\n        <id column=\"id\" jdbcType=\"BIGINT\" property=\"id\" />\n        <collection property=\"attrValueList\" columnPrefix=\"attr_\" ofType=\"com.macro.mall.search.domain.EsProductAttributeValue\">\n            <id column=\"id\" property=\"id\" jdbcType=\"BIGINT\"/>\n            <result column=\"product_attribute_id\" property=\"productAttributeId\" jdbcType=\"BIGINT\"/>\n            <result column=\"value\" property=\"value\" jdbcType=\"VARCHAR\"/>\n            <result column=\"type\" property=\"type\"/>\n            <result column=\"name\" property=\"name\"/>\n        </collection>\n    </resultMap>\n    <select id=\"getAllEsProductList\" resultMap=\"esProductListMap\">\n        select\n            p.id id,\n            p.product_sn productSn,\n            p.brand_id brandId,\n            p.brand_name brandName,\n            p.product_category_id productCategoryId,\n            p.product_category_name productCategoryName,\n            p.pic pic,\n            p.name name,\n            p.sub_title subTitle,\n            p.price price,\n            p.sale sale,\n            p.new_status newStatus,\n            p.recommand_status recommandStatus,\n            p.stock stock,\n            p.promotion_type promotionType,\n            p.keywords keywords,\n            p.sort sort,\n            pav.id attr_id,\n            pav.value attr_value,\n            pav.product_attribute_id attr_product_attribute_id,\n            pa.type attr_type,\n            pa.name attr_name\n        from pms_product p\n        left join pms_product_attribute_value pav on p.id = pav.product_id\n        left join pms_product_attribute pa on pav.product_attribute_id= pa.id\n        where delete_status = 0 and publish_status = 1\n        <if test=\"id!=null\">\n            and p.id=#{id}\n        </if>\n    </select>\n</mapper>"
  },
  {
    "path": "mall-search/src/test/java/com/macro/mall/search/MallSearchApplicationTests.java",
    "content": "package com.macro.mall.search;\n\nimport com.macro.mall.search.dao.EsProductDao;\nimport com.macro.mall.search.domain.EsProduct;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.boot.test.context.SpringBootTest;\nimport org.springframework.data.elasticsearch.client.elc.ElasticsearchTemplate;\nimport org.springframework.data.elasticsearch.core.IndexOperations;\n\nimport java.util.List;\nimport java.util.Map;\n\n@SpringBootTest\npublic class MallSearchApplicationTests {\n    @Autowired\n    private EsProductDao productDao;\n    @Autowired\n    private ElasticsearchTemplate elasticsearchTemplate;\n    @Test\n    public void contextLoads() {\n    }\n    @Test\n    public void testGetAllEsProductList(){\n        List<EsProduct> esProductList = productDao.getAllEsProductList(null);\n        System.out.print(esProductList);\n    }\n    @Test\n    public void testEsProductMapping(){\n        IndexOperations indexOperations = elasticsearchTemplate.indexOps(EsProduct.class);\n        indexOperations.putMapping(indexOperations.createMapping(EsProduct.class));\n        Map mapping = indexOperations.getMapping();\n        System.out.println(mapping);\n    }\n\n}\n"
  },
  {
    "path": "pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <groupId>com.macro.mall</groupId>\n    <artifactId>mall-swarm</artifactId>\n    <version>1.0-SNAPSHOT</version>\n    <packaging>pom</packaging>\n\n    <modules>\n        <module>mall-common</module>\n        <module>mall-mbg</module>\n        <module>mall-demo</module>\n        <module>mall-admin</module>\n        <module>mall-search</module>\n        <module>mall-portal</module>\n        <module>mall-monitor</module>\n        <module>mall-gateway</module>\n        <module>mall-auth</module>\n    </modules>\n\n    <parent>\n        <groupId>org.springframework.boot</groupId>\n        <artifactId>spring-boot-starter-parent</artifactId>\n        <version>3.2.2</version>\n        <relativePath/> <!-- lookup parent from repository -->\n    </parent>\n\n    <properties>\n        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>\n        <skipTests>true</skipTests>\n        <docker.host>http://192.168.3.101:2375</docker.host>\n        <docker.maven.plugin.version>0.43.3</docker.maven.plugin.version>\n        <java.version>17</java.version>\n        <spring-boot.version>3.2.2</spring-boot.version>\n        <spring-cloud.version>2023.0.1</spring-cloud.version>\n        <spring-cloud-alibaba.version>2023.0.1.0</spring-cloud-alibaba.version>\n        <pagehelper-starter.version>2.1.0</pagehelper-starter.version>\n        <pagehelper.version>6.1.0</pagehelper.version>\n        <druid.version>1.2.9</druid.version>\n        <hutool.version>5.8.16</hutool.version>\n        <mybatis-generator.version>1.4.2</mybatis-generator.version>\n        <mybatis.version>3.5.14</mybatis.version>\n        <mybatis-spring-boot-starter.version>3.0.3</mybatis-spring-boot-starter.version>\n        <mysql-connector.version>8.0.29</mysql-connector.version>\n        <spring-data-commons.version>3.2.2</spring-data-commons.version>\n        <aliyun-oss.version>2.5.0</aliyun-oss.version>\n        <alipay-sdk.version>4.38.61.ALL</alipay-sdk.version>\n        <logstash-logback.version>5.3</logstash-logback.version>\n        <spring-boot-admin.version>3.2.2</spring-boot-admin.version>\n        <minio.version>8.4.5</minio.version>\n        <knife4j.version>4.5.0</knife4j.version>\n        <sa-token.version>1.37.0</sa-token.version>\n        <mall-common.version>1.0-SNAPSHOT</mall-common.version>\n        <mall-mbg.version>1.0-SNAPSHOT</mall-mbg.version>\n    </properties>\n\n    <dependencies>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-actuator</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-aop</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-starter-test</artifactId>\n            <scope>test</scope>\n        </dependency>\n        <dependency>\n            <groupId>cn.hutool</groupId>\n            <artifactId>hutool-all</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.projectlombok</groupId>\n            <artifactId>lombok</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.springframework.boot</groupId>\n            <artifactId>spring-boot-configuration-processor</artifactId>\n            <optional>true</optional>\n        </dependency>\n    </dependencies>\n\n    <dependencyManagement>\n        <dependencies>\n            <!--Spring Cloud 相关依赖-->\n            <dependency>\n                <groupId>org.springframework.cloud</groupId>\n                <artifactId>spring-cloud-dependencies</artifactId>\n                <version>${spring-cloud.version}</version>\n                <type>pom</type>\n                <scope>import</scope>\n            </dependency>\n            <!--Spring Cloud Alibaba 相关依赖-->\n            <dependency>\n                <groupId>com.alibaba.cloud</groupId>\n                <artifactId>spring-cloud-alibaba-dependencies</artifactId>\n                <version>${spring-cloud-alibaba.version}</version>\n                <type>pom</type>\n                <scope>import</scope>\n            </dependency>\n            <!--mall通用模块-->\n            <dependency>\n                <groupId>com.macro.mall</groupId>\n                <artifactId>mall-common</artifactId>\n                <version>${mall-common.version}</version>\n            </dependency>\n            <!--mall中MBG生成模块-->\n            <dependency>\n                <groupId>com.macro.mall</groupId>\n                <artifactId>mall-mbg</artifactId>\n                <version>${mall-mbg.version}</version>\n            </dependency>\n            <!--MyBatis分页插件starter-->\n            <dependency>\n                <groupId>com.github.pagehelper</groupId>\n                <artifactId>pagehelper-spring-boot-starter</artifactId>\n                <version>${pagehelper-starter.version}</version>\n            </dependency>\n            <!--MyBatis分页插件-->\n            <dependency>\n                <groupId>com.github.pagehelper</groupId>\n                <artifactId>pagehelper</artifactId>\n                <version>${pagehelper.version}</version>\n            </dependency>\n            <!--MyBatis的Starter依赖-->\n            <dependency>\n                <groupId>org.mybatis.spring.boot</groupId>\n                <artifactId>mybatis-spring-boot-starter</artifactId>\n                <version>${mybatis-spring-boot-starter.version}</version>\n            </dependency>\n            <!--集成druid连接池-->\n            <dependency>\n                <groupId>com.alibaba</groupId>\n                <artifactId>druid-spring-boot-starter</artifactId>\n                <version>${druid.version}</version>\n            </dependency>\n            <!--Hutool Java工具包-->\n            <dependency>\n                <groupId>cn.hutool</groupId>\n                <artifactId>hutool-all</artifactId>\n                <version>${hutool.version}</version>\n            </dependency>\n            <!--Knife4j API文档生产工具-->\n            <dependency>\n                <groupId>com.github.xiaoymin</groupId>\n                <artifactId>knife4j-gateway-spring-boot-starter</artifactId>\n                <version>${knife4j.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>com.github.xiaoymin</groupId>\n                <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>\n                <version>${knife4j.version}</version>\n            </dependency>\n            <!-- MyBatis 生成器 -->\n            <dependency>\n                <groupId>org.mybatis.generator</groupId>\n                <artifactId>mybatis-generator-core</artifactId>\n                <version>${mybatis-generator.version}</version>\n            </dependency>\n            <!-- MyBatis-->\n            <dependency>\n                <groupId>org.mybatis</groupId>\n                <artifactId>mybatis</artifactId>\n                <version>${mybatis.version}</version>\n            </dependency>\n            <!--Mysql数据库驱动-->\n            <dependency>\n                <groupId>mysql</groupId>\n                <artifactId>mysql-connector-java</artifactId>\n                <version>${mysql-connector.version}</version>\n            </dependency>\n            <!--SpringData工具包-->\n            <dependency>\n                <groupId>org.springframework.data</groupId>\n                <artifactId>spring-data-commons</artifactId>\n                <version>${spring-data-commons.version}</version>\n            </dependency>\n            <!-- 阿里云OSS -->\n            <dependency>\n                <groupId>com.aliyun.oss</groupId>\n                <artifactId>aliyun-sdk-oss</artifactId>\n                <version>${aliyun-oss.version}</version>\n            </dependency>\n            <!--集成logstash-->\n            <dependency>\n                <groupId>net.logstash.logback</groupId>\n                <artifactId>logstash-logback-encoder</artifactId>\n                <version>${logstash-logback.version}</version>\n            </dependency>\n            <!--集成SpringBoot Admin监控-->\n            <dependency>\n                <groupId>de.codecentric</groupId>\n                <artifactId>spring-boot-admin-starter-server</artifactId>\n                <version>${spring-boot-admin.version}</version>\n            </dependency>\n            <!--集成SpringBoot Admin监控客户端-->\n            <dependency>\n                <groupId>de.codecentric</groupId>\n                <artifactId>spring-boot-admin-starter-client</artifactId>\n                <version>${spring-boot-admin.version}</version>\n            </dependency>\n            <!--MinIO JAVA SDK-->\n            <dependency>\n                <groupId>io.minio</groupId>\n                <artifactId>minio</artifactId>\n                <version>${minio.version}</version>\n            </dependency>\n            <!--支付宝支付Java SDK-->\n            <dependency>\n                <groupId>com.alipay.sdk</groupId>\n                <artifactId>alipay-sdk-java</artifactId>\n                <version>${alipay-sdk.version}</version>\n            </dependency>\n            <!-- Sa-Token 权限认证（Reactor响应式集成） -->\n            <dependency>\n                <groupId>cn.dev33</groupId>\n                <artifactId>sa-token-reactor-spring-boot3-starter</artifactId>\n                <version>${sa-token.version}</version>\n            </dependency>\n            <!-- Sa-Token 权限认证 -->\n            <dependency>\n                <groupId>cn.dev33</groupId>\n                <artifactId>sa-token-spring-boot3-starter</artifactId>\n                <version>${sa-token.version}</version>\n            </dependency>\n            <!-- Sa-Token 整合 Redis (使用jackson序列化方式) -->\n            <dependency>\n                <groupId>cn.dev33</groupId>\n                <artifactId>sa-token-redis-jackson</artifactId>\n                <version>${sa-token.version}</version>\n            </dependency>\n            <!-- Sa-Token 整合 jwt -->\n            <dependency>\n                <groupId>cn.dev33</groupId>\n                <artifactId>sa-token-jwt</artifactId>\n                <version>${sa-token.version}</version>\n            </dependency>\n        </dependencies>\n    </dependencyManagement>\n\n    <build>\n        <pluginManagement>\n            <plugins>\n                <plugin>\n                    <groupId>org.springframework.boot</groupId>\n                    <artifactId>spring-boot-maven-plugin</artifactId>\n                    <version>${spring-boot.version}</version>\n                </plugin>\n                <plugin>\n                    <groupId>io.fabric8</groupId>\n                    <artifactId>docker-maven-plugin</artifactId>\n                    <version>${docker.maven.plugin.version}</version>\n                    <executions>\n                        <!--如果想在项目打包时构建镜像添加-->\n                        <execution>\n                            <id>build-image</id>\n                            <phase>package</phase>\n                            <goals>\n                                <goal>build</goal>\n                            </goals>\n                        </execution>\n                    </executions>\n                    <configuration>\n                        <!-- Docker 远程管理地址-->\n                        <dockerHost>${docker.host}</dockerHost>\n                        <images>\n                            <image>\n                                <!--定义镜像名称-->\n                                <name>mall/${project.name}:${project.version}</name>\n                                <!--定义镜像构建行为-->\n                                <build>\n                                    <!--定义基础镜像-->\n                                    <from>openjdk:17</from>\n                                    <args>\n                                        <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>\n                                    </args>\n                                    <!--定义哪些文件拷贝到容器中-->\n                                    <assembly>\n                                        <!--定义拷贝到容器的目录-->\n                                        <targetDir>/</targetDir>\n                                        <!--只拷贝生成的jar包-->\n                                        <descriptorRef>artifact</descriptorRef>\n                                    </assembly>\n                                    <!--定义容器启动命令-->\n                                    <entryPoint>[\"java\", \"-jar\",\"-Dspring.profiles.active=prod\",\"/${project.build.finalName}.jar\"]</entryPoint>\n                                    <!--定义维护者-->\n                                    <maintainer>macrozheng</maintainer>\n                                </build>\n                            </image>\n                        </images>\n                    </configuration>\n                </plugin>\n            </plugins>\n        </pluginManagement>\n        <plugins>\n            <!--解决SpringBoot 3.2 Parameter Name Retention 问题-->\n            <plugin>\n                <groupId>org.apache.maven.plugins</groupId>\n                <artifactId>maven-compiler-plugin</artifactId>\n                <configuration>\n                    <compilerArgs>\n                        <arg>-parameters</arg>\n                    </compilerArgs>\n                </configuration>\n            </plugin>\n        </plugins>\n    </build>\n\n    <!--使用aliyun的镜像源提升依赖下载速度-->\n    <repositories>\n        <repository>\n            <id>aliyunmaven</id>\n            <name>aliyun</name>\n            <url>https://maven.aliyun.com/repository/public</url>\n        </repository>\n        <repository>\n            <id>central2</id>\n            <name>central2</name>\n            <url>https://repo1.maven.org/maven2/</url>\n        </repository>\n    </repositories>\n\n    <!--使用aliyun的镜像源提升插件下载速度-->\n    <pluginRepositories>\n        <pluginRepository>\n            <id>aliyunmaven</id>\n            <name>aliyun</name>\n            <url>https://maven.aliyun.com/repository/public</url>\n        </pluginRepository>\n        <pluginRepository>\n            <id>central2</id>\n            <name>central2</name>\n            <url>https://repo1.maven.org/maven2/</url>\n        </pluginRepository>\n    </pluginRepositories>\n\n</project>"
  }
]