Browse Source

会员营销系统后端接口

fushengqian 1 year ago
commit
2dc965df6f
100 changed files with 10875 additions and 0 deletions
  1. 12 0
      .gitignore
  2. 121 0
      LICENSE
  3. 123 0
      README.md
  4. 690 0
      db/fuint-db.sql
  5. 131 0
      fuint-application/pom.xml
  6. 35 0
      fuint-application/src/main/java/com/fuint/common/Constants.java
  7. 147 0
      fuint-application/src/main/java/com/fuint/common/aspect/LogAop.java
  8. 16 0
      fuint-application/src/main/java/com/fuint/common/aspect/RedisModelAspect.java
  9. 121 0
      fuint-application/src/main/java/com/fuint/common/aspect/TActionLogAop.java
  10. 104 0
      fuint-application/src/main/java/com/fuint/common/bean/AliPayBean.java
  11. 83 0
      fuint-application/src/main/java/com/fuint/common/bean/H5SceneInfo.java
  12. 64 0
      fuint-application/src/main/java/com/fuint/common/bean/UnionPayBean.java
  13. 78 0
      fuint-application/src/main/java/com/fuint/common/bean/WxPayBean.java
  14. 113 0
      fuint-application/src/main/java/com/fuint/common/bean/WxPayV3Bean.java
  15. 41 0
      fuint-application/src/main/java/com/fuint/common/config/CaptchaConfig.java
  16. 22 0
      fuint-application/src/main/java/com/fuint/common/config/Message.java
  17. 51 0
      fuint-application/src/main/java/com/fuint/common/config/MybatisPlusConfig.java
  18. 67 0
      fuint-application/src/main/java/com/fuint/common/config/RedisConfig.java
  19. 44 0
      fuint-application/src/main/java/com/fuint/common/config/SwaggerConfig.java
  20. 98 0
      fuint-application/src/main/java/com/fuint/common/config/WebConfig.java
  21. 221 0
      fuint-application/src/main/java/com/fuint/common/domain/TreeNode.java
  22. 61 0
      fuint-application/src/main/java/com/fuint/common/domain/TreeSelect.java
  23. 218 0
      fuint-application/src/main/java/com/fuint/common/dto/AccountDto.java
  24. 34 0
      fuint-application/src/main/java/com/fuint/common/dto/AccountInfo.java
  25. 109 0
      fuint-application/src/main/java/com/fuint/common/dto/AddressDto.java
  26. 156 0
      fuint-application/src/main/java/com/fuint/common/dto/ArticleDto.java
  27. 28 0
      fuint-application/src/main/java/com/fuint/common/dto/AssetDto.java
  28. 146 0
      fuint-application/src/main/java/com/fuint/common/dto/BalanceDto.java
  29. 134 0
      fuint-application/src/main/java/com/fuint/common/dto/BannerDto.java
  30. 43 0
      fuint-application/src/main/java/com/fuint/common/dto/Body.java
  31. 164 0
      fuint-application/src/main/java/com/fuint/common/dto/ConfirmLogDto.java
  32. 34 0
      fuint-application/src/main/java/com/fuint/common/dto/ContentDto.java
  33. 38 0
      fuint-application/src/main/java/com/fuint/common/dto/CouponCellDto.java
  34. 229 0
      fuint-application/src/main/java/com/fuint/common/dto/CouponDto.java
  35. 67 0
      fuint-application/src/main/java/com/fuint/common/dto/CouponTotalDto.java
  36. 23 0
      fuint-application/src/main/java/com/fuint/common/dto/DateDto.java
  37. 249 0
      fuint-application/src/main/java/com/fuint/common/dto/ExceptionDto.java
  38. 37 0
      fuint-application/src/main/java/com/fuint/common/dto/ExpressDto.java
  39. 212 0
      fuint-application/src/main/java/com/fuint/common/dto/GiveDto.java
  40. 113 0
      fuint-application/src/main/java/com/fuint/common/dto/GiveItemDto.java
  41. 58 0
      fuint-application/src/main/java/com/fuint/common/dto/GoodsCateDto.java
  42. 314 0
      fuint-application/src/main/java/com/fuint/common/dto/GoodsDetailDto.java
  43. 364 0
      fuint-application/src/main/java/com/fuint/common/dto/GoodsDto.java
  44. 120 0
      fuint-application/src/main/java/com/fuint/common/dto/GoodsSkuDto.java
  45. 41 0
      fuint-application/src/main/java/com/fuint/common/dto/GoodsSpecChildDto.java
  46. 47 0
      fuint-application/src/main/java/com/fuint/common/dto/GoodsSpecDto.java
  47. 47 0
      fuint-application/src/main/java/com/fuint/common/dto/GoodsSpecItemDto.java
  48. 49 0
      fuint-application/src/main/java/com/fuint/common/dto/GoodsSpecValueDto.java
  49. 47 0
      fuint-application/src/main/java/com/fuint/common/dto/GroupDataDto.java
  50. 24 0
      fuint-application/src/main/java/com/fuint/common/dto/GroupDataListDto.java
  51. 82 0
      fuint-application/src/main/java/com/fuint/common/dto/HangUpDto.java
  52. 65 0
      fuint-application/src/main/java/com/fuint/common/dto/Head.java
  53. 51 0
      fuint-application/src/main/java/com/fuint/common/dto/Message.java
  54. 38 0
      fuint-application/src/main/java/com/fuint/common/dto/MessageResDto.java
  55. 41 0
      fuint-application/src/main/java/com/fuint/common/dto/MessageStatusEnum.java
  56. 220 0
      fuint-application/src/main/java/com/fuint/common/dto/MyCouponDto.java
  57. 146 0
      fuint-application/src/main/java/com/fuint/common/dto/OpenGiftDto.java
  58. 415 0
      fuint-application/src/main/java/com/fuint/common/dto/OrderDto.java
  59. 110 0
      fuint-application/src/main/java/com/fuint/common/dto/OrderGoodsDto.java
  60. 84 0
      fuint-application/src/main/java/com/fuint/common/dto/OrderUserDto.java
  61. 121 0
      fuint-application/src/main/java/com/fuint/common/dto/Page.java
  62. 34 0
      fuint-application/src/main/java/com/fuint/common/dto/ParamDto.java
  63. 144 0
      fuint-application/src/main/java/com/fuint/common/dto/PointDto.java
  64. 27 0
      fuint-application/src/main/java/com/fuint/common/dto/PreStoreRuleDto.java
  65. 27 0
      fuint-application/src/main/java/com/fuint/common/dto/RechargeRuleDto.java
  66. 223 0
      fuint-application/src/main/java/com/fuint/common/dto/RefundDto.java
  67. 66 0
      fuint-application/src/main/java/com/fuint/common/dto/RegionDto.java
  68. 359 0
      fuint-application/src/main/java/com/fuint/common/dto/ReqCouponDto.java
  69. 102 0
      fuint-application/src/main/java/com/fuint/common/dto/ReqCouponGroupDto.java
  70. 49 0
      fuint-application/src/main/java/com/fuint/common/dto/ReqResult.java
  71. 51 0
      fuint-application/src/main/java/com/fuint/common/dto/ReqSendCouponDto.java
  72. 191 0
      fuint-application/src/main/java/com/fuint/common/dto/ReqSendLogDto.java
  73. 117 0
      fuint-application/src/main/java/com/fuint/common/dto/ResCartDto.java
  74. 66 0
      fuint-application/src/main/java/com/fuint/common/dto/ResCateDto.java
  75. 78 0
      fuint-application/src/main/java/com/fuint/common/dto/ResMyCouponDto.java
  76. 78 0
      fuint-application/src/main/java/com/fuint/common/dto/ResUserOrderDto.java
  77. 72 0
      fuint-application/src/main/java/com/fuint/common/dto/RoleDto.java
  78. 96 0
      fuint-application/src/main/java/com/fuint/common/dto/SmsTemplateDto.java
  79. 218 0
      fuint-application/src/main/java/com/fuint/common/dto/SourceDto.java
  80. 310 0
      fuint-application/src/main/java/com/fuint/common/dto/StoreDto.java
  81. 68 0
      fuint-application/src/main/java/com/fuint/common/dto/SubMessageDto.java
  82. 46 0
      fuint-application/src/main/java/com/fuint/common/dto/TokenDto.java
  83. 231 0
      fuint-application/src/main/java/com/fuint/common/dto/UserCouponDto.java
  84. 99 0
      fuint-application/src/main/java/com/fuint/common/dto/UserDto.java
  85. 16 0
      fuint-application/src/main/java/com/fuint/common/dto/UserInfo.java
  86. 459 0
      fuint-application/src/main/java/com/fuint/common/dto/UserOrderDto.java
  87. 77 0
      fuint-application/src/main/java/com/fuint/common/enums/AdminRoleEnum.java
  88. 57 0
      fuint-application/src/main/java/com/fuint/common/enums/ApplyGoodsEnum.java
  89. 57 0
      fuint-application/src/main/java/com/fuint/common/enums/BalanceSettingEnum.java
  90. 39 0
      fuint-application/src/main/java/com/fuint/common/enums/CommissionTargetEnum.java
  91. 37 0
      fuint-application/src/main/java/com/fuint/common/enums/CommissionTypeEnum.java
  92. 40 0
      fuint-application/src/main/java/com/fuint/common/enums/CouponContentEnum.java
  93. 38 0
      fuint-application/src/main/java/com/fuint/common/enums/CouponTypeEnum.java
  94. 57 0
      fuint-application/src/main/java/com/fuint/common/enums/CouponUseForEnum.java
  95. 39 0
      fuint-application/src/main/java/com/fuint/common/enums/GenderEnum.java
  96. 58 0
      fuint-application/src/main/java/com/fuint/common/enums/GoodsTypeEnum.java
  97. 59 0
      fuint-application/src/main/java/com/fuint/common/enums/MemberSourceEnum.java
  98. 35 0
      fuint-application/src/main/java/com/fuint/common/enums/MessageEnum.java
  99. 37 0
      fuint-application/src/main/java/com/fuint/common/enums/OrderModeEnum.java
  100. 57 0
      fuint-application/src/main/java/com/fuint/common/enums/OrderSettingEnum.java

+ 12 - 0
.gitignore

@@ -0,0 +1,12 @@
+.buildpath
+.project
+.settings
+.idea/
+.mvn/
+wsdl/
+caches/
+target/
+src/main/resources/static/
+.DS_Store
+*.iml
+dump.rdb

+ 121 - 0
LICENSE

@@ -0,0 +1,121 @@
+木兰宽松许可证, 第1版
+
+   木兰宽松许可证, 第1版
+   2019年8月 http://license.coscl.org.cn/MulanPSL
+
+   您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第1版(“本许可证”)的如下条款的约束:
+
+   0. 定义
+
+      “软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。
+
+      “贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。
+
+      “法人实体”是指提交贡献的机构及其“关联实体”。
+
+      “关联实体”是指,对“本许可证”下的一方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。
+
+      “贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。
+
+   1. 授予版权许可
+
+      每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。
+
+   2. 授予专利许可
+
+      每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括仅因您或他人修改“贡献”或其他结合而将必然会侵犯到的专利权利要求。如您或您的“关联实体”直接或间接地(包括通过代理、专利被许可人或受让人),就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。
+
+   3. 无商标许可
+
+      “本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。
+
+   4. 分发限制
+
+      您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。
+
+   5. 免责声明与责任限制
+
+      “软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。
+
+   条款结束。
+
+   如何将木兰宽松许可证,第1版,应用到您的软件
+
+   如果您希望将木兰宽松许可证,第1版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步:
+
+      1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字;
+
+      2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中;
+
+      3, 请将如下声明文本放入每个源文件的头部注释中。
+
+   Copyright (c) [2019] [name of copyright holder]
+   [Software Name] is licensed under the Mulan PSL v1.
+   You can use this software according to the terms and conditions of the Mulan PSL v1.
+   You may obtain a copy of Mulan PSL v1 at:
+      http://license.coscl.org.cn/MulanPSL
+   THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+   IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+   PURPOSE.
+   See the Mulan PSL v1 for more details.
+
+
+                     Mulan Permissive Software License,Version 1
+
+   Mulan Permissive Software License,Version 1 (Mulan PSL v1)
+   August 2019 http://license.coscl.org.cn/MulanPSL
+
+   Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v1 (this License) with following terms and conditions:
+
+   0. Definition
+
+      Software means the program and related documents which are comprised of those Contribution and licensed under this License.
+
+      Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License.
+
+      Legal Entity means the entity making a Contribution and all its Affiliates.
+
+      Affiliates means entities that control, or are controlled by, or are under common control with a party to this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity.
+
+   Contribution means the copyrightable work licensed by a particular Contributor under this License.
+
+   1. Grant of Copyright License
+
+      Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not.
+
+   2. Grant of Patent License
+
+      Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed, excluding of any patent claims solely be infringed by your or others’ modification or other combinations. If you or your Affiliates directly or indirectly (including through an agent, patent licensee or assignee), institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken.
+
+   3. No Trademark License
+
+      No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in section 4.
+
+   4. Distribution Restriction
+
+      You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software.
+
+   5. Disclaimer of Warranty and Limitation of Liability
+
+      The Software and Contribution in it are provided without warranties of any kind, either express or implied. In no event shall any Contributor or copyright holder be liable to you for any damages, including, but not limited to any direct, or indirect, special or consequential damages arising from your use or inability to use the Software or the Contribution in it, no matter how it’s caused or based on which legal theory, even if advised of the possibility of such damages.
+
+   End of the Terms and Conditions
+
+   How to apply the Mulan Permissive Software License,Version 1 (Mulan PSL v1) to your software
+
+      To apply the Mulan PSL v1 to your work, for easy identification by recipients, you are suggested to complete following three steps:
+
+      i. Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner;
+      ii. Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package;
+      iii. Attach the statement to the appropriate annotated syntax at the beginning of each source file.
+   
+   Copyright (c) [2019] [name of copyright holder]
+   [Software Name] is licensed under the Mulan PSL v1.
+   You can use this software according to the terms and conditions of the Mulan PSL v1.
+   You may obtain a copy of Mulan PSL v1 at:
+      http://license.coscl.org.cn/MulanPSL
+   THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
+   IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
+   PURPOSE.
+   
+   See the Mulan PSL v1 for more details.

+ 123 - 0
README.md

@@ -0,0 +1,123 @@
+# fuint会员营销系统介绍
+
+#### 介绍
+fuint会员营销系统是一套开源的实体店铺会员管理和营销系统。系统基于前后端分离的架构,后端采用<b>Java SpringBoot</b> + <b>Mysql</b>,前端基于当前流行的<b>Uniapp</b>,<b>Element UI</b>,支持小程序、h5。主要功能包含电子优惠券、储值卡、实体卡、集次卡(计次卡)、短信发送、储值卡、会员积分、会员等级权益体系,支付收款等会员日常营销工具。本系统适用于各类实体店铺,如零售超市、酒吧、酒店、汽车4S店、鲜花店、奶茶店、甜品店、餐饮店、农家乐等,是实体店铺会员营销必备的一款利器。
+以下是前台的页面展示:
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/g1.png?v=1" alt="前台页面1"></p>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/g2.png?v=2" alt="前台页面2"></p>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/g3.png?v=2" alt="前台页面3"></p>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/g4.png?v=1" alt="前台页面4"></p>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/g5.png?v=1" alt="前台页面4"></p>
+
+fuint侧重于线下实体店的私域流量的运营,同时提供会员端小程序和收银系统的线上线下统一渠道,帮助商户降低获客成本。顾客通过扫码支付成为私域流量,支付即可成为会员。积分和卡券功能建立起会员等级体系,通过消息推送和短信营销方便触达用户。
+<p>1、会员运营自动化:商家通过日常活动设置,如开卡礼设置,沉睡唤醒等,成为会员后自动给顾客送优惠券,让顾客更有黏性,提升会员运营效率。</p>
+<p>2、打通收银系统和会员营销的壁垒,代客下单收银,支付即成为会员。</p>
+<p>3、会员体系完整化:积分兑换、积分转赠、会员等级权益、积分加速、买单折扣。</p>
+<p>4、会员卡券齐全:储值卡、电子券、优惠券、集次卡、计次卡、实体卡购买并兑换、会员充值、余额支付。</p>
+<p>5、线上代客下单收银系统,后台管理员可帮助临柜的会员下单、扫码支付。</p>
+<p>6、支持手机短信、站内弹框消息、微信订阅消息:支持包括发货消息、卡券到期提醒、活动提醒、会员到期提醒、积分余额变动提醒等消息。</p>
+<p>小程序前端仓库:https://gitee.com/fuint/fuint-uniapp</p>
+<b>扫码小程序演示:</b><br>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/miniapp.png" alt="小程序演示"></p>
+<br>
+<b>官网演示地址:</b><br>
+<p>
+   1、官网:<a target="_blank" href="https://www.fuint.cn">https://www.fuint.cn</a> 点击 -> 系统演示,演示账号:fuint / 123456<br>
+   2、swagger接口文档:<a target="_blank" href="https://www.fuint.cn/fuint-application/swagger-ui.html">https://www.fuint.cn/fuint-application/swagger-ui.html</a>
+</p>
+
+#### 软件架构
+后端:JAVA SpringBoot + MYSQL Mybatis Plus + Redis
+前端:采用基于Vue的Uniapp、Element UI,前后端分离,支持微信小程序、h5等
+<p>后台截图:</p>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/login.png?v=fuint" alt="登录界面"></p>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/homeV2.png?v=fuint" alt="首页"></p>
+
+前端使用技术<br>
+2.1 Vue2<br>
+2.2 Uniapp<br>
+2.3 Element UI
+2.4 Nodejs 14或16版本 
+
+后端使用技术<br>
+1.1 SpringBoot 2.5<br>
+1.2 Mybatis Plus<br>
+1.3 Maven<br>
+1.4 SpringSecurity<br>
+1.5 Druid<br>
+1.6 Slf4j<br>
+1.7 Fastjson<br>
+1.8 JWT<br>
+1.9 Redis<br>
+1.10 Quartz<br>
+1.11 Mysql 5.7或8版<br>
+1.12 Swagger UI<br>
+
+
+#### 安装步骤
+推荐软件环境版本:jdk 1.8、mysql 5.8
+1. 导入db目录下的数据库文件。
+2. 修改config目录下的配置文件。
+3. 将工程打包,把jar包上传并执行。
+<p>提示:无后端和linux基础的朋友,可以使用<b>宝塔</b>部署,非常方便简单。</p>
+
+
+#### 前台使用说明
+
+1.  会员登录,登录成功后可看到会员的卡券列表。
+2.  卡券领取和购买,预存券的充值等。
+3.  核销卡券,会员在前台出示二维码,管理员用微信扫一扫即可核销。
+4.  卡券转赠,会员可将自己的卡券转赠给其他用户,输入对方的手机号即可完成转赠,获赠的好友会收到卡券赠送的短信。
+
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/create.png?v=fuint" alt="卡券创建界面"></p>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/member.png?v=fuint" alt="卡券创建界面"></p>
+
+#### 后台使用
+1. 会员管理:会员新增、导入、禁用等。
+2. 内容管理:焦点图管理、文章管理等。
+3. 卡券管理:电子券管理为2层结构,即电子券组和电子券。
+4. 会员积分:会员积分管理,会员积分的操作,会员积分明细查看。
+5. 转赠管理:卡券转赠记录。
+6. 短信管理:短信营销功能,已发送的短信列表。
+7. 系统配置:配置系统管理员权限等。
+8. 店铺管理:支持多店铺模式。
+9. 核销管理员:核销人员管理主要包含3个功能:核销人员列表、核销人员审核、核销人员信息编辑。
+10. 短信模板管理:可配置不同场景和业务的短信内容。
+11. 卡券发放:单独发放、批量发放,发放成功后给会员发送短信通知
+12. 操作日志主要针对电子券系统后台的一些关键操作进行日志记录,方便排查相关操作人的行为等问题。
+13. 发券记录主要根据发券的实际操作情况来记录,分为单用户发券和批量发券,同时可针对该次发券记录进行作废操作。
+14. 代客下单、收银功能。
+<p>卡券营销:</p>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/coupon-list.png?v=fuint" alt="卡券列表"></p>
+
+<p>收银代客下单功能:店员角色登录后台,从首页的“下单首页”菜单可进入代客收银下单界面,完成代客下单收银的流程。</p>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/cashier.png?v=fuint3.0.8" alt="收银界面"></p>
+<p>发起结算:</p>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/cashier-1.png?v=fuint3.0.8" alt="收银结算"></p>
+
+#### 开发计划
+1. 完善的报表统计;
+2. 分享助力、分享领券、分享获得积分;
+3. 员工提成、分销功能;
+4. 店铺结算功能;
+5. 更多营销工具,比如签到等。
+
+
+#### 允许使用范围:
+1.  允许个人学习使用
+2.  允许用于毕业设计、论文参考代码
+3.  推荐Watch、Star项目,获取项目第一时间更新,同时也是对项目最好的支持
+4.  希望大家多多支持原创软件
+5.  请勿去除版权标签,要商用请购买源码授权(非常便宜),感谢理解!
+
+不足和待完善之处请谅解!源码仅供学习交流,更多功能欢迎进群咨询讨论,或需安装帮助请联系我们(<b>麻烦先点star!!!!!!</b>)。<br>
+官方网站:https://www.fuint.cn <br>
+开源不易,感谢支持!<br>
+<b>作者wx:fsq_better:</b><br>
+<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/qr.png" alt="公众号二维码"></p>
+
+
+特别鸣谢:<br>
+Mybaits Plus: https://github.com/baomidou/mybatis-plus<br>
+Vue: https://github.com/vuejs/vue<br>
+Element UI: https://element.eleme.cn

+ 690 - 0
db/fuint-db.sql

