mirror of
https://gitee.com/zoujingli/ThinkAdmin.git
synced 2025-05-21 22:39:16 +08:00
Merge branch 'master' of https://github.com/zoujingli/ThinkAdmin
This commit is contained in:
commit
bb2b479740
18
admin_v3.sql
18
admin_v3.sql
@ -924,6 +924,24 @@ CREATE TABLE `wechat_news_media` (
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='微信素材表';
|
||||
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for store_goods_stock
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS `store_goods_stock`;
|
||||
CREATE TABLE `store_goods_stock` (
|
||||
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`goods_id` bigint(20) unsigned DEFAULT '0' COMMENT '商品ID',
|
||||
`goods_spec` varchar(255) DEFAULT '' COMMENT '商品属性',
|
||||
`goods_stock` bigint(20) unsigned DEFAULT '0' COMMENT '商品库存',
|
||||
`stock_desc` varchar(255) DEFAULT '' COMMENT '商品库存描述',
|
||||
`sort` bigint(20) unsigned DEFAULT '0' COMMENT '数据排序',
|
||||
`status` bigint(1) unsigned DEFAULT '1' COMMENT '商品状态(1有效,0无效)',
|
||||
`is_deleted` bigint(1) unsigned DEFAULT '0' COMMENT '删除状态(1删除,0未删除)',
|
||||
`create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8 COMMENT='商城商品库存';
|
||||
|
||||
-- ----------------------------
|
||||
-- Records of wechat_news_media
|
||||
-- ----------------------------
|
||||
|
@ -64,7 +64,7 @@ class Login extends BasicAdmin
|
||||
($user['password'] !== md5($password)) && $this->error('登录密码与账号不匹配,请重新输入!');
|
||||
empty($user['status']) && $this->error('账号已经被禁用,请联系管理!');
|
||||
// 更新登录信息
|
||||
$data = ['login_at' => ['exp', 'now()'], 'login_num' => ['exp', 'login_num+1']];
|
||||
$data = ['login_at' => Db::raw('now()'), 'login_num' => Db::raw('login_num+1')];
|
||||
Db::name('SystemUser')->where(['id' => $user['id']])->update($data);
|
||||
session('user', $user);
|
||||
!empty($user['authorize']) && NodeService::applyAuthNode();
|
||||
|
@ -55,7 +55,7 @@
|
||||
<img data-tips-image style="height:auto;max-height:32px;min-width:32px" src="{:sysconf('browser_icon')}"/>
|
||||
<input type="hidden" name="browser_icon" onchange="$(this).prev('img').attr('src', this.value)" value="{:sysconf('browser_icon')}" class="layui-input">
|
||||
<a class="btn btn-link" data-file="one" data-uptype="local" data-type="ico,png" data-field="browser_icon">上传图片</a>
|
||||
<p class="help-block">建议上传ICO图标的尺寸为128x128px,此图标用于网站标题前,ICON在线制作</p>
|
||||
<p class="help-block">建议上传ICO图标的尺寸为128x128px,此图标用于网站标题前,<a href="http://www.favicon-icon-generator.com/" target="_blank">ICON在线制作</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -88,9 +88,7 @@
|
||||
<td class='text-left nowrap'>
|
||||
{$vo.mail|default="<span class='color-desc'>还没有设置邮箱</span>"|raw}
|
||||
</td>
|
||||
<td class='text-left nowrap'>
|
||||
{$vo.login_num|default="<span class='color-desc'>从未登录</span>"|raw}
|
||||
</td>
|
||||
<td class='text-left nowrap'>{$vo.login_num|default=0}</td>
|
||||
<td class='text-left nowrap'>
|
||||
{$vo.login_at|format_datetime|default="<span class='color-desc'>从未登录</span>"|raw}
|
||||
</td>
|
||||
|
@ -223,6 +223,45 @@ class Goods extends BasicAdmin
|
||||
return ['main' => $main, 'list' => $list];
|
||||
}
|
||||
|
||||
/**
|
||||
* 商品库存信息更新
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @throws \think\exception\DbException
|
||||
* @throws \think\exception\PDOException
|
||||
*/
|
||||
public function stock()
|
||||
{
|
||||
if (!$this->request->post()) {
|
||||
$goods_id = $this->request->get('id');
|
||||
$goods = Db::name('StoreGoods')->where(['id' => $goods_id, 'is_deleted' => '0'])->find();
|
||||
empty($goods) && $this->error('该商品无法操作入库操作!');
|
||||
$where = ['goods_id' => $goods_id, 'status' => '1', 'is_deleted' => '0'];
|
||||
$goods['list'] = Db::name('StoreGoodsList')->where($where)->select();
|
||||
return $this->fetch('', ['vo' => $goods]);
|
||||
}
|
||||
// 入库保存
|
||||
$goods_id = $this->request->post('id');
|
||||
list($post, $data) = [$this->request->post(), []];
|
||||
foreach ($post['spec'] as $key => $spec) {
|
||||
if ($post['stock'][$key] > 0) {
|
||||
$data[] = [
|
||||
'goods_stock' => $post['stock'][$key],
|
||||
'stock_desc' => $this->request->post('desc'),
|
||||
'goods_spec' => $spec, 'goods_id' => $goods_id,
|
||||
];
|
||||
}
|
||||
}
|
||||
empty($data) && $this->error('无需入库的数据哦!');
|
||||
if (Db::name('StoreGoodsStock')->insertAll($data) !== false) {
|
||||
GoodsService::syncGoodsStock($goods_id);
|
||||
$this->success('商品入库成功!', '');
|
||||
}
|
||||
$this->error('商品入库失败,请稍候再试!');
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除商品
|
||||
* @throws \think\Exception
|
||||
|
@ -104,7 +104,7 @@ class GoodsBrand extends BasicAdmin
|
||||
protected function _form_result($result)
|
||||
{
|
||||
if ($result !== false) {
|
||||
list($base, $spm, $url) = [url('@admin'), $this->request->get('spm'), url('goods/brand/index')];
|
||||
list($base, $spm, $url) = [url('@admin'), $this->request->get('spm'), url('store/goods_brand/index')];
|
||||
$this->success('数据保存成功!', "{$base}#{$url}?spm={$spm}");
|
||||
}
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ class GoodsService
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步更新商品库存及售出(@todo 需要重新做库存统计)
|
||||
* 同步更新商品库存及售出
|
||||
* @param int $goods_id 商品ID
|
||||
* @return array
|
||||
* @throws \think\Exception
|
||||
@ -99,35 +99,31 @@ class GoodsService
|
||||
{
|
||||
// 检查商品是否需要更新库存
|
||||
$map = ['id' => $goods_id, 'is_deleted' => '0'];
|
||||
if (!($goods = Db::name('Goods')->where($map)->find())) {
|
||||
if (!($goods = Db::name('StoreGoods')->where($map)->find())) {
|
||||
return ['code' => 0, 'msg' => '指定商品信息无法同步库存!'];
|
||||
}
|
||||
// 统计入库信息
|
||||
$stockField = 'goods_id,goods_spec,ifnull(sum(goods_stock), 0) goods_stock';
|
||||
$stockWhere = ['status' => '1', 'is_deleted' => '0', 'goods_id' => $goods_id, 'mch_id' => $mch_id];
|
||||
$stockWhere = ['status' => '1', 'is_deleted' => '0', 'goods_id' => $goods_id];
|
||||
$stockList = (array)Db::name('StoreGoodsStock')->field($stockField)->where($stockWhere)->group('goods_id,goods_spec')->select();
|
||||
// 统计销售信息
|
||||
$saleField = 'goods_id,goods_spec,ifnull(sum(number), 0) goods_sale';
|
||||
$saleWhere = ['status' => '1', 'is_deleted' => '0', 'goods_id' => $goods_id, 'mch_id' => $mch_id];
|
||||
$saleList = (array)Db::name('StoreOrderList')->field($saleField)->where($saleWhere)->group('goods_id,goods_spec')->select();
|
||||
$saleWhere = ['status' => '1', 'is_deleted' => '0', 'goods_id' => $goods_id];
|
||||
$saleList = (array)Db::name('StoreOrderGoods')->field($saleField)->where($saleWhere)->group('goods_id,goods_spec')->select();
|
||||
// 库存置零
|
||||
list($where, $total_stock, $total_sale) = [['goods_id' => $goods_id], 0, 0];
|
||||
Db::name('StoreGoodsList')->where($where)->update(['goods_stock' => 0, 'goods_sale' => 0, 'mch_id' => $mch_id]);
|
||||
list($where, $total_sale) = [['goods_id' => $goods_id], 0];
|
||||
Db::name('StoreGoodsList')->where($where)->update(['goods_stock' => 0, 'goods_sale' => 0]);
|
||||
// 更新商品库存
|
||||
foreach ($stockList as $stock) {
|
||||
$total_stock += intval($stock['goods_stock']);
|
||||
$where = ['goods_id' => $goods_id, 'goods_spec' => $stock['goods_spec'], 'mch_id' => $mch_id];
|
||||
$where = ['goods_id' => $goods_id, 'goods_spec' => $stock['goods_spec']];
|
||||
Db::name('StoreGoodsList')->where($where)->update(['goods_stock' => $stock['goods_stock']]);
|
||||
}
|
||||
// 更新商品销量
|
||||
foreach ($saleList as $sale) {
|
||||
$total_sale += intval($sale['goods_sale']);
|
||||
$where = ['goods_id' => $goods_id, 'goods_spec' => $sale['goods_spec'], 'mch_id' => $mch_id];
|
||||
$where = ['goods_id' => $goods_id, 'goods_spec' => $sale['goods_spec']];
|
||||
Db::name('StoreGoodsList')->where($where)->update(['goods_sale' => $sale['goods_sale']]);
|
||||
}
|
||||
// 更新总库存及总销量
|
||||
$update = ['package_stock' => $total_stock, 'package_sale' => $total_sale, 'mch_id' => $mch_id];
|
||||
Db::name('Goods')->where(['id' => $goods_id])->update($update);
|
||||
return ['code' => 1, 'msg' => '同步商品库存成功!'];
|
||||
}
|
||||
|
||||
|
37
application/store/service/MemberService.php
Normal file
37
application/store/service/MemberService.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkAdmin
|
||||
// +----------------------------------------------------------------------
|
||||
// | 版权所有 2014~2017 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | 官方网站: http://think.ctolog.com
|
||||
// +----------------------------------------------------------------------
|
||||
// | 开源协议 ( https://mit-license.org )
|
||||
// +----------------------------------------------------------------------
|
||||
// | github开源项目:https://github.com/zoujingli/ThinkAdmin
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\store\service;
|
||||
|
||||
use service\DataService;
|
||||
|
||||
/**
|
||||
* 会员数据初始化
|
||||
* Class MemberService
|
||||
* @package app\store\service
|
||||
*/
|
||||
class MemberService
|
||||
{
|
||||
/**
|
||||
* 创建会员数据
|
||||
* @param array $data 会员数据
|
||||
* @return bool
|
||||
* @throws \think\Exception
|
||||
* @throws \think\exception\PDOException
|
||||
*/
|
||||
public static function create($data)
|
||||
{
|
||||
return DataService::save('StoreMember', $data, 'id');
|
||||
}
|
||||
}
|
@ -14,7 +14,6 @@
|
||||
|
||||
namespace app\store\service;
|
||||
|
||||
use Pay\Pay;
|
||||
use service\DataService;
|
||||
use service\ToolsService;
|
||||
use think\Db;
|
||||
@ -40,18 +39,18 @@ class OrderService
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public static function create($mid, $params, $addressId = 0, $expressId = 0, $orderDesc = '', $orderType = 1, $from = 'wechat')
|
||||
public static function create($mid, $params, $addressId, $expressId, $orderDesc = '', $orderType = 1, $from = 'wechat')
|
||||
{
|
||||
// 会员数据获取与检验
|
||||
if (!($member = Db::name('StoreMember')->where(['id' => $mid])->find())) {
|
||||
return ['code' => 0, 'msg' => '会员数据处理异常,请刷新重试!'];
|
||||
}
|
||||
// 订单数据生成
|
||||
list($order_no, $orderList) = [[], DataService::createSequence(10, 'ORDER'), []];
|
||||
$order = ['mid' => $mid, 'order_no' => $order_no, 'real_price' => 0, 'total_price' => 0, 'desc' => $orderDesc, 'type' => $orderType, 'from' => $from,];
|
||||
list($order_no, $orderList) = [DataService::createSequence(10, 'ORDER'), []];
|
||||
$order = ['mid' => $mid, 'order_no' => $order_no, 'real_price' => 0, 'goods_price' => 0, 'desc' => $orderDesc, 'type' => $orderType, 'from' => $from];
|
||||
foreach (explode(';', trim($params, ',;@')) as $param) {
|
||||
list($goods_id, $goods_spec, $number) = explode('@', "{$param}@@");
|
||||
$item = ['mid' => $mid, 'type' => $orderType, 'order_no' => $order_no, 'goods_id' => $goods_id, 'goods_spec' => $goods_spec, 'goods_number' => $number,];
|
||||
$item = ['mid' => $mid, 'type' => $orderType, 'order_no' => $order_no, 'goods_id' => $goods_id, 'goods_spec' => $goods_spec, 'goods_number' => $number];
|
||||
$goodsResult = self::buildOrderData($item, $order, $orderList, 'selling_price');
|
||||
if (empty($goodsResult['code'])) {
|
||||
return $goodsResult;
|
||||
@ -69,7 +68,10 @@ class OrderService
|
||||
Db::name('StoreOrderGoods')->insertAll($orderList); // 订单关联的商品信息
|
||||
Db::name('storeOrderExpress')->insert($expressResult['data']); // 快递信息
|
||||
});
|
||||
// @todo 同步相关商品库存
|
||||
// 同步商品库存列表
|
||||
foreach (array_unique(array_column($orderList, 'goods_id')) as $stock_goods_id) {
|
||||
GoodsService::syncGoodsStock($stock_goods_id);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
return ['code' => 0, 'msg' => '商城订单创建失败,请稍候再试!' . $e->getLine() . $e->getFile() . $e->getMessage()];
|
||||
}
|
||||
@ -132,13 +134,15 @@ class OrderService
|
||||
}
|
||||
// 商品规格信息
|
||||
$specField = 'goods_id,goods_spec,market_price,selling_price,goods_stock,goods_sale';
|
||||
$specWhere = ['status' => '1', 'is_deleted' => '0', 'package_id' => '0', 'goods_id' => $goods_id, 'goods_spec' => $goods_spec];
|
||||
$specWhere = ['status' => '1', 'is_deleted' => '0', 'goods_id' => $goods_id, 'goods_spec' => $goods_spec];
|
||||
if (!($goodsSpec = Db::name('StoreGoodsList')->field($specField)->where($specWhere)->find())) {
|
||||
return ['code' => 0, 'msg' => '无效的商品规格信息!', 'data' => "{$goods_id}, {$goods_spec}, {$number}"];
|
||||
}
|
||||
// 商品库存检查
|
||||
if ($goodsSpec['goods_stock'] - $goodsSpec['goods_sale'] < $number) {
|
||||
return ['code' => 0, 'msg' => '商品库存不足,请更换其它商品!', 'data' => "{$goods_id}, {$goods_spec}, {$number}"];
|
||||
}
|
||||
// 订单价格处理
|
||||
$goodsSpec['price_field'] = $price_field;
|
||||
$orderList[] = array_merge($goods, $goodsSpec, ['mid' => $mid, 'number' => $number, 'order_no' => $order_no, 'type' => $type]);
|
||||
$order['goods_price'] += floatval($goodsSpec[$price_field]) * $number;
|
||||
|
@ -159,6 +159,11 @@
|
||||
<a data-open='{:url("$classuri/edit")}?id={$vo.id}'>编辑</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("$classuri/stock")}-->
|
||||
<span class="text-explode">|</span>
|
||||
<a data-title="商品入库" data-modal='{:url("$classuri/stock")}?id={$vo.id}'>入库</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if $vo.status eq 1 and auth("$classuri/forbid")}-->
|
||||
<span class="text-explode">|</span>
|
||||
<a data-update="{$vo.id}" data-field='status' data-value='0' data-action='{:url("$classuri/forbid")}'>下架</a>
|
||||
|
52
application/store/view/goods/stock.html
Normal file
52
application/store/view/goods/stock.html
Normal file
@ -0,0 +1,52 @@
|
||||
<form class="layui-form layui-box modal-form-box" action="{:request()->url()}" data-auto="true" method="post">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商品名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input value='[{$vo.id}] {$vo.goods_title|default=""}' disabled="disabled" class="layui-input layui-bg-gray">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label label-required">商品库存</label>
|
||||
<div class="layui-input-block">
|
||||
<table class="layui-table" lay-size="sm">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>商品规格</th>
|
||||
<th class="text-right">入库数量</th>
|
||||
</tr>
|
||||
</thead>
|
||||
{foreach $vo.list as $spec}
|
||||
<tr>
|
||||
<td>
|
||||
{$spec.goods_spec|str_replace=['default:default',',',':'],['默认规格',',',':'],###}
|
||||
</td>
|
||||
<td style="padding:0">
|
||||
<input name="spec[]" value="{$spec.goods_spec}" type="hidden">
|
||||
<input name="stock[]" value="0" onblur="this.value=parseInt(this.value)||0"
|
||||
class="layui-input text-right padding-right-10 border-none">
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">入库描述</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea placeholder="请输入入库描述" title="请输入入库描述" class="layui-textarea" name="desc"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hr-line-dashed"></div>
|
||||
|
||||
<div class="layui-form-item text-center">
|
||||
{if isset($vo['id'])}<input type='hidden' value='{$vo.id}' name='id'/>{/if}
|
||||
<button class="layui-btn" type='submit'>保存数据</button>
|
||||
<button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消编辑</button>
|
||||
</div>
|
||||
|
||||
<script>window.form.render();</script>
|
||||
</form>
|
@ -84,7 +84,7 @@ class Config extends BasicAdmin
|
||||
}
|
||||
LogService::write('微信管理', '修改微信接口参数成功');
|
||||
} catch (\Exception $e) {
|
||||
$this->error('微信授权保存失败 , 请稍候重试 ! ' . $e->getMessage());
|
||||
$this->error('微信授权保存成功, 但授权验证失败 ! <br>' . $e->getMessage());
|
||||
}
|
||||
$this->success('微信授权数据修改成功!', url('@admin') . "#" . url('@wechat/config/index'));
|
||||
}
|
||||
|
@ -14,8 +14,10 @@
|
||||
|
||||
namespace controller;
|
||||
|
||||
use app\store\service\MemberService;
|
||||
use service\WechatService;
|
||||
use think\Controller;
|
||||
use think\Db;
|
||||
|
||||
/**
|
||||
* 微信基础控制器
|
||||
@ -31,6 +33,29 @@ class BasicWechat extends Controller
|
||||
*/
|
||||
protected $openid;
|
||||
|
||||
/**
|
||||
* 当前会员数据记录
|
||||
* @var array
|
||||
*/
|
||||
protected $member = [];
|
||||
|
||||
/**
|
||||
* 初始化会员数据记录
|
||||
* @throws \think\Exception
|
||||
* @throws \think\exception\PDOException
|
||||
* @return array
|
||||
*/
|
||||
protected function initMember()
|
||||
{
|
||||
$openid = $this->getOpenid();
|
||||
$this->member = Db::name('StoreMember')->where(['openid' => $openid])->find();
|
||||
if (empty($this->member)) {
|
||||
MemberService::create(['openid' => $openid]);
|
||||
$this->member = Db::name('StoreMember')->where(['openid' => $openid])->find();
|
||||
}
|
||||
return $this->member;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取粉丝用户OPENID
|
||||
* @return bool|string
|
||||
|
@ -50,6 +50,7 @@ class SoapService
|
||||
* @param string $name SOAP调用方法名
|
||||
* @param array|string $arguments SOAP调用参数
|
||||
* @return array|string|bool
|
||||
* @throws \think\Exception
|
||||
*/
|
||||
public function __call($name, $arguments)
|
||||
{
|
||||
@ -57,8 +58,8 @@ class SoapService
|
||||
return $this->soap->__soapCall($name, $arguments);
|
||||
} catch (\Exception $e) {
|
||||
Log::error("Soap Error. Call {$name} Method --- " . $e->getMessage());
|
||||
throw new Exception($e->getMessage(), $e->getCode());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -17,5 +17,8 @@ namespace think;
|
||||
// 加载基础文件
|
||||
require __DIR__ . '/thinkphp/base.php';
|
||||
|
||||
// think文件检查,防止TP目录计算异常
|
||||
file_exists('think') || touch('think');
|
||||
|
||||
// 执行应用并响应
|
||||
Container::get('app', [__DIR__ . '/application/'])->run()->send();
|
||||
|
2
vendor/autoload.php
vendored
2
vendor/autoload.php
vendored
@ -4,4 +4,4 @@
|
||||
|
||||
require_once __DIR__ . '/composer/autoload_real.php';
|
||||
|
||||
return ComposerAutoloaderInitf5974243cd36d6c47ccc2deac6411e2c::getLoader();
|
||||
return ComposerAutoloaderInit7ecf5ded1a6830a1c375fe7293886da9::getLoader();
|
||||
|
1
vendor/composer/autoload_classmap.php
vendored
1
vendor/composer/autoload_classmap.php
vendored
@ -165,6 +165,7 @@ return array(
|
||||
'app\\store\\controller\\wechat\\Demo' => $baseDir . '/application/store/controller/wechat/Demo.php',
|
||||
'app\\store\\controller\\wechat\\Index' => $baseDir . '/application/store/controller/wechat/Index.php',
|
||||
'app\\store\\service\\GoodsService' => $baseDir . '/application/store/service/GoodsService.php',
|
||||
'app\\store\\service\\MemberService' => $baseDir . '/application/store/service/MemberService.php',
|
||||
'app\\store\\service\\OrderService' => $baseDir . '/application/store/service/OrderService.php',
|
||||
'app\\wechat\\controller\\Config' => $baseDir . '/application/wechat/controller/Config.php',
|
||||
'app\\wechat\\controller\\Fans' => $baseDir . '/application/wechat/controller/Fans.php',
|
||||
|
14
vendor/composer/autoload_real.php
vendored
14
vendor/composer/autoload_real.php
vendored
@ -2,7 +2,7 @@
|
||||
|
||||
// autoload_real.php @generated by Composer
|
||||
|
||||
class ComposerAutoloaderInitf5974243cd36d6c47ccc2deac6411e2c
|
||||
class ComposerAutoloaderInit7ecf5ded1a6830a1c375fe7293886da9
|
||||
{
|
||||
private static $loader;
|
||||
|
||||
@ -19,15 +19,15 @@ class ComposerAutoloaderInitf5974243cd36d6c47ccc2deac6411e2c
|
||||
return self::$loader;
|
||||
}
|
||||
|
||||
spl_autoload_register(array('ComposerAutoloaderInitf5974243cd36d6c47ccc2deac6411e2c', 'loadClassLoader'), true, true);
|
||||
spl_autoload_register(array('ComposerAutoloaderInit7ecf5ded1a6830a1c375fe7293886da9', 'loadClassLoader'), true, true);
|
||||
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInitf5974243cd36d6c47ccc2deac6411e2c', 'loadClassLoader'));
|
||||
spl_autoload_unregister(array('ComposerAutoloaderInit7ecf5ded1a6830a1c375fe7293886da9', 'loadClassLoader'));
|
||||
|
||||
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
||||
if ($useStaticLoader) {
|
||||
require_once __DIR__ . '/autoload_static.php';
|
||||
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInitf5974243cd36d6c47ccc2deac6411e2c::getInitializer($loader));
|
||||
call_user_func(\Composer\Autoload\ComposerStaticInit7ecf5ded1a6830a1c375fe7293886da9::getInitializer($loader));
|
||||
} else {
|
||||
$map = require __DIR__ . '/autoload_namespaces.php';
|
||||
foreach ($map as $namespace => $path) {
|
||||
@ -48,19 +48,19 @@ class ComposerAutoloaderInitf5974243cd36d6c47ccc2deac6411e2c
|
||||
$loader->register(true);
|
||||
|
||||
if ($useStaticLoader) {
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInitf5974243cd36d6c47ccc2deac6411e2c::$files;
|
||||
$includeFiles = Composer\Autoload\ComposerStaticInit7ecf5ded1a6830a1c375fe7293886da9::$files;
|
||||
} else {
|
||||
$includeFiles = require __DIR__ . '/autoload_files.php';
|
||||
}
|
||||
foreach ($includeFiles as $fileIdentifier => $file) {
|
||||
composerRequiref5974243cd36d6c47ccc2deac6411e2c($fileIdentifier, $file);
|
||||
composerRequire7ecf5ded1a6830a1c375fe7293886da9($fileIdentifier, $file);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
||||
|
||||
function composerRequiref5974243cd36d6c47ccc2deac6411e2c($fileIdentifier, $file)
|
||||
function composerRequire7ecf5ded1a6830a1c375fe7293886da9($fileIdentifier, $file)
|
||||
{
|
||||
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
||||
require $file;
|
||||
|
9
vendor/composer/autoload_static.php
vendored
9
vendor/composer/autoload_static.php
vendored
@ -4,7 +4,7 @@
|
||||
|
||||
namespace Composer\Autoload;
|
||||
|
||||
class ComposerStaticInitf5974243cd36d6c47ccc2deac6411e2c
|
||||
class ComposerStaticInit7ecf5ded1a6830a1c375fe7293886da9
|
||||
{
|
||||
public static $files = array (
|
||||
'1cfd2761b63b0a29ed23657ea394cb2d' => __DIR__ . '/..' . '/topthink/think-captcha/src/helper.php',
|
||||
@ -248,6 +248,7 @@ class ComposerStaticInitf5974243cd36d6c47ccc2deac6411e2c
|
||||
'app\\store\\controller\\wechat\\Demo' => __DIR__ . '/../..' . '/application/store/controller/wechat/Demo.php',
|
||||
'app\\store\\controller\\wechat\\Index' => __DIR__ . '/../..' . '/application/store/controller/wechat/Index.php',
|
||||
'app\\store\\service\\GoodsService' => __DIR__ . '/../..' . '/application/store/service/GoodsService.php',
|
||||
'app\\store\\service\\MemberService' => __DIR__ . '/../..' . '/application/store/service/MemberService.php',
|
||||
'app\\store\\service\\OrderService' => __DIR__ . '/../..' . '/application/store/service/OrderService.php',
|
||||
'app\\wechat\\controller\\Config' => __DIR__ . '/../..' . '/application/wechat/controller/Config.php',
|
||||
'app\\wechat\\controller\\Fans' => __DIR__ . '/../..' . '/application/wechat/controller/Fans.php',
|
||||
@ -274,9 +275,9 @@ class ComposerStaticInitf5974243cd36d6c47ccc2deac6411e2c
|
||||
public static function getInitializer(ClassLoader $loader)
|
||||
{
|
||||
return \Closure::bind(function () use ($loader) {
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInitf5974243cd36d6c47ccc2deac6411e2c::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInitf5974243cd36d6c47ccc2deac6411e2c::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInitf5974243cd36d6c47ccc2deac6411e2c::$classMap;
|
||||
$loader->prefixLengthsPsr4 = ComposerStaticInit7ecf5ded1a6830a1c375fe7293886da9::$prefixLengthsPsr4;
|
||||
$loader->prefixDirsPsr4 = ComposerStaticInit7ecf5ded1a6830a1c375fe7293886da9::$prefixDirsPsr4;
|
||||
$loader->classMap = ComposerStaticInit7ecf5ded1a6830a1c375fe7293886da9::$classMap;
|
||||
|
||||
}, null, ClassLoader::class);
|
||||
}
|
||||
|
12
vendor/composer/installed.json
vendored
12
vendor/composer/installed.json
vendored
@ -80,17 +80,17 @@
|
||||
},
|
||||
{
|
||||
"name": "zoujingli/wechat-developer",
|
||||
"version": "v1.1.3",
|
||||
"version_normalized": "1.1.3.0",
|
||||
"version": "v1.1.4",
|
||||
"version_normalized": "1.1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/zoujingli/WeChatDeveloper.git",
|
||||
"reference": "4b1112e8d4723ce5e6ef0d6eee41a02e588b60ab"
|
||||
"reference": "e72fb2f166ee1a3b4889845cd932a1ab9d2005ee"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://files.phpcomposer.com/files/zoujingli/WeChatDeveloper/4b1112e8d4723ce5e6ef0d6eee41a02e588b60ab.zip",
|
||||
"reference": "4b1112e8d4723ce5e6ef0d6eee41a02e588b60ab",
|
||||
"url": "https://files.phpcomposer.com/files/zoujingli/WeChatDeveloper/e72fb2f166ee1a3b4889845cd932a1ab9d2005ee.zip",
|
||||
"reference": "e72fb2f166ee1a3b4889845cd932a1ab9d2005ee",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -98,7 +98,7 @@
|
||||
"ext-openssl": "*",
|
||||
"php": ">=5.4"
|
||||
},
|
||||
"time": "2018-05-03T07:30:54+00:00",
|
||||
"time": "2018-05-09T05:38:00+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
|
@ -105,7 +105,7 @@ class BasicWeChat
|
||||
if (!empty($result['access_token'])) {
|
||||
Tools::setCache($cache, $result['access_token'], 7000);
|
||||
}
|
||||
return $result['access_token'];
|
||||
return $this->access_token = $result['access_token'];
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -299,13 +299,13 @@ class Pay
|
||||
{
|
||||
$option = [];
|
||||
if ($isCert) {
|
||||
$option['ssl_cer'] = $this->config->get('ssl_cer');
|
||||
$option['ssl_key'] = $this->config->get('ssl_key');
|
||||
foreach (['ssl_cer', 'ssl_key'] as $key) {
|
||||
if (empty($options[$key])) {
|
||||
if (empty($option[$key]) || !file_exists($option[$key])) {
|
||||
throw new InvalidArgumentException("Missing Config -- [{$key}]", '0');
|
||||
}
|
||||
}
|
||||
$option['ssl_cer'] = $this->config->get('ssl_cer');
|
||||
$option['ssl_key'] = $this->config->get('ssl_key');
|
||||
}
|
||||
$params = $this->params->merge($data);
|
||||
$needSignType && ($params['sign_type'] = strtoupper($signType));
|
||||
|
Loading…
x
Reference in New Issue
Block a user