Pārlūkot izejas kodu

Weenier utc项目部署

wesmiler 3 gadi atpakaļ
vecāks
revīzija
2b3abd1e6a
8 mainītis faili ar 3496 papildinājumiem un 75 dzēšanām
  1. 191 72
      LICENSE
  2. 116 3
      README.md
  3. 68 0
      composer.json
  4. 2830 0
      composer.lock
  5. 10 0
      think
  6. 3 0
      version.json
  7. 185 0
      数据库修改记录.txt
  8. 93 0
      更新日志.txt

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 191 - 72
LICENSE


+ 116 - 3
README.md

@@ -1,3 +1,116 @@
-# NN2022060801
-
-UTC
+# 萤火商城V2.0开源版
+
+#### 项目介绍
+萤火商城V2.0,是2021年全新推出的一款轻量级、高性能、前后端分离的电商系统,支持微信小程序 + H5+ 公众号 + APP,前后端源码完全开源,看见及所得,完美支持二次开发,可学习可商用,让您快速搭建个性化独立商城。
+
+    如果对您有帮助,您可以点右上角 “Star” 收藏一下 ,获取第一时间更新,谢谢!
+
+#### 技术特点
+* 前后端完全分离 (互不依赖 开发效率高)
+* 采用PHP7.4 (强类型严格模式)
+* Thinkphp6.0.5(轻量级PHP开发框架)
+* Uni-APP(开发跨平台应用的前端框架)
+* Ant Design Vue(企业级中后台产品UI组件库)
+* RBAC(基于角色的权限控制管理)
+* Composer一键引入三方扩展
+* 部署运行的项目体积仅30多MB(真正的轻量化)
+* 所有端代码开源 (服务端PHP、后台vue端、uniapp端)
+* 简约高效的编码风格 (可能是最适合二开的源码)
+* 源码中清晰中文注释 (小白也能看懂的代码)
+
+#### 页面展示
+![前端展示](https://images.gitee.com/uploads/images/2021/0316/215102_7bcb0802_2166072.png "前端展示.png")
+![后台-首页](https://images.gitee.com/uploads/images/2021/0316/215827_7df5251c_2166072.png "后台-首页.png")
+![后台-页面设计](https://images.gitee.com/uploads/images/2021/0316/215839_2d4ebccc_2166072.png "后台-页面设计.png")
+![后台-编辑商品](https://images.gitee.com/uploads/images/2021/0316/215848_9d54adff_2166072.png "后台-编辑商品.png")
+![后台-订单详情](https://images.gitee.com/uploads/images/2021/0316/215855_8606fce3_2166072.png "后台-订单详情.png")
+
+#### 系统演示
+
+- 商城后台演示:https://shop2.yiovo.com/admin/
+- 用户名和密码:admin yinghuo
+![前端演示二维码](https://images.gitee.com/uploads/images/2021/0316/104516_3778337e_2166072.png "111.png")
+- QQ交流群 1055189864
+#### 源码下载
+1. 主商城端(又称后端、服务端,PHP开发 用于管理后台和提供api接口)
+
+    下载地址:https://gitee.com/xany/yoshop2.0
+
+2. 用户端(也叫客户端、前端,uniapp开发 用于生成H5和微信小程序)
+
+    下载地址:https://gitee.com/xany/yoshop2.0-uniapp
+
+2. 后台VUE端(指的是商城后台的前端代码,使用vue2编写,分store模块和admin模块)
+
+    下载地址:https://gitee.com/xany/yoshop2.0-store
+
+    下载地址:https://gitee.com/xany/yoshop2.0-admin
+
+#### 代码风格
+
+* PHP7强类型严格模式
+* 严格遵守MVC设计模式 同时具有service层和枚举类enum支持
+* 简约整洁的编码风格 绝不冗余一行代码
+* 代码注释完整易读性高 尽量保障初级程序员也可读懂 极大提升二开效率
+* 不允许直接调用和使用DB类(破坏封装性)
+* 不允许使用原生SQL语句 全部使用链式操作(可维护性强)
+* 不允许存在复杂SQL查询语句(可维护性强)
+* 所有的CURD操作均通过ORM模型类 并封装方法(扩展性强)
+* 数据库设计满足第三范式
+* 前端JS编码均采用ES6标准
+
+#### 环境要求
+- CentOS 7.0+
+- Nginx 1.10+
+- PHP 7.1+  (推荐php7.4)
+- MySQL 5.6+
+
+
+#### 如何安装
+##### 一、自动安装(推荐)
+
+1. 将后端源码上传至服务器站点,并且将站点运行目录设置为/public
+2. 在浏览器中输入站点域名 + /install,例如:https://www.你的域名.com/install
+3. 根据页面提示,自动完成安装即可
+
+##### 二、手动安装(不推荐)
+
+1. 将后端源码上传至服务器站点,并且将站点运行目录设置为/public
+2. 创建一个数据库,例如:yoshop2_db
+3. 导入数据库表结构文件,路径:/public/install/data/install_struct.sql
+4. 导入数据库默认数据文件,路径:/public/install/data/install_data.sql
+5. 修改数据库连接文件,将数据库用户名密码等信息填写完整,路径/.env
+
+#### 后台地址
+
+- 超管后台:https://www.你的域名.com/admin
+- 商户后台:https://www.你的域名.com/store
+- 默认的账户密码:admin yinghuo
+
+#### 定时任务
+用于自动处理订单状态、优惠券状态、会员等级等
+```sh
+php think timer start
+```
+
+#### 安全&缺陷
+
+如果您碰到安装和使用问题可以查阅[Issue](https://gitee.com/xany/yoshop2.0/issues?state=all),或者将操作流程和截图详细发出来,我们看到后会给出解决方案。
+
+如果有BUG或者安全问题,我们会第一时间修复。
+
+#### 版权须知
+
+1. 允许个人学习研究使用,支持二次开发,允许商业用途(仅限自运营)。
+2. 允许商业用途,但仅限自运营,如果商用必须保留版权信息,望自觉遵守。
+3. 不允许对程序代码以任何形式任何目的的再发行或出售,否则将追究侵权者法律责任。
+
+
+本项目包含的第三方源码和二进制文件之版权信息另行标注。
+
+版权所有Copyright © 2017-2021 By 萤火科技 (https://www.yiovo.com) All rights reserved。
+
+
+
+
+

+ 68 - 0
composer.json

@@ -0,0 +1,68 @@
+{
+    "name": "topthink/think",
+    "description": "the new thinkphp framework",
+    "type": "project",
+    "keywords": [
+        "framework",
+        "thinkphp",
+        "ORM"
+    ],
+    "homepage": "http://thinkphp.cn/",
+    "license": "Apache-2.0",
+    "authors": [
+        {
+            "name": "liu21st",
+            "email": "liu21st@gmail.com"
+        },
+        {
+            "name": "yunwuxin",
+            "email": "448901948@qq.com"
+        }
+    ],
+    "require": {
+        "php": ">=7.2.0",
+        "ext-gd": "*",
+        "ext-curl": "*",
+        "ext-bcmath": "*",
+        "ext-json": "*",
+        "ext-pdo": "*",
+        "ext-openssl": "*",
+        "ext-libxml": "*",
+        "ext-simplexml": "*",
+        "topthink/framework": "^6.0.0",
+        "topthink/think-orm": "^2.0",
+        "topthink/think-multi-app": "^1.0",
+        "topthink/think-worker": "^3.0",
+        "qiniu/php-sdk": "^7.2",
+        "aliyuncs/oss-sdk-php": "^2.3",
+        "qcloud/cos-sdk-v5": "^2.4",
+        "kosinix/grafika": "dev-master",
+        "myclabs/php-enum": "^1.6",
+        "lvht/geohash": "^1.1",
+        "phpoffice/phpspreadsheet": "^1.18",
+        "overtrue/easy-sms": "^2.0",
+        "yiovo/tp6-captcha": "^1.1"
+    },
+    "require-dev": {
+        "symfony/var-dumper": "^4.2",
+        "topthink/think-trace":"^1.0"
+    },
+    "autoload": {
+        "psr-4": {
+            "app\\": "app",
+            "cores\\": "cores"
+        },
+        "psr-0": {
+            "": "extend/"
+        }
+    },
+    "config": {
+        "preferred-install": "dist"
+    },
+    "scripts": {
+        "post-autoload-dump": [
+            "@php think service:discover",
+            "@php think vendor:publish"
+        ]
+    }
+}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 2830 - 0
composer.lock


+ 10 - 0
think

@@ -0,0 +1,10 @@
+#!/usr/bin/env php
+<?php
+namespace think;
+
+// 命令行入口文件
+// 加载基础文件
+require __DIR__ . '/vendor/autoload.php';
+
+// 应用初始化
+(new App())->console->run();

+ 3 - 0
version.json

@@ -0,0 +1,3 @@
+{
+  "version": "2.0.5"
+}

+ 185 - 0
数据库修改记录.txt

@@ -0,0 +1,185 @@
+
+
+# dev
+# 修改时间:2022-04-18
+INSERT INTO `yoshop_store_api` VALUES ('11186', '上传视频文件', '/upload/video', '11008', '112', '1614556800', '1614556800');
+
+# dev
+# 修改时间:2022-03-03
+INSERT INTO `yoshop_store_menu_api` VALUES ('10664', '10015', '11025', '1614556800');
+INSERT INTO `yoshop_store_menu_api` VALUES ('10665', '10015', '11022', '1614556800');
+INSERT INTO `yoshop_store_menu_api` VALUES ('10666', '10015', '11020', '1614556800');
+
+-------------------------------------
+
+# v2.0.5
+# 修改时间:2022-01-24
+ALTER TABLE `yoshop_goods`
+ADD COLUMN `video_id`  int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '主图视频ID' AFTER `goods_no`,
+ADD COLUMN `video_cover_id`  int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '主图视频ID' AFTER `video_id`;
+
+# v2.0.4
+# 修改时间:2021-11-29
+ALTER TABLE `yoshop_wxapp` COMMENT='微信小程序记录表(已废弃)';
+
+CREATE TABLE `yoshop_wxapp_setting` (
+  `key` varchar(30) NOT NULL DEFAULT '' COMMENT '设置项标示',
+  `describe` varchar(255) NOT NULL DEFAULT '' COMMENT '设置项描述',
+  `values` mediumtext NOT NULL COMMENT '设置内容(json格式)',
+  `store_id` int unsigned NOT NULL DEFAULT '0' COMMENT '商城ID',
+  `update_time` int unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
+  UNIQUE KEY `unique_key` (`key`,`store_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='微信小程序设置表';
+
+
+CREATE TABLE `yoshop_h5_setting` (
+  `key` varchar(30) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '设置项标示',
+  `describe` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '' COMMENT '设置项描述',
+  `values` mediumtext CHARACTER SET utf8 NOT NULL COMMENT '设置内容(json格式)',
+  `store_id` int unsigned NOT NULL DEFAULT '0' COMMENT '商城ID',
+  `update_time` int unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
+  UNIQUE KEY `unique_key` (`key`,`store_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='H5端设置表';
+
+
+UPDATE `yoshop_store_api` SET `url`='/client.wxapp.setting/update', `sort`='105' WHERE (`api_id`='11153');
+UPDATE `yoshop_store_api` SET `url`='/client.wxapp.setting/detail', `sort`='100' WHERE (`api_id`='11182');
+
+INSERT INTO `yoshop_store_api` VALUES ('11270', 'H5端', '-', '11151', '105', '1614556800', '1614556800');
+INSERT INTO `yoshop_store_api` VALUES ('11271', '获取设置项', '/client.h5.setting/detail', '11270', '100', '1614556800', '1614556800');
+INSERT INTO `yoshop_store_api` VALUES ('11272', '更新设置项', '/client.h5.setting/update', '11270', '105', '1614556800', '1614556800');
+
+
+--------------------------------------------
+
+# v2.0.3
+# 修改时间:2021-10-19
+DROP TABLE IF EXISTS `yoshop_order_export`;
+CREATE TABLE `yoshop_order_export` (
+  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
+  `start_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '下单时间(开始)',
+  `end_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '下单时间(结束)',
+  `file_path` varchar(255) NOT NULL DEFAULT '' COMMENT 'excel文件路径',
+  `status` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '导出状态(10进行中 20已完成 30失败)',
+  `store_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '商城ID',
+  `create_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
+  PRIMARY KEY (`id`) USING BTREE,
+  KEY `store_id` (`store_id`)
+) ENGINE=InnoDB AUTO_INCREMENT=10001 DEFAULT CHARSET=utf8 COMMENT='订单导出Excel记录表';
+
+
+# v2.0.3
+# 修改时间:2021-10-19
+INSERT INTO `yoshop_store_api` VALUES ('11185', '删除订单', '/order.event/delete', '11132', '135', '1614556800', '1614556800');
+INSERT INTO `yoshop_store_menu` VALUES ('10141', '20', '删除订单', '', 'delete', '10051', '115', '1614556800', '1614556800');
+INSERT INTO `yoshop_store_menu_api` VALUES ('10661', '10141', '11185', '1614556800');
+INSERT INTO `yoshop_store_menu_api` VALUES ('10662', '10141', '11132', '1614556800');
+INSERT INTO `yoshop_store_menu_api` VALUES ('10663', '10141', '11076', '1614556800');
+
+
+# v2.0.3
+# 修改时间:2021-10-19
+ALTER TABLE `yoshop_order`
+ADD COLUMN `platform`  varchar(20) NOT NULL DEFAULT '' COMMENT '来源客户端 (APP、H5、小程序等)' AFTER `order_source_id`;
+
+--------------------------------------------
+
+
+# v2.0.1
+# 修改时间:2021-3-26
+ALTER TABLE `yoshop_user_oauth` ADD INDEX `oauth_type_2` (`oauth_type`, `oauth_id`) USING BTREE ;
+
+
+# v2.0.1
+# 修改时间:2021-3-26
+ALTER TABLE `yoshop_user_oauth`
+ADD COLUMN `is_delete`  tinyint UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否删除' AFTER `store_id` ;
+
+
+# v2.0.1
+# 修改时间:2021-6-2
+INSERT INTO `yoshop_region` VALUES ('3620', '东城街道', '2051', '44190', '3');
+INSERT INTO `yoshop_region` VALUES ('3621', '南城街道', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3622', '万江街道', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3623', '莞城街道', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3624', '石碣镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3625', '石龙镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3626', '茶山镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3627', '石排镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3628', '企石镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3629', '横沥镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3630', '桥头镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3631', '谢岗镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3632', '东坑镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3633', '常平镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3634', '寮步镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3635', '樟木头镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3636', '大朗镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3637', '黄江镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3638', '清溪镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3639', '塘厦镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3640', '凤岗镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3641', '大岭山镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3642', '长安镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3643', '虎门镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3644', '厚街镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3645', '沙田镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3646', '道滘镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3647', '洪梅镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3648', '麻涌镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3649', '望牛墩镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3650', '中堂镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3651', '高埗镇', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3652', '松山湖', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3653', '东莞港', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3654', '东莞生态园', '2051', '441900', '3');
+INSERT INTO `yoshop_region` VALUES ('3655', '石岐街道', '2052', '44200', '3');
+INSERT INTO `yoshop_region` VALUES ('3656', '东区街道', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3657', '中山港街道', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3658', '西区街道', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3659', '南区街道', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3660', '五桂山街道', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3661', '小榄镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3662', '黄圃镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3663', '民众镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3664', '东凤镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3665', '东升镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3666', '古镇镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3667', '沙溪镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3668', '坦洲镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3669', '港口镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3670', '三角镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3671', '横栏镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3672', '南头镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3673', '阜沙镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3674', '南朗镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3675', '三乡镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3676', '板芙镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3677', '大涌镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3678', '神湾镇', '2052', '442000', '3');
+INSERT INTO `yoshop_region` VALUES ('3679', '西沙群岛', '2206', '46032', '3');
+INSERT INTO `yoshop_region` VALUES ('3680', '南沙群岛', '2206', '460322', '3');
+INSERT INTO `yoshop_region` VALUES ('3681', '中沙群岛的岛礁及其海域', '2206', '460323', '3');
+INSERT INTO `yoshop_region` VALUES ('3682', '那大镇', '2207', '46040', '3');
+INSERT INTO `yoshop_region` VALUES ('3683', '和庆镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3684', '南丰镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3685', '大成镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3686', '雅星镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3687', '兰洋镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3688', '光村镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3689', '木棠镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3690', '海头镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3691', '峨蔓镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3692', '王五镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3693', '白马井镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3694', '中和镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3695', '排浦镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3696', '东成镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3697', '新州镇', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3698', '洋浦经济开发区', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3699', '华南热作学院', '2207', '460400', '3');
+INSERT INTO `yoshop_region` VALUES ('3700', '雄关街道', '2922', '62020', '3');
+INSERT INTO `yoshop_region` VALUES ('3701', '钢城街道', '2922', '620201', '3');
+INSERT INTO `yoshop_region` VALUES ('3702', '新城镇', '2922', '620201', '3');
+INSERT INTO `yoshop_region` VALUES ('3703', '峪泉镇', '2922', '620201', '3');
+INSERT INTO `yoshop_region` VALUES ('3704', '文殊镇', '2922', '620201', '3');

+ 93 - 0
更新日志.txt

@@ -0,0 +1,93 @@
+
+
+### v2.0.5 更新日志 ###
+
+新增:商户后台支持上传视频文件
+新增:后台富文本编辑器支持添加视频
+新增:后台富文本编辑器支持添加链接
+新增:用户端商品详情页支持主图视频
+优化:用户端个人中心显示售后单数量角标
+优化:订单导出后订单号科学计数问题
+优化:订单导出显示商品的规格信息
+优化:订单结算使用优惠券时仅折扣适用商品
+优化:订单结算页显示账户可用余额
+优化:购物车列表显示会员折扣价
+优化:后台验证多规格商品规格值重复
+优化:后台售后单显示退货物流信息
+修复:查询物流信息时报错
+修复:用户被删除后前台退出登录态
+修复:后台优惠券管理折扣率不正确
+
+----------------------------------------------
+
+### v2.0.4 更新日志 ###
+
+新增:新版授权登录模块(可关闭小程序端手机号验证)
+新增:后台支持订单导出功能
+新增:短信云平台(支持阿里云腾讯云七牛云)
+新增:服务端支持配置使用Redis缓存
+新增:定时任务支持启用守护进程
+优化:后台可设置是否允许H5端访问
+优化:更新Thinkphp6框架版本
+优化:短信验证码由4位改为6位
+优化:安装脚本支持填写数据库端口号
+优化:区别未使用和可用的优惠券
+修复:RoleMenu模型deleteAll方法报错
+修复:定时任务未处理过期的优惠券
+修复:保存多规格时min方法报错
+修复:根据key获取规格组和规格值错误
+
+----------------------------------------------
+
+### v2.03 更新日志 ###
+
+新增:服务端默认允许跨域请求
+新增:订单管理支持删除订单记录
+新增:新增订单时记录来源客户端
+新增:后台可设置余额充值最低金额
+修复:优惠券有效期1天时无法使用
+修复:后台编辑商品评价时清空图片
+优化:完善begin和error的日志内容
+优化:补充composer.json扩展依赖
+修复:文件上传时uploadFile报错
+修复:后台会员列表中会员等级筛选无效
+
+----------------------------------------------
+
+### v2.02 更新日志 ###
+
+新增:已完成订单自动结算
+优化:商品列表api隐藏冗余的字段
+优化:多图并发上传文件名重复问题
+优化:服务端文件上传的异常处理
+修复:后台页面设计html转义报错
+修复:定时任务报错(会员等级)
+修复:php7强类型传参的一些报错
+修复:订单商品未写入商品名称
+修复:订单商品表未写入正确的内容
+修复:退换/售后页的tab状态筛选
+修复:获取可用的优惠券未处理有效期条件
+修复:优惠券折扣率范围
+修复:取消订单时未回退商品总库存
+修复:后台编辑文章时不显示封面图
+修复:领取固定时间的优惠券日期不正确
+修复:购物车商品不存在时报错
+
+----------------------------------------------
+
+### v2.01 更新日志 ###
+
+优化:微信快捷登录失败时显示错误信息
+优化:补充部分城市缺失的3级区划
+优化:微信api请求失败时输出错误内容
+优化:api地址改为兼容模式
+优化:删除用户同时删除第三方用户信息
+优化:get_guid_v4方法兼容性
+修复:满额包邮商品下单报错
+修复:当前用户待发货订单数量不正确
+修复:上传图片时候未传参指定分组
+修复:保存微信小程序支付证书文件错误
+修复:后台商品管理未填写划线价报错
+修复:登录时判断oauth_id是否已绑定
+修复:删除商品分类时无效的商品引用
+