@@ -0,0 +1,690 @@
+/*
+SQLyog Professional v13.1.1 (64 bit)
+MySQL - 8.0.21 : Database - fuint-db
+*********************************************************************
+*/
+
+/*!40101 SET NAMES utf8 */;
+
+/*!40101 SET SQL_MODE=''*/;
+
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+CREATE DATABASE /*!32312 IF NOT EXISTS*/`fuint-db` /*!40100 DEFAULT CHARACTER SET utf8 */ /*!80016 DEFAULT ENCRYPTION='N' */;
+
+USE `fuint-db`;
+
+/*Table structure for table `mt_banner` */
+
+DROP TABLE IF EXISTS `mt_banner`;
+
+CREATE TABLE `mt_banner` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `TITLE` varchar(100) DEFAULT '' COMMENT '标题',
+  `URL` varchar(100) DEFAULT '' COMMENT '链接地址',
+  `IMAGE` varchar(200) DEFAULT '' COMMENT '图片地址',
+  `DESCRIPTION` text COMMENT '描述',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `OPERATOR` varchar(30) DEFAULT NULL COMMENT '最后操作人',
+  `STATUS` char(1) DEFAULT 'A' COMMENT 'A:正常;D:删除',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
+
+/*Table structure for table `mt_cart` */
+
+DROP TABLE IF EXISTS `mt_cart`;
+
+CREATE TABLE `mt_cart` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `USER_ID` int NOT NULL DEFAULT '0' COMMENT '会员ID',
+  `GOODS_ID` int DEFAULT '0' COMMENT '商品ID',
+  `NUM` int DEFAULT '1' COMMENT '数量',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `STATUS` char(1) DEFAULT 'A' COMMENT '状态',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 COMMENT='购物车';
+
+/*Data for the table `mt_cart` */
+
+/*Table structure for table `mt_confirm_log` */
+
+DROP TABLE IF EXISTS `mt_confirm_log`;
+
+CREATE TABLE `mt_confirm_log` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `CODE` varchar(32) NOT NULL DEFAULT '' COMMENT '编码',
+  `AMOUNT` decimal(10,2) DEFAULT '0.00' COMMENT '核销金额',
+  `COUPON_ID` int DEFAULT '0' COMMENT '卡券ID',
+  `USER_COUPON_ID` int NOT NULL DEFAULT '0' COMMENT '用户券ID',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `USER_ID` int NOT NULL DEFAULT '0' COMMENT '卡券所属用户ID',
+  `OPERATOR_USER_ID` int DEFAULT NULL COMMENT '核销者用户ID',
+  `STORE_ID` int NOT NULL DEFAULT '0' COMMENT '核销店铺ID',
+  `STATUS` varchar(1) NOT NULL COMMENT '状态,A正常核销;D:撤销使用',
+  `CANCEL_TIME` datetime DEFAULT NULL COMMENT '撤销时间',
+  `OPERATOR` varchar(30) DEFAULT NULL COMMENT '最后操作人',
+  `OPERATOR_FROM` varchar(30) DEFAULT 'mt_user' COMMENT '操作来源user_id对应表t_account 还是 mt_user',
+  `REMARK` varchar(500) DEFAULT '' COMMENT '备注信息',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='核销记录表';
+
+/*Data for the table `mt_confirm_log` */
+
+/*Table structure for table `mt_confirmer` */
+
+DROP TABLE IF EXISTS `mt_confirmer`;
+
+CREATE TABLE `mt_confirmer` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `USER_ID` int DEFAULT NULL COMMENT '用户ID',
+  `MOBILE` varchar(16) NOT NULL DEFAULT '' COMMENT '手机号码',
+  `REAL_NAME` varchar(30) DEFAULT '' COMMENT '真实姓名',
+  `WECHAT` varchar(64) DEFAULT NULL COMMENT '微信号',
+  `STORE_ID` int DEFAULT NULL COMMENT '对应的核销店铺id',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `AUDITED_STATUS` char(1) DEFAULT 'U' COMMENT '审核状态,A:审核通过;U:未审核;D:无效; ',
+  `AUDITED_TIME` datetime DEFAULT NULL COMMENT '审核时间',
+  `DESCRIPTION` varchar(255) DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`ID`),
+  UNIQUE KEY `uix_mobile` (`MOBILE`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='核销人员表';
+
+/*Table structure for table `mt_coupon` */
+
+DROP TABLE IF EXISTS `mt_coupon`;
+
+CREATE TABLE `mt_coupon` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `GROUP_ID` int NOT NULL DEFAULT '0' COMMENT '券组ID',
+  `TYPE` char(1) DEFAULT 'C' COMMENT '券类型,C优惠券;P储值卡;T计次卡',
+  `NAME` varchar(100) NOT NULL DEFAULT '' COMMENT '券名称',
+  `IS_GIVE` tinyint(1) DEFAULT '0' COMMENT '是否允许转赠',
+  `POINT` int DEFAULT '0' COMMENT '获得卡券所消耗积分',
+  `RECEIVE_CODE` varchar(32) DEFAULT '' COMMENT '领取码',
+  `BEGIN_TIME` datetime DEFAULT NULL COMMENT '开始有效期',
+  `END_TIME` datetime DEFAULT NULL COMMENT '结束有效期',
+  `AMOUNT` decimal(10,2) DEFAULT '0.00' COMMENT '面额',
+  `SEND_WAY` varchar(20) DEFAULT 'backend' COMMENT '发放方式',
+  `SEND_NUM` int DEFAULT '1' COMMENT '每次发放数量',
+  `TOTAL` int DEFAULT '0' COMMENT '发行数量',
+  `LIMIT_NUM` int DEFAULT '1' COMMENT '每人拥有数量限制',
+  `EXCEPT_TIME` varchar(500) DEFAULT '' COMMENT '不可用日期,逗号隔开。周末:weekend;其他:2019-01-02_2019-02-09',
+  `STORE_IDS` varchar(100) DEFAULT '' COMMENT '所属店铺ID,逗号隔开',
+  `DESCRIPTION` varchar(2000) DEFAULT '' COMMENT '描述信息',
+  `IMAGE` varchar(100) DEFAULT '' COMMENT '效果图片',
+  `REMARKS` varchar(1000) DEFAULT '' COMMENT '后台备注',
+  `IN_RULE` varchar(1000) DEFAULT '' COMMENT '获取券的规则',
+  `OUT_RULE` varchar(1000) DEFAULT '' COMMENT '核销券的规则',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `OPERATOR` varchar(30) DEFAULT '' COMMENT '最后操作人',
+  `STATUS` char(1) DEFAULT 'A' COMMENT 'A:正常;D:删除',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='卡券信息表';
+
+/*Table structure for table `mt_coupon_group` */
+
+DROP TABLE IF EXISTS `mt_coupon_group`;
+
+CREATE TABLE `mt_coupon_group` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `NAME` varchar(100) NOT NULL DEFAULT '' COMMENT '券组名称',
+  `MONEY` decimal(18,2) DEFAULT '0.00' COMMENT '价值金额',
+  `NUM` int DEFAULT '0' COMMENT '券种类数量',
+  `TOTAL` int DEFAULT '0' COMMENT '发行数量',
+  `DESCRIPTION` varchar(2000) DEFAULT '' COMMENT '备注',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建日期',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新日期',
+  `OPERATOR` varchar(30) DEFAULT '' COMMENT '最后操作人',
+  `STATUS` char(1) NOT NULL DEFAULT 'A' COMMENT 'A:正常;D:删除',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='卡券券组';
+
+/*Table structure for table `mt_give` */
+
+DROP TABLE IF EXISTS `mt_give`;
+
+CREATE TABLE `mt_give` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增',
+  `USER_ID` int NOT NULL DEFAULT '0' COMMENT '获赠者用户ID',
+  `GIVE_USER_ID` int NOT NULL DEFAULT '0' COMMENT '赠送者用户ID',
+  `MOBILE` varchar(20) NOT NULL DEFAULT '' COMMENT '赠予对象手机号',
+  `HNA_ACCOUNT` varchar(50) DEFAULT NULL COMMENT '赠予对象海航账号',
+  `USER_MOBILE` varchar(20) NOT NULL DEFAULT '' COMMENT '用户手机',
+  `USER_HNA_ACCOUNT` varchar(50) DEFAULT NULL COMMENT '用户海航账号',
+  `GROUP_IDS` varchar(200) NOT NULL DEFAULT '' COMMENT '券组ID,逗号隔开',
+  `GROUP_NAMES` varchar(500) NOT NULL DEFAULT '' COMMENT '券组名称,逗号隔开',
+  `COUPON_IDS` varchar(200) NOT NULL DEFAULT '' COMMENT '券ID,逗号隔开',
+  `COUPON_NAMES` varchar(500) NOT NULL DEFAULT '' COMMENT '券名称,逗号隔开',
+  `NUM` int NOT NULL DEFAULT '0' COMMENT '数量',
+  `MONEY` decimal(10,2) NOT NULL COMMENT '总金额',
+  `NOTE` varchar(200) DEFAULT '' COMMENT '备注',
+  `MESSAGE` varchar(500) DEFAULT '' COMMENT '留言',
+  `CREATE_TIME` datetime NOT NULL COMMENT '赠送时间',
+  `UPDATE_TIME` datetime NOT NULL COMMENT '更新时间',
+  `STATUS` char(1) NOT NULL DEFAULT 'A' COMMENT '状态,A正常;C取消',
+  PRIMARY KEY (`ID`),
+  KEY `index_user_id` (`USER_ID`) USING BTREE,
+  KEY `index_give_user_id` (`GIVE_USER_ID`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='转赠记录表';
+
+/*Data for the table `mt_give` */
+
+/*Table structure for table `mt_give_item` */
+
+DROP TABLE IF EXISTS `mt_give_item`;
+
+CREATE TABLE `mt_give_item` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `GIVE_ID` int NOT NULL COMMENT '转赠ID',
+  `USER_COUPON_ID` int NOT NULL COMMENT '用户电子券ID',
+  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime NOT NULL COMMENT '更新时间',
+  `STATUS` char(1) NOT NULL COMMENT '状态,A正常;D删除',
+  PRIMARY KEY (`ID`),
+  KEY `index_give_id` (`GIVE_ID`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='转赠明细表';
+
+/*Data for the table `mt_give_item` */
+
+/*Table structure for table `mt_goods` */
+
+DROP TABLE IF EXISTS `mt_goods`;
+
+CREATE TABLE `mt_goods` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `NAME` varchar(100) DEFAULT '' COMMENT '商品名称',
+  `CATE_ID` int DEFAULT '0' COMMENT '分类ID',
+  `GOODS_NO` varchar(100) DEFAULT '' COMMENT '商品编码',
+  `LOGO` varchar(200) DEFAULT '' COMMENT '主图地址',
+  `IMAGES` varchar(1000) DEFAULT '' COMMENT '图片地址',
+  `PRICE` decimal(10,2) DEFAULT '0.00' COMMENT '价格',
+  `LINE_PRICE` decimal(10,2) DEFAULT '0.00' COMMENT '划线价格',
+  `STOCK` int DEFAULT '0' COMMENT '库存',
+  `WEIGHT` decimal(10,2) DEFAULT '0.00' COMMENT '重量',
+  `INIT_SALE` int DEFAULT '0' COMMENT '初始销量',
+  `SALE_POINT` varchar(100) DEFAULT '' COMMENT '商品卖点',
+  `CAN_USE_POINT` char(1) DEFAULT 'N' COMMENT '可否使用积分抵扣',
+  `IS_MEMBER_DISCOUNT` char(1) DEFAULT 'Y' COMMENT '会员是否有折扣',
+  `SORT` int DEFAULT '0' COMMENT '排序',
+  `DESCRIPTION` text COMMENT '商品描述',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `OPERATOR` varchar(30) DEFAULT NULL COMMENT '最后操作人',
+  `STATUS` char(1) DEFAULT 'A' COMMENT 'A:正常;D:删除',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
+
+/*Table structure for table `mt_goods_cate` */
+
+DROP TABLE IF EXISTS `mt_goods_cate`;
+
+CREATE TABLE `mt_goods_cate` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `NAME` varchar(100) DEFAULT '' COMMENT '分类名称',
+  `LOGO` varchar(200) DEFAULT '' COMMENT 'LOGO地址',
+  `DESCRIPTION` text COMMENT '分类描述',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `OPERATOR` varchar(30) DEFAULT NULL COMMENT '最后操作人',
+  `SORT` int DEFAULT '0' COMMENT '排序',
+  `STATUS` char(1) DEFAULT 'A' COMMENT 'A:正常;D:删除',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
+
+/*Table structure for table `mt_message` */
+
+DROP TABLE IF EXISTS `mt_message`;
+
+CREATE TABLE `mt_message` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `USER_ID` int NOT NULL COMMENT '用户ID',
+  `TYPE` varchar(30) NOT NULL DEFAULT '' COMMENT '消息类型',
+  `TITLE` varchar(200) DEFAULT '友情提示' COMMENT '消息标题',
+  `CONTENT` varchar(500) NOT NULL DEFAULT '' COMMENT '消息内容',
+  `IS_READ` char(1) DEFAULT 'N' COMMENT '是否已读',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `STATUS` char(1) DEFAULT 'A' COMMENT '状态',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+/*Data for the table `mt_message` */
+
+/*Table structure for table `mt_open_gift` */
+
+DROP TABLE IF EXISTS `mt_open_gift`;
+
+CREATE TABLE `mt_open_gift` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `STORE_ID` int NOT NULL DEFAULT '0' COMMENT '店铺ID',
+  `GRADE_ID` int NOT NULL DEFAULT '0' COMMENT '会员等级ID',
+  `POINT` int NOT NULL DEFAULT '0' COMMENT '赠送积分',
+  `COUPON_ID` int NOT NULL DEFAULT '0' COMMENT '卡券ID',
+  `COUPON_NUM` int NOT NULL DEFAULT '1' COMMENT '卡券数量',
+  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime NOT NULL COMMENT '更新时间',
+  `STATUS` char(1) DEFAULT 'A' COMMENT '状态',
+  `OPERATOR` varchar(30) DEFAULT '' COMMENT '最后操作人',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COMMENT='会员开卡赠礼';
+
+/*Table structure for table `mt_open_gift_item` */
+
+DROP TABLE IF EXISTS `mt_open_gift_item`;
+
+CREATE TABLE `mt_open_gift_item` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `USER_ID` int NOT NULL COMMENT '会用ID',
+  `OPEN_GIFT_ID` int NOT NULL COMMENT '赠礼ID',
+  `CREATE_TIME` datetime NOT NULL COMMENT '创建时间',
+  `STATUS` char(1) NOT NULL COMMENT '状态',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf32 COMMENT='开卡赠礼明细表';
+
+/*Data for the table `mt_open_gift_item` */
+
+/*Table structure for table `mt_order` */
+
+DROP TABLE IF EXISTS `mt_order`;
+
+CREATE TABLE `mt_order` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `TYPE` varchar(30) DEFAULT NULL COMMENT '类型',
+  `TYPE_NAME` varchar(30) DEFAULT '' COMMENT '类型名称',
+  `ORDER_SN` varchar(32) NOT NULL DEFAULT '' COMMENT '订单号',
+  `COUPON_ID` int DEFAULT '0' COMMENT '卡券ID',
+  `USER_ID` int NOT NULL DEFAULT '0' COMMENT '用户ID',
+  `AMOUNT` decimal(10,2) DEFAULT '0.00' COMMENT '订单金额',
+  `PAY_AMOUNT` decimal(10,2) DEFAULT '0.00' COMMENT '支付金额',
+  `USE_POINT` int DEFAULT '0' COMMENT '使用积分数量',
+  `POINT_AMOUNT` decimal(10,2) DEFAULT '0.00' COMMENT '积分金额',
+  `DISCOUNT` decimal(10,2) DEFAULT '0.00' COMMENT '折扣金额',
+  `PARAM` varchar(500) DEFAULT '' COMMENT '订单参数',
+  `USER_INFO` varchar(500) DEFAULT '' COMMENT '用户信息',
+  `REMARK` varchar(500) DEFAULT '' COMMENT '用户备注',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `STATUS` char(1) DEFAULT 'A' COMMENT '订单状态',
+  `PAY_TIME` datetime DEFAULT NULL COMMENT '支付时间',
+  `PAY_STATUS` char(1) DEFAULT '' COMMENT '支付状态',
+  `OPERATOR` varchar(30) DEFAULT '' COMMENT '最后操作人',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='订单表';
+
+/*Data for the table `mt_order` */
+
+/*Table structure for table `mt_order_goods` */
+
+DROP TABLE IF EXISTS `mt_order_goods`;
+
+CREATE TABLE `mt_order_goods` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `ORDER_ID` int NOT NULL DEFAULT '0' COMMENT '订单ID',
+  `GOODS_ID` int NOT NULL DEFAULT '0' COMMENT '商品ID',
+  `NUM` int NOT NULL DEFAULT '0' COMMENT '商品数量',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `STATUS` char(1) DEFAULT 'A' COMMENT 'A:正常;D:删除',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+/*Data for the table `mt_order_goods` */
+
+/*Table structure for table `mt_point` */
+
+DROP TABLE IF EXISTS `mt_point`;
+
+CREATE TABLE `mt_point` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `USER_ID` int NOT NULL DEFAULT '0' COMMENT '用户ID',
+  `ORDER_SN` varchar(32) DEFAULT '' COMMENT '订单号',
+  `AMOUNT` int NOT NULL DEFAULT '0' COMMENT '积分变化数量',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `DESCRIPTION` varchar(200) DEFAULT '' COMMENT '备注说明',
+  `STATUS` char(1) DEFAULT 'A' COMMENT '状态,A正常;D作废',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='积分变化表';
+
+/*Data for the table `mt_point` */
+
+/*Table structure for table `mt_refund` */
+
+DROP TABLE IF EXISTS `mt_refund`;
+
+CREATE TABLE `mt_refund` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `ORDER_ID` int NOT NULL COMMENT '订单ID',
+  `USER_ID` int NOT NULL COMMENT '会员ID',
+  `REMARK` varchar(500) DEFAULT '' COMMENT '退款备注',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `STATUS` char(1) DEFAULT 'A' COMMENT '状态',
+  `OPERATOR` varchar(30) DEFAULT '' COMMENT '最后操作人',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='售后表';
+
+/*Data for the table `mt_refund` */
+
+/*Table structure for table `mt_send_log` */
+
+DROP TABLE IF EXISTS `mt_send_log`;
+
+CREATE TABLE `mt_send_log` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `TYPE` tinyint(1) NOT NULL COMMENT '1:单用户发券;2:批量发券',
+  `USER_ID` int DEFAULT NULL COMMENT '用户ID',
+  `FILE_NAME` varchar(100) DEFAULT '' COMMENT '导入excel文件名',
+  `FILE_PATH` varchar(200) DEFAULT '' COMMENT '导入excel文件路径',
+  `MOBILE` varchar(20) NOT NULL COMMENT '用户手机',
+  `GROUP_ID` int NOT NULL COMMENT '券组ID',
+  `GROUP_NAME` varchar(100) DEFAULT '' COMMENT '券组名称',
+  `SEND_NUM` int DEFAULT NULL COMMENT '发放套数',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '操作时间',
+  `OPERATOR` varchar(30) DEFAULT NULL COMMENT '操作人',
+  `UUID` varchar(50) DEFAULT '' COMMENT '导入UUID',
+  `REMOVE_SUCCESS_NUM` int DEFAULT '0' COMMENT '作废成功张数',
+  `REMOVE_FAIL_NUM` int DEFAULT '0' COMMENT '作废失败张数',
+  `STATUS` char(1) DEFAULT NULL COMMENT '状态,A正常;B:部分作废;D全部作废',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='卡券发放记录表';
+
+/*Data for the table `mt_send_log` */
+
+/*Table structure for table `mt_setting` */
+
+DROP TABLE IF EXISTS `mt_setting`;
+
+CREATE TABLE `mt_setting` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `TYPE` varchar(10) NOT NULL DEFAULT '' COMMENT '类型',
+  `NAME` varchar(50) NOT NULL DEFAULT '' COMMENT '配置项',
+  `VALUE` varchar(1000) NOT NULL DEFAULT '' COMMENT '配置值',
+  `DESCRIPTION` varchar(200) DEFAULT '' COMMENT '配置说明',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `OPERATOR` varchar(30) DEFAULT '' COMMENT '最后操作人',
+  `STATUS` char(1) DEFAULT 'A' COMMENT '状态 A启用;D禁用',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 COMMENT='全局设置表';
+
+/*Table structure for table `mt_sms_sended_log` */
+
+DROP TABLE IF EXISTS `mt_sms_sended_log`;
+
+CREATE TABLE `mt_sms_sended_log` (
+  `LOG_ID` int NOT NULL AUTO_INCREMENT COMMENT '日志ID',
+  `MOBILE_PHONE` varchar(32) DEFAULT NULL COMMENT '手机号',
+  `CONTENT` varchar(1024) DEFAULT NULL COMMENT '短信内容',
+  `SEND_TIME` datetime DEFAULT NULL COMMENT '发送时间',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  PRIMARY KEY (`LOG_ID`),
+  KEY `FK_REFERENCE_1` (`MOBILE_PHONE`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='短信发送记录表';
+
+/*Table structure for table `mt_sms_template` */
+
+DROP TABLE IF EXISTS `mt_sms_template`;
+
+CREATE TABLE `mt_sms_template` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `NAME` varchar(50) NOT NULL DEFAULT '' COMMENT '名称',
+  `UNAME` varchar(50) NOT NULL DEFAULT '' COMMENT '英文名称',
+  `CODE` varchar(30) NOT NULL DEFAULT '' COMMENT '编码',
+  `CONTENT` varchar(255) NOT NULL DEFAULT '' COMMENT '内容',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `OPERATOR` varchar(30) DEFAULT '' COMMENT '最后操作人',
+  `STATUS` char(1) NOT NULL DEFAULT 'A' COMMENT '状态:A激活;N禁用',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='短信模板';
+
+/*Table structure for table `mt_store` */
+
+DROP TABLE IF EXISTS `mt_store`;
+
+CREATE TABLE `mt_store` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `NAME` varchar(50) NOT NULL DEFAULT '' COMMENT '酒店名称',
+  `CONTACT` varchar(30) DEFAULT '' COMMENT '联系人姓名',
+  `PHONE` varchar(20) DEFAULT '' COMMENT '联系电话',
+  `DESCRIPTION` varchar(2000) DEFAULT '' COMMENT '备注信息',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `STATUS` char(1) DEFAULT 'A' COMMENT '状态,A:有效/启用;D:无效',
+  `OPERATOR` varchar(30) DEFAULT '' COMMENT '最后操作人',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='酒店表';
+
+/*Table structure for table `mt_user` */
+
+DROP TABLE IF EXISTS `mt_user`;
+
+CREATE TABLE `mt_user` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '会员ID',
+  `AVATAR` varchar(255) DEFAULT '' COMMENT '头像',
+  `NAME` varchar(30) DEFAULT '' COMMENT '称呼',
+  `OPEN_ID` varchar(50) DEFAULT '' COMMENT '微信open_id',
+  `MOBILE` varchar(20) DEFAULT '' COMMENT '手机号码',
+  `IDCARD` varchar(20) DEFAULT '' COMMENT '证件号码',
+  `GRADE_ID` varchar(10) DEFAULT '1' COMMENT '等级ID',
+  `START_TIME` datetime DEFAULT NULL COMMENT '会员开始时间',
+  `END_TIME` datetime DEFAULT NULL COMMENT '会员结束时间',
+  `BALANCE` float(10,2) DEFAULT '0.00' COMMENT '余额',
+  `POINT` int DEFAULT '0' COMMENT '积分',
+  `SEX` int DEFAULT '0' COMMENT '性别 1男;0女',
+  `BIRTHDAY` varchar(20) DEFAULT '' COMMENT '出生日期',
+  `CAR_NO` varchar(10) DEFAULT '' COMMENT '车牌号',
+  `PASSWORD` varchar(32) DEFAULT '' COMMENT '密码',
+  `SALT` varchar(4) DEFAULT '' COMMENT 'salt',
+  `ADDRESS` varchar(100) DEFAULT '' COMMENT '地址',
+  `CREATE_TIME` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `UPDATE_TIME` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
+  `STATUS` char(1) DEFAULT 'A' COMMENT '状态,A:激活;N:禁用;D:删除',
+  `DESCRIPTION` varchar(255) DEFAULT '' COMMENT '备注信息',
+  `OPERATOR` varchar(30) DEFAULT '' COMMENT '最后操作人',
+  PRIMARY KEY (`ID`),
+  KEY `index_phone` (`MOBILE`)
+) ENGINE=InnoDB AUTO_INCREMENT=208 DEFAULT CHARSET=utf8 COMMENT='会员个人信息';
+
+/*Table structure for table `mt_user_coupon` */
+
+DROP TABLE IF EXISTS `mt_user_coupon`;
+
+CREATE TABLE `mt_user_coupon` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `CODE` varchar(32) NOT NULL DEFAULT '' COMMENT '编码',
+  `TYPE` char(1) NOT NULL DEFAULT 'C' COMMENT '券类型,C优惠券;P储值卡;T计次卡',
+  `IMAGE` varchar(100) DEFAULT '' COMMENT '效果图',
+  `GROUP_ID` int NOT NULL DEFAULT '0' COMMENT '券组ID',
+  `COUPON_ID` int NOT NULL DEFAULT '0' COMMENT '券ID',
+  `MOBILE` varchar(20) DEFAULT '' COMMENT '用户手机号码',
+  `USER_ID` int DEFAULT '0' COMMENT '用户ID',
+  `STORE_ID` int DEFAULT NULL COMMENT '使用店铺ID',
+  `AMOUNT` decimal(10,2) DEFAULT '0.00' COMMENT '面额',
+  `BALANCE` decimal(10,2) DEFAULT '0.00' COMMENT '余额',
+  `STATUS` char(1) NOT NULL DEFAULT '1' COMMENT '状态:A:未使用;B:已使用;C:已过期; D:已删除;E:未领取',
+  `USED_TIME` datetime DEFAULT NULL COMMENT '使用时间',
+  `CREATE_TIME` datetime DEFAULT NULL COMMENT '创建时间',
+  `UPDATE_TIME` datetime DEFAULT NULL COMMENT '更新时间',
+  `OPERATOR` varchar(30) DEFAULT '' COMMENT '最后操作人',
+  `UUID` varchar(50) DEFAULT '' COMMENT '导入UUID',
+  `ORDER_ID` int DEFAULT '0' COMMENT '订单ID',
+  PRIMARY KEY (`ID`),
+  KEY `index_user_id` (`USER_ID`),
+  KEY `index_coupon_id` (`COUPON_ID`),
+  KEY `index_group_id` (`GROUP_ID`) USING BTREE,
+  KEY `index_code` (`CODE`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='会员优惠券表';
+
+/*Data for the table `mt_user_coupon` */
+
+/*Table structure for table `mt_user_grade` */
+
+DROP TABLE IF EXISTS `mt_user_grade`;
+
+CREATE TABLE `mt_user_grade` (
+  `ID` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
+  `GRADE` tinyint DEFAULT '1' COMMENT '等级',
+  `NAME` varchar(30) DEFAULT '' COMMENT '等级名称',
+  `CATCH_CONDITION` varchar(255) DEFAULT '' COMMENT '升级会员等级条件描述',
+  `CATCH_TYPE` varchar(30) DEFAULT 'pay' COMMENT '升级会员等级条件,init:默认获取;pay:付费升级;frequency:消费次数;amount:累积消费金额升级',
+  `CATCH_VALUE` int DEFAULT '0' COMMENT '达到升级条件的值',
+  `USER_PRIVILEGE` varchar(1000) DEFAULT '' COMMENT '会员权益描述',
+  `VALID_DAY` int DEFAULT '0' COMMENT '有效期',
+  `DISCOUNT` float(5,2) DEFAULT '0.00' COMMENT '享受折扣',
+  `SPEED_POINT` float(5,2) DEFAULT '1.00' COMMENT '积分加速',
+  `STATUS` char(1) DEFAULT 'A' COMMENT '状态',
+  PRIMARY KEY (`ID`)
+) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;
+
+/*Table structure for table `mt_verify_code` */
+
+DROP TABLE IF EXISTS `mt_verify_code`;
+
+CREATE TABLE `mt_verify_code` (
+  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增id',
+  `mobile` varchar(16) DEFAULT NULL COMMENT '手机号',
+  `verifyCode` char(6) DEFAULT NULL COMMENT '验证码',
+  `addTime` datetime DEFAULT NULL COMMENT '创建时间',
+  `expireTime` datetime DEFAULT NULL COMMENT '过期时间',
+  `usedTime` datetime DEFAULT NULL COMMENT '使用时间',
+  `validFlag` char(1) DEFAULT NULL COMMENT '可用状态 0未用 1已用 2置为失效',
+  PRIMARY KEY (`id`),
+  KEY `ix_mobile_verifyCode` (`mobile`,`verifyCode`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='短信验证码表';
+
+/*Data for the table `mt_verify_code` */
+
+/*Table structure for table `t_account` */
+
+DROP TABLE IF EXISTS `t_account`;
+
+CREATE TABLE `t_account` (
+  `acct_id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `account_key` varchar(23) NOT NULL DEFAULT '' COMMENT '账户编码',
+  `account_name` varchar(20) NOT NULL DEFAULT '' COMMENT '账户名称',
+  `password` varchar(100) NOT NULL DEFAULT '' COMMENT '密码',
+  `account_status` int NOT NULL DEFAULT '1' COMMENT '0 无效 1 有效',
+  `is_active` int NOT NULL DEFAULT '0' COMMENT '0 未激活 1已激活',
+  `create_date` datetime NOT NULL COMMENT '创建时间',
+  `modify_date` datetime NOT NULL COMMENT '修改时间',
+  `salt` varchar(64) NOT NULL DEFAULT '' COMMENT '随机码',
+  `role_ids` varchar(100) DEFAULT NULL,
+  `locked` int NOT NULL DEFAULT '0',
+  `owner_id` int DEFAULT NULL COMMENT '所属平台',
+  `real_name` varchar(255) DEFAULT NULL,
+  `store_id` int DEFAULT NULL COMMENT '所属店铺id  : -1 代表全部',
+  `store_name` varchar(255) DEFAULT NULL COMMENT '所属店铺名称',
+  PRIMARY KEY (`acct_id`),
+  KEY `FKmlsqc08c6khxhoed7abkl2s9l` (`owner_id`),
+  CONSTRAINT `FKmlsqc08c6khxhoed7abkl2s9l` FOREIGN KEY (`owner_id`) REFERENCES `t_platform` (`owner_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
+
+/*Table structure for table `t_account_duty` */
+
+DROP TABLE IF EXISTS `t_account_duty`;
+
+CREATE TABLE `t_account_duty` (
+  `acc_duty_id` int NOT NULL AUTO_INCREMENT COMMENT '账户角色ID',
+  `acct_id` int NOT NULL COMMENT '账户ID',
+  `duty_id` int NOT NULL COMMENT '角色ID',
+  PRIMARY KEY (`acc_duty_id`),
+  KEY `FKcym10gcigo2c175iqqjj7xu5h` (`acct_id`),
+  KEY `FKpfts0wq2y4xhq9vv2g7uo1kr0` (`duty_id`),
+  CONSTRAINT `FKcym10gcigo2c175iqqjj7xu5h` FOREIGN KEY (`acct_id`) REFERENCES `t_account` (`acct_id`),
+  CONSTRAINT `FKpfts0wq2y4xhq9vv2g7uo1kr0` FOREIGN KEY (`duty_id`) REFERENCES `t_duty` (`duty_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=249 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
+
+/*Table structure for table `t_action_log` */
+
+DROP TABLE IF EXISTS `t_action_log`;
+
+CREATE TABLE `t_action_log` (
+  `id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `action_time` datetime NOT NULL COMMENT '操作时间',
+  `time_consuming` decimal(11,0) DEFAULT NULL COMMENT '耗时',
+  `client_ip` varchar(50) DEFAULT NULL COMMENT '客户端IP',
+  `module` varchar(255) DEFAULT NULL COMMENT '操作模块',
+  `url` varchar(255) DEFAULT NULL COMMENT '请求URL',
+  `acct_name` varchar(255) NOT NULL COMMENT '操作用户账户',
+  `user_agent` varchar(255) DEFAULT NULL COMMENT '用户系统以及浏览器信息',
+  `client_port` int DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
+
+/*Table structure for table `t_duty` */
+
+DROP TABLE IF EXISTS `t_duty`;
+
+CREATE TABLE `t_duty` (
+  `duty_id` int NOT NULL AUTO_INCREMENT COMMENT '角色ID',
+  `duty_name` varchar(240) DEFAULT NULL COMMENT '角色名称',
+  `status` varchar(6) NOT NULL COMMENT '状态(A: 可用  D: 禁用)',
+  `description` varchar(400) DEFAULT NULL COMMENT '描述',
+  `duty_type` varchar(50) NOT NULL COMMENT '角色类型',
+  PRIMARY KEY (`duty_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='角色表';
+
+/*Table structure for table `t_duty_source` */
+
+DROP TABLE IF EXISTS `t_duty_source`;
+
+CREATE TABLE `t_duty_source` (
+  `duty_source_id` int NOT NULL AUTO_INCREMENT,
+  `duty_id` int DEFAULT NULL,
+  `source_id` int DEFAULT NULL,
+  PRIMARY KEY (`duty_source_id`),
+  KEY `FKlciudb88j4tptc36d43ghl5dg` (`duty_id`),
+  KEY `FKp1c59mwxgjue4qdl86sd6dogf` (`source_id`),
+  CONSTRAINT `FKlciudb88j4tptc36d43ghl5dg` FOREIGN KEY (`duty_id`) REFERENCES `t_duty` (`duty_id`),
+  CONSTRAINT `FKp1c59mwxgjue4qdl86sd6dogf` FOREIGN KEY (`source_id`) REFERENCES `t_source` (`source_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=5983 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
+
+
+/*Table structure for table `t_platform` */
+
+DROP TABLE IF EXISTS `t_platform`;
+
+CREATE TABLE `t_platform` (
+  `owner_id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `name` varchar(20) NOT NULL COMMENT '平台名称',
+  `status` int NOT NULL COMMENT '状态 0 无效 1 有效',
+  `description` varchar(255) DEFAULT NULL COMMENT '描述',
+  `platform_type` int NOT NULL COMMENT '平台类型',
+  PRIMARY KEY (`owner_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
+
+/*Table structure for table `t_source` */
+
+DROP TABLE IF EXISTS `t_source`;
+
+CREATE TABLE `t_source` (
+  `source_id` int NOT NULL AUTO_INCREMENT COMMENT '菜单Id',
+  `source_name` varchar(240) NOT NULL COMMENT '菜单名称',
+  `source_code` varchar(200) NOT NULL COMMENT '菜单对应url',
+  `status` varchar(6) NOT NULL COMMENT '状态(A:可用 D:禁用)',
+  `source_level` int NOT NULL COMMENT '菜单级别',
+  `source_style` varchar(40) NOT NULL COMMENT '样式',
+  `is_menu` int NOT NULL COMMENT '是否显示',
+  `description` varchar(400) DEFAULT NULL COMMENT '描述',
+  `parent_id` int DEFAULT NULL COMMENT '上级菜单ID',
+  `is_log` int DEFAULT NULL,
+  `icon` varchar(20) DEFAULT NULL COMMENT '菜单图标',
+  PRIMARY KEY (`source_id`),
+  UNIQUE KEY `SOURCE_NAME` (`source_name`,`parent_id`),
+  KEY `FKfcvh926f0p0tey75b7spk8sd3` (`parent_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=115 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='菜单表';
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

+ 131 - 0
fuint-application/pom.xml

@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>fuint</artifactId>
+        <groupId>com.fuint</groupId>
+        <version>1.0.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>fuint-application</artifactId>
+    <version>1.0.0</version>
+    <packaging>jar</packaging>
+
+    <properties>
+        <kaptcha.version>0.0.9</kaptcha.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.fuint</groupId>
+            <artifactId>fuint-framework</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>io.sentry</groupId>
+            <artifactId>sentry-logback</artifactId>
+            <version>1.2.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.ws</groupId>
+            <artifactId>spring-ws-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.aspectj</groupId>  
+            <artifactId>aspectjweaver</artifactId>  
+        </dependency>
+        <dependency>
+            <groupId>commons-httpclient</groupId>
+            <artifactId>commons-httpclient</artifactId>
+            <version>3.1</version>
+        </dependency>
+        <dependency>
+            <groupId>nl.bitwalker</groupId>
+            <artifactId>UserAgentUtils</artifactId>
+            <version>1.2.4</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>${mybatis-plus.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus</artifactId>
+            <version>${mybatis-plus.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.github.pagehelper</groupId>
+            <artifactId>pagehelper-spring-boot-starter</artifactId>
+            <version>1.2.5</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.mybatis</groupId>
+                    <artifactId>mybatis</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.axet</groupId>
+            <artifactId>kaptcha</artifactId>
+            <version>${kaptcha.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.javassist</groupId>
+            <artifactId>javassist</artifactId>
+            <version>3.24.0-GA</version>
+        </dependency>
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>3.10.2</version>
+        </dependency>
+        <!-- aliyun短信API -->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-core</artifactId>
+            <version>4.4.6</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.javen205</groupId>
+            <artifactId>IJPay-WxPay</artifactId>
+            <version>2.9.6</version>
+        </dependency>
+    </dependencies>
+
+</project>

+ 35 - 0
fuint-application/src/main/java/com/fuint/common/Constants.java

@@ -0,0 +1,35 @@
+package com.fuint.common;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 常量定义
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class Constants {
+
+    // 第几页,默认第1页
+    public static final int PAGE_NUMBER = 1;
+
+    // 每页记录数,默认20条
+    public static final int PAGE_SIZE = 20;
+
+    // 读取数据最多行数
+    public static final int MAX_ROWS = 2000;
+
+    /**
+     * 系统配置, 从setting表中读取
+     */
+    public static Map<String, String> SYS_CONFIGS = new HashMap<String, String>();
+
+    public static final int HTTP_RESPONSE_CODE_PARAM_ERROR = 202;
+    public static final int HTTP_RESPONSE_CODE_USER_NOT_EXIST = 402;
+    public static final int HTTP_RESPONSE_CODE_USER_LOGIN_ERROR = 403;
+    public static final int HTTP_RESPONSE_CODE_NOLOGIN = 1001;
+
+    public static final String SESSION_USER = "USER";
+    public static final String SESSION_ADMIN_USER = "ADMIN_USER";
+}

+ 147 - 0
fuint-application/src/main/java/com/fuint/common/aspect/LogAop.java

@@ -0,0 +1,147 @@
+package com.fuint.common.aspect;
+
+import javassist.ClassClassPath;
+import javassist.ClassPool;
+import javassist.CtClass;
+import javassist.CtMethod;
+import javassist.Modifier;
+import javassist.bytecode.CodeAttribute;
+import javassist.bytecode.LocalVariableAttribute;
+import javassist.bytecode.MethodInfo;
+import org.apache.commons.lang.ArrayUtils;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.stereotype.Component;
+
+/**
+ * 控制器日志
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Component  // 声明组件
+@Aspect // 声明切面
+@ComponentScan  //组件自动扫描
+@EnableAspectJAutoProxy // spring自动切换JDK动态代理和CGLIB
+public class LogAop {
+
+    /**
+     *自定义日志
+     */
+    private Logger logger = LoggerFactory.getLogger(LogAop.class);
+
+    /**
+     * 打印类method的名称以及参数
+     * @param point 切面
+     */
+    public void printMethodParams(JoinPoint point){
+        if (point == null) {
+            return;
+        }
+        try {
+            // 获取方法的参数值数组。方法名、类型以及地址等信息
+            String className = point.getTarget().getClass().getName();
+            String methodName = point.getSignature().getName();
+
+            // 重新定义日志
+            logger = LoggerFactory.getLogger(point.getTarget().getClass());
+            logger.info("-------------------------"+className+"------------------------------------");
+            logger.info("methodName = {}", methodName);
+
+            // 获取方法的参数值数组
+            Object[] methodArgs = point.getArgs();
+
+            // 获取方法参数名称
+            String[] paramNames = getFieldsName(className, methodName);
+
+            // 输出方法的参数名和参数值
+            printParams(paramNames, methodArgs);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 使用获取方法参数名称
+     * @param class_name    类名
+     * @param method_name   方法名
+     * @throws Exception
+     */
+    private String[] getFieldsName(String class_name, String method_name) throws Exception {
+        Class<?> clazz = Class.forName(class_name);
+        String clazz_name = clazz.getName();
+        ClassPool pool = ClassPool.getDefault();
+        ClassClassPath classPath = new ClassClassPath(clazz);
+        pool.insertClassPath(classPath);
+        try {
+            CtClass ctClass = pool.get(clazz_name);
+            CtMethod ctMethod = ctClass.getDeclaredMethod(method_name);
+            MethodInfo methodInfo = ctMethod.getMethodInfo();
+            CodeAttribute codeAttribute = methodInfo.getCodeAttribute();
+            LocalVariableAttribute attr = (LocalVariableAttribute) codeAttribute.getAttribute(LocalVariableAttribute.tag);
+            if (attr == null) {
+                return null;
+            }
+            String[] paramsArgsName = new String[ctMethod.getParameterTypes().length];
+            int pos = Modifier.isStatic(ctMethod.getModifiers()) ? 0 : 1;
+            for (int i = 0; i < paramsArgsName.length; i++) {
+                paramsArgsName[i] = attr.variableName(i + pos);
+            }
+            return paramsArgsName;
+        } catch (Exception ex) {
+            return null;
+        }
+    }
+
+    /**
+     * 判断是否为基本类型
+     */
+    private boolean isPrimite(Class<?> clazz) {
+        if (clazz.isPrimitive() || clazz == String.class){
+            return true;
+        }else {
+            return false;
+        }
+    }
+
+    /**
+     * 打印方法参数值  基本类型直接打印,非基本类型需要重写toString方法
+     * @param paramsArgsName    方法参数名数组
+     * @param paramsArgsValue   方法参数值数组
+     */
+    private void printParams(String[] paramsArgsName, Object[] paramsArgsValue) {
+        if (ArrayUtils.isEmpty(paramsArgsName) || ArrayUtils.isEmpty(paramsArgsValue)) {
+            return;
+        }
+        StringBuffer buffer = new StringBuffer();
+        for (int i = 0; i < paramsArgsName.length; i++) {
+            // 参数名
+            String name = paramsArgsName[i];
+            // 参数值
+            Object value = paramsArgsValue[i];
+            buffer.append(name +" = ");
+            if (isPrimite(value.getClass())) {
+                buffer.append(value + " ,");
+            } else {
+                buffer.append(value.toString() + " ,");
+            }
+        }
+        logger.info("params : " + buffer.toString());
+        logger.info("-------------------------------------------------------------");
+    }
+
+    /**
+     * 在方法执行前进行切面
+     * 定义切面表达式
+     * @param point 切面
+     */
+    @Before("execution(public * com.fuint.module..*.*(..))")
+    public void before(JoinPoint point) {
+        this.printMethodParams(point);
+    }
+}

+ 16 - 0
fuint-application/src/main/java/com/fuint/common/aspect/RedisModelAspect.java

@@ -0,0 +1,16 @@
+package com.fuint.common.aspect;
+
+import org.aspectj.lang.annotation.Aspect;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Component
+@Aspect
+public class RedisModelAspect {
+    public static final Logger logger = LoggerFactory.getLogger(RedisModelAspect.class);
+}

+ 121 - 0
fuint-application/src/main/java/com/fuint/common/aspect/TActionLogAop.java

@@ -0,0 +1,121 @@
+package com.fuint.common.aspect;
+
+import com.fuint.common.dto.AccountInfo;
+import com.fuint.common.service.ActionLogService;
+import com.fuint.common.util.CommonUtil;
+import com.fuint.common.util.TokenUtil;
+import com.fuint.framework.annoation.OperationServiceLog;
+import com.fuint.repository.model.TActionLog;
+import org.apache.commons.lang.StringUtils;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Component;
+import javax.servlet.http.HttpServletRequest;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 后台操作日志
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Component
+@Aspect
+public class TActionLogAop {
+
+    private Logger LOGGER = LoggerFactory.getLogger(TActionLogAop.class);
+
+    @Lazy
+    @Autowired
+    private ActionLogService tActionLogService;
+
+    private String userName = ""; // 用户名
+    private Long startTimeMillis = 0l; // 开始时间
+    private Long endTimeMillis = 0l; // 结束时间
+    private String clientIp = "";
+    private Integer clientPort = 0;
+    private String module = "";
+    private String url = "";
+    private String userAgent = "";
+
+    // Service层切点
+    @Pointcut("@annotation(com.fuint.framework.annoation.OperationServiceLog)")
+    public void serviceAspect() {
+        // empty
+    }
+
+    /**
+     * service 方法前调用
+     *
+     * @param joinPoint
+     */
+    @Before("serviceAspect()")
+    public void doBeforeService(JoinPoint joinPoint) {
+        startTimeMillis = System.currentTimeMillis(); // 记录方法开始执行的时间
+    }
+
+    /**
+     * 方法后调用
+     *
+     * @param operationServiceLog
+     */
+    @After("serviceAspect() && @annotation(operationServiceLog)")
+    public void doAfterInService(OperationServiceLog operationServiceLog) {
+        try {
+            endTimeMillis = System.currentTimeMillis(); // 记录方法执行完成的时间
+            clientIp = CommonUtil.getIPFromHttpRequest(getRequest());
+            userAgent = getRequest().getHeader("user-agent");
+            url = getRequest().getRequestURI();
+            clientPort = 0;
+            module = operationServiceLog.description();
+            if (module.length() > 255) {
+                module = module.substring(0, 255);
+            }
+            HttpServletRequest request = getRequest();
+            String token = request.getHeader("Access-Token");
+            if (StringUtils.isNotEmpty(token)) {
+                AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
+                userName = accountInfo.getAccountName();
+            }
+            this.printOptLog();
+        } catch (Exception e) {
+            // empty
+        }
+    }
+
+    /**
+     * 组装日志
+     */
+    private void printOptLog() {
+        if (userAgent.length() > 255) {
+            userAgent = userAgent.substring(0, 255);
+        }
+        if (url.length() > 255) {
+            url = url.substring(0, 255);
+        }
+        TActionLog hal = new TActionLog();
+        hal.setAcctName(userName);
+        hal.setModule(module);
+        hal.setActionTime(new Date());
+        hal.setClientIp(clientIp);
+        hal.setClientPort(clientPort);
+        hal.setUrl(url);
+        hal.setTimeConsuming(new BigDecimal(endTimeMillis - startTimeMillis));
+        hal.setUserAgent(userAgent);
+        if (StringUtils.isNotEmpty(module) && userName != null && StringUtils.isNotEmpty(userName)) {
+            this.tActionLogService.saveActionLog(hal);
+        }
+    }
+
+    protected HttpServletRequest getRequest(){
+        return ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
+    }
+}

+ 104 - 0
fuint-application/src/main/java/com/fuint/common/bean/AliPayBean.java

@@ -0,0 +1,104 @@
+package com.fuint.common.bean;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.stereotype.Component;
+
+/**
+ * 支付宝支付Bean
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Component
+@PropertySource("file:${env.properties.path}/${env.profile}/application.properties")
+@ConfigurationProperties(prefix = "alipay")
+public class AliPayBean {
+
+    private String appId;
+    private String privateKey;
+    private String publicKey;
+    private String appCertPath;
+    private String aliPayCertPath;
+    private String aliPayRootCertPath;
+    private String serverUrl;
+    private String domain;
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public String getPrivateKey() {
+        return privateKey;
+    }
+
+    public void setPrivateKey(String privateKey) {
+        this.privateKey = privateKey;
+    }
+
+    public String getPublicKey() {
+        return publicKey;
+    }
+
+    public void setPublicKey(String publicKey) {
+        this.publicKey = publicKey;
+    }
+
+    public String getAppCertPath() {
+        return appCertPath;
+    }
+
+    public void setAppCertPath(String appCertPath) {
+        this.appCertPath = appCertPath;
+    }
+
+    public String getAliPayCertPath() {
+        return aliPayCertPath;
+    }
+
+    public void setAliPayCertPath(String aliPayCertPath) {
+        this.aliPayCertPath = aliPayCertPath;
+    }
+
+    public String getAliPayRootCertPath() {
+        return aliPayRootCertPath;
+    }
+
+    public void setAliPayRootCertPath(String aliPayRootCertPath) {
+        this.aliPayRootCertPath = aliPayRootCertPath;
+    }
+
+    public String getServerUrl() {
+        return serverUrl;
+    }
+
+    public void setServerUrl(String serverUrl) {
+        this.serverUrl = serverUrl;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    @Override
+    public String toString() {
+        return "AliPayBean{" +
+            "appId='" + appId + '\'' +
+            ", privateKey='" + privateKey + '\'' +
+            ", publicKey='" + publicKey + '\'' +
+            ", appCertPath='" + appCertPath + '\'' +
+            ", aliPayCertPath='" + aliPayCertPath + '\'' +
+            ", aliPayRootCertPath='" + aliPayRootCertPath + '\'' +
+            ", serverUrl='" + serverUrl + '\'' +
+            ", domain='" + domain + '\'' +
+            '}';
+    }
+}

+ 83 - 0
fuint-application/src/main/java/com/fuint/common/bean/H5SceneInfo.java

@@ -0,0 +1,83 @@
+package com.fuint.common.bean;
+
+import com.alibaba.fastjson.JSON;
+
+/**
+ * H5支付Bean
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class H5SceneInfo {
+    private H5 h5_info;
+
+    public H5 getH5Info() {
+        return h5_info;
+    }
+
+    public void setH5Info(H5 h5_info) {
+        this.h5_info = h5_info;
+    }
+
+    @Override
+    public String toString() {
+        return JSON.toJSONString(this);
+    }
+
+    public static class H5 {
+        private String type;
+        private String app_name;
+        private String bundle_id;
+        private String package_name;
+        private String wap_url;
+        private String wap_name;
+
+        public String getType() {
+            return type;
+        }
+
+        public void setType(String type) {
+            this.type = type;
+        }
+
+        public String getApp_name() {
+            return app_name;
+        }
+
+        public void setApp_name(String app_name) {
+            this.app_name = app_name;
+        }
+
+        public String getBundle_id() {
+            return bundle_id;
+        }
+
+        public void setBundle_id(String bundle_id) {
+            this.bundle_id = bundle_id;
+        }
+
+        public String getPackage_name() {
+            return package_name;
+        }
+
+        public void setPackage_name(String package_name) {
+            this.package_name = package_name;
+        }
+
+        public String getWap_url() {
+            return wap_url;
+        }
+
+        public void setWap_url(String wap_url) {
+            this.wap_url = wap_url;
+        }
+
+        public String getWap_name() {
+            return wap_name;
+        }
+
+        public void setWap_name(String wap_name) {
+            this.wap_name = wap_name;
+        }
+    }
+}

+ 64 - 0
fuint-application/src/main/java/com/fuint/common/bean/UnionPayBean.java

@@ -0,0 +1,64 @@
+package com.fuint.common.bean;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.stereotype.Component;
+
+/**
+ * 云闪付支付Bean
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Component
+@PropertySource("file:${env.properties.path}/${env.profile}/application.properties")
+@ConfigurationProperties(prefix = "union")
+public class UnionPayBean {
+
+    private String machId;
+    private String key;
+    private String serverUrl;
+    private String domain;
+
+    public String getMachId() {
+        return machId;
+    }
+
+    public void setMachId(String machId) {
+        this.machId = machId;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getServerUrl() {
+        return serverUrl;
+    }
+
+    public void setServerUrl(String serverUrl) {
+        this.serverUrl = serverUrl;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    @Override
+    public String toString() {
+        return "UnionPayBean{" +
+            "machId='" + machId + '\'' +
+            ", key='" + key + '\'' +
+            ", serverUrl='" + serverUrl + '\'' +
+            ", domain='" + domain + '\'' +
+            '}';
+    }
+}

+ 78 - 0
fuint-application/src/main/java/com/fuint/common/bean/WxPayBean.java

@@ -0,0 +1,78 @@
+package com.fuint.common.bean;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.stereotype.Component;
+
+/**
+ * 微信支付Bean
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Component
+@PropertySource("file:${env.properties.path}/${env.profile}/application.properties")
+@ConfigurationProperties(prefix = "wxpay")
+public class WxPayBean {
+
+    private String appId;
+    private String appSecret;
+    private String mchId;
+    private String apiV2;
+    private String certPath;
+    private String domain; // 填写完整的回调地址
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public String getAppSecret() {
+        return appSecret;
+    }
+
+    public void setAppSecret(String appSecret) {
+        this.appSecret = appSecret;
+    }
+
+    public String getMchId() {
+        return mchId;
+    }
+
+    public void setMchId(String mchId) {
+        this.mchId = mchId;
+    }
+
+    public String getApiV2() {
+        return apiV2;
+    }
+
+    public void setApiV2(String apiV2) {
+        this.apiV2 = apiV2;
+    }
+
+    public String getCertPath() {
+        return certPath;
+    }
+
+    public void setCertPath(String certPath) {
+        this.certPath = certPath;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    @Override
+    public String toString() {
+        return "WxPayBean [appId=" + appId + ", appSecret=" + appSecret + ", mchId=" + mchId + ", apiV2="
+            + apiV2 + ", certPath=" + certPath + ", domain=" + domain + "]";
+    }
+}

+ 113 - 0
fuint-application/src/main/java/com/fuint/common/bean/WxPayV3Bean.java

@@ -0,0 +1,113 @@
+package com.fuint.common.bean;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.stereotype.Component;
+
+/**
+ * 微信V3支付Bean
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Component
+@PropertySource("file:${env.properties.path}/${env.profile}/application.properties")
+@ConfigurationProperties(prefix = "v3")
+public class WxPayV3Bean {
+
+    private String appId;
+    private String keyPath;
+    private String certPath;
+    private String certP12Path;
+    private String platformCertPath;
+    private String mchId;
+    private String apiKey;
+    private String apiKey3;
+    private String domain;
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public String getKeyPath() {
+        return keyPath;
+    }
+
+    public void setKeyPath(String keyPath) {
+        this.keyPath = keyPath;
+    }
+
+    public String getCertPath() {
+        return certPath;
+    }
+
+    public void setCertPath(String certPath) {
+        this.certPath = certPath;
+    }
+
+    public String getCertP12Path() {
+        return certP12Path;
+    }
+
+    public void setCertP12Path(String certP12Path) {
+        this.certP12Path = certP12Path;
+    }
+
+    public String getPlatformCertPath() {
+        return platformCertPath;
+    }
+
+    public void setPlatformCertPath(String platformCertPath) {
+        this.platformCertPath = platformCertPath;
+    }
+
+    public String getMchId() {
+        return mchId;
+    }
+
+    public void setMchId(String mchId) {
+        this.mchId = mchId;
+    }
+
+    public String getApiKey() {
+        return apiKey;
+    }
+
+    public void setApiKey(String apiKey) {
+        this.apiKey = apiKey;
+    }
+
+    public String getApiKey3() {
+        return apiKey3;
+    }
+
+    public void setApiKey3(String apiKey3) {
+        this.apiKey3 = apiKey3;
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    @Override
+    public String toString() {
+        return "WxPayV3Bean{" +
+            "keyPath='" + keyPath + '\'' +
+            ", certPath='" + certPath + '\'' +
+            ", certP12Path='" + certP12Path + '\'' +
+            ", platformCertPath='" + platformCertPath + '\'' +
+            ", mchId='" + mchId + '\'' +
+            ", apiKey='" + apiKey + '\'' +
+            ", apiKey3='" + apiKey3 + '\'' +
+            ", domain='" + domain + '\'' +
+            '}';
+    }
+}

+ 41 - 0
fuint-application/src/main/java/com/fuint/common/config/CaptchaConfig.java

@@ -0,0 +1,41 @@
+package com.fuint.common.config;
+
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.google.code.kaptcha.util.Config;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import java.io.InputStream;
+import java.util.Properties;
+
+/**
+ * 图形验证码组件配置
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Configuration
+public class CaptchaConfig {
+
+    private static final Logger logger = LoggerFactory.getLogger(CaptchaConfig.class);
+
+    /**
+     * 验证码
+     */
+    @Bean
+    public DefaultKaptcha defaultCaptcha() {
+        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
+        Properties property = new Properties();
+        try {
+            InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("captcha-conf.properties");
+            property.load(inputStream);
+            Config config = new Config(property);
+            defaultKaptcha.setConfig(config);
+        } catch (Exception e) {
+            logger.error("Kaptcha properties load error {}", e);
+            throw new RuntimeException("Kaptcha properties load error");
+        }
+        return defaultKaptcha;
+    }
+}

+ 22 - 0
fuint-application/src/main/java/com/fuint/common/config/Message.java

@@ -0,0 +1,22 @@
+package com.fuint.common.config;
+
+/**
+ * 消息定义
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class Message {
+    public static final String PARAM_ERROR = "参数出错";
+    public static final String COUPON_NOT_EXIST = "该卡券不存在";
+    public static final String COUPON_IS_EXPIRE = "该卡券未生效";
+    public static final String USER_NOT_EXIST = "该用户不存在";
+    public static final String MAX_COUPON_LIMIT = "已经领取过了";
+    public static final String COUPON_TYPE_ERROR = "卡券类型有误";
+    public static final String POINT_LIMIT = "您的积分不足";
+    public static final String NEED_CODE = "需要领取码";
+    public static final String CODE_ERROR = "领取码错误";
+    public static final String CODE_ERROR_1 = "核销码错误";
+    public static final String GRADE_ERROR = "该卡券不适于您的会员等级";
+    public static final String HAS_COUPON = "您已领取过该卡券";
+}

+ 51 - 0
fuint-application/src/main/java/com/fuint/common/config/MybatisPlusConfig.java

@@ -0,0 +1,51 @@
+package com.fuint.common.config;
+
+import com.baomidou.mybatisplus.core.injector.ISqlInjector;
+import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
+import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * MybatisPlus配置
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Configuration
+@MapperScan({"com.fuint.repository.**.mapper"})
+public class MybatisPlusConfig {
+
+    /**
+     * 分页插件
+     * @return PaginationInterceptor
+     */
+    @Bean
+    @ConditionalOnMissingBean
+    public PaginationInterceptor paginationInterceptor() {
+        return new PaginationInterceptor();
+    }
+
+    /**
+     * 逻辑删除插件
+     *
+     * @return LogicSqlInjector
+     */
+    @Bean
+    @ConditionalOnMissingBean
+    public ISqlInjector sqlInjector() {
+        return new LogicSqlInjector();
+    }
+
+    /**
+     * 乐观锁插件
+     * @return
+     */
+    @Bean
+    public OptimisticLockerInterceptor optimisticLockerInterceptor() {
+        return new OptimisticLockerInterceptor();
+    }
+}

+ 67 - 0
fuint-application/src/main/java/com/fuint/common/config/RedisConfig.java

@@ -0,0 +1,67 @@
+package com.fuint.common.config;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.annotation.CachingConfigurerSupport;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.cache.interceptor.KeyGenerator;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+import org.springframework.session.data.redis.config.ConfigureRedisAction;
+import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
+
+/**
+ * 配置redis缓存
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Configuration
+@EnableCaching
+@EnableRedisHttpSession
+public class RedisConfig extends CachingConfigurerSupport {
+
+    @Autowired
+    private RedisConnectionFactory redisConnectionFactory;
+
+    @Bean
+    public KeyGenerator keyGenerator() {
+        return (target, method, params) -> {
+            StringBuilder sb = new StringBuilder();
+            sb.append(target.getClass().getName());
+            sb.append(method.getName());
+            for (Object obj : params) {
+                sb.append(obj.toString());
+            }
+            return sb.toString();
+        };
+    }
+
+    @Bean
+    public static ConfigureRedisAction configureRedisAction() {
+        return ConfigureRedisAction.NO_OP;
+    }
+
+    @Bean
+    Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer(ObjectMapper objectMapper) {
+        Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(
+                Object.class);
+        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
+        return jackson2JsonRedisSerializer;
+    }
+
+    @Bean
+    RedisTemplate<String, Object> redisTemplate(Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer) {
+        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
+        redisTemplate.setConnectionFactory(redisConnectionFactory);
+        redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
+        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
+        redisTemplate.setKeySerializer(stringRedisSerializer);
+        redisTemplate.setHashKeySerializer(stringRedisSerializer);
+        return redisTemplate;
+    }
+}

+ 44 - 0
fuint-application/src/main/java/com/fuint/common/config/SwaggerConfig.java

@@ -0,0 +1,44 @@
+package com.fuint.common.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * Swagger接口文档
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig implements WebMvcConfigurer {
+
+     @Bean
+     public Docket createRestApi() {
+         return new Docket(DocumentationType.SWAGGER_2)
+         .apiInfo(apiInfo())
+         .enable(true)
+         .select()
+         .apis(RequestHandlerSelectors.basePackage("com.fuint.module"))
+         .build();
+     }
+
+     @Bean
+     public ApiInfo apiInfo() {
+         return new ApiInfoBuilder()
+         .title("fuint会员营销系统接口文档")
+         .description("fuint会员营销系统接口文档,“/clientApi”目录接口为会员端相关接口,“/backendApi”目录接口为后台管理端相关接口。")
+         .termsOfServiceUrl("https://www.fuint.cn/")
+         .contact(new Contact("海南延禾信息技术有限公司","https://www.fuint.cn/", "fushengqian@qq.com"))
+         .version("1.0")
+         .build();
+     }
+}

+ 98 - 0
fuint-application/src/main/java/com/fuint/common/config/WebConfig.java

@@ -0,0 +1,98 @@
+package com.fuint.common.config;
+
+import com.fuint.common.web.AdminUserInterceptor;
+import com.fuint.common.web.CommandInterceptor;
+import com.fuint.common.web.ClientUserInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.CacheControl;
+import org.springframework.web.filter.CharacterEncodingFilter;
+import org.springframework.web.servlet.config.annotation.*;
+import org.springframework.web.servlet.resource.CssLinkResourceTransformer;
+import org.springframework.web.servlet.resource.VersionResourceResolver;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * web配置
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Configuration
+public class WebConfig extends WebMvcConfigurationSupport {
+
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+        registry.addResourceHandler("/resources/**")
+                .addResourceLocations("/resources/", "classpath:/other-resources/")
+                .setCacheControl(CacheControl.maxAge(365, TimeUnit.DAYS))
+                .resourceChain(false)
+                .addResolver(new VersionResourceResolver().addContentVersionStrategy("/**"))
+                .addTransformer(new CssLinkResourceTransformer());
+        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
+
+        registry.addResourceHandler("/**").addResourceLocations(
+                "classpath:/static/");
+        registry.addResourceHandler("swagger-ui.html").addResourceLocations(
+                "classpath:/META-INF/resources/");
+        registry.addResourceHandler("/webjars/**").addResourceLocations(
+                "classpath:/META-INF/resources/webjars/");
+        super.addResourceHandlers(registry);
+    }
+
+    @Bean
+    public CommandInterceptor commandInterceptor() {
+        return new CommandInterceptor();
+    }
+
+    @Bean
+    public AdminUserInterceptor adminUserInterceptor() {
+        return new AdminUserInterceptor();
+    }
+
+    @Bean
+    public ClientUserInterceptor portalUserInterceptor() {
+        return new ClientUserInterceptor();
+    }
+
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        // Command
+        registry.addInterceptor(commandInterceptor())
+                .addPathPatterns("/cmd/**");
+
+        // 后台拦截
+        registry.addInterceptor(adminUserInterceptor())
+                .addPathPatterns("/backendApi/**")
+                .excludePathPatterns("/clientApi/captcha/**")
+                .excludePathPatterns("/backendApi/captcha/**")
+                .excludePathPatterns("/backendApi/userCoupon/exportList")
+                .excludePathPatterns("/backendApi/login/**");
+
+        // 客户端拦截
+        registry.addInterceptor(portalUserInterceptor())
+                .addPathPatterns("/clientApi/**")
+                .excludePathPatterns("/clientApi/sign/**")
+                .excludePathPatterns("/clientApi/page/home")
+                .excludePathPatterns("/clientApi/captcha/**")
+                .excludePathPatterns("/clientApi/goodsApi/**")
+                .excludePathPatterns("/clientApi/cart/**")
+                .excludePathPatterns("/clientApi/user/**")
+                .excludePathPatterns("/clientApi/settlement/submit")
+                .excludePathPatterns("/clientApi/pay/**")
+                .excludePathPatterns("/clientApi/order/todoCounts")
+                .excludePathPatterns("/clientApi/store/**")
+                .excludePathPatterns("/clientApi/article/**")
+                .excludePathPatterns("/clientApi/message/getOne")
+                .excludePathPatterns("/clientApi/message/wxPush")
+                .excludePathPatterns("/clientApi/sms/sendVerifyCode");
+    }
+
+    @Bean
+    public CharacterEncodingFilter characterEncodingFilter() {
+        CharacterEncodingFilter filter = new CharacterEncodingFilter();
+        filter.setEncoding("UTF-8");
+        filter.setForceEncoding(true);
+        return filter;
+    }
+}

+ 221 - 0
fuint-application/src/main/java/com/fuint/common/domain/TreeNode.java

@@ -0,0 +1,221 @@
+package com.fuint.common.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 树状结构节点实体
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class TreeNode {
+
+    /**
+     * 菜单ID
+     */
+    private long id;
+
+    /**
+     * 菜单名称
+     */
+    private String name;
+
+    /**
+     * 菜单名称(字母)
+     */
+    private String ename;
+
+    /**
+     * tree 节点是否打开
+     */
+    private boolean open;
+
+    /**
+     * 是否菜单
+     * */
+    private int isMenu;
+
+    /**
+     * tree 节点是否选中
+     */
+    private boolean checked;
+
+    /**
+     * url
+     */
+    private String url;
+
+    /**
+     * path
+     */
+    private String path;
+
+    /**
+     * 权限标识
+     */
+    private String perms;
+
+    /**
+     * 子菜单
+     */
+    private List<TreeNode> childrens = new ArrayList<TreeNode>();
+
+    /**
+     * 菜单级别
+     */
+    private int level;
+
+    /**
+     * 上级菜单
+     */
+    private long pId;
+
+    /**
+     * 图标
+     */
+    private String icon;
+
+    /**
+     * 新图标
+     */
+    private String newIcon;
+
+    /**
+     * 排序
+     * */
+    private Integer sort;
+
+    /**
+     * 状态
+     * */
+    private String status;
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getEname() {
+        return ename;
+    }
+
+    public void setEname(String ename) {
+        this.ename = ename;
+    }
+
+    public boolean isOpen() {
+        return open;
+    }
+
+    public int getIsMenu() {
+        return isMenu;
+    }
+
+    public void setIsMenu(int isMenu) {
+        this.isMenu = isMenu;
+    }
+
+    public void setOpen(boolean open) {
+        this.open = open;
+    }
+
+    public boolean isChecked() {
+        return checked;
+    }
+
+    public void setChecked(boolean checked) {
+        this.checked = checked;
+    }
+
+    public List<TreeNode> getChildrens() {
+        return childrens;
+    }
+
+    public void setChildrens(List<TreeNode> childrens) {
+        this.childrens = childrens;
+    }
+
+    public int getLevel() {
+        return level;
+    }
+
+    public void setLevel(int level) {
+        this.level = level;
+    }
+
+    public long getpId() {
+        return pId;
+    }
+
+    public void setpId(long pId) {
+        this.pId = pId;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    public String getPerms() {
+        return perms;
+    }
+
+    public void setPerms(String perms) {
+        this.perms = perms;
+    }
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+
+    public String getNewIcon() {
+        return newIcon;
+    }
+
+    public void setNewIcon(String newIcon) {
+        this.newIcon = newIcon;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+}

+ 61 - 0
fuint-application/src/main/java/com/fuint/common/domain/TreeSelect.java

@@ -0,0 +1,61 @@
+package com.fuint.common.domain;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.stream.Collectors;
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * TreeSelect树结构实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class TreeSelect implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    // 节点ID
+    private Long id;
+
+    // 节点名称
+    private String label;
+
+    // 子节点
+    @JsonInclude(JsonInclude.Include.NON_EMPTY)
+    private List<TreeSelect> childrens;
+
+    public TreeSelect() {
+       // empty
+    }
+
+    public TreeSelect(TreeNode menu) {
+        this.id = menu.getId();
+        this.label = menu.getName();
+        this.childrens = menu.getChildrens().stream().map(TreeSelect::new).collect(Collectors.toList());
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    public List<TreeSelect> getChildrens() {
+        return childrens;
+    }
+
+    public void setChildrens(List<TreeSelect> childrens) {
+        this.childrens = childrens;
+    }
+}

+ 218 - 0
fuint-application/src/main/java/com/fuint/common/dto/AccountDto.java

@@ -0,0 +1,218 @@
+package com.fuint.common.dto;
+
+import java.util.Date;
+
+/**
+ * 后台账户实体类
+ */
+public class AccountDto {
+
+    /**
+     * 账户主键id
+     */
+    private Integer id;
+
+    /**
+     * 账户编码
+     */
+    private String accountKey;
+
+    /**
+     * 账户名称
+     */
+    private String accountName;
+    /**
+     * 密码
+     */
+    private String password;
+
+    /**
+     * 账户状态
+     * 状态 : 0 无效 1 有效
+     */
+    private int accountStatus;
+
+    /**
+     * 是否激活
+     * 状态 : 0 未激活 1已激活
+     */
+    private int isActive;
+
+    /**
+     * 创建时间
+     */
+    private Date createDate;
+
+    /**
+     * 修改时间
+     */
+    private Date modifyDate;
+
+    /**
+     * 随机码(公盐)
+     */
+    private String salt;
+
+    /**
+     * 是否被锁定
+     */
+    private int locked;
+
+    /**
+     * 管理员真实姓名
+     */
+    private String realName;
+
+    /**
+     * 所属店铺id
+     */
+    private Integer storeId;
+
+    /**
+     * 所属店铺名称
+     */
+    private String storeName;
+
+    /**
+     * 员工ID
+     */
+    private Integer staffId;
+
+    /**
+     * 所属商户
+     */
+    private Integer merchantId;
+
+    /**
+     * 所属商户名称
+     */
+    private String merchantName;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getAccountKey() {
+        return accountKey;
+    }
+
+    public void setAccountKey(String accountKey) {
+        this.accountKey = accountKey;
+    }
+
+    public String getAccountName() {
+        return accountName;
+    }
+
+    public void setAccountName(String accountName) {
+        this.accountName = accountName;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public int getAccountStatus() {
+        return accountStatus;
+    }
+
+    public void setAccountStatus(int accountStatus) {
+        this.accountStatus = accountStatus;
+    }
+
+    public int getIsActive() {
+        return isActive;
+    }
+
+    public void setIsActive(int isActive) {
+        this.isActive = isActive;
+    }
+
+    public Date getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(Date createDate) {
+        this.createDate = createDate;
+    }
+
+    public Date getModifyDate() {
+        return modifyDate;
+    }
+
+    public void setModifyDate(Date modifyDate) {
+        this.modifyDate = modifyDate;
+    }
+
+    public String getSalt() {
+        return salt;
+    }
+
+    public void setSalt(String salt) {
+        this.salt = salt;
+    }
+
+    public int getLocked() {
+        return locked;
+    }
+
+    public void setLocked(int locked) {
+        this.locked = locked;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public Integer getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
+
+    public String getStoreName() {
+        return storeName;
+    }
+
+    public void setStaffId(Integer staffId) {
+        this.staffId = staffId;
+    }
+
+    public Integer getStaffId() {
+        return staffId;
+    }
+
+    public Integer getMerchantId() {
+        return merchantId;
+    }
+
+    public void setMerchantId(Integer merchantId) {
+        this.merchantId = merchantId;
+    }
+
+    public void setMerchantName(String merchantName) {
+        this.merchantName = merchantName;
+    }
+
+    public String getMerchantName() {
+        return merchantName;
+    }
+}

+ 34 - 0
fuint-application/src/main/java/com/fuint/common/dto/AccountInfo.java

@@ -0,0 +1,34 @@
+package com.fuint.common.dto;
+
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 后台账号信息
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Data
+public class AccountInfo implements Serializable {
+
+    private Integer id;
+    private String accountKey;
+    private String accountName;
+    private int accountStatus;
+    private String isActive;
+    private Date createDate;
+    private Date modifyDate;
+    private String salt;
+    private String roleIds;
+    private int locked;
+    private int ownerId;
+    private String realName;
+    private Integer merchantId;
+    private Integer storeId;
+    private String storeName;
+    private Integer staffId;
+    private String token;
+
+}

+ 109 - 0
fuint-application/src/main/java/com/fuint/common/dto/AddressDto.java

@@ -0,0 +1,109 @@
+package com.fuint.common.dto;
+
+public class AddressDto {
+
+    private Integer id;
+
+    private Integer userId;
+
+    private String name;
+
+    private String mobile;
+
+    private Integer provinceId;
+
+    private String provinceName;
+
+    private Integer cityId;
+
+    private String cityName;
+
+    private Integer regionId;
+
+    private String regionName;
+
+    private String detail;
+
+    private String isDefault;
+
+    private String status;
+
+    public Integer getId(){
+        return id;
+    }
+    public void setId(Integer id){
+        this.id=id;
+    }
+    public Integer getUserId(){
+        return userId;
+    }
+    public void setUserId(Integer userId){
+        this.userId=userId;
+    }
+    public String getName(){
+        return name;
+    }
+    public void setName(String name){
+        this.name=name;
+    }
+    public String getMobile(){
+        return mobile;
+    }
+    public void setMobile(String mobile){
+        this.mobile=mobile;
+    }
+    public Integer getProvinceId(){
+        return provinceId;
+    }
+    public void setProvinceId(Integer provinceId){
+        this.provinceId=provinceId;
+    }
+    public String getProvinceName(){
+        return provinceName;
+    }
+    public void setProvinceName(String provinceName){
+        this.provinceName=provinceName;
+    }
+    public Integer getCityId(){
+        return cityId;
+    }
+    public void setCityId(Integer cityId){
+        this.cityId=cityId;
+    }
+    public String getCityName(){
+        return cityName;
+    }
+    public void setCityName(String cityName){
+        this.cityName=cityName;
+    }
+    public Integer getRegionId(){
+        return regionId;
+    }
+    public void setRegionId(Integer regionId){
+        this.regionId=regionId;
+    }
+    public String getRegionName(){
+        return regionName;
+    }
+    public void setRegionName(String regionName){
+        this.regionName=regionName;
+    }
+    public String getDetail(){
+        return detail;
+    }
+    public void setDetail(String detail){
+        this.detail=detail;
+    }
+    public String getIsDefault(){
+        return isDefault;
+    }
+    public void setIsDefault(String isDefault){
+        this.isDefault=isDefault;
+    }
+    public String getStatus(){
+        return status;
+    }
+    public void setStatus(String status){
+        this.status=status;
+    }
+}

+ 156 - 0
fuint-application/src/main/java/com/fuint/common/dto/ArticleDto.java

@@ -0,0 +1,156 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 文章实体类
+ * Created by FSQ
+ */
+public class ArticleDto implements Serializable {
+
+    /**
+    * 自增ID 
+    */
+    private Integer id;
+
+   /**
+    * 标题 
+    */
+    private String title;
+
+    /**
+     * 简介
+     */
+    private String brief;
+
+    /**
+     * 所属店铺
+     * */
+    private Integer storeId;
+
+    /**
+     * 链接地址
+     */
+    private String url;
+
+    /**
+     * 点击数
+     */
+    private Long click;
+
+   /**
+    * 图片地址 
+    */
+    private String image;
+
+   /**
+    * 描述 
+    */
+    private String description;
+
+   /**
+    * 创建时间 
+    */
+    private Date createTime;
+
+   /**
+    * 更新时间 
+    */
+    private Date updateTime;
+
+   /**
+    * 最后操作人 
+    */
+    private String operator;
+
+   /**
+    * A:正常;D:删除 
+    */
+    private String status;
+
+    /**
+     * 排序
+     * */
+    private Integer sort;
+
+    public Integer getId(){
+        return id;
+    }
+    public void setId(Integer id){
+    this.id=id;
+    }
+    public String getTitle(){
+        return title;
+    }
+    public void setTitle(String title){
+    this.title=title;
+    }
+    public String getBrief(){
+        return brief;
+    }
+    public void setBrief(String brief){
+        this.brief=brief;
+    }
+    public Integer getStoreId(){
+        return storeId;
+    }
+    public void setStoreId(Integer storeId){
+        this.storeId=storeId;
+    }
+    public String getUrl(){
+        return url;
+    }
+    public void setUrl(String url){
+        this.url=url;
+    }
+    public Long getClick(){
+        return click;
+    }
+    public void setClick(Long click){
+        this.click=click;
+    }
+    public String getImage(){
+        return image;
+    }
+    public void setImage(String image){
+    this.image=image;
+    }
+    public String getDescription(){
+        return description;
+    }
+    public void setDescription(String description){
+    this.description=description;
+    }
+    public Date getCreateTime(){
+        return createTime;
+    }
+    public void setCreateTime(Date createTime){
+    this.createTime=createTime;
+    }
+    public Date getUpdateTime(){
+        return updateTime;
+    }
+    public void setUpdateTime(Date updateTime){
+    this.updateTime=updateTime;
+    }
+    public String getOperator(){
+        return operator;
+    }
+    public void setOperator(String operator){
+    this.operator=operator;
+    }
+    public String getStatus(){
+        return status;
+    }
+    public void setStatus(String status){
+    this.status=status;
+    }
+    public Integer getSort(){
+        return sort;
+    }
+    public void setSort(Integer sort){
+        this.sort=sort;
+    }
+}
+

+ 28 - 0
fuint-application/src/main/java/com/fuint/common/dto/AssetDto.java

@@ -0,0 +1,28 @@
+package com.fuint.common.dto;
+
+public class AssetDto {
+    private Integer timer;
+    private Integer prestore;
+    private Integer coupon;
+
+    public Integer getTimer() {
+        return timer;
+    }
+    public void setTimer(Integer timer) {
+        this.timer = timer;
+    }
+
+    public Integer getPrestore() {
+        return prestore;
+    }
+    public void setPrestore(Integer prestore) {
+        this.prestore = prestore;
+    }
+
+    public Integer getCoupon() {
+        return coupon;
+    }
+    public void setCoupon(Integer coupon) {
+        this.coupon = coupon;
+    }
+}

+ 146 - 0
fuint-application/src/main/java/com/fuint/common/dto/BalanceDto.java

@@ -0,0 +1,146 @@
+package com.fuint.common.dto;
+
+import com.fuint.repository.model.MtUser;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * BalanceDto 实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class BalanceDto implements Serializable {
+
+    /**
+     * 自增ID
+     */
+    private Integer id;
+
+    /**
+     * 会员ID
+     */
+    private Integer userId;
+
+    /**
+     * 会员信息
+     */
+    private MtUser userInfo;
+
+    /**
+     * 订单号
+     */
+    private String orderSn;
+
+    /**
+     * 余额变化数量
+     */
+    private BigDecimal amount;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 备注说明
+     */
+    private String description;
+
+    /**
+     * 状态,A正常;D作废
+     */
+    private String status;
+
+    /**
+     * 最后操作人
+     */
+    private String operator;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public MtUser getUserInfo() {
+        return userInfo;
+    }
+
+    public void setUserInfo(MtUser userInfo) {
+        this.userInfo = userInfo;
+    }
+
+    public String getOrderSn() {
+        return orderSn;
+    }
+
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getOperator(){
+        return operator;
+    }
+
+    public void setOperator(String operator){
+        this.operator=operator;
+    }
+}
+

+ 134 - 0
fuint-application/src/main/java/com/fuint/common/dto/BannerDto.java

@@ -0,0 +1,134 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 焦点图实体类
+ * Created by FSQ
+ */
+public class BannerDto implements Serializable {
+
+    /**
+    * 自增ID 
+    */
+    private Integer id;
+
+   /**
+    * 标题 
+    */
+    private String title;
+
+    /**
+     * 所属店铺
+     * */
+    private Integer storeId;
+
+    /**
+     * 链接地址
+     */
+    private String url;
+
+   /**
+    * 图片地址 
+    */
+    private String image;
+
+   /**
+    * 描述 
+    */
+    private String description;
+
+   /**
+    * 创建时间 
+    */
+    private Date createTime;
+
+   /**
+    * 更新时间 
+    */
+    private Date updateTime;
+
+   /**
+    * 最后操作人 
+    */
+    private String operator;
+
+   /**
+    * A:正常;D:删除 
+    */
+    private String status;
+
+    /**
+     * 排序
+     * */
+    private Integer sort;
+
+    public Integer getId(){
+        return id;
+    }
+    public void setId(Integer id){
+    this.id=id;
+    }
+    public String getTitle(){
+        return title;
+    }
+    public void setTitle(String title){
+    this.title=title;
+    }
+    public Integer getStoreId(){
+        return storeId;
+    }
+    public void setStoreId(Integer storeId){
+        this.storeId=storeId;
+    }
+    public String getUrl(){
+        return url;
+    }
+    public void setUrl(String url){
+        this.url=url;
+    }
+    public String getImage(){
+        return image;
+    }
+    public void setImage(String image){
+    this.image=image;
+    }
+    public String getDescription(){
+        return description;
+    }
+    public void setDescription(String description){
+    this.description=description;
+    }
+    public Date getCreateTime(){
+        return createTime;
+    }
+    public void setCreateTime(Date createTime){
+    this.createTime=createTime;
+    }
+    public Date getUpdateTime(){
+        return updateTime;
+    }
+    public void setUpdateTime(Date updateTime){
+    this.updateTime=updateTime;
+    }
+    public String getOperator(){
+        return operator;
+    }
+    public void setOperator(String operator){
+    this.operator=operator;
+    }
+    public String getStatus(){
+        return status;
+    }
+    public void setStatus(String status){
+    this.status=status;
+    }
+    public Integer getSort(){
+        return sort;
+    }
+    public void setSort(Integer sort){
+        this.sort=sort;
+    }
+}
+

+ 43 - 0
fuint-application/src/main/java/com/fuint/common/dto/Body.java

@@ -0,0 +1,43 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * 消息体Body信息
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class Body implements Serializable{
+
+    private static final long serialVersionUID = 5748371865401175733L;
+
+    private Map<String,Object> inParams;//入参信息
+    private Map<String,Object> outParams;//出参信息
+
+    public Map<String, Object> getInParams() {
+        return inParams;
+    }
+
+    public void setInParams(Map<String, Object> inParams) {
+        this.inParams = inParams;
+    }
+
+    public Map<String, Object> getOutParams() {
+        return outParams;
+    }
+
+    public void setOutParams(Map<String, Object> outParams) {
+        this.outParams = outParams;
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder("Body{");
+        sb.append("inParams=").append(inParams);
+        sb.append(", outParams=").append(outParams);
+        sb.append('}');
+        return sb.toString();
+    }
+}

+ 164 - 0
fuint-application/src/main/java/com/fuint/common/dto/ConfirmLogDto.java

@@ -0,0 +1,164 @@
+package com.fuint.common.dto;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fuint.repository.model.MtCoupon;
+import com.fuint.repository.model.MtStore;
+import com.fuint.repository.model.MtUser;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 核销卡券流水dto
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ConfirmLogDto {
+
+    /**
+     * 自增ID
+     */
+     private Integer id;
+
+    /**
+     * 核销编码
+     */
+    private String code;
+
+    /**
+     * 核销状态
+     */
+    private String status;
+
+    /**
+     * 会员卡券ID
+     */
+    private Integer userCouponId;
+
+    /**
+     * 卡券信息
+     */
+    private MtCoupon couponInfo;
+
+    /**
+     * 核销会员信息
+     */
+    private MtUser userInfo;
+
+    /**
+     * 使用店铺信息
+     */
+    private MtStore storeInfo;
+
+    /**
+     * 创建时间
+     */
+    @JSONField(format="yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    @JSONField(format="yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /**
+     * 核销面额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 核销uuid
+     */
+    private String uuid;
+
+    /**
+     * 核销备注
+     */
+    private String remark;
+
+    /**
+     * 最后操作人
+     */
+    private String operator;
+
+    public Integer getId(){
+    return id;
+    }
+    public void setId(Integer id){
+    this.id=id;
+    }
+    public String getCode(){
+    return code;
+    }
+    public void setCode(String code){
+    this.code=code;
+    }
+    public Integer getUserCouponId(){
+    return userCouponId;
+    }
+    public void setUserCouponId(Integer userCouponId){
+    this.userCouponId=userCouponId;
+    }
+    public MtCoupon getCouponInfo(){
+    return couponInfo;
+    }
+    public void setCouponInfo(MtCoupon couponInfo){
+    this.couponInfo=couponInfo;
+    }
+    public MtUser getUserInfo(){
+     return userInfo;
+    }
+    public void setUserInfo(MtUser userInfo){
+    this.userInfo=userInfo;
+    }
+    public MtStore getStoreInfo(){
+     return storeInfo;
+    }
+    public void setStoreInfo(MtStore storeInfo){
+    this.storeInfo=storeInfo;
+    }
+    public Date getCreateTime(){
+     return createTime;
+    }
+    public void setCreateTime(Date createTime){
+    this.createTime=createTime;
+    }
+    public Date getUpdateTime(){
+     return updateTime;
+    }
+    public void setUpdateTime(Date updateTime){
+    this.updateTime=updateTime;
+    }
+    public BigDecimal getAmount(){
+     return amount;
+    }
+    public void setAmount(BigDecimal amount){
+    this.amount=amount;
+    }
+    public String getUuid(){
+    return uuid;
+    }
+    public void setUuid(String uuid){
+    this.uuid=uuid;
+    }
+    public String getStatus(){
+        return status;
+    }
+    public void setStatus(String status){
+        this.status=status;
+    }
+    public String getRemark(){
+        return remark;
+    }
+    public void setRemark(String remark){
+        this.remark=remark;
+    }
+    public String getOperator(){
+        return operator;
+    }
+    public void setOperator(String operator){
+        this.operator=operator;
+    }
+}
+

+ 34 - 0
fuint-application/src/main/java/com/fuint/common/dto/ContentDto.java

@@ -0,0 +1,34 @@
+package com.fuint.common.dto;
+
+public class ContentDto {
+
+    private String key;
+
+    private String value;
+
+    private String type;
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+}

+ 38 - 0
fuint-application/src/main/java/com/fuint/common/dto/CouponCellDto.java

@@ -0,0 +1,38 @@
+package com.fuint.common.dto;
+
+import java.util.List;
+
+public class CouponCellDto {
+
+    private String mobile;
+
+    // 分组ID
+    private List<Integer> groupId;
+
+    // 发放数量
+    private List<Integer> num;
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public List<Integer> getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(List<Integer> groupId) {
+        this.groupId = groupId;
+    }
+
+    public List<Integer> getNum() {
+        return num;
+    }
+
+    public void setNum(List<Integer> num) {
+        this.num = num;
+    }
+}

+ 229 - 0
fuint-application/src/main/java/com/fuint/common/dto/CouponDto.java

@@ -0,0 +1,229 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 卡券DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class CouponDto implements Serializable {
+
+    /**
+     * 自增ID
+     * */
+    private Integer id;
+
+    /**
+     * 名称(券名称)
+     * */
+    private String name;
+
+    /**
+     * 卡券类型
+     * */
+    private String type;
+
+    /**
+     * 状态
+     * */
+    private String status;
+
+    /**
+     * 获取规则
+     * */
+    private String inRule;
+
+    /**
+     * 使用规则
+     * */
+    private String outRule;
+
+    /**
+     * 图片
+     * */
+    private String image;
+
+    /**
+     * 面额
+     * */
+    private BigDecimal amount;
+
+    /**
+     * 领取需要积分数量
+     */
+    private Integer point;
+
+    /**
+     * 卖点
+     * */
+    private String sellingPoint;
+
+    /**
+     * 已领取、预存张数
+     * */
+    private Integer gotNum;
+
+    /**
+     * 剩余张数
+     * */
+    private Integer leftNum;
+
+    /**
+     * 限制数量
+     * */
+    private Integer limitNum;
+
+    /**
+     * 是否领取
+     * */
+    private boolean isReceive;
+
+    /**
+     * 是否需要领取码
+     * */
+    private boolean needReceiveCode;
+
+    /**
+     * 会员卡券ID
+     * */
+    private Integer userCouponId;
+
+    /**
+     * 有效期
+     * */
+    private String effectiveDate;
+
+    /**
+     * 卡券说明
+     * */
+    private String description;
+
+    public Integer getId() {
+        return id;
+    }
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getType() {
+        return type;
+    }
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getInRule() {
+        return inRule;
+    }
+    public void setInRule(String inRule) {
+        this.inRule = inRule;
+    }
+
+    public String getOutRule() {
+        return outRule;
+    }
+    public void setOutRule(String outRule) {
+        this.outRule = outRule;
+    }
+
+    public String getImage() {
+        return image;
+    }
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public Integer getPoint(){
+        return point;
+    }
+    public void setPoint(Integer point){
+        this.point=point;
+    }
+
+    public String getSellingPoint() {
+        return sellingPoint;
+    }
+    public void setSellingPoint(String sellingPoint) {
+        this.sellingPoint = sellingPoint;
+    }
+
+    public Integer getLimitNum() {
+        return limitNum;
+    }
+    public void setLimitNum(Integer limitNum) {
+        this.limitNum = limitNum;
+    }
+
+    public Integer getGotNum() {
+        return gotNum;
+    }
+    public void setGotNum(Integer gotNum) {
+        this.gotNum = gotNum;
+    }
+
+    public Integer getLeftNum() {
+        return leftNum;
+    }
+    public void setLeftNum(Integer leftNum) {
+        this.leftNum = leftNum;
+    }
+
+    public boolean getIsReceive() {
+        return isReceive;
+    }
+    public void setIsReceive(boolean isReceive) {
+        this.isReceive = isReceive;
+    }
+
+    public boolean getNeedReceiveCode() {
+        return needReceiveCode;
+    }
+    public void setNeedReceiveCode(boolean needReceiveCode) {
+        this.needReceiveCode = needReceiveCode;
+    }
+
+    public Integer getUserCouponId() {
+        return userCouponId;
+    }
+    public void setUserCouponId(Integer userCouponId) {
+        this.userCouponId = userCouponId;
+    }
+
+    public String getEffectiveDate() {
+        return effectiveDate;
+    }
+    public void setEffectiveDate(String effectiveDate) {
+        this.effectiveDate = effectiveDate;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+    public void setDescription(String description) {
+        this.description = description;
+    }
+}

+ 67 - 0
fuint-application/src/main/java/com/fuint/common/dto/CouponTotalDto.java

@@ -0,0 +1,67 @@
+package com.fuint.common.dto;
+
+public class CouponTotalDto {
+    /**
+     * 发券量
+     */
+    private Long couponTotal;
+    /**
+     * 未使用量
+     */
+    private Long unUsedTotal;
+    /**
+     * 使用量
+     */
+    private Long usedTotal;
+
+    /**
+     * 过期量
+     */
+    private Long expireTotal;
+
+    /**
+     * 作废量
+     */
+    private Long disableTotal;
+
+    public Long getCouponTotal() {
+        return couponTotal;
+    }
+
+    public void setCouponTotal(Long couponTotal) {
+        this.couponTotal = couponTotal;
+    }
+
+    public Long getUnUsedTotal() {
+        return unUsedTotal;
+    }
+
+    public void setUnUsedTotal(Long unUsedTotal) {
+        this.unUsedTotal = unUsedTotal;
+    }
+
+    public Long getUsedTotal() {
+        return usedTotal;
+    }
+
+    public void setUsedTotal(Long usedTotal) {
+        this.usedTotal = usedTotal;
+    }
+
+    public Long getExpireTotal() {
+        return expireTotal;
+    }
+
+    public void setExpireTotal(Long expireTotal) {
+        this.expireTotal = expireTotal;
+    }
+
+    public Long getDisableTotal() {
+        return disableTotal;
+    }
+
+    public void setDisableTotal(Long disableTotal) {
+        this.disableTotal = disableTotal;
+    }
+}
+

+ 23 - 0
fuint-application/src/main/java/com/fuint/common/dto/DateDto.java

@@ -0,0 +1,23 @@
+package com.fuint.common.dto;
+
+public class DateDto {
+    private String startDate;
+
+    private String endDate;
+
+    public String getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(String startDate) {
+        this.startDate = startDate;
+    }
+
+    public String getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(String endDate) {
+        this.endDate = endDate;
+    }
+}

+ 249 - 0
fuint-application/src/main/java/com/fuint/common/dto/ExceptionDto.java

@@ -0,0 +1,249 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 特例dto
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ExceptionDto implements Serializable {
+
+    /**
+     * 主键ID
+     */
+    private Long id;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 描述
+     */
+    private String description;
+    /**
+     * 状态(A:有效 D:无效)
+     */
+    private String status;
+    /**
+     * 平台
+     */
+    private String[] platformId;
+
+    /**
+     * 渠道
+     */
+    private String[] shopId;
+
+    /**
+     * 品牌
+     */
+    private String brand;
+
+    /**
+     * 一级分类
+     */
+    private String[] firstCategoryId;
+    /**
+     * 一级分类
+     */
+    private String firstCategory;
+
+    /**
+     * 二级分类
+     */
+    private String[] secondCategoryId;
+    /**
+     * 二级分类
+     */
+    private String secondCategory;
+
+    /**
+     * 三级分类
+     */
+    private String[] thirdCategoryId;
+    /**
+     * 三级分类
+     */
+    private String thirdCategory;
+
+    /**
+     * 商品SKU(多个值使用英文逗号隔开)
+     */
+    private String skus;
+    /**
+     * 标签类型
+     */
+    private String tagType;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+    /**
+     * 操作人
+     */
+    private String operator;
+
+    public ExceptionDto() {
+    }
+
+    public ExceptionDto(Long id, String name, String description, String status, String skus, String tagType) {
+        this.id = id;
+        this.name = name;
+        this.description = description;
+        this.status = status;
+        this.skus = skus;
+        this.tagType = tagType;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String[] getPlatformId() {
+        return platformId;
+    }
+
+    public void setPlatformId(String[] platformId) {
+        this.platformId = platformId;
+    }
+
+    public String[] getShopId() {
+        return shopId;
+    }
+
+    public void setShopId(String[] shopId) {
+        this.shopId = shopId;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+
+    public String[] getFirstCategoryId() {
+        return firstCategoryId;
+    }
+
+    public void setFirstCategoryId(String[] firstCategoryId) {
+        this.firstCategoryId = firstCategoryId;
+    }
+
+    public String getFirstCategory() {
+        return firstCategory;
+    }
+
+    public void setFirstCategory(String firstCategory) {
+        this.firstCategory = firstCategory;
+    }
+
+    public String[] getSecondCategoryId() {
+        return secondCategoryId;
+    }
+
+    public void setSecondCategoryId(String[] secondCategoryId) {
+        this.secondCategoryId = secondCategoryId;
+    }
+
+    public String getSecondCategory() {
+        return secondCategory;
+    }
+
+    public void setSecondCategory(String secondCategory) {
+        this.secondCategory = secondCategory;
+    }
+
+    public String[] getThirdCategoryId() {
+        return thirdCategoryId;
+    }
+
+    public void setThirdCategoryId(String[] thirdCategoryId) {
+        this.thirdCategoryId = thirdCategoryId;
+    }
+
+    public String getThirdCategory() {
+        return thirdCategory;
+    }
+
+    public void setThirdCategory(String thirdCategory) {
+        this.thirdCategory = thirdCategory;
+    }
+
+    public String getSkus() {
+        return skus;
+    }
+
+    public void setSkus(String skus) {
+        this.skus = skus;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getTagType() {
+        return tagType;
+    }
+
+    public void setTagType(String tagType) {
+        this.tagType = tagType;
+    }
+}

+ 37 - 0
fuint-application/src/main/java/com/fuint/common/dto/ExpressDto.java

@@ -0,0 +1,37 @@
+package com.fuint.common.dto;
+
+/**
+ * 订单物流信息dto
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ExpressDto {
+    private String expressCompany;
+    private String expressNo;
+    private String expressTime;
+
+    public String getExpressCompany(){
+        return expressCompany;
+    }
+
+    public void setExpressCompany(String expressCompany){
+        this.expressCompany = expressCompany;
+    }
+
+    public String getExpressNo(){
+        return expressNo;
+    }
+
+    public void setExpressNo(String expressNo){
+        this.expressNo = expressNo;
+    }
+
+    public String getExpressTime(){
+        return expressTime;
+    }
+
+    public void setExpressTime(String expressTime){
+        this.expressTime = expressTime;
+    }
+}

+ 212 - 0
fuint-application/src/main/java/com/fuint/common/dto/GiveDto.java

@@ -0,0 +1,212 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * mt_give 实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class GiveDto implements Serializable{
+   /**
+    * 自增 
+    */
+    private Integer id;
+
+   /**
+    * 获赠者会员ID
+    */
+    private Integer userId;
+
+    /**
+     * 店铺ID
+     */
+    private Integer storeId;
+
+   /**
+    * 赠送者会员ID
+    */
+    private Integer giveUserId;
+
+   /**
+    * 赠予对象手机号 
+    */
+    private String mobile;
+
+   /**
+    * 用户手机 
+    */
+    private String userMobile;
+
+   /**
+    * 分组ID,逗号隔开
+    */
+    private String groupIds;
+
+   /**
+    * 分组名称,逗号隔开
+    */
+    private String groupNames;
+
+    /**
+     * 图片
+     */
+    private String image;
+
+   /**
+    * 券ID,逗号隔开 
+    */
+    private String couponIds;
+
+   /**
+    * 券名称,逗号隔开 
+    */
+    private String couponNames;
+
+   /**
+    * 数量 
+    */
+    private Integer num;
+
+   /**
+    * 总金额 
+    */
+    private BigDecimal money;
+
+   /**
+    * 备注 
+    */
+    private String note;
+
+   /**
+    * 留言
+    */
+   private String message;
+
+   /**
+    * 赠送时间 
+    */
+    private String createTime;
+
+   /**
+    * 更新时间 
+    */
+    private String updateTime;
+
+   /**
+    * 状态,A正常;C取消 
+    */
+    private String status;
+
+    public Integer getId(){
+        return id;
+    }
+    public void setId(Integer id){
+    this.id=id;
+    }
+    public Integer getUserId(){
+        return userId;
+    }
+    public void setUserId(Integer userId){
+    this.userId=userId;
+    }
+    public Integer getStoreId(){
+        return storeId;
+    }
+    public void setStoreId(Integer storeId){
+        this.storeId=storeId;
+    }
+    public Integer getGiveUserId(){
+        return giveUserId;
+    }
+    public void setGiveUserId(Integer giveUserId){
+    this.giveUserId=giveUserId;
+    }
+    public String getMobile(){
+        return mobile;
+    }
+    public void setMobile(String mobile){
+    this.mobile=mobile;
+    }
+    public String getUserMobile(){
+        return userMobile;
+    }
+    public void setUserMobile(String userMobile){
+    this.userMobile=userMobile;
+    }
+    public String getGroupIds(){
+        return groupIds;
+    }
+    public void setGroupIds(String groupIds){
+    this.groupIds=groupIds;
+    }
+    public String getGroupNames(){
+        return groupNames;
+    }
+    public void setGroupNames(String groupNames){
+    this.groupNames=groupNames;
+    }
+    public String getImage(){
+        return image;
+    }
+    public void setImage(String image){
+        this.image=image;
+    }
+    public String getCouponIds(){
+        return couponIds;
+    }
+    public void setCouponIds(String couponIds){
+    this.couponIds=couponIds;
+    }
+    public String getCouponNames(){
+        return couponNames;
+    }
+    public void setCouponNames(String couponNames){
+    this.couponNames=couponNames;
+    }
+    public Integer getNum(){
+        return num;
+    }
+    public void setNum(Integer num){
+    this.num=num;
+    }
+    public BigDecimal getMoney(){
+        return money;
+    }
+    public void setMoney(BigDecimal money){
+    this.money=money;
+    }
+    public String getNote(){
+        return note;
+    }
+    public void setNote(String note){
+    this.note=note;
+    }
+    public String getMessage(){
+       return message;
+   }
+    public void setMessage(String message){
+           this.message=message;
+       }
+    public String getCreateTime(){
+        return createTime;
+    }
+    public void setCreateTime(String createTime){
+    this.createTime=createTime;
+    }
+    public String getUpdateTime(){
+        return updateTime;
+    }
+    public void setUpdateTime(String updateTime){
+    this.updateTime=updateTime;
+    }
+    public String getStatus(){
+        return status;
+    }
+    public void setStatus(String status){
+    this.status=status;
+    }
+}
+

+ 113 - 0
fuint-application/src/main/java/com/fuint/common/dto/GiveItemDto.java

@@ -0,0 +1,113 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * mt_give_item 实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class GiveItemDto implements Serializable{
+   /**
+    * 自增 
+    */
+    private Integer id;
+
+   /**
+    * 赠予对象手机号 
+    */
+    private String mobile;
+
+   /**
+    * 用户手机 
+    */
+    private String userMobile;
+
+   /**
+    * 分组ID
+    */
+    private Integer groupId;
+
+   /**
+    * 分组名称
+    */
+    private String groupName;
+
+   /**
+    * 券ID
+    */
+    private Integer couponId;
+
+   /**
+    * 券名称
+    */
+    private String couponName;
+
+   /**
+    * 总金额 
+    */
+    private BigDecimal money;
+
+   /**
+    * 赠送时间 
+    */
+    private Date createTime;
+
+    public Integer getId(){
+        return id;
+    }
+    public void setId(Integer id){
+    this.id=id;
+    }
+    public String getMobile(){
+        return mobile;
+    }
+    public void setMobile(String mobile){
+    this.mobile=mobile;
+    }
+    public String getUserMobile(){
+        return userMobile;
+    }
+    public void setUserMobile(String userMobile){
+    this.userMobile=userMobile;
+    }
+    public Integer getGroupId(){
+        return groupId;
+    }
+    public void setGroupId(Integer groupId){
+    this.groupId=groupId;
+    }
+    public String getGroupName(){
+        return groupName;
+    }
+    public void setGroupName(String groupName){
+    this.groupName=groupName;
+    }
+    public Integer getCouponId(){
+        return couponId;
+    }
+    public void setCouponId(Integer couponId){
+    this.couponId=couponId;
+    }
+    public String getCouponName(){
+        return couponName;
+    }
+    public void setCouponName(String couponName){
+    this.couponName=couponName;
+    }
+    public BigDecimal getMoney(){
+        return money;
+    }
+    public void setMoney(BigDecimal money){
+    this.money=money;
+    }
+    public Date getCreateTime(){
+        return createTime;
+    }
+    public void setCreateTime(Date createTime){
+    this.createTime=createTime;
+    }
+}

+ 58 - 0
fuint-application/src/main/java/com/fuint/common/dto/GoodsCateDto.java

@@ -0,0 +1,58 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 商品分类DTO
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+public class GoodsCateDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("自增ID")
+    private Integer id;
+
+    @ApiModelProperty("所属商户ID")
+    private Integer merchantId;
+
+    @ApiModelProperty("所属商户名称")
+    private String merchantName;
+
+    @ApiModelProperty("所属店铺ID")
+    private Integer storeId;
+
+    @ApiModelProperty("所属店铺名称")
+    private String storeName;
+
+    @ApiModelProperty("分类名称")
+    private String name;
+
+    @ApiModelProperty("LOGO地址")
+    private String logo;
+
+    @ApiModelProperty("分类描述")
+    private String description;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("最后操作人")
+    private String operator;
+
+    @ApiModelProperty("排序")
+    private Integer sort;
+
+    @ApiModelProperty("A:正常;D:删除")
+    private String status;
+}

+ 314 - 0
fuint-application/src/main/java/com/fuint/common/dto/GoodsDetailDto.java

@@ -0,0 +1,314 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 商品详情DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class GoodsDetailDto implements Serializable {
+    /**
+     * 自增ID
+     */
+    private Integer goodsId;
+
+    /**
+     * 商品名称
+     */
+    private String name;
+
+    /**
+     * 分类ID
+     */
+    private Integer cateId;
+
+    /**
+     * 商品条码
+     */
+    private String goodsNo;
+
+    /**
+     * 可否单规格
+     */
+    private String isSingleSpec;
+
+    /**
+     * 主图地址
+     */
+    private String logo;
+
+    /**
+     * 图片地址
+     */
+    private List<String> images;
+
+    /**
+     * 价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 划线价格
+     */
+    private BigDecimal linePrice;
+
+    /**
+     * 库存
+     */
+    private Integer stock;
+
+    /**
+     * 重量
+     */
+    private BigDecimal weight;
+
+    /**
+     * 初始销量
+     */
+    private Integer initSale;
+
+    /**
+     * 商品卖点
+     */
+    private String salePoint;
+
+    /**
+     * 可否使用积分抵扣
+     */
+    private String canUsePoint;
+
+    /**
+     * 会员是否有折扣
+     */
+    private String isMemberDiscount;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 商品描述
+     */
+    private String description;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 最后操作人
+     */
+    private String operator;
+
+    /**
+     * A:正常;D:删除
+     */
+    private String status;
+
+    /**
+     * sku列表
+     */
+    private List<GoodsSkuDto> skuList;
+
+    /**
+     * 规格列表
+     */
+    private List<GoodsSpecDto> specList;
+
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getCateId() {
+        return cateId;
+    }
+
+    public void setCateId(Integer cateId) {
+        this.cateId = cateId;
+    }
+
+    public String getGoodsNo() {
+        return goodsNo;
+    }
+
+    public void setGoodsNo(String goodsNo) {
+        this.goodsNo = goodsNo;
+    }
+
+    public String getIsSingleSpec() {
+        return isSingleSpec;
+    }
+
+    public void setIsSingleSpec(String isSingleSpec) {
+        this.isSingleSpec = isSingleSpec;
+    }
+
+    public String getLogo() {
+        return logo;
+    }
+
+    public void setLogo(String logo) {
+        this.logo = logo;
+    }
+
+    public List<String> getImages() {
+        return images;
+    }
+
+    public void setImages(List<String> images) {
+        this.images = images;
+    }
+
+    public BigDecimal getPrice() {
+        return price;
+    }
+
+    public void setPrice(BigDecimal price) {
+        this.price = price;
+    }
+
+    public BigDecimal getLinePrice() {
+        return linePrice;
+    }
+
+    public void setLinePrice(BigDecimal linePrice) {
+        this.linePrice = linePrice;
+    }
+
+    public Integer getStock() {
+        return stock;
+    }
+
+    public void setStock(Integer stock) {
+        this.stock = stock;
+    }
+
+    public BigDecimal getWeight() {
+        return weight;
+    }
+
+    public void setWeight(BigDecimal weight) {
+        this.weight = weight;
+    }
+
+    public Integer getInitSale() {
+        return initSale;
+    }
+
+    public void setInitSale(Integer initSale) {
+        this.initSale = initSale;
+    }
+
+    public String getSalePoint() {
+        return salePoint;
+    }
+
+    public void setSalePoint(String salePoint) {
+        this.salePoint = salePoint;
+    }
+
+    public String getCanUsePoint() {
+        return canUsePoint;
+    }
+
+    public void setCanUsePoint(String canUsePoint) {
+        this.canUsePoint = canUsePoint;
+    }
+
+    public String getIsMemberDiscount() {
+        return isMemberDiscount;
+    }
+
+    public void setIsMemberDiscount(String isMemberDiscount) {
+        this.isMemberDiscount = isMemberDiscount;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public List<GoodsSkuDto> getSkuList() {
+        return skuList;
+    }
+
+    public void setSkuList(List<GoodsSkuDto> skuList) {
+        this.skuList = skuList;
+    }
+
+    public List<GoodsSpecDto> getSpecList() {
+        return specList;
+    }
+
+    public void setSpecList(List<GoodsSpecDto> specList) {
+        this.specList = specList;
+    }
+}
+

+ 364 - 0
fuint-application/src/main/java/com/fuint/common/dto/GoodsDto.java

@@ -0,0 +1,364 @@
+package com.fuint.common.dto;
+
+import com.fuint.repository.model.MtGoodsCate;
+import com.fuint.repository.model.MtGoodsSku;
+import com.fuint.repository.model.MtGoodsSpec;
+import com.fuint.repository.model.MtStore;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 商品DTO
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class GoodsDto implements Serializable {
+
+    /**
+     * 自增ID
+     */
+    private Integer id;
+
+    /**
+     * 所属店铺ID
+     * */
+    private Integer storeId;
+
+    /**
+     * 所属店铺信息
+     * */
+    private MtStore storeInfo;
+
+    /**
+     * 商品名称
+     */
+    private String name;
+
+    /**
+     * 商品类型
+     */
+    private String type;
+
+    /**
+     * 分类ID
+     */
+    private Integer cateId;
+
+    /**
+     * 分类信息
+     * */
+    private MtGoodsCate cateInfo;
+
+    /**
+     * 商品条码
+     */
+    private String goodsNo;
+
+    /**
+     * 可否单规格
+     */
+    private String isSingleSpec;
+
+    /**
+     * 主图地址
+     */
+    private String logo;
+
+    /**
+     * 图片地址
+     */
+    private String images;
+
+    /**
+     * 价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 划线价格
+     */
+    private BigDecimal linePrice;
+
+    /**
+     * 库存
+     */
+    private Integer stock;
+
+    /**
+     * 数量
+     */
+    private Integer num;
+
+    /**
+     * 服务时长
+     */
+    private Integer serviceTime;
+
+    /**
+     * 服务时长
+     */
+    private String couponIds;
+
+    /**
+     * 重量
+     */
+    private BigDecimal weight;
+
+    /**
+     * 初始销量
+     */
+    private Integer initSale;
+
+    /**
+     * 商品卖点
+     */
+    private String salePoint;
+
+    /**
+     * 可否使用积分抵扣
+     */
+    private String canUsePoint;
+
+    /**
+     * 会员是否有折扣
+     */
+    private String isMemberDiscount;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 商品描述
+     */
+    private String description;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 最后操作人
+     */
+    private String operator;
+
+    /**
+     * A:正常;D:删除
+     */
+    private String status;
+
+    /**
+     * sku
+     */
+    private Integer skuId;
+
+    /**
+     * sku列表
+     * */
+    private List<MtGoodsSku> skuList;
+
+    /**
+     * 规格列表
+     * */
+    private List<MtGoodsSpec> specList;
+
+
+    public Integer getId(){
+        return id;
+    }
+    public void setId(Integer id){
+        this.id=id;
+    }
+    public Integer getStoreId(){
+        return storeId;
+    }
+    public void setStoreId(Integer storeId){
+        this.storeId=storeId;
+    }
+    public MtStore getStoreInfo(){
+        return storeInfo;
+    }
+    public void setStoreInfo(MtStore storeInfo){
+        this.storeInfo=storeInfo;
+    }
+    public String getName(){
+        return name;
+    }
+    public void setName(String name){
+        this.name=name;
+    }
+    public String getType(){
+        return type;
+    }
+    public void setType(String type){
+        this.type=type;
+    }
+    public Integer getCateId(){
+        return cateId;
+    }
+    public void setCateId(Integer cateId){
+        this.cateId=cateId;
+    }
+    public MtGoodsCate getCateInfo(){
+        return cateInfo;
+    }
+    public void setCateInfo(MtGoodsCate cateInfo){
+        this.cateInfo=cateInfo;
+    }
+    public String getGoodsNo(){
+        return goodsNo;
+    }
+    public void setGoodsNo(String goodsNo){
+        this.goodsNo=goodsNo;
+    }
+    public String getIsSingleSpec(){
+        return isSingleSpec;
+    }
+    public void setIsSingleSpec(String isSingleSpec){
+        this.isSingleSpec=isSingleSpec;
+    }
+    public String getLogo(){
+        return logo;
+    }
+    public void setLogo(String logo){
+        this.logo=logo;
+    }
+    public String getImages(){
+        return images;
+    }
+    public void setImages(String images){
+        this.images=images;
+    }
+    public BigDecimal getPrice(){
+        return price;
+    }
+    public void setPrice(BigDecimal price){
+        this.price=price;
+    }
+    public BigDecimal getLinePrice(){
+        return linePrice;
+    }
+    public void setLinePrice(BigDecimal linePrice){
+        this.linePrice=linePrice;
+    }
+    public Integer getServiceTime(){
+        return serviceTime;
+    }
+    public void setServiceTime(Integer serviceTime){
+        this.serviceTime=serviceTime;
+    }
+    public String getCouponIds(){
+        return couponIds;
+    }
+    public void setCouponIds(String couponIds){
+        this.couponIds=couponIds;
+    }
+    public Integer getStock(){
+        return stock;
+    }
+    public void setStock(Integer stock){
+        this.stock=stock;
+    }
+    public Integer getNum(){
+        return num;
+    }
+    public void setNum(Integer num){
+        this.num=num;
+    }
+    public BigDecimal getWeight(){
+        return weight;
+    }
+    public void setWeight(BigDecimal weight){
+        this.weight=weight;
+    }
+    public Integer getInitSale(){
+        return initSale;
+    }
+    public void setInitSale(Integer initSale){
+        this.initSale=initSale;
+    }
+    public String getSalePoint(){
+        return salePoint;
+    }
+    public void setSalePoint(String salePoint){
+        this.salePoint=salePoint;
+    }
+    public String getCanUsePoint(){
+        return canUsePoint;
+    }
+    public void setCanUsePoint(String canUsePoint){
+        this.canUsePoint=canUsePoint;
+    }
+    public String getIsMemberDiscount(){
+        return isMemberDiscount;
+    }
+    public void setIsMemberDiscount(String isMemberDiscount){
+        this.isMemberDiscount=isMemberDiscount;
+    }
+    public Integer getSort(){
+        return sort;
+    }
+    public void setSort(Integer sort){
+        this.sort=sort;
+    }
+    public String getDescription(){
+        return description;
+    }
+    public void setDescription(String description){
+        this.description=description;
+    }
+    public Date getCreateTime(){
+        return createTime;
+    }
+    public void setCreateTime(Date createTime){
+        this.createTime=createTime;
+    }
+    public Date getUpdateTime(){
+        return updateTime;
+    }
+    public void setUpdateTime(Date updateTime){
+        this.updateTime=updateTime;
+    }
+    public String getOperator(){
+        return operator;
+    }
+    public void setOperator(String operator){
+        this.operator=operator;
+    }
+    public String getStatus(){
+        return status;
+    }
+    public void setStatus(String status){
+        this.status=status;
+    }
+
+    public Integer getSkuId(){
+        return skuId;
+    }
+    public void setSkuId(Integer skuId){
+        this.skuId=skuId;
+    }
+
+    public List<MtGoodsSku> getSkuList(){
+        return skuList;
+    }
+    public void setSkuList(List<MtGoodsSku> skuList){
+        this.skuList=skuList;
+    }
+    public List<MtGoodsSpec> getSpecList(){
+        return specList;
+    }
+    public void setSpecList(List<MtGoodsSpec> specList){
+        this.specList=specList;
+    }
+}
+

+ 120 - 0
fuint-application/src/main/java/com/fuint/common/dto/GoodsSkuDto.java

@@ -0,0 +1,120 @@
+package com.fuint.common.dto;
+
+import com.fuint.repository.model.MtGoodsSpec;
+import java.util.List;
+import java.math.BigDecimal;
+
+public class GoodsSkuDto {
+
+    /**
+     * 自增ID
+     */
+    private Integer id;
+
+    /**
+     * sku编码
+     */
+    private String skuNo;
+
+    /**
+     * 图片
+     */
+    private String logo;
+    
+    
+    /**
+     * 商品ID
+     */
+    private Integer goodsId;
+
+    /**
+     * 规格ID
+     */
+    private String specIds;
+
+    /**
+     * 规格列表
+     */
+    private List<MtGoodsSpec> specList;
+
+    /**
+     * 库存
+     */
+    private Integer stock;
+
+    /**
+     * 价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 划线价格
+     */
+    private BigDecimal linePrice;
+
+    /**
+     * 重量
+     */
+    private BigDecimal weight;
+
+    public Integer getId(){
+        return id;
+    }
+    public void setId(Integer id){
+        this.id=id;
+    }
+    public String getSkuNo(){
+        return skuNo;
+    }
+    public void setSkuNo(String skuNo){
+        this.skuNo=skuNo;
+    }
+    public String getLogo(){
+        return logo;
+    }
+    public void setLogo(String logo){
+        this.logo=logo;
+    }
+    public Integer getGoodsId(){
+        return goodsId;
+    }
+    public void setGoodsId(Integer goodsId){
+        this.goodsId=goodsId;
+    }
+    public String getSpecIds(){
+        return specIds;
+    }
+    public void setSpecIds(String specIds){
+        this.specIds=specIds;
+    }
+    public List<MtGoodsSpec> getSpecList(){
+        return specList;
+    }
+    public void setSpecList(List<MtGoodsSpec> specList){
+        this.specList=specList;
+    }
+    public Integer getStock(){
+        return stock;
+    }
+    public void setStock(Integer stock){
+        this.stock=stock;
+    }
+    public BigDecimal getPrice(){
+        return price;
+    }
+    public void setPrice(BigDecimal price){
+        this.price=price;
+    }
+    public BigDecimal getLinePrice(){
+        return linePrice;
+    }
+    public void setLinePrice(BigDecimal linePrice){
+        this.linePrice=linePrice;
+    }
+    public BigDecimal getWeight(){
+        return weight;
+    }
+    public void setWeight(BigDecimal weight){
+        this.weight=weight;
+    }
+}

+ 41 - 0
fuint-application/src/main/java/com/fuint/common/dto/GoodsSpecChildDto.java

@@ -0,0 +1,41 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+
+public class GoodsSpecChildDto implements Serializable {
+
+   /**
+    * 自增ID
+    * */
+   private Integer id;
+
+   /**
+    * 规格名称 
+    */
+   private String name;
+
+   /**
+    * 是否选择
+    */
+    private boolean checked;
+
+    public Integer getId(){
+        return id;
+    }
+    public void setId(Integer id){
+    this.id=id;
+    }
+    public String getName(){
+        return name;
+    }
+    public void setName(String name){
+    this.name=name;
+    }
+    public boolean getChecked(){
+        return checked;
+    }
+    public void setChecked(boolean checked){
+    this.checked=checked;
+    }
+}
+

+ 47 - 0
fuint-application/src/main/java/com/fuint/common/dto/GoodsSpecDto.java

@@ -0,0 +1,47 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class GoodsSpecDto implements Serializable {
+
+    /**
+     * 自增ID
+     */
+    private Integer specId;
+
+    /**
+     * 规格名称
+     */
+    private String name;
+
+    /**
+     * 规格值
+     */
+    private List<GoodsSpecValueDto> valueList;
+
+    public Integer getSpecId() {
+        return specId;
+    }
+
+    public void setSpecId(Integer specId) {
+        this.specId = specId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public List<GoodsSpecValueDto> getValueList() {
+        return valueList;
+    }
+
+    public void setValueList(List<GoodsSpecValueDto> valueList) {
+        this.valueList = valueList;
+    }
+}
+

+ 47 - 0
fuint-application/src/main/java/com/fuint/common/dto/GoodsSpecItemDto.java

@@ -0,0 +1,47 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class GoodsSpecItemDto implements Serializable {
+
+    /**
+     * 自增ID
+     */
+    private Integer id;
+
+    /**
+     * 规格名称
+     */
+    private String name;
+
+    /**
+     * 规格值
+     */
+    private List<GoodsSpecChildDto> child;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public List<GoodsSpecChildDto> getChild() {
+        return child;
+    }
+
+    public void setChild(List<GoodsSpecChildDto> child) {
+        this.child = child;
+    }
+}
+

+ 49 - 0
fuint-application/src/main/java/com/fuint/common/dto/GoodsSpecValueDto.java

@@ -0,0 +1,49 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+
+/**
+ * 商品规格值
+ * */
+public class GoodsSpecValueDto implements Serializable {
+
+    /**
+     * 自增ID
+     */
+    private Integer specValueId;
+
+    /**
+     * 规格名
+     */
+    private String specName;
+
+    /**
+     * 规格值
+     */
+    private String specValue;
+
+    public Integer getSpecValueId() {
+        return specValueId;
+    }
+
+    public void setSpecValueId(Integer specValueId) {
+        this.specValueId = specValueId;
+    }
+
+    public String getSpecValue() {
+        return specValue;
+    }
+
+    public void setSpecValue(String specValue) {
+        this.specValue = specValue;
+    }
+
+    public String getSpecName() {
+        return specName;
+    }
+
+    public void setSpecName(String specName) {
+        this.specName = specName;
+    }
+}
+

+ 47 - 0
fuint-application/src/main/java/com/fuint/common/dto/GroupDataDto.java

@@ -0,0 +1,47 @@
+package com.fuint.common.dto;
+
+/**
+ * 卡券分组数据
+ * */
+public class GroupDataDto {
+    private Integer sendNum;
+
+    private Integer unSendNum;
+
+    private Integer useNum;
+
+    private Integer expireNum;
+
+    private Integer cancelNum;
+
+    public Integer getSendNum() { return sendNum; }
+    public void setSendNum(Integer sendNum) { this.sendNum = sendNum; }
+
+    public Integer getUnSendNum() {
+        return unSendNum;
+    }
+    public void setUnSendNum(Integer unSendNum) {
+        this.unSendNum = unSendNum;
+    }
+
+    public Integer getUseNum() {
+        return useNum;
+    }
+    public void setUseNum(Integer useNum) {
+        this.useNum = useNum;
+    }
+
+    public Integer getExpireNum() {
+        return expireNum;
+    }
+    public void setExpireNum(Integer expireNum) {
+        this.expireNum = expireNum;
+    }
+
+    public Integer getCancelNum() {
+        return cancelNum;
+    }
+    public void setCancelNum(Integer cancelNum) {
+        this.cancelNum = cancelNum;
+    }
+}

+ 24 - 0
fuint-application/src/main/java/com/fuint/common/dto/GroupDataListDto.java

@@ -0,0 +1,24 @@
+package com.fuint.common.dto;
+
+public class GroupDataListDto {
+
+    private String key;
+
+    private GroupDataDto data;
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public GroupDataDto getData() {
+        return data;
+    }
+
+    public void setData(GroupDataDto data) {
+        this.data = data;
+    }
+}

+ 82 - 0
fuint-application/src/main/java/com/fuint/common/dto/HangUpDto.java

@@ -0,0 +1,82 @@
+package com.fuint.common.dto;
+
+import com.fuint.repository.model.MtUser;
+import java.math.BigDecimal;
+
+/**
+ * 收银挂单实体类
+ */
+public class HangUpDto {
+
+    /**
+     * 挂单号
+     */
+    private String hangNo;
+
+    /**
+     * 是否空白
+     * */
+    private boolean isEmpty;
+
+    /**
+     * 会员信息
+     */
+    private MtUser memberInfo;
+
+    /**
+     * 件数
+     */
+    private Integer num;
+
+    /**
+     * 金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 时间
+     */
+    private String dateTime;
+
+    public String getHangNo() {
+        return hangNo;
+    }
+    public void setHangNo(String hangNo) {
+        this.hangNo = hangNo;
+    }
+
+    public boolean getIsEmpty() {
+        return isEmpty;
+    }
+    public void setIsEmpty(boolean isEmpty) {
+        this.isEmpty = isEmpty;
+    }
+
+    public MtUser getMemberInfo() {
+        return memberInfo;
+    }
+    public void setMemberInfo(MtUser memberInfo) {
+        this.memberInfo = memberInfo;
+    }
+
+    public BigDecimal getAmount(){
+        return amount;
+    }
+    public void setAmount(BigDecimal amount){
+        this.amount=amount;
+    }
+
+    public Integer getNum(){
+        return num;
+    }
+    public void setNum(Integer num){
+        this.num=num;
+    }
+
+    public String getDateTime() {
+        return dateTime;
+    }
+    public void setDateTime(String dateTime) {
+        this.dateTime = dateTime;
+    }
+}

+ 65 - 0
fuint-application/src/main/java/com/fuint/common/dto/Head.java

@@ -0,0 +1,65 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+
+/**
+ * 消息体头信息
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class Head implements Serializable {
+
+    private static final long serialVersionUID = -4183589142746100110L;
+    //服务编号,用于确定唯一的服务
+    private String serviceId;
+    //授权Token信息
+    private String token;
+    //服务执行返回码(000000:正常)
+    private String returnCode;
+    //服务执行返回信息
+    private String returnDesc;
+
+    public String getServiceId() {
+        return serviceId;
+    }
+
+    public void setServiceId(String serviceId) {
+        this.serviceId = serviceId;
+    }
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+
+    public String getReturnCode() {
+        return returnCode;
+    }
+
+    public void setReturnCode(String returnCode) {
+        this.returnCode = returnCode;
+    }
+
+    public String getReturnDesc() {
+        return returnDesc;
+    }
+
+    public void setReturnDesc(String returnDesc) {
+        this.returnDesc = returnDesc;
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder("Head{");
+        sb.append("serviceId='").append(serviceId).append('\'');
+        sb.append(", token='").append(token).append('\'');
+        sb.append(", returnCode='").append(returnCode).append('\'');
+        sb.append(", returnDesc='").append(returnDesc).append('\'');
+        sb.append('}');
+        return sb.toString();
+    }
+}

+ 51 - 0
fuint-application/src/main/java/com/fuint/common/dto/Message.java

@@ -0,0 +1,51 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+
+/**
+ * 消息结构定义
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class Message implements Serializable{
+    private static final long serialVersionUID = -7956811510222855939L;
+
+    private Head head;//消息头信息
+    private Page page;//消息分页信息
+    private Body body;//消息体信息
+
+    public Head getHead() {
+        return head;
+    }
+
+    public void setHead(Head head) {
+        this.head = head;
+    }
+
+    public Page getPage() {
+        return page;
+    }
+
+    public void setPage(Page page) {
+        this.page = page;
+    }
+
+    public Body getBody() {
+        return body;
+    }
+
+    public void setBody(Body body) {
+        this.body = body;
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder("Message{");
+        sb.append("head=").append(head);
+        sb.append(", page=").append(page);
+        sb.append(", body=").append(body);
+        sb.append('}');
+        return sb.toString();
+    }
+}

+ 38 - 0
fuint-application/src/main/java/com/fuint/common/dto/MessageResDto.java

@@ -0,0 +1,38 @@
+package com.fuint.common.dto;
+
+/**
+ * 短信发送返回
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class MessageResDto {
+
+    private String[] sendIds;
+    private Boolean result;
+    private String[] smsId;
+
+    public Boolean getResult() {
+        return result;
+    }
+
+    public void setResult(Boolean result) {
+        this.result = result;
+    }
+
+    public String[] getSendIds() {
+        return sendIds;
+    }
+
+    public void setSendIds(String[] sendIds) {
+        this.sendIds = sendIds;
+    }
+
+    public String[] getSmsId() {
+        return smsId;
+    }
+
+    public void setSmsId(String[] smsId) {
+        this.smsId = smsId;
+    }
+}

+ 41 - 0
fuint-application/src/main/java/com/fuint/common/dto/MessageStatusEnum.java

@@ -0,0 +1,41 @@
+package com.fuint.common.dto;
+
+/**
+ * 消息状态枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum MessageStatusEnum {
+    SUCCESS("000000","成功"),
+    FAILD("999999","服务执行异常"),
+    NO_AUTHORIZE("unauthorized","没有权限访问"),
+
+    IN_PARAMETER_NULL("1001","入参不可为空"),
+    IN_PARAMETER_NULL_OR_LESS("1002","入参不可为空或者缺少参数");
+
+
+    private MessageStatusEnum(String returnCode, String returnDesc){
+        this.returnCode = returnCode;
+        this.returnDesc = returnDesc;
+    }
+
+    private String returnCode;
+    private String returnDesc;
+
+    public String getReturnCode() {
+        return returnCode;
+    }
+
+    public void setReturnCode(String returnCode) {
+        this.returnCode = returnCode;
+    }
+
+    public String getReturnDesc() {
+        return returnDesc;
+    }
+
+    public void setReturnDesc(String returnDesc) {
+        this.returnDesc = returnDesc;
+    }
+}

+ 220 - 0
fuint-application/src/main/java/com/fuint/common/dto/MyCouponDto.java

@@ -0,0 +1,220 @@
+package com.fuint.common.dto;
+
+import com.fuint.repository.model.MtStore;
+import com.fuint.repository.model.MtUser;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 我的卡券DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class MyCouponDto implements Serializable {
+
+    /**
+     * 自增ID
+     * */
+    private Integer id;
+
+    /**
+     * 卡券名称
+     * */
+    private String name;
+
+    /**
+     * 核销编码
+     */
+    private String code;
+
+    /**
+     * 卡券类型
+     * */
+    private String type;
+
+    /**
+     * 状态
+     * */
+    private String status;
+
+    /**
+     * 券ID
+     * */
+    private Integer couponId;
+
+    /**
+     * 使用规则
+     * */
+    private String useRule;
+
+    /**
+     * 图片
+     * */
+    private String image;
+
+    /**
+     * 面额
+     * */
+    private BigDecimal amount;
+
+    /**
+     * 余额
+     * */
+    private BigDecimal balance;
+
+    /**
+     * 是否可以使用(过期、状态等)
+     * */
+    private boolean canUse;
+
+    /**
+     * 有效期
+     * */
+    private String effectiveDate;
+
+    /**
+     * 小提示
+     * */
+    private String tips;
+
+    /**
+     * 使用时间
+     * */
+    private Date usedTime;
+
+    /**
+     * 领券时间
+     * */
+    private Date createTime;
+
+    /**
+     * 会员信息
+     * */
+    private MtUser userInfo;
+
+    /**
+     * 使用店铺
+     * */
+    private MtStore storeInfo;
+
+    public Integer getId() {
+        return id;
+    }
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCode(){
+        return code;
+    }
+    public void setCode(String code){
+        this.code=code;
+    }
+
+    public String getType() {
+        return type;
+    }
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public String getUseRule() {
+        return useRule;
+    }
+    public void setUseRule(String useRule) {
+        this.useRule = useRule;
+    }
+
+    public String getImage() {
+        return image;
+    }
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public BigDecimal getBalance() {
+        return balance;
+    }
+    public void setBalance(BigDecimal balance) {
+        this.balance = balance;
+    }
+
+    public boolean getCanUse() {
+        return canUse;
+    }
+    public void setCanUse(boolean canUse) {
+        this.canUse = canUse;
+    }
+
+    public String getEffectiveDate() {
+        return effectiveDate;
+    }
+    public void setEffectiveDate(String effectiveDate) {
+        this.effectiveDate = effectiveDate;
+    }
+
+    public String getTips() {
+        return tips;
+    }
+    public void setTips(String tips) {
+        this.tips = tips;
+    }
+
+    public Date getUsedTime(){
+        return usedTime;
+    }
+    public void setUsedTime(Date usedTime){
+        this.usedTime=usedTime;
+    }
+
+    public Date getCreateTime(){
+        return createTime;
+    }
+    public void setCreateTime(Date createTime){
+        this.createTime=createTime;
+    }
+
+    public MtUser getUserInfo() {
+        return userInfo;
+    }
+    public void setUserInfo(MtUser userInfo) {
+        this.userInfo = userInfo;
+    }
+
+    public MtStore getStoreInfo() {
+        return storeInfo;
+    }
+    public void setStoreInfo(MtStore storeInfo) {
+        this.storeInfo = storeInfo;
+    }
+}

+ 146 - 0
fuint-application/src/main/java/com/fuint/common/dto/OpenGiftDto.java

@@ -0,0 +1,146 @@
+package com.fuint.common.dto;
+
+import com.fuint.repository.model.MtCoupon;
+import com.fuint.repository.model.MtStore;
+import com.fuint.repository.model.MtUserGrade;
+import java.io.Serializable;
+
+/**
+ * 开卡赠礼实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class OpenGiftDto implements Serializable {
+
+    /**
+     * 自增ID
+     */
+    private Integer id;
+
+    /**
+     * 店铺信息
+     */
+    private MtStore storeInfo;
+
+    /**
+     * 会员等级信息
+     */
+    private MtUserGrade gradeInfo;
+
+    /**
+     * 赠送积分
+     */
+    private Integer point;
+
+    /**
+     * 卡券信息
+     */
+    private MtCoupon couponInfo;
+
+    /**
+     * 卡券数量
+     */
+    private Integer couponNum;
+
+    /**
+     * 创建时间
+     */
+    private String createTime;
+
+    /**
+     * 更新时间
+     */
+    private String updateTime;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 最后操作人
+     */
+    private String operator;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public MtStore getStoreInfo() {
+        return storeInfo;
+    }
+
+    public void setStoreInfo(MtStore storeInfo) {
+        this.storeInfo = storeInfo;
+    }
+
+    public MtUserGrade getGradeInfo() {
+        return gradeInfo;
+    }
+
+    public void setGradeInfo(MtUserGrade gradeInfo) {
+        this.gradeInfo = gradeInfo;
+    }
+
+    public Integer getPoint() {
+        return point;
+    }
+
+    public void setPoint(Integer point) {
+        this.point = point;
+    }
+
+    public MtCoupon getCouponInfo() {
+        return couponInfo;
+    }
+
+    public void setCouponInfo(MtCoupon couponInfo) {
+        this.couponInfo = couponInfo;
+    }
+
+    public Integer getCouponNum() {
+        return couponNum;
+    }
+
+    public void setCouponNum(Integer couponNum) {
+        this.couponNum = couponNum;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+}
+

+ 415 - 0
fuint-application/src/main/java/com/fuint/common/dto/OrderDto.java

@@ -0,0 +1,415 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 订单实体类
+ * */
+public class OrderDto implements Serializable {
+
+    /**
+     * 自增ID
+     */
+    private Integer id;
+
+    /**
+     * 订单类型
+     */
+    private String type;
+
+    /**
+     * 下单平台
+     */
+    private String platform;
+
+    /**
+     * 支付类型
+     */
+    private String payType;
+
+    /**
+     * 订单类型名称
+     */
+    private String orderMode;
+
+    /**
+     * 核销码
+     */
+    private String verifyCode;
+
+    /**
+     * 订单号
+     */
+    private String orderSn;
+
+    /**
+     * 卡券ID
+     */
+    private Integer couponId;
+
+    /**
+     * 购物车ID
+     */
+    private String cartIds;
+
+    /**
+     * 商品ID
+     */
+    private Integer goodsId;
+
+    /**
+     * skuID
+     */
+    private Integer skuId;
+
+    /**
+     * 购买数量
+     */
+    private Integer buyNum;
+
+    /**
+     * 会员ID
+     */
+    private Integer userId;
+
+    /**
+     * 是否游客
+     */
+    private String isVisitor;
+
+    /**
+     * 店铺ID
+     */
+    private Integer storeId;
+
+    /**
+     * 员工ID
+     */
+    private Integer staffId;
+
+    /**
+     * 订单金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 支付金额
+     */
+    private BigDecimal payAmount;
+
+    /**
+     * 使用积分数量
+     */
+    private Integer usePoint;
+
+    /**
+     * 积分金额
+     */
+    private BigDecimal pointAmount;
+
+    /**
+     * 折扣金额
+     */
+    private BigDecimal discount;
+
+    /**
+     * 配送费用
+     */
+    private BigDecimal deliveryFee;
+
+    /**
+     * 物流信息
+     * */
+    private ExpressDto expressInfo;
+
+    /**
+     * 订单参数
+     */
+    private String param;
+
+    /**
+     * 用户备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 支付时间
+     */
+    private Date payTime;
+
+    /**
+     * 订单状态
+     */
+    private String status;
+
+    /**
+     * 支付状态
+     */
+    private String payStatus;
+
+    /**
+     * 最后操作人
+     */
+    private String operator;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getPlatform() {
+        return platform;
+    }
+
+    public void setPlatform(String platform) {
+        this.platform = platform;
+    }
+
+    public String getPayType() {
+        return payType;
+    }
+
+    public void setPayType(String payType) {
+        this.payType = payType;
+    }
+
+    public String getOrderMode() {
+        return orderMode;
+    }
+
+    public void setOrderMode(String orderMode) {
+        this.orderMode = orderMode;
+    }
+
+    public String getVerifyCode() {
+        return verifyCode;
+    }
+
+    public void setVerifyCode(String verifyCode) {
+        this.verifyCode = verifyCode;
+    }
+
+    public String getOrderSn() {
+        return orderSn;
+    }
+
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public String getCartIds() {
+        return cartIds;
+    }
+
+    public void setCartIds(String cartIds) {
+        this.cartIds = cartIds;
+    }
+
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    public Integer getSkuId() {
+        return skuId;
+    }
+
+    public void setSkuId(Integer skuId) {
+        this.skuId = skuId;
+    }
+
+    public Integer getBuyNum() {
+        return buyNum;
+    }
+
+    public void setBuyNum(Integer buyNum) {
+        this.buyNum = buyNum;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getIsVisitor() {
+        return isVisitor;
+    }
+
+    public void setIsVisitor(String isVisitor) {
+        this.isVisitor = isVisitor;
+    }
+
+    public Integer getStoreId() {
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    public Integer getStaffId() {
+        return staffId;
+    }
+
+    public void setStaffId(Integer staffId) {
+        this.staffId = staffId;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public BigDecimal getPayAmount() {
+        return payAmount;
+    }
+
+    public void setPayAmount(BigDecimal payAmount) {
+        this.payAmount = payAmount;
+    }
+
+    public BigDecimal getPointAmount() {
+        return pointAmount;
+    }
+
+    public void setPointAmount(BigDecimal pointAmount) {
+        this.pointAmount = pointAmount;
+    }
+
+    public Integer getUsePoint() {
+        return usePoint;
+    }
+
+    public void setUsePoint(Integer usePoint) {
+        this.usePoint = usePoint;
+    }
+
+    public BigDecimal getDiscount() {
+        return discount;
+    }
+
+    public void setDiscount(BigDecimal discount) {
+        this.discount = discount;
+    }
+
+    public BigDecimal getDeliveryFee() {
+        return deliveryFee;
+    }
+
+    public void setDeliveryFee(BigDecimal deliveryFee) {
+        this.deliveryFee = deliveryFee;
+    }
+
+    public ExpressDto getExpressInfo() {
+        return expressInfo;
+    }
+
+    public void setExpressInfo(ExpressDto expressInfo) {
+        this.expressInfo = expressInfo;
+    }
+
+    public String getParam() {
+        return param;
+    }
+
+    public void setParam(String param) {
+        this.param = param;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Date getPayTime() {
+        return payTime;
+    }
+
+    public void setPayTime(Date payTime) {
+        this.payTime = payTime;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getPayStatus() {
+        return payStatus;
+    }
+
+    public void setPayStatus(String payStatus) {
+        this.payStatus = payStatus;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+}
+

+ 110 - 0
fuint-application/src/main/java/com/fuint/common/dto/OrderGoodsDto.java

@@ -0,0 +1,110 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 订单实体类
+ * */
+public class OrderGoodsDto implements Serializable {
+    private Integer id;
+
+    private Integer goodsId;
+
+    private String type;
+
+    private String name;
+
+    private String price;
+
+    private String discount;
+
+    private Integer num;
+
+    private String image;
+
+    private Integer skuId;
+
+    private List<GoodsSpecValueDto> specList;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPrice() {
+        return price;
+    }
+
+    public void setPrice(String price) {
+        this.price = price;
+    }
+
+    public String getDiscount() {
+        return discount;
+    }
+
+    public void setDiscount(String discount) {
+        this.discount = discount;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public String getImage() {
+        return image;
+    }
+
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public Integer getSkuId() {
+        return skuId;
+    }
+
+    public void setSkuId(Integer skuId) {
+        this.skuId = skuId;
+    }
+
+    public List<GoodsSpecValueDto> getSpecList() {
+        return specList;
+    }
+
+    public void setSpecList(List<GoodsSpecValueDto> specList) {
+        this.specList = specList;
+    }
+}
+

+ 84 - 0
fuint-application/src/main/java/com/fuint/common/dto/OrderUserDto.java

@@ -0,0 +1,84 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+
+/**
+ * 下单用户DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class OrderUserDto implements Serializable {
+
+    /**
+     * 会员ID
+     * */
+    private Integer id;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 手机
+     * */
+    private String mobile;
+
+    /**
+     * 证件类型
+     * */
+    private String cardType;
+
+    /**
+     * 证件号
+     * */
+    private String cardNo;
+
+    /**
+     * 地址
+     * */
+    private String address;
+
+    public Integer getId() {
+        return id;
+    }
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public String getCardType() {
+        return cardType;
+    }
+    public void setCardType(String cardType) {
+        this.cardType = cardType;
+    }
+
+    public String getCardNo() {
+        return cardNo;
+    }
+    public void setCardNo(String cardNo) {
+        this.cardNo = cardNo;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+    public void setAddress(String address) {
+        this.address = address;
+    }
+}

+ 121 - 0
fuint-application/src/main/java/com/fuint/common/dto/Page.java

@@ -0,0 +1,121 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+
+/**
+ * 消息体分页信息
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class Page implements Serializable{
+    private static final long serialVersionUID = -7956811510222855939L;
+
+    private static final Long DEFAULT_PAGE_NO = 1L;
+    private static final Long DEFAULT_PAGE_SIZE = 100L;
+
+    private Long pageNo;//页号
+    private Long pageSize;//每页行数
+    private Long totalRows;//总行数
+    private Long totalPages;//总页数
+    private Boolean firstPage;//是否首页
+    private Boolean lastPage;//是否尾页
+
+    public Page() {
+    }
+
+    public Page(Long pageNo, Long pageSize) {
+        setPageNo(pageNo);
+        setPageSize(pageSize);
+    }
+
+    public Long getPageNo() {
+        return pageNo;
+    }
+
+    public void setPageNo(Long pageNo) {
+        if (pageNo == null || pageNo < 1) {
+            pageNo = DEFAULT_PAGE_NO;
+        } else if (totalPages != null && pageNo > totalPages) {
+            pageNo = totalPages;
+        }
+        this.pageNo = pageNo;
+    }
+
+    public Long getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Long pageSize) {
+        if (pageSize == null) {
+            this.pageSize = DEFAULT_PAGE_SIZE;
+        } else if (pageSize < 1L) {
+            this.pageSize = 1L;
+        } else {
+            this.pageSize = pageSize;
+        }
+    }
+
+    public Long getTotalRows() {
+        return totalRows;
+    }
+
+    public void setTotalRows(Long totalRows) {
+        //总行数
+        this.totalRows = totalRows;
+        //总页数
+        this.totalPages = totalRows / this.pageSize;
+        if (totalRows % this.pageSize > 0) {
+            this.totalPages++;
+        }
+        //首页
+        if (this.pageNo <= 1) {
+            firstPage = true;
+        } else {
+            firstPage = false;
+        }
+        //尾页
+        if (this.pageNo >= this.totalPages) {
+            lastPage = true;
+        } else {
+            lastPage = false;
+        }
+    }
+
+    public Long getTotalPages() {
+        return totalPages;
+    }
+
+    public void setTotalPages(Long totalPages) {
+        this.totalPages = totalPages;
+    }
+
+    public Boolean isFirstPage() {
+        return firstPage;
+    }
+
+    public void setFirstPage(Boolean firstPage) {
+        this.firstPage = firstPage;
+    }
+
+    public Boolean isLastPage() {
+        return lastPage;
+    }
+
+    public void setLastPage(Boolean lastPage) {
+        this.lastPage = lastPage;
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder("Page{");
+        sb.append("pageNo=").append(pageNo);
+        sb.append(", pageSize=").append(pageSize);
+        sb.append(", totalRows=").append(totalRows);
+        sb.append(", totalPages=").append(totalPages);
+        sb.append(", firstPage=").append(firstPage);
+        sb.append(", lastPage=").append(lastPage);
+        sb.append('}');
+        return sb.toString();
+    }
+}

+ 34 - 0
fuint-application/src/main/java/com/fuint/common/dto/ParamDto.java

@@ -0,0 +1,34 @@
+package com.fuint.common.dto;
+
+/**
+ * 请求参数实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ParamDto {
+    private String key;
+    private String name;
+    private String value;
+
+    public String getKey(){
+        return key;
+    }
+    public void setKey(String key){
+        this.key = key;
+    }
+
+    public String getName(){
+        return name;
+    }
+    public void setName(String name){
+        this.name = name;
+    }
+
+    public String getValue(){
+        return value;
+    }
+    public void setValue(String value){
+        this.value = value;
+    }
+}

+ 144 - 0
fuint-application/src/main/java/com/fuint/common/dto/PointDto.java

@@ -0,0 +1,144 @@
+package com.fuint.common.dto;
+
+import com.fuint.repository.model.MtUser;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 积分记录实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class PointDto implements Serializable {
+    /**
+     * 自增ID
+     */
+    private Integer id;
+
+    /**
+     * 会员ID
+     */
+    private Integer userId;
+
+    /**
+     * 会员信息
+     */
+    private MtUser userInfo;
+
+    /**
+     * 订单号
+     */
+    private String orderSn;
+
+    /**
+     * 积分变化数量
+     */
+    private Integer amount;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 备注说明
+     */
+    private String description;
+
+    /**
+     * 最后操作人
+     */
+    private String operator;
+
+    /**
+     * 状态,A正常;D作废
+     */
+    private String status;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public MtUser getUserInfo() {
+        return userInfo;
+    }
+
+    public void setUserInfo(MtUser userInfo) {
+        this.userInfo = userInfo;
+    }
+
+    public String getOrderSn() {
+        return orderSn;
+    }
+
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
+
+    public Integer getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Integer amount) {
+        this.amount = amount;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getOperator(){
+        return operator;
+    }
+
+    public void setOperator(String operator){
+        this.operator=operator;
+    }
+}
+

+ 27 - 0
fuint-application/src/main/java/com/fuint/common/dto/PreStoreRuleDto.java

@@ -0,0 +1,27 @@
+package com.fuint.common.dto;
+
+/**
+ * 预存规则实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class PreStoreRuleDto {
+
+    private String preStoreAmount;
+    private String targetAmount;
+
+    public String getPreStoreAmount() {
+        return preStoreAmount;
+    }
+    public void setPreStoreAmount(String preStoreAmount) {
+        this.preStoreAmount = preStoreAmount;
+    }
+
+    public String getTargetAmount() {
+        return targetAmount;
+    }
+    public void setTargetAmount(String targetAmount) {
+        this.targetAmount = targetAmount;
+    }
+}

+ 27 - 0
fuint-application/src/main/java/com/fuint/common/dto/RechargeRuleDto.java

@@ -0,0 +1,27 @@
+package com.fuint.common.dto;
+
+/**
+ * 充值规则实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class RechargeRuleDto {
+
+    private String rechargeAmount;
+    private String giveAmount;
+
+    public String getRechargeAmount() {
+        return rechargeAmount;
+    }
+    public void setRechargeAmount(String rechargeAmount) {
+        this.rechargeAmount = rechargeAmount;
+    }
+
+    public String getGiveAmount() {
+        return giveAmount;
+    }
+    public void setGiveAmount(String giveAmount) {
+        this.giveAmount = giveAmount;
+    }
+}

+ 223 - 0
fuint-application/src/main/java/com/fuint/common/dto/RefundDto.java

@@ -0,0 +1,223 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 售后实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class RefundDto implements Serializable {
+
+    /**
+     * 自增ID
+     */
+    private Integer id;
+
+    /**
+     * 订单ID
+     */
+    private Integer orderId;
+
+    /**
+     * 店铺ID
+     */
+    private Integer storeId;
+
+    /**
+     * 退款金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 售后类型
+     */
+    private String type;
+
+    /**
+     * 会员ID
+     */
+    private Integer userId;
+
+    /**
+     * 用户备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    private String createTime;
+
+    /**
+     * 更新时间
+     */
+    private String updateTime;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 状态
+     */
+    private String statusText;
+
+    /**
+     * 申请凭证图片
+     */
+    private List<String> imageList;
+
+    /**
+     * 申请凭证图片
+     */
+    private String images;
+
+    /**
+     * 最后操作人
+     */
+    private String operator;
+
+    /**
+     * 订单详情
+     * */
+    private UserOrderDto orderInfo;
+
+    /**
+     * 退货地址
+     */
+    private AddressDto address;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getStoreId(){
+        return storeId;
+    }
+
+    public void setStoreId(Integer storeId){
+        this.storeId=storeId;
+    }
+
+    public BigDecimal getAmount(){
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount){
+        this.amount=amount;
+    }
+
+    public String getType(){
+        return type;
+    }
+
+    public void setType(String type){
+        this.type=type;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getStatusText() {
+        return statusText;
+    }
+
+    public void setStatusText(String statusText) {
+        this.statusText = statusText;
+    }
+
+    public List<String> getImageList(){
+        return imageList;
+    }
+
+    public void setImageList(List<String> imageList){
+        this.imageList=imageList;
+    }
+
+    public String getImages() {
+        return images;
+    }
+
+    public void setImages(String images) {
+        this.images = images;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public UserOrderDto getOrderInfo() {
+        return orderInfo;
+    }
+
+    public void setOrderInfo(UserOrderDto orderInfo) {
+        this.orderInfo = orderInfo;
+    }
+
+    public AddressDto getAddress() {
+        return address;
+    }
+
+    public void setAddress(AddressDto address) {
+        this.address = address;
+    }
+}
+

+ 66 - 0
fuint-application/src/main/java/com/fuint/common/dto/RegionDto.java

@@ -0,0 +1,66 @@
+package com.fuint.common.dto;
+
+import java.util.List;
+
+/**
+ * 地区实体类
+ * */
+public class RegionDto {
+
+    private Integer id;
+
+    private String name;
+
+    private Integer pid;
+
+    private String code;
+
+    private String level;
+
+    private List<RegionDto> city;
+
+    private List<RegionDto> region;
+
+    public Integer getId(){
+        return id;
+    }
+    public void setId(Integer id){
+        this.id=id;
+    }
+    public String getName(){
+        return name;
+    }
+    public void setName(String name){
+        this.name=name;
+    }
+    public Integer getPid(){
+        return pid;
+    }
+    public void setPid(Integer pid){
+        this.pid=pid;
+    }
+    public String getCode(){
+        return code;
+    }
+    public void setCode(String code){
+        this.code=code;
+    }
+    public String getLevel(){
+        return level;
+    }
+    public void setLevel(String level){
+        this.level=level;
+    }
+    public List<RegionDto> getCity() {
+       return city;
+    }
+    public void setCity(List<RegionDto> city) {
+        this.city = city;
+    }
+    public List<RegionDto> getRegion() {
+        return region;
+    }
+    public void setRegion(List<RegionDto> region) {
+        this.region = region;
+    }
+}

+ 359 - 0
fuint-application/src/main/java/com/fuint/common/dto/ReqCouponDto.java

@@ -0,0 +1,359 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 卡券请求DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ReqCouponDto implements Serializable {
+
+    /**
+     * 券ID
+     */
+    private Integer id;
+
+    /**
+     * 分组ID
+     * */
+    private Integer groupId;
+
+    /**
+     * 类型
+     */
+    private String type;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 是否允许转赠
+     */
+    private Integer isGive;
+
+    /**
+     * 获得卡券所消耗积分
+     */
+    private Integer point;
+
+    /**
+     * 获得计次卡卡所消耗积分
+     */
+    private Integer timerPoint;
+
+    /**
+     * 领取码
+     */
+    private String receiveCode;
+
+    /**
+     * 使用专项
+     */
+    private String useFor;
+
+    /**
+     * 计次卡领取码
+     */
+    private String timerReceiveCode;
+
+    /**
+     * 有效期开始时间
+     * */
+    private String beginTime;
+
+    /**
+     * 有效期结束时间
+     * */
+    private String endTime;
+
+    /**
+     * 价值金额
+     * */
+    private BigDecimal amount;
+
+    /**
+     * 发放方式
+     * */
+    private String sendWay;
+
+    /**
+     * 适用商品
+     * */
+    private String applyGoods;
+
+    /**
+     * 每次发放数量
+     * */
+     private Integer sendNum;
+
+    /**
+     * 发行总数量
+     * */
+    private Integer total;
+
+    /**
+     * 每人最多拥有数量
+     * */
+    private Integer limitNum;
+
+     /**
+      * 例外时间
+      * */
+     private String exceptTime;
+
+    /**
+     * 店铺Id
+     * */
+    private String storeIds;
+
+    /**
+     * 会员等级Id
+     * */
+    private String gradeIds;
+
+    /**
+     * 适用商品
+     * */
+    private String goodsIds;
+
+    /**
+     * 后台备注
+     * */
+    private String remarks;
+
+    /**
+     * 图片
+     * */
+    private String image;
+
+    /**
+     * 备注
+     */
+    private String description;
+
+    /**
+     * 预存规则
+     * */
+    private String inRule;
+
+    /**
+     * 核销规则
+     * */
+    private String outRule;
+
+    /**
+     * 操作人
+     */
+    private String operator;
+
+    /**
+     * 状态
+     * */
+    private String status;
+
+    public Integer getId() {
+        return id;
+    }
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getGroupId() {
+        return groupId;
+    }
+    public void setGroupId(Integer groupId) {
+        this.groupId = groupId;
+    }
+
+    public String getType() {
+        return type;
+    }
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getName() {
+        return name;
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getIsGive(){
+        return isGive;
+    }
+    public void setIsGive(Integer isGive){
+        this.isGive=isGive;
+    }
+
+    public Integer getPoint(){
+        return point;
+    }
+    public void setPoint(Integer point){
+        this.point=point;
+    }
+
+    public Integer getTimerPoint(){
+        return timerPoint;
+    }
+    public void setTimerPoint(Integer timerPoint){
+        this.timerPoint=timerPoint;
+    }
+
+    public String getReceiveCode(){
+        return receiveCode;
+    }
+    public void setReceiveCode(String receiveCode){
+        this.receiveCode=receiveCode;
+    }
+
+    public String getUseFor(){
+        return useFor;
+    }
+    public void setUseFor(String useFor){
+        this.useFor=useFor;
+    }
+
+    public String getTimerReceiveCode(){
+        return timerReceiveCode;
+    }
+    public void setTimerReceiveCode(String timerReceiveCode){
+        this.timerReceiveCode=timerReceiveCode;
+    }
+
+    public String getBeginTime() {
+        return beginTime;
+    }
+    public void setBeginTime(String beginTime) {
+        this.beginTime = beginTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public String getSendWay() {
+        return sendWay;
+    }
+    public void setSendWay(String sendWay) {
+        this.sendWay = sendWay;
+    }
+
+    public String getApplyGoods() {
+        return applyGoods;
+    }
+    public void setApplyGoods(String applyGoods) {
+        this.applyGoods = applyGoods;
+    }
+
+    public Integer getSendNum() {
+        return sendNum;
+    }
+    public void setSendNum(Integer sendNum) {
+        this.sendNum = sendNum;
+    }
+
+    public Integer getTotal() {
+        return total;
+    }
+    public void setTotal(Integer total) {
+        this.total = total;
+    }
+
+    public Integer getLimitNum() {
+        return limitNum;
+    }
+    public void setLimitNum(Integer limitNum) {
+        this.limitNum = limitNum;
+    }
+
+    public String getExceptTime() {
+        return exceptTime;
+    }
+    public void setExceptTime(String exceptTime) {
+        this.exceptTime = exceptTime;
+    }
+
+    public String getStoreIds() {
+        return storeIds;
+    }
+    public void setStoreIds(String storeIds) {
+        this.storeIds = storeIds;
+    }
+
+    public String getGradeIds() {
+        return gradeIds;
+    }
+    public void setGradeIds(String gradeIds) {
+        this.gradeIds = gradeIds;
+    }
+
+    public String getGoodsIds() {
+        return goodsIds;
+    }
+    public void setGoodsIds(String goodsIds) {
+        this.goodsIds = goodsIds;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+
+    public String getImage() {
+        return image;
+    }
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public String getInRule() {
+        return inRule;
+    }
+    public void setInRule(String inRule) {
+        this.inRule = inRule;
+    }
+
+    public String getOutRule() {
+        return outRule;
+    }
+    public void setOutRule(String outRule) {
+        this.outRule = outRule;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+    public void setStatus(String status) { this.status = status;}
+}

+ 102 - 0
fuint-application/src/main/java/com/fuint/common/dto/ReqCouponGroupDto.java

@@ -0,0 +1,102 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 卡券分组请求DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ReqCouponGroupDto implements Serializable {
+    /**
+     * ID
+     */
+    private Integer id;
+    /**
+     * 组名称
+     */
+    private String name;
+
+    /**
+     * 价值金额
+     * */
+    private BigDecimal money;
+
+    /**
+     * 发行数量
+     * */
+     private Integer total;
+
+    /**
+     * 分组描述
+     */
+    private String description;
+
+    /**
+     * 操作人
+     */
+    private String operator;
+
+    /**
+     * 状态
+     * */
+    private String status;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public BigDecimal getMoney() {
+        return money;
+    }
+
+    public void setMoney(BigDecimal money) {
+        this.money = money;
+    }
+
+    public Integer getTotal() {
+        return total;
+    }
+
+    public void setTotal(Integer total) {
+        this.total = total;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+}

+ 49 - 0
fuint-application/src/main/java/com/fuint/common/dto/ReqResult.java

@@ -0,0 +1,49 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * 请求结果
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ReqResult implements Serializable {
+
+    private String code;
+    private String msg;
+    private boolean result;
+    private Map<String, Object> data;
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public boolean isResult() {
+        return result;
+    }
+
+    public void setResult(boolean result) {
+        this.result = result;
+    }
+
+    public void setData(Map<String, Object> data) {
+        this.data = data;
+    }
+    public Map<String, Object> getData() {
+        return this.data;
+    }
+}

+ 51 - 0
fuint-application/src/main/java/com/fuint/common/dto/ReqSendCouponDto.java

@@ -0,0 +1,51 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+
+/**
+ * 发放卡券请求DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ReqSendCouponDto implements Serializable {
+
+    /**
+     * 分组ID
+     * */
+    private Integer group_id;
+
+    /**
+     * 手机号
+     */
+    private String mobile;
+
+    /**
+     * 发放数量
+     */
+    private Integer num;
+
+    public Integer getGroupId() {
+        return group_id;
+    }
+
+    public void setGroupId(Integer group_id) {
+        this.group_id = group_id;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+}

+ 191 - 0
fuint-application/src/main/java/com/fuint/common/dto/ReqSendLogDto.java

@@ -0,0 +1,191 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 发放卡券记录请求DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ReqSendLogDto implements Serializable {
+
+    /**
+     * ID
+     * */
+    private Integer id;
+
+    /**
+     * 1:单用户发券;2:批量发券
+     * */
+    private Integer type;
+
+    /**
+     * 会员ID
+     * */
+    private Integer user_id;
+
+    /**
+     * 导入文件名
+     */
+    private String file_name;
+
+    /**
+     * 导入文件路径
+     */
+    private String file_path;
+
+    /**
+     * 手机号
+     */
+    private String mobile;
+
+    /**
+     * 分组ID
+     */
+    private Integer group_id;
+
+    /**
+     * 卡券ID
+     */
+    private Integer coupon_id;
+
+    /**
+     * 分组名称
+     */
+    private String group_name;
+
+    /**
+     * 发放数量
+     */
+    private Integer send_num;
+
+    /**
+     * 发放时间
+     * */
+    private Date create_time;
+
+    /**
+     * 操作人
+     */
+    private String operator;
+
+    /**
+     * 作态
+     */
+    private String status;
+
+    /**
+     * uuid
+     */
+    private String uuid;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getUserId() {
+        return user_id;
+    }
+
+    public void setUserId(Integer user_id) {
+        this.user_id = user_id;
+    }
+
+    public String getFileName() {
+        return file_name;
+    }
+
+    public void setFileName(String file_name) {
+        this.file_name = file_name;
+    }
+
+    public String getFilePath() {
+        return file_path;
+    }
+
+    public void setFilePath(String file_path) {
+        this.file_path = file_path;
+    }
+
+    public String getMobile() {
+        return mobile;
+    }
+
+    public void setMobile(String mobile) {
+        this.mobile = mobile;
+    }
+
+    public Integer getGroupId() {
+        return group_id;
+    }
+
+    public void setGroupId(Integer group_id) {
+        this.group_id = group_id;
+    }
+
+    public Integer getCouponId() {
+        return coupon_id;
+    }
+
+    public void setCouponId(Integer coupon_id) {
+        this.coupon_id = coupon_id;
+    }
+
+    public String getGroupName() {
+        return group_name;
+    }
+
+    public void setGroupName(String group_name) {
+        this.group_name = group_name;
+    }
+
+    public Integer getSendNum() {
+        return send_num;
+    }
+
+    public void setSendNum(Integer send_num) {
+        this.send_num = send_num;
+    }
+
+    public Date getCreateTime() {
+        return create_time;
+    }
+
+    public void setCreateTime(Date create_time) {
+        this.create_time = create_time;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) { this.status = status;}
+
+    public String getUuid() {
+        return uuid;
+    }
+
+    public void setUuid(String uuid) { this.uuid = uuid;}
+}

+ 117 - 0
fuint-application/src/main/java/com/fuint/common/dto/ResCartDto.java

@@ -0,0 +1,117 @@
+package com.fuint.common.dto;
+
+import com.fuint.repository.model.MtGoods;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 购物车返回DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ResCartDto implements Serializable {
+
+    /**
+     * ID
+     * */
+    private Integer id;
+
+    /**
+     * 分类名称
+     */
+    private Integer userId;
+
+    /**
+     * 商品ID
+     */
+    private Integer goodsId;
+
+    /**
+     * skuID
+     */
+    private Integer skuId;
+
+    /**
+     * 数量
+     */
+    private Integer num;
+
+    /**
+     * 是否有效
+     * */
+    private Boolean isEffect;
+
+    /**
+     * 商品规格
+     * */
+    private List<GoodsSpecValueDto> specList;
+
+    /**
+     * 商品数据
+     * */
+    private MtGoods goodsInfo;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer name) {
+        this.userId = name;
+    }
+
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    public Integer getSkuId(){
+        return skuId;
+    }
+    public void setSkuId(Integer skuId){
+        this.skuId=skuId;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public Boolean getIsEffect() {
+        return isEffect;
+    }
+
+    public void setIsEffect(Boolean isEffect) {
+        this.isEffect = isEffect;
+    }
+
+    public MtGoods getGoodsInfo() {
+        return goodsInfo;
+    }
+
+    public void setGoodsInfo(MtGoods goodsInfo) {
+        this.goodsInfo = goodsInfo;
+    }
+
+    public List<GoodsSpecValueDto> getSpecList() {
+        return specList;
+    }
+
+    public void setSpecList(List<GoodsSpecValueDto> specList) {
+        this.specList = specList;
+    }
+}

+ 66 - 0
fuint-application/src/main/java/com/fuint/common/dto/ResCateDto.java

@@ -0,0 +1,66 @@
+package com.fuint.common.dto;
+
+import com.fuint.repository.model.MtGoods;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 商品分类返回DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ResCateDto implements Serializable {
+
+    /**
+     *  分类ID
+     * */
+    private Integer cateId;
+
+    /**
+     * 分类名称
+     */
+    private String name;
+
+    /**
+     * logo
+     */
+    private String logo;
+
+    /**
+     * 数据列表
+     * */
+    private List<MtGoods> goodsList;
+
+    public Integer getCateId() {
+        return cateId;
+    }
+
+    public void setCateId(Integer cateId) {
+        this.cateId = cateId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getLogo() {
+        return logo;
+    }
+
+    public void setLogo(String logo) {
+        this.logo = logo;
+    }
+
+    public List<MtGoods> getGoodsList() {
+        return goodsList;
+    }
+
+    public void setGoodsList(List<MtGoods> goodsList) {
+        this.goodsList = goodsList;
+    }
+}

+ 78 - 0
fuint-application/src/main/java/com/fuint/common/dto/ResMyCouponDto.java

@@ -0,0 +1,78 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 我的卡券返回DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ResMyCouponDto implements Serializable {
+
+    /**
+     *  当前页
+     * */
+    private Integer pageNumber;
+
+    /**
+     * 每页数量
+     */
+    private Integer pageSize;
+
+    /**
+     * 总数量
+     */
+    private Long totalRow;
+
+    /**
+     * 总页数
+     * */
+    private Integer totalPage;
+
+    /**
+     * 数据列表
+     * */
+    private List<MyCouponDto> content;
+
+    public Integer getPageNumber() {
+        return pageNumber;
+    }
+
+    public void setPageNumber(Integer pageNumber) {
+        this.pageNumber = pageNumber;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public Long getTotalRow() {
+        return totalRow;
+    }
+
+    public void getTotalRow(Long totalRow) {
+        this.totalRow = totalRow;
+    }
+
+    public Integer getTotalPage() {
+        return totalPage;
+    }
+
+    public void setTotalPage(Integer totalPage) {
+        this.totalPage = totalPage;
+    }
+
+    public List<MyCouponDto> getContent() {
+        return content;
+    }
+
+    public void setContent(List<MyCouponDto> content) {
+        this.content = content;
+    }
+}

+ 78 - 0
fuint-application/src/main/java/com/fuint/common/dto/ResUserOrderDto.java

@@ -0,0 +1,78 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 用户订单返回DTO
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class ResUserOrderDto implements Serializable {
+
+    /**
+     *  当前页
+     * */
+    private Integer pageNumber;
+
+    /**
+     * 每页数量
+     */
+    private Integer pageSize;
+
+    /**
+     * 总数量
+     */
+    private Long totalRow;
+
+    /**
+     * 总页数
+     * */
+    private Integer totalPage;
+
+    /**
+     * 数据列表
+     * */
+    private List<UserOrderDto> content;
+
+    public Integer getPageNumber() {
+        return pageNumber;
+    }
+
+    public void setPageNumber(Integer pageNumber) {
+        this.pageNumber = pageNumber;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public Long getTotalRow() {
+        return totalRow;
+    }
+
+    public void getTotalRow(Long totalRow) {
+        this.totalRow = totalRow;
+    }
+
+    public Integer getTotalPage() {
+        return totalPage;
+    }
+
+    public void setTotalPage(Integer totalPage) {
+        this.totalPage = totalPage;
+    }
+
+    public List<UserOrderDto> getContent() {
+        return content;
+    }
+
+    public void setContent(List<UserOrderDto> content) {
+        this.content = content;
+    }
+}

+ 72 - 0
fuint-application/src/main/java/com/fuint/common/dto/RoleDto.java

@@ -0,0 +1,72 @@
+package com.fuint.common.dto;
+
+/**
+ * 角色信息实体类
+ */
+public class RoleDto {
+
+    /**
+     * 账户主键id
+     */
+    private Long id;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 类型
+     * */
+    private String type;
+
+    /**
+     * 备注
+     * */
+    private String description;
+
+    /**
+     * 状态 : A 有效 D 无效
+     */
+    private String status;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+}

+ 96 - 0
fuint-application/src/main/java/com/fuint/common/dto/SmsTemplateDto.java

@@ -0,0 +1,96 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class SmsTemplateDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增ID
+     */
+    private Integer id;
+
+    /**
+     * 模板名称
+     */
+    private String name;
+
+    /**
+     * 模板英文名称
+     */
+    private String uname;
+
+    /**
+     * 模板code
+     */
+    private String code;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+    /**
+     * 状态,1:正常;2:删除
+     */
+    private String status;
+
+    public Integer getId(){
+        return id;
+    }
+    public void setId(Integer id){
+        this.id=id;
+    }
+    public String getName(){
+        return name;
+    }
+    public void setName(String name){
+        this.name=name;
+    }
+    public String getUname(){
+        return uname;
+    }
+    public void setUname(String uname){
+        this.uname=uname;
+    }
+    public String getCode(){
+        return code;
+    }
+    public void setCode(String code){
+        this.code=code;
+    }
+    public String getContent(){
+        return content;
+    }
+    public void setContent(String content){
+        this.content=content;
+    }
+    public Date getCreateTime(){
+        return createTime;
+    }
+    public void setCreateTime(Date createTime){
+        this.createTime=createTime;
+    }
+    public Date getUpdateTime(){
+        return updateTime;
+    }
+    public void setUpdateTime(Date updateTime){
+        this.updateTime=updateTime;
+    }
+    public String getStatus(){
+        return status;
+    }
+    public void setStatus(String status){
+        this.status=status;
+    }
+}

+ 218 - 0
fuint-application/src/main/java/com/fuint/common/dto/SourceDto.java

@@ -0,0 +1,218 @@
+package com.fuint.common.dto;
+
+/**
+ * 菜单信息实体
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class SourceDto {
+
+    /**
+     * 菜单ID
+     */
+    private long id;
+
+    /**
+     * 菜单名称
+     */
+    private String name;
+
+    /**
+     * 菜单名称(字母)
+     */
+    private String ename;
+
+    /**
+     * tree 节点是否打开
+     */
+    private boolean open;
+
+    /**
+     * 是否菜单
+     * */
+    private int isMenu;
+
+    /**
+     * tree 节点是否选中
+     */
+    private boolean checked;
+
+    /**
+     * url
+     */
+    private String url;
+
+    /**
+     * path
+     */
+    private String path;
+
+    /**
+     * 权限标识
+     */
+    private String perms;
+
+    /**
+     * 菜单级别
+     */
+    private int level;
+
+    /**
+     * 上级菜单
+     */
+    private long parentId;
+
+    /**
+     * 图标
+     */
+    private String icon;
+
+    /**
+     * 新图标
+     */
+    private String newIcon;
+
+    /**
+     * 描述信息
+     * */
+    private String description;
+
+    /**
+     * 排序
+     * */
+    private String sort;
+
+    /**
+     * 状态
+     * */
+    private String status;
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getEname() {
+        return ename;
+    }
+
+    public void setEname(String ename) {
+        this.ename = ename;
+    }
+
+    public boolean isOpen() {
+        return open;
+    }
+
+    public int getIsMenu() {
+        return isMenu;
+    }
+
+    public void setIsMenu(int isMenu) {
+        this.isMenu = isMenu;
+    }
+
+    public void setOpen(boolean open) {
+        this.open = open;
+    }
+
+    public boolean isChecked() {
+        return checked;
+    }
+
+    public void setChecked(boolean checked) {
+        this.checked = checked;
+    }
+
+    public int getLevel() {
+        return level;
+    }
+
+    public void setLevel(int level) {
+        this.level = level;
+    }
+
+    public long getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(long parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    public String getPerms() {
+        return perms;
+    }
+
+    public void setPerms(String perms) {
+        this.perms = perms;
+    }
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+
+    public String getNewIcon() {
+        return newIcon;
+    }
+
+    public void setNewIcon(String newIcon) {
+        this.newIcon = newIcon;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getSort() {
+        return sort;
+    }
+
+    public void setSort(String sort) {
+        this.sort = sort;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+}

+ 310 - 0
fuint-application/src/main/java/com/fuint/common/dto/StoreDto.java

@@ -0,0 +1,310 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 店铺实体
+ * */
+public class StoreDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增ID
+     */
+    private Integer id;
+
+    /**
+     * 所属商户ID
+     * */
+    private Integer merchantId;
+
+    /**
+     * 所属商户名称
+     * */
+    private String merchantName;
+
+    /**
+     * 店铺名称
+     */
+    private String name;
+
+    /**
+     * 店铺LOGO
+     * */
+    private String logo;
+
+    /**
+     * 是否默认店铺
+     */
+    private String isDefault;
+
+    /**
+     * 联系人姓名
+     */
+    private String contact;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 店铺地址
+     */
+    private String address;
+
+    /**
+     * 营业时间
+     */
+    private String hours;
+
+    /**
+     * 经度
+     */
+    private String latitude;
+
+    /**
+     * 纬度
+     */
+    private String longitude;
+
+    /**
+     * 备注信息
+     */
+    private String description;
+
+    /**
+     * 微信商户号
+     */
+    private String wxMchId;
+
+    /**
+     * 微信支付秘钥
+     */
+    private String wxApiV2;
+
+    /**
+     * 支付宝appId
+     * */
+    private String alipayAppId;
+
+    /**
+     * 支付宝应用私钥
+     * */
+    private String alipayPrivateKey;
+
+    /**
+     * 支付宝支付公钥
+     * */
+    private String alipayPublicKey;
+
+    /**
+     * 营业执照
+     * */
+    private String license;
+
+    /**
+     * 统一社会信用代码
+     * */
+    private String creditCode;
+
+    /**
+     * 银行名称
+     * */
+    private String bankName;
+
+    /**
+     * 银行卡账户名
+     * */
+    private String bankCardName;
+
+    /**
+     * 银行卡卡号
+     * */
+    private String bankCardNo;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+    /**
+     * 状态,1:正常;2:删除
+     */
+    private String status;
+
+    /**
+     * 最后操作人
+     */
+    private String operator;
+
+    public Integer getId(){
+        return id;
+    }
+    public void setId(Integer id){
+        this.id=id;
+    }
+    public Integer getMerchantId(){
+        return merchantId;
+    }
+    public void setMerchantId(Integer merchantId){
+        this.merchantId=merchantId;
+    }
+    public String getMerchantName(){
+        return merchantName;
+    }
+    public void setMerchantName(String merchantName){
+        this.merchantName=merchantName;
+    }
+    public String getName(){
+        return name;
+    }
+    public void setName(String name){
+        this.name=name;
+    }
+    public String getLogo(){
+        return logo;
+    }
+    public void setLogo(String logo){
+        this.logo=logo;
+    }
+    public String getIsDefault(){
+        return isDefault;
+    }
+    public void setIsDefault(String isDefault){
+        this.isDefault=isDefault;
+    }
+    public String getContact(){
+        return contact;
+    }
+    public void setContact(String contact){
+        this.contact=contact;
+    }
+    public String getPhone(){
+        return phone;
+    }
+    public void setPhone(String phone){
+        this.phone=phone;
+    }
+    public String getAddress(){
+        return address;
+    }
+    public void setAddress(String address){
+        this.address=address;
+    }
+    public String getHours(){
+        return hours;
+    }
+    public void setHours(String hours){
+        this.hours=hours;
+    }
+    public String getLatitude(){
+        return latitude;
+    }
+    public void setLatitude(String latitude){
+        this.latitude=latitude;
+    }
+    public String getLongitude(){
+        return longitude;
+    }
+    public void setLongitude(String longitude){
+        this.longitude=longitude;
+    }
+    public String getDescription(){
+        return description;
+    }
+    public void setDescription(String description){
+        this.description=description;
+    }
+    public String getWxMchId(){
+        return wxMchId;
+    }
+    public void setWxMchId(String wxMchId){
+        this.wxMchId=wxMchId;
+    }
+    public String getWxApiV2(){
+        return wxApiV2;
+    }
+    public void setWxApiV2(String wxApiV2){
+        this.wxApiV2=wxApiV2;
+    }
+    public String getAlipayAppId(){
+        return alipayAppId;
+    }
+    public void setAlipayAppId(String alipayAppId){
+        this.alipayAppId=alipayAppId;
+    }
+    public String getAlipayPrivateKey(){
+        return alipayPrivateKey;
+    }
+    public void setAlipayPrivateKey(String alipayPrivateKey){
+        this.alipayPrivateKey=alipayPrivateKey;
+    }
+    public String getAlipayPublicKey(){
+        return alipayPublicKey;
+    }
+    public void setAlipayPublicKey(String alipayPublicKey){
+        this.alipayPublicKey=alipayPublicKey;
+    }
+    public String getLicense(){
+        return license;
+    }
+    public void setLicense(String license){
+        this.license=license;
+    }
+    public String getCreditCode(){
+        return creditCode;
+    }
+    public void setCreditCode(String creditCode){
+        this.creditCode=creditCode;
+    }
+    public String getBankName(){
+        return bankName;
+    }
+    public void setBankName(String bankName){
+        this.bankName=bankName;
+    }
+    public String getBankCardName(){
+        return bankCardName;
+    }
+    public void setBankCardName(String bankCardName){
+        this.bankCardName=bankCardName;
+    }
+    public String getBankCardNo(){
+        return bankCardNo;
+    }
+    public void setBankCardNo(String bankCardNo){
+        this.bankCardNo=bankCardNo;
+    }
+    public Date getCreateTime(){
+        return createTime;
+    }
+    public void setCreateTime(Date createTime){
+        this.createTime=createTime;
+    }
+    public Date getUpdateTime(){
+        return updateTime;
+    }
+    public void setUpdateTime(Date updateTime){
+        this.updateTime=updateTime;
+    }
+    public String getStatus(){
+        return status;
+    }
+    public void setStatus(String status){
+        this.status=status;
+    }
+    public String getOperator(){
+        return operator;
+    }
+    public void setOperator(String operator){
+        this.operator=operator;
+    }
+}

+ 68 - 0
fuint-application/src/main/java/com/fuint/common/dto/SubMessageDto.java

@@ -0,0 +1,68 @@
+package com.fuint.common.dto;
+
+import java.util.List;
+
+/**
+ * 小程序订阅消息dto
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class SubMessageDto {
+    private String key;
+    private String templateId;
+    private String tid;
+    private String title;
+    private String content;
+    private String status;
+    private List<ParamDto> params;
+
+    public String getKey(){
+        return key;
+    }
+    public void setKey(String key){
+        this.key = key;
+    }
+
+    public String getTemplateId(){
+        return templateId;
+    }
+    public void setTemplateId(String templateId){
+        this.templateId = templateId;
+    }
+
+    public String getTid(){
+        return tid;
+    }
+    public void setTid(String tid){
+        this.tid = tid;
+    }
+
+    public String getTitle(){
+        return title;
+    }
+    public void setTitle(String title){
+        this.title = title;
+    }
+
+    public String getContent(){
+        return content;
+    }
+    public void setContent(String content){
+        this.content = content;
+    }
+
+    public String getStatus(){
+        return status;
+    }
+    public void setStatus(String status){
+        this.status = status;
+    }
+
+    public List<ParamDto> getParams(){
+        return params;
+    }
+    public void setParams(List<ParamDto> params){
+        this.params = params;
+    }
+}

+ 46 - 0
fuint-application/src/main/java/com/fuint/common/dto/TokenDto.java

@@ -0,0 +1,46 @@
+package com.fuint.common.dto;
+
+public class TokenDto {
+
+    private String token;
+
+    //token创建时间
+    private Long tokenCreatedTime;
+
+    //失效时间
+    private Long tokenExpiryTime;
+    //是否登录 true or false
+    private String isLogin;
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+
+    public Long getTokenCreatedTime() {
+        return tokenCreatedTime;
+    }
+
+    public void setTokenCreatedTime(Long tokenCreatedTime) {
+        this.tokenCreatedTime = tokenCreatedTime;
+    }
+
+    public Long getTokenExpiryTime() {
+        return tokenExpiryTime;
+    }
+
+    public void setTokenExpiryTime(Long tokenExpiryTime) {
+        this.tokenExpiryTime = tokenExpiryTime;
+    }
+
+    public String getIsLogin() {
+        return isLogin;
+    }
+
+    public void setIsLogin(String isLogin) {
+        this.isLogin = isLogin;
+    }
+}

+ 231 - 0
fuint-application/src/main/java/com/fuint/common/dto/UserCouponDto.java

@@ -0,0 +1,231 @@
+package com.fuint.common.dto;
+
+import com.fuint.repository.model.MtConfirmLog;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 我的卡券实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class UserCouponDto implements Serializable {
+
+    /**
+     * 自增ID
+     * */
+    private Integer id;
+
+    /**
+     * 卡券名称
+     * */
+    private String name;
+
+    /**
+     * 卡券类型
+     * */
+    private String type;
+
+    /**
+     * 状态
+     * */
+    private String status;
+
+    /**
+     * 券ID
+     * */
+    private Integer couponId;
+
+    /**
+     * 使用规则
+     * */
+    private String useRule;
+
+    /**
+     * 核销编码
+     * */
+    private String code;
+
+    /**
+     * 二维码
+     * */
+    private String qrCode;
+
+    /**
+     * 图片
+     * */
+    private String image;
+
+    /**
+     * 面额
+     * */
+    private BigDecimal amount;
+
+    /**
+     * 是否允许转赠
+     * */
+    private boolean isGive;
+
+    /**
+     * 余额
+     * */
+    private BigDecimal balance;
+
+    /**
+     * 核销次数
+     * */
+    private Integer confirmCount;
+
+    /**
+     * 核销记录
+     * */
+    private List<MtConfirmLog> confirmLogs;
+
+    /**
+     * 是否可以使用(过期、状态等)
+     * */
+    private boolean canUse;
+
+    /**
+     * 有效期
+     * */
+    private String effectiveDate;
+
+    /**
+     * 小提示
+     * */
+    private String tips;
+
+    /**
+     * 描述信息
+     * */
+    private String description;
+
+    public Integer getId() {
+        return id;
+    }
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getType() {
+        return type;
+    }
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public String getUseRule() {
+        return useRule;
+    }
+    public void setUseRule(String useRule) {
+        this.useRule = useRule;
+    }
+
+    public String getCode() {
+        return code;
+    }
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getQrCode() {
+        return qrCode;
+    }
+    public void setQrCode(String qrCode) {
+        this.qrCode = qrCode;
+    }
+
+    public String getImage() {
+        return image;
+    }
+    public void setImage(String image) {
+        this.image = image;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public Boolean getIsGive() {
+        return isGive;
+    }
+    public void setIsGive(Boolean isGive) {
+        this.isGive = isGive;
+    }
+
+    public BigDecimal getBalance() {
+        return balance;
+    }
+    public void setBalance(BigDecimal balance) {
+        this.balance = balance;
+    }
+
+    public Integer getConfirmCount() {
+        return confirmCount;
+    }
+    public void setConfirmCount(Integer confirmCount) {
+        this.confirmCount = confirmCount;
+    }
+
+    public List<MtConfirmLog> getConfirmLogs() {
+        return confirmLogs;
+    }
+    public void setConfirmLogs(List<MtConfirmLog> confirmLogs) {
+        this.confirmLogs = confirmLogs;
+    }
+
+    public boolean getCanUse() {
+        return canUse;
+    }
+    public void setCanUse(boolean canUse) {
+        this.canUse = canUse;
+    }
+
+    public String getEffectiveDate() {
+        return effectiveDate;
+    }
+    public void setEffectiveDate(String effectiveDate) {
+        this.effectiveDate = effectiveDate;
+    }
+
+    public String getTips() {
+        return tips;
+    }
+    public void setTips(String tips) {
+        this.tips = tips;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+    public void setDescription(String description) {
+        this.description = description;
+    }
+}

+ 99 - 0
fuint-application/src/main/java/com/fuint/common/dto/UserDto.java

@@ -0,0 +1,99 @@
+package com.fuint.common.dto;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 会员个人信息
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Getter
+@Setter
+public class UserDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("会员ID")
+    private Integer id;
+
+    @ApiModelProperty("会员号")
+    private String userNo;
+
+    @ApiModelProperty("头像")
+    private String avatar;
+
+    @ApiModelProperty("称呼")
+    private String name;
+
+    @ApiModelProperty("微信open_id")
+    private String openId;
+
+    @ApiModelProperty("手机号码")
+    private String mobile;
+
+    @ApiModelProperty("证件号码")
+    private String idcard;
+
+    @ApiModelProperty("等级ID")
+    private String gradeId;
+
+    @ApiModelProperty("等级名称")
+    private String gradeName;
+
+    @ApiModelProperty("会员开始时间")
+    private Date startTime;
+
+    @ApiModelProperty("会员结束时间")
+    private Date endTime;
+
+    @ApiModelProperty("余额")
+    private BigDecimal balance;
+
+    @ApiModelProperty("积分")
+    private Integer point;
+
+    @ApiModelProperty("性别 1男;0女")
+    private Integer sex;
+
+    @ApiModelProperty("出生日期")
+    private String birthday;
+
+    @ApiModelProperty("车牌号")
+    private String carNo;
+
+    @ApiModelProperty("来源渠道")
+    private String source;
+
+    @ApiModelProperty("地址")
+    private String address;
+
+    @ApiModelProperty("默认店铺ID")
+    private Integer storeId;
+
+    @ApiModelProperty("默认店铺名称")
+    private String storeName;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("最近登录时间")
+    private String lastLoginTime;
+
+    @ApiModelProperty("状态,A:激活;N:禁用;D:删除")
+    private String status;
+
+    @ApiModelProperty("备注信息")
+    private String description;
+
+    @ApiModelProperty("最后操作人")
+    private String operator;
+}

+ 16 - 0
fuint-application/src/main/java/com/fuint/common/dto/UserInfo.java

@@ -0,0 +1,16 @@
+package com.fuint.common.dto;
+
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * 会员登录信息实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+@Data
+public class UserInfo implements Serializable {
+    private Integer id;
+    private String token;
+}

+ 459 - 0
fuint-application/src/main/java/com/fuint/common/dto/UserOrderDto.java

@@ -0,0 +1,459 @@
+package com.fuint.common.dto;
+
+import com.fuint.repository.model.MtRefund;
+import com.fuint.repository.model.MtStore;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 会员订单实体类
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public class UserOrderDto implements Serializable {
+
+    /**
+     * 自增ID
+     */
+    private Integer id;
+
+    /**
+     * 订单号
+     */
+    private String orderSn;
+
+    /**
+     * 类型
+     */
+    private String type;
+
+    /**
+     * 类型名称
+     */
+    private String typeName;
+
+    /**
+     * 支付类型
+     * */
+    private String payType;
+
+    /**
+     * 订单模式
+     */
+    private String orderMode;
+
+    /**
+     * 是否核销
+     * */
+    private boolean isVerify;
+
+    /**
+     * 卡券ID
+     */
+    private Integer couponId;
+
+    /**
+     * 会员ID
+     */
+    private Integer userId;
+
+    /**
+     * 是否游客
+     */
+    private String isVisitor;
+
+    /**
+     * 核销码
+     * */
+    private String verifyCode;
+
+    /**
+     * 员工ID
+     */
+    private Integer staffId;
+
+    /**
+     * 总金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 支付金额
+     */
+    private BigDecimal payAmount;
+
+    /**
+     * 优惠金额
+     */
+    private BigDecimal discount;
+
+    /**
+     * 配送费用
+     */
+    private BigDecimal deliveryFee;
+
+    /**
+     * 使用积分
+     * */
+    private Integer usePoint;
+
+    /**
+     * 积分金额
+     */
+    private BigDecimal pointAmount;
+
+    /**
+     * 订单参数
+     */
+    private String param;
+
+    /**
+     * 用户备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    private String createTime;
+
+    /**
+     * 更新时间
+     */
+    private String updateTime;
+
+    /**
+     * 支付时间
+     */
+    private String payTime;
+
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 支付状态
+     */
+    private String payStatus;
+
+    /**
+     * 状态
+     */
+    private String statusText;
+
+    /**
+     * 最后操作人
+     */
+    private String operator;
+
+    /**
+     * 订单商品列表
+     */
+    private List<OrderGoodsDto> goods;
+
+    /**
+     * 下单用户信息
+     */
+    private OrderUserDto userInfo;
+
+    /**
+     * 配送地址
+     */
+    private AddressDto address;
+
+    /**
+     * 物流信息
+     * */
+    private ExpressDto expressInfo;
+
+    /**
+     * 所属店铺
+     */
+    private MtStore storeInfo;
+
+    /**
+     * 售后订单
+     * */
+    private MtRefund refundInfo;
+
+    /**
+     * 使用卡券
+     * */
+    private UserCouponDto couponInfo;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getOrderSn() {
+        return orderSn;
+    }
+
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getTypeName() {
+        return typeName;
+    }
+
+    public void setTypeName(String typeName) {
+        this.typeName = typeName;
+    }
+
+    public String getPayType() {
+        return payType;
+    }
+
+    public void setPayType(String payType) {
+        this.payType=payType;
+    }
+
+    public String getOrderMode() {
+        return orderMode;
+    }
+
+    public void setOrderMode(String orderMode) {
+        this.orderMode = orderMode;
+    }
+
+    public boolean getIsVerify() {
+        return isVerify;
+    }
+
+    public void setIsVerify(boolean isVerify) {
+        this.isVerify = isVerify;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getVerifyCode() {
+        return verifyCode;
+    }
+
+    public void setVerifyCode(String verifyCode) {
+        this.verifyCode = verifyCode;
+    }
+
+    public String getIsVisitor() {
+        return isVisitor;
+    }
+
+    public void setIsVisitor(String isVisitor) {
+        this.isVisitor = isVisitor;
+    }
+
+    public Integer getStaffId(){
+        return staffId;
+    }
+
+    public void setStaffId(Integer staffId){
+        this.staffId=staffId;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public BigDecimal getPayAmount() {
+        return payAmount;
+    }
+
+    public void setPayAmount(BigDecimal payAmount) {
+        this.payAmount = payAmount;
+    }
+
+    public BigDecimal getDiscount() {
+        return discount;
+    }
+
+    public void setDiscount(BigDecimal discount) {
+        this.discount = discount;
+    }
+
+    public BigDecimal getDeliveryFee() {
+        return deliveryFee;
+    }
+
+    public void setDeliveryFee(BigDecimal deliveryFee) {
+        this.deliveryFee = deliveryFee;
+    }
+
+    public Integer getUsePoint() {
+        return usePoint;
+    }
+
+    public void setUsePoint(Integer usePoint) {
+        this.usePoint = usePoint;
+    }
+
+    public BigDecimal getPointAmount() {
+        return pointAmount;
+    }
+
+    public void setPointAmount(BigDecimal pointAmount) {
+        this.pointAmount = pointAmount;
+    }
+
+    public String getParam() {
+        return param;
+    }
+
+    public void setParam(String param) {
+        this.param = param;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getStatusText() {
+        return statusText;
+    }
+
+    public void setStatusText(String statusText) {
+        this.statusText = statusText;
+    }
+
+    public String getPayStatus() {
+        return payStatus;
+    }
+
+    public void setPayStatus(String payStatus) {
+        this.payStatus = payStatus;
+    }
+
+    public String getPayTime() {
+        return payTime;
+    }
+
+    public void setPayTime(String payTime) {
+        this.payTime = payTime;
+    }
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public List<OrderGoodsDto> getGoods() {
+        return goods;
+    }
+
+    public void setGoods(List<OrderGoodsDto> goods) {
+        this.goods = goods;
+    }
+
+    public OrderUserDto getUserInfo() {
+        return userInfo;
+    }
+
+    public void setUserInfo(OrderUserDto userInfo) {
+        this.userInfo = userInfo;
+    }
+
+    public AddressDto getAddress() {
+        return address;
+    }
+
+    public void setAddress(AddressDto address) {
+        this.address = address;
+    }
+
+    public ExpressDto getExpressInfo() {
+        return expressInfo;
+    }
+
+    public void setExpressInfo(ExpressDto expressInfo) {
+        this.expressInfo = expressInfo;
+    }
+
+    public MtStore getStoreInfo() {
+        return storeInfo;
+    }
+
+    public void setStoreInfo(MtStore storeInfo) {
+        this.storeInfo = storeInfo;
+    }
+
+    public MtRefund getRefundInfo() {
+        return refundInfo;
+    }
+
+    public void setRefundInfo(MtRefund refundInfo) {
+        this.refundInfo = refundInfo;
+    }
+
+    public UserCouponDto getCouponInfo() {
+        return couponInfo;
+    }
+
+    public void setCouponInfo(UserCouponDto couponInfo) {
+        this.couponInfo = couponInfo;
+    }
+}
+

+ 77 - 0
fuint-application/src/main/java/com/fuint/common/enums/AdminRoleEnum.java

@@ -0,0 +1,77 @@
+package com.fuint.common.enums;
+
+/**
+ * 后台角色枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum AdminRoleEnum {
+    ADMIN("1", "超级管理员","admin"),
+    COMMON("2", "普通管理员","common"),
+    USER("3", "用户角色","user");
+
+    private String key;
+    private String name;
+    private String value;
+
+    AdminRoleEnum(String key, String name, String value) {
+        this.key = key;
+        this.name = name;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    // 普通方法,通过key获取value
+    public static String getValue(String k) {
+        for (AdminRoleEnum c : AdminRoleEnum.values()) {
+            if (c.getKey().equals(k)) {
+                return c.getValue();
+            }
+        }
+        return null;
+    }
+
+    // 普通方法,通过key获取name
+    public static String getName(String k) {
+        for (AdminRoleEnum c : AdminRoleEnum.values()) {
+            if (c.getKey().equals(k)) {
+                return c.getName();
+            }
+        }
+        return null;
+    }
+
+    // 普通方法,通过Value获取key
+    public static String getKey(String v) {
+        for (AdminRoleEnum c : AdminRoleEnum.values()) {
+            if (c.getValue() == v) {
+                return c.getKey();
+            }
+        }
+        return null;
+    }
+}

+ 57 - 0
fuint-application/src/main/java/com/fuint/common/enums/ApplyGoodsEnum.java

@@ -0,0 +1,57 @@
+package com.fuint.common.enums;
+
+/**
+ * 卡券适用商品
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum ApplyGoodsEnum {
+    ALL_GOODS("allGoods", "全场通用"),
+    PARK_GOODS("parkGoods", "指定商品");
+
+    private String key;
+
+    private String value;
+
+    ApplyGoodsEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    // 普通方法,通过key获取value
+    public static String getValue(String k) {
+        for (ApplyGoodsEnum c : ApplyGoodsEnum.values()) {
+            if (c.getKey().equals(k)) {
+                return c.getValue();
+            }
+        }
+        return null;
+    }
+
+    // 普通方法,通过Value获取key
+    public static String getKey(String v) {
+        for (ApplyGoodsEnum c : ApplyGoodsEnum.values()) {
+            if (c.getValue() == v) {
+                return c.getKey();
+            }
+        }
+        return null;
+    }
+}

+ 57 - 0
fuint-application/src/main/java/com/fuint/common/enums/BalanceSettingEnum.java

@@ -0,0 +1,57 @@
+package com.fuint.common.enums;
+
+/**
+ * 充值配置项枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum BalanceSettingEnum {
+    RECHARGE_RULE("rechargeRule", "充值规则"),
+    RECHARGE_REMARK("rechargeRemark", "充值说明");
+
+    private String key;
+
+    private String value;
+
+    BalanceSettingEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    // 普通方法,通过key获取value
+    public static String getValue(String k) {
+        for (BalanceSettingEnum c : BalanceSettingEnum.values()) {
+            if (c.getKey().equals(k)) {
+                return c.getValue();
+            }
+        }
+        return null;
+    }
+
+    // 普通方法,通过Value获取key
+    public static String getKey(String v) {
+        for (BalanceSettingEnum c : BalanceSettingEnum.values()) {
+            if (c.getValue() == v) {
+                return c.getKey();
+            }
+        }
+        return null;
+    }
+}

+ 39 - 0
fuint-application/src/main/java/com/fuint/common/enums/CommissionTargetEnum.java

@@ -0,0 +1,39 @@
+package com.fuint.common.enums;
+
+/**
+ * 分佣对象枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum CommissionTargetEnum {
+    GOODS("goods", "商品销售"),
+    SERVICE("service", "服务项目"),
+    COUPON("coupon", "卡券销售"),
+    RECHARGE("recharge", "会员充值");
+
+    private String key;
+
+    private String value;
+
+    CommissionTargetEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 37 - 0
fuint-application/src/main/java/com/fuint/common/enums/CommissionTypeEnum.java

@@ -0,0 +1,37 @@
+package com.fuint.common.enums;
+
+/**
+ * 分佣类型枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum CommissionTypeEnum {
+    DISTRIBUTION("distribution", "会员分销"),
+    STAFF("staff", "员工提成");
+
+    private String key;
+
+    private String value;
+
+    CommissionTypeEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 40 - 0
fuint-application/src/main/java/com/fuint/common/enums/CouponContentEnum.java

@@ -0,0 +1,40 @@
+package com.fuint.common.enums;
+
+/**
+ * 卡券内容枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum CouponContentEnum {
+    ROOM("1", "房间"),
+    ROOM_BTEAKFAST("2", "房间+早餐"),
+    MEALS("3", "餐食"),
+    WASH("4", "洗衣"),
+    HEALTH("5", "康乐");
+
+    private String key;
+
+    private String value;
+
+    CouponContentEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 38 - 0
fuint-application/src/main/java/com/fuint/common/enums/CouponTypeEnum.java

@@ -0,0 +1,38 @@
+package com.fuint.common.enums;
+
+/**
+ * 卡券类型枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum CouponTypeEnum {
+    COUPON("C", "优惠券"),
+    PRESTORE("P", "储值卡"),
+    TIMER("T", "计次卡");
+
+    private String key;
+
+    private String value;
+
+    CouponTypeEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 57 - 0
fuint-application/src/main/java/com/fuint/common/enums/CouponUseForEnum.java

@@ -0,0 +1,57 @@
+package com.fuint.common.enums;
+
+/**
+ * 卡券使用专项枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum CouponUseForEnum {
+    MEMBER_GRADE("memberGrade", "升级会员等级专用"),
+    OFF_LINE_PAYMENT("offLinePayment", "到店收银买单专用");
+
+    private String key;
+
+    private String value;
+
+    CouponUseForEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    // 普通方法,通过key获取value
+    public static String getValue(String k) {
+        for (CouponUseForEnum c : CouponUseForEnum.values()) {
+            if (c.getKey().equals(k)) {
+                return c.getValue();
+            }
+        }
+        return null;
+    }
+
+    // 普通方法,通过Value获取key
+    public static String getKey(String v) {
+        for (CouponUseForEnum c : CouponUseForEnum.values()) {
+            if (c.getValue() == v) {
+                return c.getKey();
+            }
+        }
+        return null;
+    }
+}

+ 39 - 0
fuint-application/src/main/java/com/fuint/common/enums/GenderEnum.java

@@ -0,0 +1,39 @@
+package com.fuint.common.enums;
+
+/**
+ * 性别枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum GenderEnum {
+
+    FEMALE(0, "女"),
+    MAN(1, "男"),
+    UNKNOWN(2, "未知");
+
+    private Integer key;
+
+    private String value;
+
+    GenderEnum(Integer key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public Integer getKey() {
+        return key;
+    }
+
+    public void setKey(Integer key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 58 - 0
fuint-application/src/main/java/com/fuint/common/enums/GoodsTypeEnum.java

@@ -0,0 +1,58 @@
+package com.fuint.common.enums;
+
+/**
+ * 商品类型
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum GoodsTypeEnum {
+    PRODUCT("product", "实物商品"),
+    SERVICE("service", "服务项目"),
+    COUPON("coupon", "虚拟卡券");
+
+    private String key;
+
+    private String value;
+
+    GoodsTypeEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    // 普通方法,通过key获取value
+    public static String getValue(String k) {
+        for (GoodsTypeEnum c : GoodsTypeEnum.values()) {
+            if (c.getKey().equals(k)) {
+                return c.getValue();
+            }
+        }
+        return null;
+    }
+
+    // 普通方法,通过Value获取key
+    public static String getKey(String v) {
+        for (GoodsTypeEnum c : GoodsTypeEnum.values()) {
+            if (c.getValue() == v) {
+                return c.getKey();
+            }
+        }
+        return null;
+    }
+}

+ 59 - 0
fuint-application/src/main/java/com/fuint/common/enums/MemberSourceEnum.java

@@ -0,0 +1,59 @@
+package com.fuint.common.enums;
+
+/**
+ * 会员来源渠道
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum MemberSourceEnum {
+    BACKEND_ADD("backend_add", "后台添加"),
+    REGISTER_BY_ACCOUNT("register_by_account", "H5注册"),
+    MOBILE_LOGIN("mobile_login", "手机号登录注册"),
+    WECHAT_LOGIN("wechat_login", "微信小程序");
+
+    private String key;
+
+    private String value;
+
+    MemberSourceEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    // 普通方法,通过key获取value
+    public static String getValue(String k) {
+        for (MemberSourceEnum c : MemberSourceEnum.values()) {
+            if (c.getKey().equals(k)) {
+                return c.getValue();
+            }
+        }
+        return null;
+    }
+
+    // 普通方法,通过Value获取key
+    public static String getKey(String v) {
+        for (MemberSourceEnum c : MemberSourceEnum.values()) {
+            if (c.getValue() == v) {
+                return c.getKey();
+            }
+        }
+        return null;
+    }
+}

+ 35 - 0
fuint-application/src/main/java/com/fuint/common/enums/MessageEnum.java

@@ -0,0 +1,35 @@
+package com.fuint.common.enums;
+
+/**
+ * 会员消息类型枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum MessageEnum {
+    POP_MSG("pop", "弹框消息"),
+    SUB_MSG("sub", "订阅消息"),
+    SMS_MSG("sms", "短信消息");
+
+    private String key;
+    private String value;
+
+    MessageEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 37 - 0
fuint-application/src/main/java/com/fuint/common/enums/OrderModeEnum.java

@@ -0,0 +1,37 @@
+package com.fuint.common.enums;
+
+/**
+ * 订单模式
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum OrderModeEnum {
+    EXPRESS("express", "配送"),
+    ONESELF("oneself", "自取");
+
+    private String key;
+
+    private String value;
+
+    OrderModeEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 57 - 0
fuint-application/src/main/java/com/fuint/common/enums/OrderSettingEnum.java

@@ -0,0 +1,57 @@
+package com.fuint.common.enums;
+
+/**
+ * 交易配置项枚举
+ *
+ * Created by FSQ
+ * CopyRight https://www.fuint.cn
+ */
+public enum OrderSettingEnum {
+    DELIVERY_FEE("deliveryFee", "订单配送费用"),
+    IS_CLOSE("isClose", "关闭交易功能");
+
+    private String key;
+
+    private String value;
+
+    OrderSettingEnum(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    // 普通方法,通过key获取value
+    public static String getValue(String k) {
+        for (OrderSettingEnum c : OrderSettingEnum.values()) {
+            if (c.getKey().equals(k)) {
+                return c.getValue();
+            }
+        }
+        return null;
+    }
+
+    // 普通方法,通过Value获取key
+    public static String getKey(String v) {
+        for (OrderSettingEnum c : OrderSettingEnum.values()) {
+            if (c.getValue() == v) {
+                return c.getKey();
+            }
+        }
+        return null;
+    }
+}

Some files were not shown because too many files changed in this diff