Merge branch 'main' of https://gitea.lihaink.cn/mkm/multi-store
This commit is contained in:
commit
2a5bc68379
@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller\store_extract;
|
||||
|
||||
|
||||
use app\admin\controller\BaseAdminController;
|
||||
use app\admin\lists\store_extract\StoreExtractLists;
|
||||
use app\admin\logic\store_extract\StoreExtractLogic;
|
||||
use app\admin\validate\store_extract\StoreExtractValidate;
|
||||
|
||||
|
||||
/**
|
||||
* 门店提现控制器
|
||||
* Class StoreExtractController
|
||||
* @package app\admin\controller\store_extract
|
||||
*/
|
||||
class StoreExtractController extends BaseAdminController
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店提现列表
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
return $this->dataLists(new StoreExtractLists());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加门店提现
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$params = (new StoreExtractValidate())->post()->goCheck('add');
|
||||
$result = StoreExtractLogic::add($params);
|
||||
if (true === $result) {
|
||||
return $this->success('添加成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(StoreExtractLogic::getError());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑门店提现
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$params = (new StoreExtractValidate())->post()->goCheck('edit');
|
||||
$result = StoreExtractLogic::edit($params);
|
||||
if (true === $result) {
|
||||
return $this->success('编辑成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(StoreExtractLogic::getError());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除门店提现
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
$params = (new StoreExtractValidate())->post()->goCheck('delete');
|
||||
StoreExtractLogic::delete($params);
|
||||
return $this->success('删除成功', [], 1, 1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店提现详情
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function detail()
|
||||
{
|
||||
$params = (new StoreExtractValidate())->goCheck('detail');
|
||||
$result = StoreExtractLogic::detail($params);
|
||||
return $this->data($result);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller\store_finance_flow;
|
||||
|
||||
|
||||
use app\admin\controller\BaseAdminController;
|
||||
use app\admin\lists\store_finance_flow\StoreFinanceFlowLists;
|
||||
use app\admin\logic\store_finance_flow\StoreFinanceFlowLogic;
|
||||
use app\admin\validate\store_finance_flow\StoreFinanceFlowValidate;
|
||||
|
||||
|
||||
/**
|
||||
* 门店流水控制器
|
||||
* Class StoreFinanceFlowController
|
||||
* @package app\admin\controller\store_finance_flow
|
||||
*/
|
||||
class StoreFinanceFlowController extends BaseAdminController
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店流水列表
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
return $this->dataLists(new StoreFinanceFlowLists());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加门店流水
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$params = (new StoreFinanceFlowValidate())->post()->goCheck('add');
|
||||
$result = StoreFinanceFlowLogic::add($params);
|
||||
if (true === $result) {
|
||||
return $this->success('添加成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(StoreFinanceFlowLogic::getError());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑门店流水
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$params = (new StoreFinanceFlowValidate())->post()->goCheck('edit');
|
||||
$result = StoreFinanceFlowLogic::edit($params);
|
||||
if (true === $result) {
|
||||
return $this->success('编辑成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(StoreFinanceFlowLogic::getError());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除门店流水
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
$params = (new StoreFinanceFlowValidate())->post()->goCheck('delete');
|
||||
StoreFinanceFlowLogic::delete($params);
|
||||
return $this->success('删除成功', [], 1, 1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店流水详情
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function detail()
|
||||
{
|
||||
$params = (new StoreFinanceFlowValidate())->goCheck('detail');
|
||||
$result = StoreFinanceFlowLogic::detail($params);
|
||||
return $this->data($result);
|
||||
}
|
||||
|
||||
|
||||
}
|
106
app/admin/controller/system_store/SystemStoreController.php
Normal file
106
app/admin/controller/system_store/SystemStoreController.php
Normal file
@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller\system_store;
|
||||
|
||||
|
||||
use app\admin\controller\BaseAdminController;
|
||||
use app\admin\lists\system_store\SystemStoreLists;
|
||||
use app\admin\lists\system_store\SystemStoreSourceLists;
|
||||
use app\admin\logic\system_store\SystemStoreLogic;
|
||||
use app\admin\validate\system_store\SystemStoreValidate;
|
||||
|
||||
|
||||
/**
|
||||
* 门店列表控制器
|
||||
* Class SystemStoreController
|
||||
* @package app\admin\controller\system_store
|
||||
*/
|
||||
class SystemStoreController extends BaseAdminController
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店列表列表
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
return $this->dataLists(new SystemStoreLists());
|
||||
}
|
||||
/**
|
||||
* @notes 根据商品源获取门店列表
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function source_product_store_lists()
|
||||
{
|
||||
return $this->dataLists(new SystemStoreSourceLists());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加门店列表
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$params = (new SystemStoreValidate())->post()->goCheck('add');
|
||||
$result = SystemStoreLogic::add($params);
|
||||
if (true === $result) {
|
||||
return $this->success('添加成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(SystemStoreLogic::getError());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑门店列表
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$params = (new SystemStoreValidate())->post()->goCheck('edit');
|
||||
$result = SystemStoreLogic::edit($params);
|
||||
if (true === $result) {
|
||||
return $this->success('编辑成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(SystemStoreLogic::getError());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除门店列表
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
$params = (new SystemStoreValidate())->post()->goCheck('delete');
|
||||
SystemStoreLogic::delete($params);
|
||||
return $this->success('删除成功', [], 1, 1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店列表详情
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function detail()
|
||||
{
|
||||
$params = (new SystemStoreValidate())->goCheck('detail');
|
||||
$result = SystemStoreLogic::detail($params);
|
||||
return $this->data($result);
|
||||
}
|
||||
|
||||
|
||||
}
|
95
app/admin/controller/user_bill/UserBillController.php
Normal file
95
app/admin/controller/user_bill/UserBillController.php
Normal file
@ -0,0 +1,95 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\controller\user_bill;
|
||||
|
||||
|
||||
use app\admin\controller\BaseAdminController;
|
||||
use app\admin\lists\user_bill\UserBillLists;
|
||||
use app\admin\logic\user_bill\UserBillLogic;
|
||||
use app\admin\validate\user_bill\UserBillValidate;
|
||||
|
||||
|
||||
/**
|
||||
* 资金记录控制器
|
||||
* Class UserBillController
|
||||
* @package app\admin\controller\user_bill
|
||||
*/
|
||||
class UserBillController extends BaseAdminController
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取资金记录列表
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
return $this->dataLists(new UserBillLists());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加资金记录
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$params = (new UserBillValidate())->post()->goCheck('add');
|
||||
$result = UserBillLogic::add($params);
|
||||
if (true === $result) {
|
||||
return $this->success('添加成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(UserBillLogic::getError());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑资金记录
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$params = (new UserBillValidate())->post()->goCheck('edit');
|
||||
$result = UserBillLogic::edit($params);
|
||||
if (true === $result) {
|
||||
return $this->success('编辑成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(UserBillLogic::getError());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除资金记录
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
$params = (new UserBillValidate())->post()->goCheck('delete');
|
||||
UserBillLogic::delete($params);
|
||||
return $this->success('删除成功', [], 1, 1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取资金记录详情
|
||||
* @return \think\response\Json
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function detail()
|
||||
{
|
||||
$params = (new UserBillValidate())->goCheck('detail');
|
||||
$result = UserBillLogic::detail($params);
|
||||
return $this->data($result);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -26,7 +26,8 @@ class StoreCategoryLists extends BaseAdminDataLists implements ListsSearchInterf
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['name','pid'],
|
||||
'=' => ['pid'],
|
||||
'%like%' => ['name'],
|
||||
];
|
||||
}
|
||||
|
||||
@ -46,7 +47,10 @@ class StoreCategoryLists extends BaseAdminDataLists implements ListsSearchInterf
|
||||
->field(['id', 'pid', 'name', 'data', 'pic', 'sort'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()
|
||||
->select()->each(function ($item) {
|
||||
$item['is_children'] = StoreCategory::where('pid', $item->id)->count(); // 判断是否有子分类
|
||||
return $item->toArray();
|
||||
})
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
65
app/admin/lists/store_extract/StoreExtractLists.php
Normal file
65
app/admin/lists/store_extract/StoreExtractLists.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\lists\store_extract;
|
||||
|
||||
|
||||
use app\admin\lists\BaseAdminDataLists;
|
||||
use app\common\model\store_extract\StoreExtract;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
|
||||
|
||||
/**
|
||||
* 门店提现列表
|
||||
* Class StoreExtractLists
|
||||
* @package app\admin\listsstore_extract
|
||||
*/
|
||||
class StoreExtractLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['store_id', 'extract_type', 'status', 'pay_status', 'create_time'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店提现列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
return StoreExtract::where($this->searchWhere)
|
||||
->field(['id', 'store_id', 'extract_type', 'extract_price', 'mark', 'status', 'pay_status', 'admin_id', 'create_time'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店提现数量
|
||||
* @return int
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return StoreExtract::where($this->searchWhere)->count();
|
||||
}
|
||||
|
||||
}
|
65
app/admin/lists/store_finance_flow/StoreFinanceFlowLists.php
Normal file
65
app/admin/lists/store_finance_flow/StoreFinanceFlowLists.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\lists\store_finance_flow;
|
||||
|
||||
|
||||
use app\admin\lists\BaseAdminDataLists;
|
||||
use app\common\model\store_finance_flow\StoreFinanceFlow;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
|
||||
|
||||
/**
|
||||
* 门店流水列表
|
||||
* Class StoreFinanceFlowLists
|
||||
* @package app\admin\listsstore_finance_flow
|
||||
*/
|
||||
class StoreFinanceFlowLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['store_id', 'uid', 'create_time'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店流水列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
return StoreFinanceFlow::where($this->searchWhere)
|
||||
->field(['id', 'uid', 'staff_id', 'order_id', 'link_id', 'type', 'pay_type', 'remark', 'trade_time'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店流水数量
|
||||
* @return int
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return StoreFinanceFlow::where($this->searchWhere)->count();
|
||||
}
|
||||
|
||||
}
|
@ -8,6 +8,7 @@ use app\common\model\store_product\StoreProduct;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
use app\common\model\store_category\StoreCategory;
|
||||
use app\common\model\store_product_unit\StoreProductUnit;
|
||||
use app\common\model\system_store\SystemStore;
|
||||
|
||||
/**
|
||||
* 商品列表列表
|
||||
@ -44,7 +45,7 @@ class StoreProductLists extends BaseAdminDataLists implements ListsSearchInterfa
|
||||
public function lists(): array
|
||||
{
|
||||
return StoreProduct::where($this->searchWhere)
|
||||
->field(['id', 'image', 'store_name', 'cate_id', 'price', 'sales', 'stock', 'is_show', 'unit', 'cost','rose','purchase'])
|
||||
->field(['id', 'image', 'store_name', 'cate_id', 'price', 'sales', 'stock', 'is_show', 'unit', 'cost','rose','purchase','store_id','bar_code'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()->each(function ($item) {
|
||||
|
65
app/admin/lists/system_store/SystemStoreLists.php
Normal file
65
app/admin/lists/system_store/SystemStoreLists.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\lists\system_store;
|
||||
|
||||
|
||||
use app\admin\lists\BaseAdminDataLists;
|
||||
use app\common\model\system_store\SystemStore;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
|
||||
|
||||
/**
|
||||
* 门店列表列表
|
||||
* Class SystemStoreLists
|
||||
* @package app\admin\listssystem_store
|
||||
*/
|
||||
class SystemStoreLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['name', 'phone'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店列表列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
return SystemStore::where($this->searchWhere)
|
||||
->field(['id', 'name', 'phone', 'detailed_address', 'image', 'is_show'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店列表数量
|
||||
* @return int
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return SystemStore::where($this->searchWhere)->count();
|
||||
}
|
||||
|
||||
}
|
76
app/admin/lists/system_store/SystemStoreSourceLists.php
Normal file
76
app/admin/lists/system_store/SystemStoreSourceLists.php
Normal file
@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\lists\system_store;
|
||||
|
||||
|
||||
use app\admin\lists\BaseAdminDataLists;
|
||||
use app\common\model\system_store\SystemStore;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
use app\common\model\store_product\StoreProduct;
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
* 根据商品来源查询门店列表
|
||||
* Class SystemStoreSourceLists
|
||||
* @package app\admin\listssystem_store
|
||||
*/
|
||||
class SystemStoreSourceLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['name', 'phone'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
$store_arr=StoreProduct::where('source_id',$this->request->get('product_id'))->column('store_id');
|
||||
if($store_arr){
|
||||
$this->searchWhere[]=['id', 'in', $store_arr];
|
||||
}else{
|
||||
return [];
|
||||
}
|
||||
return SystemStore::where($this->searchWhere)
|
||||
->field(['id', 'name', 'phone', 'detailed_address', 'image'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店数量
|
||||
* @return int
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
if($this->searchWhere){
|
||||
return SystemStore::where($this->searchWhere)->count();
|
||||
}else{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
65
app/admin/lists/user_bill/UserBillLists.php
Normal file
65
app/admin/lists/user_bill/UserBillLists.php
Normal file
@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\lists\user_bill;
|
||||
|
||||
|
||||
use app\admin\lists\BaseAdminDataLists;
|
||||
use app\common\model\user_bill\UserBill;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
|
||||
|
||||
/**
|
||||
* 资金记录列表
|
||||
* Class UserBillLists
|
||||
* @package app\admin\listsuser_bill
|
||||
*/
|
||||
class UserBillLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['uid', 'type', 'create_time'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取资金记录列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
return UserBill::where($this->searchWhere)
|
||||
->field(['id', 'type', 'number', 'mark', 'create_time'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取资金记录数量
|
||||
* @return int
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return UserBill::where($this->searchWhere)->count();
|
||||
}
|
||||
|
||||
}
|
94
app/admin/logic/store_extract/StoreExtractLogic.php
Normal file
94
app/admin/logic/store_extract/StoreExtractLogic.php
Normal file
@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\logic\store_extract;
|
||||
|
||||
|
||||
use app\common\model\store_extract\StoreExtract;
|
||||
use app\common\logic\BaseLogic;
|
||||
use think\facade\Db;
|
||||
|
||||
|
||||
/**
|
||||
* 门店提现逻辑
|
||||
* Class StoreExtractLogic
|
||||
* @package app\admin\logic\store_extract
|
||||
*/
|
||||
class StoreExtractLogic extends BaseLogic
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加门店提现
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public static function add(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
StoreExtract::create([
|
||||
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑门店提现
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public static function edit(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
StoreExtract::where('id', $params['id'])->update([
|
||||
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除门店提现
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public static function delete(array $params): bool
|
||||
{
|
||||
return StoreExtract::destroy($params['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店提现详情
|
||||
* @param $params
|
||||
* @return array
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public static function detail($params): array
|
||||
{
|
||||
return StoreExtract::findOrEmpty($params['id'])->toArray();
|
||||
}
|
||||
}
|
94
app/admin/logic/store_finance_flow/StoreFinanceFlowLogic.php
Normal file
94
app/admin/logic/store_finance_flow/StoreFinanceFlowLogic.php
Normal file
@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\logic\store_finance_flow;
|
||||
|
||||
|
||||
use app\common\model\store_finance_flow\StoreFinanceFlow;
|
||||
use app\common\logic\BaseLogic;
|
||||
use think\facade\Db;
|
||||
|
||||
|
||||
/**
|
||||
* 门店流水逻辑
|
||||
* Class StoreFinanceFlowLogic
|
||||
* @package app\admin\logic\store_finance_flow
|
||||
*/
|
||||
class StoreFinanceFlowLogic extends BaseLogic
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加门店流水
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public static function add(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
StoreFinanceFlow::create([
|
||||
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑门店流水
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public static function edit(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
StoreFinanceFlow::where('id', $params['id'])->update([
|
||||
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除门店流水
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public static function delete(array $params): bool
|
||||
{
|
||||
return StoreFinanceFlow::destroy($params['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店流水详情
|
||||
* @param $params
|
||||
* @return array
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public static function detail($params): array
|
||||
{
|
||||
return StoreFinanceFlow::findOrEmpty($params['id'])->toArray();
|
||||
}
|
||||
}
|
@ -5,10 +5,13 @@ namespace app\admin\logic\store_product;
|
||||
|
||||
use app\common\model\store_product\StoreProduct;
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\store_branch_product\StoreBranchProduct;
|
||||
use app\common\model\store_branch_product_attr_value\StoreBranchProductAttrValue;
|
||||
use app\common\model\store_category\StoreCategory;
|
||||
use app\common\model\store_product_attr_value\StoreProductAttrValue;
|
||||
use app\common\model\system_store\SystemStore;
|
||||
use think\facade\Db;
|
||||
|
||||
use Webman\RedisQueue\Redis;
|
||||
|
||||
/**
|
||||
* 商品列表逻辑
|
||||
@ -59,6 +62,17 @@ class StoreProductLogic extends BaseLogic
|
||||
StoreCategory::where('id', $params['cate_id'])->inc('three')->update();
|
||||
|
||||
Db::commit();
|
||||
|
||||
if ($params['is_store_all'] == 1) {
|
||||
$store_arr = SystemStore::where('is_show', 1)->column('id');
|
||||
Redis::send('copy-product', ['product_id' => $res['id'], 'store_arr' => $store_arr]);
|
||||
} else {
|
||||
if (is_array($params['store_arr']) && count($params['store_arr']) > 0) {
|
||||
Redis::send('copy-product', ['product_id' => $res['id'], 'store_arr' => $params['store_arr']]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
@ -85,7 +99,15 @@ class StoreProductLogic extends BaseLogic
|
||||
StoreCategory::where('id', $StoreProduct['cate_id'])->dec('three')->update();
|
||||
}
|
||||
StoreProduct::where('id', $params['id'])->update([
|
||||
'store_name' => $params['store_name']
|
||||
'store_name' => $params['store_name'],
|
||||
'image' => $params['image'],
|
||||
'bar_code' => $params['bar_code'] ?? '',
|
||||
'cate_id' => $params['cate_id'],
|
||||
'unit' => $params['unit'],
|
||||
'stock' => $params['stock'],
|
||||
'cost' => $params['cost'],
|
||||
'purchase' => $params['purchase'],
|
||||
'rose' => $params['rose'],
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
@ -120,7 +142,7 @@ class StoreProductLogic extends BaseLogic
|
||||
*/
|
||||
public static function detail($params): array
|
||||
{
|
||||
return StoreProduct::findOrEmpty($params['id'])->toArray();
|
||||
return StoreProduct::where('id',$params['id'])->findOrEmpty()->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -145,4 +167,48 @@ class StoreProductLogic extends BaseLogic
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制商品到门店
|
||||
*/
|
||||
public static function copy($id, $store_id)
|
||||
{
|
||||
$find = StoreProduct::where('id', $id)->findOrEmpty()->toArray();
|
||||
$store_find = StoreBranchProduct::where(['product_id' => $id, 'store_id' => $store_id])->findOrEmpty()->toArray();
|
||||
if ($find && !$store_find) {
|
||||
$attr_value = StoreProductAttrValue::where('product_id', $id)->findOrEmpty();
|
||||
Db::startTrans();
|
||||
try {
|
||||
$product = [
|
||||
'product_id' => $find['id'],
|
||||
'image' => $find['image'],
|
||||
'store_name' => $find['store_name'],
|
||||
'store_info' => $find['store_info'],
|
||||
'keyword' => $find['keyword'],
|
||||
'bar_code' => $find['bar_code'],
|
||||
'cate_id' => $find['cate_id'],
|
||||
'store_id' => $store_id,
|
||||
'sales' => 0,
|
||||
'stock' =>0,
|
||||
];
|
||||
StoreBranchProduct::create($product);
|
||||
$arr = [
|
||||
'product_id' => $id,
|
||||
'store_id' => $store_id,
|
||||
'sales' => 0,
|
||||
'stock' => 0,
|
||||
'type' => 0,
|
||||
'bar_code' => $attr_value['bar_code']
|
||||
];
|
||||
StoreBranchProductAttrValue::create($arr);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
d($e);
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -34,7 +34,6 @@ class StoreProductUnitLogic extends BaseLogic
|
||||
'py' => $params['py'],
|
||||
'number' => $params['number'],
|
||||
'data' => $params['data'],
|
||||
'more' => $params['more']
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
@ -64,7 +63,6 @@ class StoreProductUnitLogic extends BaseLogic
|
||||
'py' => $params['py'],
|
||||
'number' => $params['number'],
|
||||
'data' => $params['data'],
|
||||
'more' => $params['more']
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
|
106
app/admin/logic/system_store/SystemStoreLogic.php
Normal file
106
app/admin/logic/system_store/SystemStoreLogic.php
Normal file
@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\logic\system_store;
|
||||
|
||||
|
||||
use app\common\model\system_store\SystemStore;
|
||||
use app\common\logic\BaseLogic;
|
||||
use think\facade\Db;
|
||||
|
||||
|
||||
/**
|
||||
* 门店列表逻辑
|
||||
* Class SystemStoreLogic
|
||||
* @package app\admin\logic\system_store
|
||||
*/
|
||||
class SystemStoreLogic extends BaseLogic
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加门店列表
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public static function add(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
SystemStore::create([
|
||||
'name' => $params['name'],
|
||||
'introduction' => $params['introduction'],
|
||||
'phone' => $params['phone'],
|
||||
'detailed_address' => $params['detailed_address'],
|
||||
'image' => $params['image'],
|
||||
'is_show' => $params['is_show']
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑门店列表
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public static function edit(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
SystemStore::where('id', $params['id'])->update([
|
||||
'name' => $params['name'],
|
||||
'introduction' => $params['introduction'],
|
||||
'phone' => $params['phone'],
|
||||
'detailed_address' => $params['detailed_address'],
|
||||
'image' => $params['image'],
|
||||
'latitude' => $params['latitude'],
|
||||
'longitude' => $params['longitude'],
|
||||
'is_show' => $params['is_show']
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除门店列表
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public static function delete(array $params): bool
|
||||
{
|
||||
return SystemStore::destroy($params['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店列表详情
|
||||
* @param $params
|
||||
* @return array
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public static function detail($params): array
|
||||
{
|
||||
return SystemStore::findOrEmpty($params['id'])->toArray();
|
||||
}
|
||||
}
|
94
app/admin/logic/user_bill/UserBillLogic.php
Normal file
94
app/admin/logic/user_bill/UserBillLogic.php
Normal file
@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\logic\user_bill;
|
||||
|
||||
|
||||
use app\common\model\user_bill\UserBill;
|
||||
use app\common\logic\BaseLogic;
|
||||
use think\facade\Db;
|
||||
|
||||
|
||||
/**
|
||||
* 资金记录逻辑
|
||||
* Class UserBillLogic
|
||||
* @package app\admin\logic\user_bill
|
||||
*/
|
||||
class UserBillLogic extends BaseLogic
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加资金记录
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public static function add(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
UserBill::create([
|
||||
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑资金记录
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public static function edit(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
UserBill::where('id', $params['id'])->update([
|
||||
|
||||
]);
|
||||
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除资金记录
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public static function delete(array $params): bool
|
||||
{
|
||||
return UserBill::destroy($params['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取资金记录详情
|
||||
* @param $params
|
||||
* @return array
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public static function detail($params): array
|
||||
{
|
||||
return UserBill::findOrEmpty($params['id'])->toArray();
|
||||
}
|
||||
}
|
82
app/admin/validate/store_extract/StoreExtractValidate.php
Normal file
82
app/admin/validate/store_extract/StoreExtractValidate.php
Normal file
@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate\store_extract;
|
||||
|
||||
|
||||
use app\common\validate\BaseValidate;
|
||||
|
||||
|
||||
/**
|
||||
* 门店提现验证器
|
||||
* Class StoreExtractValidate
|
||||
* @package app\admin\validate\store_extract
|
||||
*/
|
||||
class StoreExtractValidate extends BaseValidate
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置校验规则
|
||||
* @var string[]
|
||||
*/
|
||||
protected $rule = [
|
||||
'id' => 'require',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* 参数描述
|
||||
* @var string[]
|
||||
*/
|
||||
protected $field = [
|
||||
'id' => 'id',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加场景
|
||||
* @return StoreExtractValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function sceneAdd()
|
||||
{
|
||||
return $this->remove('id', true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑场景
|
||||
* @return StoreExtractValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function sceneEdit()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除场景
|
||||
* @return StoreExtractValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function sceneDelete()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 详情场景
|
||||
* @return StoreExtractValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:09
|
||||
*/
|
||||
public function sceneDetail()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate\store_finance_flow;
|
||||
|
||||
|
||||
use app\common\validate\BaseValidate;
|
||||
|
||||
|
||||
/**
|
||||
* 门店流水验证器
|
||||
* Class StoreFinanceFlowValidate
|
||||
* @package app\admin\validate\store_finance_flow
|
||||
*/
|
||||
class StoreFinanceFlowValidate extends BaseValidate
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置校验规则
|
||||
* @var string[]
|
||||
*/
|
||||
protected $rule = [
|
||||
'id' => 'require',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* 参数描述
|
||||
* @var string[]
|
||||
*/
|
||||
protected $field = [
|
||||
'id' => 'id',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加场景
|
||||
* @return StoreFinanceFlowValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function sceneAdd()
|
||||
{
|
||||
return $this->remove('id', true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑场景
|
||||
* @return StoreFinanceFlowValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function sceneEdit()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除场景
|
||||
* @return StoreFinanceFlowValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function sceneDelete()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 详情场景
|
||||
* @return StoreFinanceFlowValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:56
|
||||
*/
|
||||
public function sceneDetail()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
}
|
94
app/admin/validate/system_store/SystemStoreValidate.php
Normal file
94
app/admin/validate/system_store/SystemStoreValidate.php
Normal file
@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate\system_store;
|
||||
|
||||
|
||||
use app\common\validate\BaseValidate;
|
||||
|
||||
|
||||
/**
|
||||
* 门店列表验证器
|
||||
* Class SystemStoreValidate
|
||||
* @package app\admin\validate\system_store
|
||||
*/
|
||||
class SystemStoreValidate extends BaseValidate
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置校验规则
|
||||
* @var string[]
|
||||
*/
|
||||
protected $rule = [
|
||||
'id' => 'require',
|
||||
'name' => 'require',
|
||||
'phone' => 'require',
|
||||
'detailed_address' => 'require',
|
||||
'image' => 'require',
|
||||
'latitude' => 'require',
|
||||
'longitude' => 'require',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* 参数描述
|
||||
* @var string[]
|
||||
*/
|
||||
protected $field = [
|
||||
'id' => 'id',
|
||||
'name' => '门店名称',
|
||||
'phone' => '手机号码',
|
||||
'detailed_address' => '详细地址',
|
||||
'image' => '门店logo',
|
||||
'latitude' => '纬度',
|
||||
'longitude' => '经度',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加场景
|
||||
* @return SystemStoreValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function sceneAdd()
|
||||
{
|
||||
return $this->only(['name','phone','detailed_address','image','latitude','longitude']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑场景
|
||||
* @return SystemStoreValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function sceneEdit()
|
||||
{
|
||||
return $this->only(['id','name','phone','detailed_address','image','latitude','longitude']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除场景
|
||||
* @return SystemStoreValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function sceneDelete()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 详情场景
|
||||
* @return SystemStoreValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function sceneDetail()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
}
|
82
app/admin/validate/user_bill/UserBillValidate.php
Normal file
82
app/admin/validate/user_bill/UserBillValidate.php
Normal file
@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\validate\user_bill;
|
||||
|
||||
|
||||
use app\common\validate\BaseValidate;
|
||||
|
||||
|
||||
/**
|
||||
* 资金记录验证器
|
||||
* Class UserBillValidate
|
||||
* @package app\admin\validate\user_bill
|
||||
*/
|
||||
class UserBillValidate extends BaseValidate
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置校验规则
|
||||
* @var string[]
|
||||
*/
|
||||
protected $rule = [
|
||||
'id' => 'require',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* 参数描述
|
||||
* @var string[]
|
||||
*/
|
||||
protected $field = [
|
||||
'id' => 'id',
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加场景
|
||||
* @return UserBillValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function sceneAdd()
|
||||
{
|
||||
return $this->remove('id', true);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑场景
|
||||
* @return UserBillValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function sceneEdit()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除场景
|
||||
* @return UserBillValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function sceneDelete()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 详情场景
|
||||
* @return UserBillValidate
|
||||
* @author admin
|
||||
* @date 2024/05/31 16:44
|
||||
*/
|
||||
public function sceneDetail()
|
||||
{
|
||||
return $this->only(['id']);
|
||||
}
|
||||
|
||||
}
|
@ -32,6 +32,7 @@ class IndexController extends BaseApiController
|
||||
|
||||
public function index()
|
||||
{
|
||||
d(uniqid(1 . '_', true));
|
||||
return json(['msg' =>create_password(123456, '11d3')]);
|
||||
}
|
||||
|
||||
@ -56,10 +57,4 @@ class IndexController extends BaseApiController
|
||||
return $this->success('ok',$find);
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 获取快递列表
|
||||
*/
|
||||
public function express_list(){
|
||||
return $this->dataLists(new ExpressLists());
|
||||
}
|
||||
}
|
||||
|
@ -3,7 +3,7 @@
|
||||
namespace app\api\controller;
|
||||
|
||||
use app\api\logic\LoginLogic;
|
||||
use app\api\validate\{LoginAccountValidate, RegisterValidate, WebScanLoginValidate, WechatLoginValidate};
|
||||
use app\api\validate\{LoginAccountValidate, WechatLoginValidate};
|
||||
use app\common\model\user\UserAuth;
|
||||
|
||||
class LoginController extends BaseApiController
|
||||
@ -35,7 +35,7 @@ class LoginController extends BaseApiController
|
||||
|
||||
/**
|
||||
* @notes 小程序-登录接口
|
||||
* @return \think\response\Json
|
||||
* @return
|
||||
* @author 段誉
|
||||
* @date 2022/9/20 19:48
|
||||
*/
|
||||
@ -52,7 +52,7 @@ class LoginController extends BaseApiController
|
||||
|
||||
/**
|
||||
* @notes 小程序绑定微信
|
||||
* @return \think\response\Json
|
||||
* @return
|
||||
* @author 段誉
|
||||
* @date 2022/9/20 19:48
|
||||
*/
|
||||
@ -69,7 +69,7 @@ class LoginController extends BaseApiController
|
||||
|
||||
/**
|
||||
* @notes 更新用户头像昵称
|
||||
* @return \think\response\Json
|
||||
* @return
|
||||
* @author 段誉
|
||||
* @date 2023/2/22 11:15
|
||||
*/
|
||||
|
29
app/api/controller/cate/CateController.php
Normal file
29
app/api/controller/cate/CateController.php
Normal file
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\controller\cate;
|
||||
|
||||
|
||||
use app\api\controller\BaseApiController;
|
||||
use app\api\lists\cate\CateLists;
|
||||
|
||||
/**
|
||||
* 商品分类控制器
|
||||
* Class CateController
|
||||
* @package app\admin\controller\goods
|
||||
*/
|
||||
class CateController extends BaseApiController
|
||||
{
|
||||
public $notNeedLogin = ['lists'];
|
||||
/**
|
||||
* @notes 获取商品分类列表
|
||||
* @return
|
||||
* @author likeadmin
|
||||
* @date 2024/04/23 10:27
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
return $this->dataLists(new CateLists());
|
||||
}
|
||||
|
||||
|
||||
}
|
17
app/api/controller/store/StoreController.php
Normal file
17
app/api/controller/store/StoreController.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\controller\store;
|
||||
|
||||
use app\api\lists\store\SystemStoreLists;
|
||||
use app\api\controller\BaseApiController;
|
||||
|
||||
class StoreController extends BaseApiController
|
||||
{
|
||||
|
||||
public function lists()
|
||||
{
|
||||
return $this->dataLists(new SystemStoreLists());
|
||||
}
|
||||
|
||||
|
||||
}
|
97
app/api/controller/user/AddressController.php
Normal file
97
app/api/controller/user/AddressController.php
Normal file
@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\controller\user;
|
||||
|
||||
use app\api\controller\BaseApiController;
|
||||
use app\api\lists\user\UserAddressList;
|
||||
use app\api\logic\user\AddressLogic;
|
||||
use app\api\validate\UserAddressValidate;
|
||||
|
||||
class AddressController extends BaseApiController
|
||||
{
|
||||
public function lists(){
|
||||
return $this->dataLists(new UserAddressList());
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加地址
|
||||
* @return \support\Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$params = (new UserAddressValidate())->post()->goCheck('add');
|
||||
$params['uid'] = $this->request->userId;
|
||||
$res=AddressLogic::add($params);
|
||||
if(AddressLogic::hasError()){
|
||||
return $this->fail(AddressLogic::getError());
|
||||
}else{
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 商户给用户添加地址
|
||||
*/
|
||||
/* public function merchant_create()
|
||||
{
|
||||
$params = $this->request->post();
|
||||
if($params['order_id'] && $params['order_id']!=0){
|
||||
$uid=Cashierclass::where('id',$params['order_id'])->value('uid');
|
||||
if(!$uid || $uid<=0){
|
||||
return $this->fail('订单不存在');
|
||||
}
|
||||
}
|
||||
$params['uid'] = $uid;
|
||||
$res=AddressLogic::add($params);
|
||||
if(AddressLogic::hasError()){
|
||||
return $this->fail(AddressLogic::getError());
|
||||
}else{
|
||||
Cashierclass::where('id',$params['order_id'])->update(['address_id'=>$res,'real_name'=>$params['real_name'],'user_phone'=>$params['phone'],'user_address'=>$params['detail']]);
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
}*/
|
||||
/**
|
||||
* @notes 编辑地址
|
||||
* @return \support\Response
|
||||
* @author likeadmin
|
||||
* @date 2024/4/24 10:37
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$params = (new UserAddressValidate())->post()->goCheck('edit');
|
||||
$params['uid'] = $this->request->userId;
|
||||
if(AddressLogic::edit($params)){
|
||||
return $this->success('编辑成功');
|
||||
}else{
|
||||
return $this->fail(AddressLogic::getError());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除地址
|
||||
* @return \support\Response
|
||||
* @author likeadmin
|
||||
* @date 2024/4/24 10:37
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
$params = (new UserAddressValidate())->post()->goCheck('delete');
|
||||
if(AddressLogic::delete($params)){
|
||||
return $this->success('删除成功');
|
||||
}else{
|
||||
return $this->fail(AddressLogic::getError());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @notes 获取地址详情
|
||||
* @return \support\Response
|
||||
* @author likeadmin
|
||||
* @date 2024/4/24 10:37
|
||||
*/
|
||||
public function detail()
|
||||
{
|
||||
$params = (new UserAddressValidate())->goCheck('detail');
|
||||
return $this->success('获取成功',AddressLogic::detail($params));
|
||||
}
|
||||
}
|
@ -19,7 +19,7 @@ class UserController extends BaseApiController
|
||||
|
||||
/**
|
||||
* @notes 获取小程序手机号
|
||||
* @return \think\response\Json
|
||||
* @return
|
||||
* @author 段誉
|
||||
* @date 2022/9/21 16:46
|
||||
*/
|
||||
|
34
app/api/controller/user/UserFeedbackController.php
Normal file
34
app/api/controller/user/UserFeedbackController.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\controller\user;
|
||||
|
||||
use app\api\lists\user\UserFeedbackLists;
|
||||
use app\api\logic\user\UserFeedbackLogic;
|
||||
use app\admin\validate\user\UserFeedbackValidate;
|
||||
use app\api\controller\BaseApiController;
|
||||
|
||||
class UserFeedbackController extends BaseApiController
|
||||
{
|
||||
|
||||
/**
|
||||
* @notes 获取用户反馈表列表
|
||||
* @return \support\Response
|
||||
* @author likeadmin
|
||||
* @date 2024/05/13 16:56
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
return $this->dataLists(new UserFeedbackLists());
|
||||
}
|
||||
|
||||
|
||||
public function add()
|
||||
{
|
||||
$params = (new UserFeedbackValidate())->post()->goCheck('add');
|
||||
$result = UserFeedbackLogic::add($params,$this->request->userInfo['user_id']);
|
||||
if (true === $result) {
|
||||
return $this->success('添加成功', [], 1, 1);
|
||||
}
|
||||
return $this->fail(UserFeedbackLogic::getError());
|
||||
}
|
||||
}
|
103
app/api/lists/cate/CateLists.php
Normal file
103
app/api/lists/cate/CateLists.php
Normal file
@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\lists\cate;
|
||||
|
||||
|
||||
use app\admin\lists\BaseAdminDataLists;
|
||||
use app\common\model\cate\Cate;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
use app\Request;
|
||||
|
||||
/**
|
||||
* 商品分类列表
|
||||
* Class GoodsclassLists
|
||||
* @package app\admin\listsgoods
|
||||
*/
|
||||
class CateLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
|
||||
protected $where;
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author likeadmin
|
||||
* @date 2024/04/23 10:27
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['pid', 'name', 'data', 'pic', 'sort'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取商品分类列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author likeadmin
|
||||
* @date 2024/04/23 10:27
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
$pid=Request()->get('pid',0);
|
||||
if($pid==0){
|
||||
$lists = Cate::where($this->searchWhere)
|
||||
->where('pid', 0)
|
||||
->where('children','<>',null)
|
||||
->field(['id', 'pid', 'name', 'data', 'pic', 'sort'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['sort' => 'desc','id' => 'desc'])
|
||||
->select()->toArray();
|
||||
}else{
|
||||
$three=Request()->get('three',0);
|
||||
if($three==0){
|
||||
$where[]=['children','<>',''];
|
||||
$this->where=$where;
|
||||
}
|
||||
$lists = Cate::where($this->searchWhere)
|
||||
->where($this->where)
|
||||
->field(['id', 'pid', 'name', 'data', 'pic', 'sort'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['sort' => 'desc','id' => 'desc'])
|
||||
->select()->toArray();
|
||||
}
|
||||
// ->each(function ($item) {
|
||||
// $a = Goodsclass::where('pid', $item['id'])->field(['id', 'pid', 'name', 'data', 'pic', 'sort'])->select();
|
||||
// $item['children'] = $a;
|
||||
// foreach ($a as $k => &$v) {
|
||||
// $b = Goodsclass::where('pid', $v['id'])->field(['id', 'pid', 'name', 'data', 'pic', 'sort'])->select();
|
||||
// $v['children'] = $b;
|
||||
// }
|
||||
// })->toArray();
|
||||
|
||||
return $lists;
|
||||
// return linear_to_tree($lists, 'children');
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取商品分类数量
|
||||
* @return int
|
||||
* @author likeadmin
|
||||
* @date 2024/04/23 10:27
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
$pid=Request()->get('pid',0);
|
||||
if($pid==0){
|
||||
return Cate::where($this->searchWhere)->where('pid', 0)
|
||||
->where('children','<>',null)
|
||||
->count();
|
||||
}else{
|
||||
return Cate::where($this->searchWhere)
|
||||
->where($this->where)
|
||||
->count();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
71
app/api/lists/store/SystemStoreLists.php
Normal file
71
app/api/lists/store/SystemStoreLists.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\lists\store;
|
||||
|
||||
|
||||
use app\admin\lists\BaseAdminDataLists;
|
||||
use app\common\enum\YesNoEnum;
|
||||
use app\common\model\system_store\SystemStore;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
|
||||
|
||||
/**
|
||||
* 门店列表列表
|
||||
* Class SystemStoreLists
|
||||
* @package app\admin\listssystem_store
|
||||
*/
|
||||
class SystemStoreLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['phone'],
|
||||
'%like%' => ['name'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店列表列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
$where[]=['is_show','=',YesNoEnum::YES];
|
||||
return SystemStore::where($this->searchWhere)->where($where)
|
||||
->field(['id', 'name', 'phone', 'detailed_address', 'image', 'is_show',
|
||||
'day_time','is_store','latitude','longitude'
|
||||
])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取门店列表数量
|
||||
* @return int
|
||||
* @author admin
|
||||
* @date 2024/05/31 17:45
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
$where[]=['is_show','=',YesNoEnum::YES];
|
||||
return SystemStore::where($this->searchWhere)->where($where)->count();
|
||||
}
|
||||
|
||||
}
|
63
app/api/lists/user/UserAddressList.php
Normal file
63
app/api/lists/user/UserAddressList.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\lists\user;
|
||||
|
||||
|
||||
use app\admin\lists\BaseAdminDataLists;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
use app\common\model\user\UserAddress;
|
||||
|
||||
/**
|
||||
* 地址列表
|
||||
* Class OpurchaseclassLists
|
||||
* @package app\api\operation
|
||||
*/
|
||||
class UserAddressList extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author likeadmin
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取地址列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @date 2024/04/27 11:26
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
$user_id=$this->request->userId;
|
||||
if(!$user_id) return [];
|
||||
return UserAddress::where($this->searchWhere)->where('uid',$user_id)
|
||||
->field('address_id,real_name,detail,phone,is_default')
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['address_id' => 'desc'])
|
||||
->select()
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取地址数量
|
||||
* @return int
|
||||
* @date 2024/04/27 11:26
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
$user_id=$this->request->userId;
|
||||
return UserAddress::where($this->searchWhere)->where('uid',$user_id)->count();
|
||||
}
|
||||
|
||||
}
|
64
app/api/lists/user/UserFeedbackLists.php
Normal file
64
app/api/lists/user/UserFeedbackLists.php
Normal file
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\lists\user;
|
||||
|
||||
use app\admin\lists\BaseAdminDataLists;
|
||||
use app\common\lists\ListsSearchInterface;
|
||||
use app\common\model\user\User;
|
||||
use app\common\model\user\UserFeedback;
|
||||
|
||||
class UserFeedbackLists extends BaseAdminDataLists implements ListsSearchInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 设置搜索条件
|
||||
* @return \string[][]
|
||||
* @author likeadmin
|
||||
* @date 2024/05/13 16:56
|
||||
*/
|
||||
public function setSearch(): array
|
||||
{
|
||||
return [
|
||||
'=' => ['uid'],
|
||||
'%like%' => ['name', 'contact'],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取用户反馈表列表
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @author likeadmin
|
||||
* @date 2024/05/13 16:56
|
||||
*/
|
||||
public function lists(): array
|
||||
{
|
||||
$uid = $this->request->userInfo['user_id'];
|
||||
return UserFeedback::where($this->searchWhere)->where('uid',$uid)
|
||||
->field(['id', 'uid', 'content', 'images', 'name', 'contact','create_time'])
|
||||
->limit($this->limitOffset, $this->limitLength)
|
||||
->order(['id' => 'desc'])
|
||||
->select()->each(function($data){
|
||||
$user = User::field('nickname')->where('id',$data['uid'])->findOrEmpty();
|
||||
$data['user_name'] = !$user->isEmpty() ? $user['nickname'] : '';
|
||||
})
|
||||
->toArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取用户反馈表数量
|
||||
* @return int
|
||||
* @author likeadmin
|
||||
* @date 2024/05/13 16:56
|
||||
*/
|
||||
public function count(): int
|
||||
{
|
||||
return UserFeedback::where($this->searchWhere)->count();
|
||||
}
|
||||
|
||||
}
|
@ -16,6 +16,7 @@ namespace app\api\logic;
|
||||
|
||||
use app\common\cache\WebScanLoginCache;
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\system_store\SystemStoreStaff;
|
||||
use app\api\service\{UserTokenService, WechatUserService};
|
||||
use app\common\enum\{LoginEnum, user\UserTerminalEnum, YesNoEnum};
|
||||
use app\common\service\{
|
||||
@ -229,6 +230,16 @@ class LoginLogic extends BaseLogic
|
||||
|
||||
// 更新登录信息
|
||||
self::updateLoginInfo($userInfo['id']);
|
||||
//判断是不是员工
|
||||
$userInfo['is_staff'] = 0;
|
||||
$userInfo['store_id'] = 0;
|
||||
if($userInfo['mobile']){
|
||||
$check = SystemStoreStaff::where('phone',$userInfo['mobile'])->find()??[];
|
||||
if ($check){
|
||||
$userInfo['is_staff'] = 1;
|
||||
$userInfo['store_id'] = $check['store_id'];
|
||||
}
|
||||
}
|
||||
|
||||
Db::commit();
|
||||
return $userInfo;
|
||||
|
106
app/api/logic/user/AddressLogic.php
Normal file
106
app/api/logic/user/AddressLogic.php
Normal file
@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\logic\user;
|
||||
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\user\UserAddress;
|
||||
use think\facade\Db;
|
||||
|
||||
/**
|
||||
* 地址逻辑
|
||||
* Class OrderLogic
|
||||
* @package app\api\logic\order
|
||||
*/
|
||||
class AddressLogic extends BaseLogic
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加地址表
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author likeadmin
|
||||
* @date 2024/04/24 10:37
|
||||
*/
|
||||
public static function add(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
if(isset($params['is_default'])&&$params['is_default']==1){
|
||||
UserAddress::where('uid',$params['uid'])->update(['is_default'=>0]);
|
||||
}else{
|
||||
$params['is_default']=1;
|
||||
}
|
||||
$id=UserAddress::insertGetId([
|
||||
'uid' => $params['uid'],
|
||||
'real_name' => $params['real_name'],
|
||||
'phone' => $params['phone'],
|
||||
'detail' => $params['detail'],
|
||||
'is_default' => $params['is_default'],
|
||||
]);
|
||||
Db::commit();
|
||||
return $id;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑地址表
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author likeadmin
|
||||
* @date 2024/04/24 10:37
|
||||
*/
|
||||
public static function edit(array $params): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
if($params['is_default']==1){
|
||||
UserAddress::where('uid',$params['uid'])->update(['is_default'=>0]);
|
||||
}
|
||||
$data = [
|
||||
'real_name' => $params['real_name'],
|
||||
'phone' => $params['phone'],
|
||||
'detail' => $params['detail'],
|
||||
'is_default' => $params['is_default'],
|
||||
];
|
||||
UserAddress::where('uid', $params['uid'])->where('address_id', $params['address_id'])->update($data);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除地址表
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author likeadmin
|
||||
* @date 2024/04/24 10:37
|
||||
*/
|
||||
public static function delete(array $params): bool
|
||||
{
|
||||
return UserAddress::destroy($params['address_id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 获取购物车表详情
|
||||
* @param $params
|
||||
* @return array
|
||||
* @author likeadmin
|
||||
* @date 2024/04/24 10:37
|
||||
*/
|
||||
public static function detail($params): array
|
||||
{
|
||||
return UserAddress::field('address_id,real_name,phone,detail,is_default')->findOrEmpty($params['address_id'])->toArray();
|
||||
}
|
||||
}
|
38
app/api/logic/user/UserFeedbackLogic.php
Normal file
38
app/api/logic/user/UserFeedbackLogic.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\logic\user;
|
||||
|
||||
use app\common\logic\BaseLogic;
|
||||
use app\common\model\user\UserFeedback;
|
||||
use think\facade\Db;
|
||||
|
||||
class UserFeedbackLogic extends BaseLogic
|
||||
{
|
||||
/**
|
||||
* @notes 添加用户反馈表
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @author likeadmin
|
||||
* @date 2024/05/13 16:56
|
||||
*/
|
||||
public static function add(array $params,$uid): bool
|
||||
{
|
||||
Db::startTrans();
|
||||
try {
|
||||
UserFeedback::create([
|
||||
'uid' => $uid,
|
||||
'content' => $params['content'],
|
||||
'images' => $params['images'] ? json_encode($params['images']) : null,
|
||||
'name' => $params['name'],
|
||||
'contact' => $params['contact'],
|
||||
'create_time' => time(),
|
||||
]);
|
||||
Db::commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
59
app/api/logic/user/UserLogic.php
Normal file
59
app/api/logic/user/UserLogic.php
Normal file
@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\logic\user;
|
||||
|
||||
|
||||
use app\common\{
|
||||
logic\BaseLogic,
|
||||
model\user\User,
|
||||
service\wechat\WeChatMnpService};
|
||||
|
||||
/**
|
||||
* 会员逻辑层
|
||||
* Class UserLogic
|
||||
* @package app\shopapi\logic
|
||||
*/
|
||||
class UserLogic extends BaseLogic
|
||||
{
|
||||
|
||||
/**
|
||||
* @notes 获取小程序手机号
|
||||
* @param array $params
|
||||
* @return bool
|
||||
* @throws \Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface
|
||||
* @author 段誉
|
||||
* @date 2023/2/27 11:49
|
||||
*/
|
||||
public static function getMobileByMnp(array $params)
|
||||
{
|
||||
try {
|
||||
$response = (new WeChatMnpService())->getUserPhoneNumber($params['code']);
|
||||
$phoneNumber = $response['phone_info']['purePhoneNumber'] ?? '';
|
||||
if (empty($phoneNumber)) {
|
||||
throw new \Exception('获取手机号码失败');
|
||||
}
|
||||
|
||||
$user = User::where([
|
||||
['mobile', '=', $phoneNumber],
|
||||
['id', '<>', $params['user_id']]
|
||||
])->findOrEmpty();
|
||||
|
||||
if (!$user->isEmpty()) {
|
||||
throw new \Exception('手机号已被其他账号绑定');
|
||||
}
|
||||
|
||||
// 绑定手机号
|
||||
User::update([
|
||||
'id' => $params['user_id'],
|
||||
'mobile' => $phoneNumber
|
||||
]);
|
||||
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
self::setError($e->getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
54
app/api/validate/PayValidate.php
Normal file
54
app/api/validate/PayValidate.php
Normal file
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
namespace app\api\validate;
|
||||
|
||||
use app\common\enum\PayEnum;
|
||||
use app\common\validate\BaseValidate;
|
||||
|
||||
/**
|
||||
* 支付验证
|
||||
* Class PayValidate
|
||||
* @package app\api\validate
|
||||
*/
|
||||
class PayValidate extends BaseValidate
|
||||
{
|
||||
protected $rule = [
|
||||
'from' => 'require',
|
||||
'pay_way' => 'require|in:' . PayEnum::BALANCE_PAY . ',' . PayEnum::WECHAT_PAY . ',' . PayEnum::ALIPAY,
|
||||
'order_id' => 'require'
|
||||
];
|
||||
|
||||
|
||||
protected $message = [
|
||||
'from.require' => '参数缺失',
|
||||
'pay_way.require' => '支付方式参数缺失',
|
||||
'pay_way.in' => '支付方式参数错误',
|
||||
'order_id.require' => '订单参数缺失'
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* @notes 支付方式场景
|
||||
* @return PayValidate
|
||||
* @author 段誉
|
||||
* @date 2023/2/24 17:43
|
||||
*/
|
||||
public function scenePayway()
|
||||
{
|
||||
return $this->only(['from', 'order_id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 支付状态
|
||||
* @return PayValidate
|
||||
* @author 段誉
|
||||
* @date 2023/3/1 16:17
|
||||
*/
|
||||
public function sceneStatus()
|
||||
{
|
||||
return $this->only(['from', 'order_id']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
93
app/api/validate/UserAddressValidate.php
Normal file
93
app/api/validate/UserAddressValidate.php
Normal file
@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
namespace app\api\validate;
|
||||
|
||||
|
||||
use app\common\validate\BaseValidate;
|
||||
|
||||
|
||||
/**
|
||||
* UserAddress验证器
|
||||
* Class UserAddressValidate
|
||||
* @package app\admin\validate
|
||||
*/
|
||||
class UserAddressValidate extends BaseValidate
|
||||
{
|
||||
|
||||
/**
|
||||
* 设置校验规则
|
||||
* @var string[]
|
||||
*/
|
||||
protected $rule = [
|
||||
'real_name' => 'require',
|
||||
'phone' => 'require',
|
||||
'detail' => 'require',
|
||||
'address_id' => 'require',
|
||||
"is_default"=>"require|in:0,1"
|
||||
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* 参数描述
|
||||
* @var string[]
|
||||
*/
|
||||
protected $field = [
|
||||
|
||||
'real_name' => '收货人姓名',
|
||||
'phone' => '收货人电话',
|
||||
'detail' => '收货人详细地址',
|
||||
'address_id' => '地址id',
|
||||
"is_default"=>"默认地址"
|
||||
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* @notes 添加场景
|
||||
* @return UserAddressValidate
|
||||
* @author likeadmin
|
||||
* @date 2024/04/28 17:28
|
||||
*/
|
||||
public function sceneAdd()
|
||||
{
|
||||
return $this->only(['real_name','phone','detail']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 编辑场景
|
||||
* @return UserAddressValidate
|
||||
* @author likeadmin
|
||||
* @date 2024/04/28 17:28
|
||||
*/
|
||||
public function sceneEdit()
|
||||
{
|
||||
return $this->only(['real_name','phone','detail','address_id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 删除场景
|
||||
* @return UserAddressValidate
|
||||
* @author likeadmin
|
||||
* @date 2024/04/28 17:28
|
||||
*/
|
||||
public function sceneDelete()
|
||||
{
|
||||
return $this->only(['address_id']);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @notes 详情场景
|
||||
* @return UserAddressValidate
|
||||
* @author likeadmin
|
||||
* @date 2024/04/28 17:28
|
||||
*/
|
||||
public function sceneDetail()
|
||||
{
|
||||
return $this->only(['address_id']);
|
||||
}
|
||||
|
||||
}
|
29
app/common/model/cate/Cate.php
Normal file
29
app/common/model/cate/Cate.php
Normal file
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\cate;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
|
||||
/**
|
||||
* 商品分类模型
|
||||
* Class Goodsclass
|
||||
* @package app\common\model\goods
|
||||
*/
|
||||
class Cate extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $name = 'store_category';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
public function getChildrenAttr($value)
|
||||
{
|
||||
if($value){
|
||||
return json_decode($value, true);
|
||||
}else{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
27
app/common/model/merchant/Merchant.php
Normal file
27
app/common/model/merchant/Merchant.php
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\merchant;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use app\common\model\user\User;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
|
||||
/**
|
||||
* 商户列表模型
|
||||
* Class Merchant
|
||||
* @package app\common\model\merchant
|
||||
*/
|
||||
class Merchant extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $ok = 'mer_id';
|
||||
protected $name = 'merchant';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
public function realName()
|
||||
{
|
||||
return $this->hasOne(User::class,'id','uid')->bind(['mer_real_name'=>'real_name']);
|
||||
}
|
||||
}
|
22
app/common/model/store_branch_product/StoreBranchProduct.php
Normal file
22
app/common/model/store_branch_product/StoreBranchProduct.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\store_branch_product;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
|
||||
/**
|
||||
* 门店商品属性值辅助表模型
|
||||
* Class StoreBranchProduct
|
||||
* @package app\common\model\store_branch_product
|
||||
*/
|
||||
class StoreBranchProduct extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $name = 'store_branch_product';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\store_branch_product_attr_value;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
|
||||
/**
|
||||
* 门店商品辅助表模型
|
||||
* Class StoreBranchProduct
|
||||
* @package app\common\model\store_branch_product_attr_value
|
||||
*/
|
||||
class StoreBranchProductAttrValue extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $name = 'store_branch_product_attr_value';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
|
||||
}
|
22
app/common/model/store_extract/StoreExtract.php
Normal file
22
app/common/model/store_extract/StoreExtract.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\store_extract;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
|
||||
/**
|
||||
* 门店提现模型
|
||||
* Class StoreExtract
|
||||
* @package app\common\model\store_extract
|
||||
*/
|
||||
class StoreExtract extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $name = 'store_extract';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
|
||||
}
|
22
app/common/model/store_finance_flow/StoreFinanceFlow.php
Normal file
22
app/common/model/store_finance_flow/StoreFinanceFlow.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\store_finance_flow;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
|
||||
/**
|
||||
* 门店流水模型
|
||||
* Class StoreFinanceFlow
|
||||
* @package app\common\model\store_finance_flow
|
||||
*/
|
||||
class StoreFinanceFlow extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $name = 'store_finance_flow';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
|
||||
}
|
22
app/common/model/system_store/SystemStore.php
Normal file
22
app/common/model/system_store/SystemStore.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\system_store;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
|
||||
/**
|
||||
* 门店列表模型
|
||||
* Class SystemStore
|
||||
* @package app\common\model\system_store
|
||||
*/
|
||||
class SystemStore extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $name = 'system_store';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
|
||||
}
|
22
app/common/model/system_store/SystemStoreStaff.php
Normal file
22
app/common/model/system_store/SystemStoreStaff.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\system_store;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
|
||||
/**
|
||||
* 门店列表模型
|
||||
* Class SystemStore
|
||||
* @package app\common\model\system_store
|
||||
*/
|
||||
class SystemStoreStaff extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $name = 'system_store_staff';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
|
||||
}
|
22
app/common/model/system_store_storage/SystemStoreStorage.php
Normal file
22
app/common/model/system_store_storage/SystemStoreStorage.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\system_store_storage;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
|
||||
/**
|
||||
* 门店入库模型
|
||||
* Class SystemStoreStorage
|
||||
* @package app\common\model\system_store_storage
|
||||
*/
|
||||
class SystemStoreStorage extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $name = 'system_store_storage';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
|
||||
}
|
22
app/common/model/user/UserAddress.php
Normal file
22
app/common/model/user/UserAddress.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace app\common\model\user;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
/**
|
||||
* 用户地址表
|
||||
* Class UserAddress
|
||||
* @package app\common\model
|
||||
*/
|
||||
class UserAddress extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $pk = 'address_id';
|
||||
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
}
|
22
app/common/model/user_bill/UserBill.php
Normal file
22
app/common/model/user_bill/UserBill.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model\user_bill;
|
||||
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\model\concern\SoftDelete;
|
||||
|
||||
|
||||
/**
|
||||
* 资金记录模型
|
||||
* Class UserBill
|
||||
* @package app\common\model\user_bill
|
||||
*/
|
||||
class UserBill extends BaseModel
|
||||
{
|
||||
use SoftDelete;
|
||||
protected $name = 'user_bill';
|
||||
protected $deleteTime = 'delete_time';
|
||||
|
||||
|
||||
}
|
34
app/queue/redis/CopyProductSend.php
Normal file
34
app/queue/redis/CopyProductSend.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
namespace app\queue\redis;
|
||||
|
||||
use app\admin\logic\store_product\StoreProductLogic;
|
||||
use Webman\RedisQueue\Consumer;
|
||||
use support\Log;
|
||||
|
||||
/**
|
||||
* 复制商品
|
||||
*/
|
||||
class CopyProductSend implements Consumer
|
||||
{
|
||||
// 要消费的队列名
|
||||
public $queue = 'copy-product';
|
||||
|
||||
// 连接名,对应 plugin/webman/redis-queue/redis.php 里的连接`
|
||||
public $connection = 'default';
|
||||
|
||||
// 消费
|
||||
public function consume($data)
|
||||
{
|
||||
$store_arr=$data['store_arr'];
|
||||
foreach ($store_arr as $key => $id) {
|
||||
StoreProductLogic::copy($data['product_id'],$id);
|
||||
}
|
||||
}
|
||||
public function onConsumeFailure(\Throwable $e, $package)
|
||||
{
|
||||
$package['max_attempts']=0;
|
||||
Log::error('复制商品失败product_id:'.$package['data']['product_id']);
|
||||
return $package;
|
||||
}
|
||||
}
|
43
config/pay/ali/alipayCertPublicKey_RSA2.crt
Normal file
43
config/pay/ali/alipayCertPublicKey_RSA2.crt
Normal file
@ -0,0 +1,43 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDsjCCApqgAwIBAgIQICQFJaxJICk3sZeM5O23ADANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
|
||||
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
|
||||
aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
|
||||
YXNzIDIgUjEwHhcNMjQwNTI1MDIxNjQ1WhcNMjkwNTI0MDIxNjQ1WjCBkjELMAkGA1UEBhMCQ04x
|
||||
LTArBgNVBAoMJOazuOW3numHjOa1t+WGnOS4muenkeaKgOaciemZkOWFrOWPuDEPMA0GA1UECwwG
|
||||
QWxpcGF5MUMwQQYDVQQDDDrmlK/ku5jlrp0o5Lit5Zu9Kee9kee7nOaKgOacr+aciemZkOWFrOWP
|
||||
uC0yMDg4ODQxMTE4NTE0OTc5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3/qWQWp
|
||||
PJAveD3AJaI6ZZ2z+voaUyRJPWLayo35zp57nrN+OepF+7bLpmlNJ2ybfLwgUS4GN4pnlLLh8OkL
|
||||
gbZ4rCvR6CXsiGi6gKdZSRjdIi6SY8e7MhZu0/YuwD3X4Q3PYRQ6oa5OQ3V7BA6niq1sRKt3uZJ2
|
||||
GNT3VcvFd+ByLVTFF7loNzTpR+zuqegmXd/7oGHYC/jo0Pl7G3Cn0I0Tn9rCxCZg9Xd1vxNpRZfL
|
||||
lPs68gFJtuzUMV+nVXydtbv6/0CzrBr0tt46YqftO70Nzwy7cBjsmFWs818NGknVdp0gOTt8xrcR
|
||||
yapObuRFYouVxEwgqbLRZpYt4bnO1QIDAQABoxIwEDAOBgNVHQ8BAf8EBAMCA/gwDQYJKoZIhvcN
|
||||
AQELBQADggEBAJ4CTf9OvSubXjxUvgJU4miaAH9sr5AwZO3YOKKS33hAwd7GHNT9l7MdMPmkWSFJ
|
||||
0GLJcRW6FnXaHRMYOWSULNIk/0V1iCiRgg2VQSLC4tawLJLo1vQEKLmtduQQthmItP5WX+GH+bAI
|
||||
Ccd8Y36zuYeXS/4c16QGdlzWKxgUUYc426XfhMoMw1cPl7LYDI4UQHmHD6McS3S5AcFhKXi6JjaF
|
||||
GT2+qIr6Mb/+YuaCRmtB1XztYeppMxPRf6GC15prkIx+QDSFtxPaxV4Y66Sxwbv5a3dGGJhh8iur
|
||||
K4Ij09XODyZpglRcQ8bijxReVf/jONbLNRm2dehh6Frsfzofyuc=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE4jCCAsqgAwIBAgIIYsSr5bKAMl8wDQYJKoZIhvcNAQELBQAwejELMAkGA1UEBhMCQ04xFjAU
|
||||
BgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEw
|
||||
LwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMy
|
||||
MjE0MzQxNVoXDTM3MTEyNjE0MzQxNVowgYIxCzAJBgNVBAYTAkNOMRYwFAYDVQQKDA1BbnQgRmlu
|
||||
YW5jaWFsMSAwHgYDVQQLDBdDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTE5MDcGA1UEAwwwQW50IEZp
|
||||
bmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBDbGFzcyAyIFIxMIIBIjANBgkqhkiG9w0B
|
||||
AQEFAAOCAQ8AMIIBCgKCAQEAsLMfYaoRoPRbmDcAfXPCmKf43pWRN5yTXa/KJWO0l+mrgQvs89bA
|
||||
NEvbDUxlkGwycwtwi5DgBuBgVhLliXu+R9CYgr2dXs8D8Hx/gsggDcyGPLmVrDOnL+dyeauheARZ
|
||||
fA3du60fwEwwbGcVIpIxPa/4n3IS/ElxQa6DNgqxh8J9Xwh7qMGl0JK9+bALuxf7B541Gr4p0WEN
|
||||
G8fhgjBV4w4ut9eQLOoa1eddOUSZcy46Z7allwowwgt7b5VFfx/P1iKJ3LzBMgkCK7GZ2kiLrL7R
|
||||
iqV+h482J7hkJD+ardoc6LnrHO/hIZymDxok+VH9fVeUdQa29IZKrIDVj65THQIDAQABo2MwYTAf
|
||||
BgNVHSMEGDAWgBRfdLQEwE8HWurlsdsio4dBspzhATAdBgNVHQ4EFgQUSqHkYINtUSAtDPnS8Xoy
|
||||
oP9p7qEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIB
|
||||
AIQ8TzFy4bVIVb8+WhHKCkKNPcJe2EZuIcqvRoi727lZTJOfYy/JzLtckyZYfEI8J0lasZ29wkTt
|
||||
a1IjSo+a6XdhudU4ONVBrL70U8Kzntplw/6TBNbLFpp7taRALjUgbCOk4EoBMbeCL0GiYYsTS0mw
|
||||
7xdySzmGQku4GTyqutIGPQwKxSj9iSFw1FCZqr4VP4tyXzMUgc52SzagA6i7AyLedd3tbS6lnR5B
|
||||
L+W9Kx9hwT8L7WANAxQzv/jGldeuSLN8bsTxlOYlsdjmIGu/C9OWblPYGpjQQIRyvs4Cc/mNhrh+
|
||||
14EQgwuemIIFDLOgcD+iISoN8CqegelNcJndFw1PDN6LkVoiHz9p7jzsge8RKay/QW6C03KNDpWZ
|
||||
EUCgCUdfHfo8xKeR+LL1cfn24HKJmZt8L/aeRZwZ1jwePXFRVtiXELvgJuM/tJDIFj2KD337iV64
|
||||
fWcKQ/ydDVGqfDZAdcU4hQdsrPWENwPTQPfVPq2NNLMyIH9+WKx9Ed6/WzeZmIy5ZWpX1TtTolo6
|
||||
OJXQFeItMAjHxW/ZSZTok5IS3FuRhExturaInnzjYpx50a6kS34c5+c8hYq7sAtZ/CNLZmBnBCFD
|
||||
aMQqT8xFZJ5uolUaSeXxg7JFY1QsYp5RKvj4SjFwCGKJ2+hPPe9UyyltxOidNtxjaknOCeBHytOr
|
||||
-----END CERTIFICATE-----
|
88
config/pay/ali/alipayRootCert.crt
Normal file
88
config/pay/ali/alipayRootCert.crt
Normal file
@ -0,0 +1,88 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIBszCCAVegAwIBAgIIaeL+wBcKxnswDAYIKoEcz1UBg3UFADAuMQswCQYDVQQG
|
||||
EwJDTjEOMAwGA1UECgwFTlJDQUMxDzANBgNVBAMMBlJPT1RDQTAeFw0xMjA3MTQw
|
||||
MzExNTlaFw00MjA3MDcwMzExNTlaMC4xCzAJBgNVBAYTAkNOMQ4wDAYDVQQKDAVO
|
||||
UkNBQzEPMA0GA1UEAwwGUk9PVENBMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAE
|
||||
MPCca6pmgcchsTf2UnBeL9rtp4nw+itk1Kzrmbnqo05lUwkwlWK+4OIrtFdAqnRT
|
||||
V7Q9v1htkv42TsIutzd126NdMFswHwYDVR0jBBgwFoAUTDKxl9kzG8SmBcHG5Yti
|
||||
W/CXdlgwDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFEwysZfZ
|
||||
MxvEpgXBxuWLYlvwl3ZYMAwGCCqBHM9VAYN1BQADSAAwRQIgG1bSLeOXp3oB8H7b
|
||||
53W+CKOPl2PknmWEq/lMhtn25HkCIQDaHDgWxWFtnCrBjH16/W3Ezn7/U/Vjo5xI
|
||||
pDoiVhsLwg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF0zCCA7ugAwIBAgIIH8+hjWpIDREwDQYJKoZIhvcNAQELBQAwejELMAkGA1UE
|
||||
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmlj
|
||||
YXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5jaWFsIENlcnRpZmlj
|
||||
YXRpb24gQXV0aG9yaXR5IFIxMB4XDTE4MDMyMTEzNDg0MFoXDTM4MDIyODEzNDg0
|
||||
MFowejELMAkGA1UEBhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNV
|
||||
BAsMF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MTEwLwYDVQQDDChBbnQgRmluYW5j
|
||||
aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFIxMIICIjANBgkqhkiG9w0BAQEF
|
||||
AAOCAg8AMIICCgKCAgEAtytTRcBNuur5h8xuxnlKJetT65cHGemGi8oD+beHFPTk
|
||||
rUTlFt9Xn7fAVGo6QSsPb9uGLpUFGEdGmbsQ2q9cV4P89qkH04VzIPwT7AywJdt2
|
||||
xAvMs+MgHFJzOYfL1QkdOOVO7NwKxH8IvlQgFabWomWk2Ei9WfUyxFjVO1LVh0Bp
|
||||
dRBeWLMkdudx0tl3+21t1apnReFNQ5nfX29xeSxIhesaMHDZFViO/DXDNW2BcTs6
|
||||
vSWKyJ4YIIIzStumD8K1xMsoaZBMDxg4itjWFaKRgNuPiIn4kjDY3kC66Sl/6yTl
|
||||
YUz8AybbEsICZzssdZh7jcNb1VRfk79lgAprm/Ktl+mgrU1gaMGP1OE25JCbqli1
|
||||
Pbw/BpPynyP9+XulE+2mxFwTYhKAwpDIDKuYsFUXuo8t261pCovI1CXFzAQM2w7H
|
||||
DtA2nOXSW6q0jGDJ5+WauH+K8ZSvA6x4sFo4u0KNCx0ROTBpLif6GTngqo3sj+98
|
||||
SZiMNLFMQoQkjkdN5Q5g9N6CFZPVZ6QpO0JcIc7S1le/g9z5iBKnifrKxy0TQjtG
|
||||
PsDwc8ubPnRm/F82RReCoyNyx63indpgFfhN7+KxUIQ9cOwwTvemmor0A+ZQamRe
|
||||
9LMuiEfEaWUDK+6O0Gl8lO571uI5onYdN1VIgOmwFbe+D8TcuzVjIZ/zvHrAGUcC
|
||||
AwEAAaNdMFswCwYDVR0PBAQDAgEGMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFF90
|
||||
tATATwda6uWx2yKjh0GynOEBMB8GA1UdIwQYMBaAFF90tATATwda6uWx2yKjh0Gy
|
||||
nOEBMA0GCSqGSIb3DQEBCwUAA4ICAQCVYaOtqOLIpsrEikE5lb+UARNSFJg6tpkf
|
||||
tJ2U8QF/DejemEHx5IClQu6ajxjtu0Aie4/3UnIXop8nH/Q57l+Wyt9T7N2WPiNq
|
||||
JSlYKYbJpPF8LXbuKYG3BTFTdOVFIeRe2NUyYh/xs6bXGr4WKTXb3qBmzR02FSy3
|
||||
IODQw5Q6zpXj8prYqFHYsOvGCEc1CwJaSaYwRhTkFedJUxiyhyB5GQwoFfExCVHW
|
||||
05ZFCAVYFldCJvUzfzrWubN6wX0DD2dwultgmldOn/W/n8at52mpPNvIdbZb2F41
|
||||
T0YZeoWnCJrYXjq/32oc1cmifIHqySnyMnavi75DxPCdZsCOpSAT4j4lAQRGsfgI
|
||||
kkLPGQieMfNNkMCKh7qjwdXAVtdqhf0RVtFILH3OyEodlk1HYXqX5iE5wlaKzDop
|
||||
PKwf2Q3BErq1xChYGGVS+dEvyXc/2nIBlt7uLWKp4XFjqekKbaGaLJdjYP5b2s7N
|
||||
1dM0MXQ/f8XoXKBkJNzEiM3hfsU6DOREgMc1DIsFKxfuMwX3EkVQM1If8ghb6x5Y
|
||||
jXayv+NLbidOSzk4vl5QwngO/JYFMkoc6i9LNwEaEtR9PhnrdubxmrtM+RjfBm02
|
||||
77q3dSWFESFQ4QxYWew4pHE0DpWbWy/iMIKQ6UZ5RLvB8GEcgt8ON7BBJeMc+Dyi
|
||||
kT9qhqn+lw==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICiDCCAgygAwIBAgIIQX76UsB/30owDAYIKoZIzj0EAwMFADB6MQswCQYDVQQG
|
||||
EwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UECwwXQ2VydGlmaWNh
|
||||
dGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNpYWwgQ2VydGlmaWNh
|
||||
dGlvbiBBdXRob3JpdHkgRTEwHhcNMTkwNDI4MTYyMDQ0WhcNNDkwNDIwMTYyMDQ0
|
||||
WjB6MQswCQYDVQQGEwJDTjEWMBQGA1UECgwNQW50IEZpbmFuY2lhbDEgMB4GA1UE
|
||||
CwwXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxMTAvBgNVBAMMKEFudCBGaW5hbmNp
|
||||
YWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRTEwdjAQBgcqhkjOPQIBBgUrgQQA
|
||||
IgNiAASCCRa94QI0vR5Up9Yr9HEupz6hSoyjySYqo7v837KnmjveUIUNiuC9pWAU
|
||||
WP3jwLX3HkzeiNdeg22a0IZPoSUCpasufiLAnfXh6NInLiWBrjLJXDSGaY7vaokt
|
||||
rpZvAdmjXTBbMAsGA1UdDwQEAwIBBjAMBgNVHRMEBTADAQH/MB0GA1UdDgQWBBRZ
|
||||
4ZTgDpksHL2qcpkFkxD2zVd16TAfBgNVHSMEGDAWgBRZ4ZTgDpksHL2qcpkFkxD2
|
||||
zVd16TAMBggqhkjOPQQDAwUAA2gAMGUCMQD4IoqT2hTUn0jt7oXLdMJ8q4vLp6sg
|
||||
wHfPiOr9gxreb+e6Oidwd2LDnC4OUqCWiF8CMAzwKs4SnDJYcMLf2vpkbuVE4dTH
|
||||
Rglz+HGcTLWsFs4KxLsq7MuU+vJTBUeDJeDjdA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDxTCCAq2gAwIBAgIUEMdk6dVgOEIS2cCP0Q43P90Ps5YwDQYJKoZIhvcNAQEF
|
||||
BQAwajELMAkGA1UEBhMCQ04xEzARBgNVBAoMCmlUcnVzQ2hpbmExHDAaBgNVBAsM
|
||||
E0NoaW5hIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMMH2lUcnVzQ2hpbmEgQ2xhc3Mg
|
||||
MiBSb290IENBIC0gRzMwHhcNMTMwNDE4MDkzNjU2WhcNMzMwNDE4MDkzNjU2WjBq
|
||||
MQswCQYDVQQGEwJDTjETMBEGA1UECgwKaVRydXNDaGluYTEcMBoGA1UECwwTQ2hp
|
||||
bmEgVHJ1c3QgTmV0d29yazEoMCYGA1UEAwwfaVRydXNDaGluYSBDbGFzcyAyIFJv
|
||||
b3QgQ0EgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPPShpV
|
||||
nJbMqqCw6Bz1kehnoPst9pkr0V9idOwU2oyS47/HjJXk9Rd5a9xfwkPO88trUpz5
|
||||
4GmmwspDXjVFu9L0eFaRuH3KMha1Ak01citbF7cQLJlS7XI+tpkTGHEY5pt3EsQg
|
||||
wykfZl/A1jrnSkspMS997r2Gim54cwz+mTMgDRhZsKK/lbOeBPpWtcFizjXYCqhw
|
||||
WktvQfZBYi6o4sHCshnOswi4yV1p+LuFcQ2ciYdWvULh1eZhLxHbGXyznYHi0dGN
|
||||
z+I9H8aXxqAQfHVhbdHNzi77hCxFjOy+hHrGsyzjrd2swVQ2iUWP8BfEQqGLqM1g
|
||||
KgWKYfcTGdbPB1MCAwEAAaNjMGEwHQYDVR0OBBYEFG/oAMxTVe7y0+408CTAK8hA
|
||||
uTyRMB8GA1UdIwQYMBaAFG/oAMxTVe7y0+408CTAK8hAuTyRMA8GA1UdEwEB/wQF
|
||||
MAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBLnUTfW7hp
|
||||
emMbuUGCk7RBswzOT83bDM6824EkUnf+X0iKS95SUNGeeSWK2o/3ALJo5hi7GZr3
|
||||
U8eLaWAcYizfO99UXMRBPw5PRR+gXGEronGUugLpxsjuynoLQu8GQAeysSXKbN1I
|
||||
UugDo9u8igJORYA+5ms0s5sCUySqbQ2R5z/GoceyI9LdxIVa1RjVX8pYOj8JFwtn
|
||||
DJN3ftSFvNMYwRuILKuqUYSHc2GPYiHVflDh5nDymCMOQFcFG3WsEuB+EYQPFgIU
|
||||
1DHmdZcz7Llx8UOZXX2JupWCYzK1XhJb+r4hK5ncf/w8qGtYlmyJpxk3hr1TfUJX
|
||||
Yf4Zr0fJsGuv
|
||||
-----END CERTIFICATE-----
|
23
config/pay/ali/appCertPublicKey_2021004146699603.crt
Normal file
23
config/pay/ali/appCertPublicKey_2021004146699603.crt
Normal file
@ -0,0 +1,23 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEoDCCA4igAwIBAgIQICQFJYrgve0jW7XDuTjfnzANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UE
|
||||
BhMCQ04xFjAUBgNVBAoMDUFudCBGaW5hbmNpYWwxIDAeBgNVBAsMF0NlcnRpZmljYXRpb24gQXV0
|
||||
aG9yaXR5MTkwNwYDVQQDDDBBbnQgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IENs
|
||||
YXNzIDEgUjEwHhcNMjQwNTI1MDIxNjQ0WhcNMjkwNTI0MDIxNjQ0WjBoMQswCQYDVQQGEwJDTjEt
|
||||
MCsGA1UECgwk5rO45bee6YeM5rW35Yac5Lia56eR5oqA5pyJ6ZmQ5YWs5Y+4MQ8wDQYDVQQLDAZB
|
||||
bGlwYXkxGTAXBgNVBAMMEDIwODg4NDExMTg1MTQ5NzkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
||||
ggEKAoIBAQCktKWIoqSZ8BoSpALMsvTEsEQ1kF++wBeneams0Q17LvqGDBgiGuuICU0tnhBrjEkJ
|
||||
FIw+5ApiHdkwbjFRqDqXyNj7B9fMBWp+QeHf6KvmRsPOHZegyvmQlqvMYf6hF4OwVKDrtVi6I1hV
|
||||
drwf35h8KEGh4QM0WyXno2bJ7OVQDL49enrG7dXZQkwnwiluuxgjKphC2WYHCERGiYbrRKWXtQmz
|
||||
ivjw7YTtfSXvypp8N3pSWXkWeLqpGGK3GG3pcUu4U+y4RFknnzSpiv20EJ6gw3pjUDkzexJoGh9b
|
||||
yFOMoRVTJpIV8iTshdozd69ny5FjmIoXIouGCjdwp6M+XCXVAgMBAAGjggEpMIIBJTAfBgNVHSME
|
||||
GDAWgBRxB+IEYRbk5fJl6zEPyeD0PJrVkTAdBgNVHQ4EFgQU7grrNa/BE8O53ysngZSu711bo6Qw
|
||||
QAYDVR0gBDkwNzA1BgdggRwBbgEBMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9jYS5hbGlwYXkuY29t
|
||||
L2Nwcy5wZGYwDgYDVR0PAQH/BAQDAgbAMC8GA1UdHwQoMCYwJKAioCCGHmh0dHA6Ly9jYS5hbGlw
|
||||
YXkuY29tL2NybDg5LmNybDBgBggrBgEFBQcBAQRUMFIwKAYIKwYBBQUHMAKGHGh0dHA6Ly9jYS5h
|
||||
bGlwYXkuY29tL2NhNi5jZXIwJgYIKwYBBQUHMAGGGmh0dHA6Ly9jYS5hbGlwYXkuY29tOjgzNDAv
|
||||
MA0GCSqGSIb3DQEBCwUAA4IBAQA9DYzEMnOGG9uddKhyS7XyJiFRoP7GXIvwj4IjLn/hQ/UbD2DB
|
||||
MJUTDSkFIcyEU9w2zCD7atgKZNYCscIACnFmz91op1Oo+ohMTswUNGHMZCGYqSy3msA1Okuxc8mE
|
||||
yvHRwJdU7qnEsSOD7hrKw059AFcDW3okDSKYvr8tJNC3MNyGY4dd6YxouE3738HtlYf/iGkN0ntQ
|
||||
NEayluq3tRI+XE6AYrU6FYvXwWAGur/UqQTyKYAT0j2UE5VBfwC7/qpFBK+13oe8JvqdgLJY6BtB
|
||||
nAnLaP1Z5RY5JnmUgzXD/pCkIZu5U3WS9hFcAxCrSiZmU4+CVRTTfY7d/DU89epc
|
||||
-----END CERTIFICATE-----
|
25
config/pay/wechat/82fdc3426e3aeb9e5df91a9547ac5ef3.pem
Normal file
25
config/pay/wechat/82fdc3426e3aeb9e5df91a9547ac5ef3.pem
Normal file
@ -0,0 +1,25 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEKDCCAxCgAwIBAgIUYAGG3fxXIyJ8FvMcIWFHBYwI1oUwDQYJKoZIhvcNAQEL
|
||||
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
|
||||
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
|
||||
Q0EwHhcNMjMwOTI1MDE1NjI1WhcNMjgwOTIzMDE1NjI1WjCBgTETMBEGA1UEAwwK
|
||||
MTY1NDI3NDg2NzEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL
|
||||
DCTms7jlt57ph4zmtbflhpzkuJrnp5HmioDmnInpmZDlhazlj7gxCzAJBgNVBAYM
|
||||
AkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
||||
AQoCggEBANTeTUe6k55sj+jlEN1wgPyjRw8SMQ8df5xdt6P9Xe29wR+10YHtJrpo
|
||||
//WRg6MNDk3akQoIq1+Nb6ADdUpwTKpeTlDaJw9MtP5sHHlfe3KUHDWUq128Fo9z
|
||||
gLXoZ4BVQ0YibpBJgeTpUVBNxM7NlTMBGwL9BkK0v37arYkfUuJ0VCcGj5kOfFnH
|
||||
4/CZlOAwSj/FYvQCDJrnP2LbXYLoObnf5GaAOMwbvNAJvkLmLXIAufWgPrXu5OwG
|
||||
ZC0IOK01IVjLQhW6T+VPyyeKWK4xh9FLQ/vkNsZsGwlpkN2frp9F38ZCeTcKFqeP
|
||||
36WEU5E0WCF3T2zubwNbl56CpENrDQMCAwEAAaOBuTCBtjAJBgNVHRMEAjAAMAsG
|
||||
A1UdDwQEAwID+DCBmwYDVR0fBIGTMIGQMIGNoIGKoIGHhoGEaHR0cDovL2V2Y2Eu
|
||||
aXRydXMuY29tLmNuL3B1YmxpYy9pdHJ1c2NybD9DQT0xQkQ0MjIwRTUwREJDMDRC
|
||||
MDZBRDM5NzU0OTg0NkMwMUMzRThFQkQyJnNnPUhBQ0M0NzFCNjU0MjJFMTJCMjdB
|
||||
OUQzM0E4N0FEMUNERjU5MjZFMTQwMzcxMA0GCSqGSIb3DQEBCwUAA4IBAQBFY145
|
||||
P8GFVelCSY+T5a1Wqy/J0EphwBqAD0GiWCvV64vSl1Xv/hQoNh8b5Kco6DCsJMOW
|
||||
jSde17gqDYPub7j1G7oKWIdOfYb/TAE/HEmAou+KQU53mtT08bEH3Ej2wXpH9O6e
|
||||
i/fR656fq+FmiiK/But0+VPssa7mpuwbMjHA03DjcKfk0jrWfr1KI1uUOPS2SheW
|
||||
zbMyUAludud50RTu9DRFeDP/6HUDqHcsCpdjy+yQMobrtsrmphpVKdBTI0k8/zpB
|
||||
4pqyfZ12PC30Gpqyr0iPu/oMh5QQAjrzCwHc0FeA+a/06YhndX9rHx3ryD58RYBs
|
||||
nkuymMJUPd5+A5Xm
|
||||
-----END CERTIFICATE-----
|
28
config/pay/wechat/c208f16ad08e6d2516e0b73e6d0ab8da.pem
Normal file
28
config/pay/wechat/c208f16ad08e6d2516e0b73e6d0ab8da.pem
Normal file
@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDU3k1HupOebI/o
|
||||
5RDdcID8o0cPEjEPHX+cXbej/V3tvcEftdGB7Sa6aP/1kYOjDQ5N2pEKCKtfjW+g
|
||||
A3VKcEyqXk5Q2icPTLT+bBx5X3tylBw1lKtdvBaPc4C16GeAVUNGIm6QSYHk6VFQ
|
||||
TcTOzZUzARsC/QZCtL9+2q2JH1LidFQnBo+ZDnxZx+PwmZTgMEo/xWL0Agya5z9i
|
||||
212C6Dm53+RmgDjMG7zQCb5C5i1yALn1oD617uTsBmQtCDitNSFYy0IVuk/lT8sn
|
||||
iliuMYfRS0P75DbGbBsJaZDdn66fRd/GQnk3Chanj9+lhFORNFghd09s7m8DW5ee
|
||||
gqRDaw0DAgMBAAECggEARE6Jcej3EbE4hL1sqgI+AdPLK5Tk1TrcBis0kJTvHSj0
|
||||
3d4UOqME+HBVIlHtcdbwrh7ix9t8Uo8qMKirbJWYpFrauqsmOYydz76VbIUtMdlB
|
||||
LBhm3Q9MFgA0XysSe2XgzpKh8/8ChZgxFZm++7WQmOtT5aOX7LPfdy9o3EWG7U9c
|
||||
rUOQ/5ykLcywfonw88AQEf5MoVbo6pFSDxHWn8CXLT2ex4O7KY1GHU+zQDgT+19w
|
||||
fqrGuJYclWVTk1jmpZ+dK8Qs2HhUo1h5Ls65GagvXYR/iZ/qtPEffhx3K1YzxIOU
|
||||
Vi/H8H69//afUH1wxomcDaa0kL1AdEG3ILoPuNZOEQKBgQD7h8Haf9vNcxevrYRO
|
||||
0enghp+mS84+hXppEIUcRdSoLUFLCsHOsOWoGquuliZYaxaiEzUaQetB4sT+cGJJ
|
||||
LgNyZv+QtJ5pm2Bf/GmS93mi5Iy9ingKEFdeMW/fe6kxVGxNo3tlhV0Bwb/ntXJp
|
||||
fhXCJ0CsXU5mrFsi5XAYRAxcpQKBgQDYpqqqflYcA+rf9ey+VGEyKiIswE+IPaqe
|
||||
wkgpgYwk0kOkOjBF9gFHMf9ruomWH4kTTlqeaTHCNItGtjDOYTJISMSmPsp49D9d
|
||||
civZ1+kuy3C57wf2Ns0hWp4QCwGHddppoG1DKmzAxelMHQD6db26xgGJCq9hZ3Ut
|
||||
0k4RWtzKhwKBgFciRU5bApreZvMtyerAHyPvnvitxAm2lZw149bSfgOwgbDsTg07
|
||||
DKO6cYTucOQqXNHSk4/ADC5rz1BRQEsXjIwiECBh4Yq2D6HQwAXwgwuh3vt+L21V
|
||||
Ed8IgzfJD+iN1WLj4khd9cU5CDDNk4/l5MW4cVgEjrdUt9GT58wQLrQdAoGAVgGs
|
||||
JOzsgEip2GkHp/NVdpW1ZXCe4iYg8s+L2DZejUuPoMWc3lkv3rShgoHWFuvD/g8P
|
||||
+G0oXMGBPPwc2gFJ9do1fw3UUTodYZpugBevsWz//kA/N+Y/fus7boEABWeq4l3W
|
||||
omBYNhsbZ6Tn+4X8YQY0G9RLFW793MftSAR7PEcCgYAh99cfwfNV36/nFIt8E18w
|
||||
yzWb5HFLZ29eFjXgbmOaq4h2+P5Wor+E2v6OD154kUWm5oYNiPtBs0GHrvtjl2TW
|
||||
tuBjU58+ejl2Ae6678Yxj+IlH8NRJf3pR6gDST/YHhVRv8TuBFeKT+nZ97t6HsJT
|
||||
GE1Me2UOnbIHGImqvDlOvA==
|
||||
-----END PRIVATE KEY-----
|
@ -13,11 +13,11 @@ return [
|
||||
// 必填-应用私钥 字符串或路径
|
||||
'app_secret_cert' => 'MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCktKWIoqSZ8BoSpALMsvTEsEQ1kF++wBeneams0Q17LvqGDBgiGuuICU0tnhBrjEkJFIw+5ApiHdkwbjFRqDqXyNj7B9fMBWp+QeHf6KvmRsPOHZegyvmQlqvMYf6hF4OwVKDrtVi6I1hVdrwf35h8KEGh4QM0WyXno2bJ7OVQDL49enrG7dXZQkwnwiluuxgjKphC2WYHCERGiYbrRKWXtQmzivjw7YTtfSXvypp8N3pSWXkWeLqpGGK3GG3pcUu4U+y4RFknnzSpiv20EJ6gw3pjUDkzexJoGh9byFOMoRVTJpIV8iTshdozd69ny5FjmIoXIouGCjdwp6M+XCXVAgMBAAECggEAJ1Dn4sHQQN7Lmn+EG5DsVLcu0QpxkHsSKmwkUJhme20vaCgi6qE6b/KodacxjDqkhIJfJ/QPdnRhj+n949wggHL1OJcasBzq2tCnNme4APQLcXwm4b8R663LvLH3skSGruTEtP9I+sXNJDl/lqwtHhYN9LJdrXXEipK6yqC97Gl7JznT/VXctOebXqFtdxm1M1zCoxwWwU20rYbNV74VIwIQhhNYaParU7ycVRgxw7wFhImGfy/y4SgHVTOS2Lhj12oDhHVSkhQjyEL4IKlI7Np/5jbZax+NWZjiTUJcDYEK6v6hpw0Skjf7fCBhbiHWTFm0LsBonLhX0b7hKaRYAQKBgQDu6fpxBmqpFy1Vzr/VWIWR9pXNtPqD3aVGWOUm3BuTyTtM8vEr6hcFIzjDae2JzSHTwAlNXQlifx43W630Iq2/AfYLsK1jtfqPRnuB1B4Bd+dixslG5a+mvpYTX0h9nZittWUh07tB8peoRidhnre0kKBZgdsO0XaaEpGkxoaEgQKBgQCwfBEq87wF5a9elUgJuDoqpglFWj8S52YqtolLdtpPpR7CtOLgAQb/ZAZ2Q0knAXcHgNoabqTJ1/psVc33+Lg3bQZyXiy9KUT72SoNhXa+kqWOAqjb4rEqL9x65l1A04Xxd4D0D3Drf0nv4TTaJfjjM/nRRWmqcOEKcvzgakKnVQKBgQCvI9EXCBgqqrXuQGj6kjEgpn581R4MivA82K/rw9Fnjk4tg67ufWWwu3hCMKYUrc8NdqqbDwfxL7TL6iZkYQOzkVF4kmUZQm9Slt21d/UjKG30SDuHAJu6hd5ohyISC/S/6skfeiK9HoS0s/DsrDiJYrhZxUr72uux2Mjx3SMBgQKBgQCX88qoS8Eo5rDO5ANpcviJ/flfgCtscFYUEqQ1mHixOH86r5njup62x/2UV6yla+p7SGMBfSBfNZlFK7+ycLDT8Agr8o/csqrVmQ5PJAmwXf0zP3D6Gb3mj9zq6GuERFtAI1+hQ6Y67ZbQdfwWk7kujnLaz0QCXzwzzfuSkYsgHQKBgFadCh1lJYQcpCjEDD50QAdbfzhVJRSYVEQhj2ekQ+w7hEndXiwptucPt8vs39qRfyXwoez2dWbK9ZUmU3/DTZBtL/1OmpDV2yPYi+xpipgzETB44mQnpcAcvaxU59j0oZQxXsWXHKNfOBzO2KgrReHnY7oUurPPq1A76yEcGmtn',
|
||||
// 必填-应用公钥证书 路径
|
||||
'app_public_cert_path' => runtime_path() . '/cert/ali/appCertPublicKey_2021004146699603.crt',
|
||||
'app_public_cert_path' => config_path('pay') . '/ali/appCertPublicKey_2021004146699603.crt',
|
||||
// 必填-支付宝公钥证书 路径
|
||||
'alipay_public_cert_path' => runtime_path() . '/cert/ali/alipayCertPublicKey_RSA2.crt',
|
||||
'alipay_public_cert_path' => config_path('pay') . '/ali/alipayCertPublicKey_RSA2.crt',
|
||||
// 必填-支付宝根证书 路径
|
||||
'alipay_root_cert_path' => runtime_path() . '/cert/ali/alipayRootCert.crt',
|
||||
'alipay_root_cert_path' => config_path('pay') . '/ali/alipayRootCert.crt',
|
||||
// 选填-同步回调地址
|
||||
'return_url' => 'https://erp.lihaink.cn/api/pay/alipay_return',
|
||||
// 选填-异步回调地址
|
||||
@ -37,9 +37,9 @@ return [
|
||||
// 必填-商户秘钥
|
||||
'mch_secret_key' => '7E00D167C9793006C93F4FB4CF65BCC2',
|
||||
// 必填-商户私钥 字符串或路径
|
||||
'mch_secret_cert' => runtime_path() . '/cert/c208f16ad08e6d2516e0b73e6d0ab8da.pem',
|
||||
'mch_secret_cert' => config_path('pay') . '/wechat/c208f16ad08e6d2516e0b73e6d0ab8da.pem',
|
||||
// 必填-商户公钥证书路径
|
||||
'mch_public_cert_path' => runtime_path() . '/cert/82fdc3426e3aeb9e5df91a9547ac5ef3.pem',
|
||||
'mch_public_cert_path' => config_path('pay') . '/wechat/82fdc3426e3aeb9e5df91a9547ac5ef3.pem',
|
||||
// 必填
|
||||
'notify_url' => 'https://erp.lihaink.cn/api/pay/notifyMnp',
|
||||
// 选填-公众号 的 app_id
|
||||
|
Loading…
x
Reference in New Issue
Block a user