Merge pull request 'dev' (#106) from dev into rose

Reviewed-on: #106
This commit is contained in:
mkm 2024-08-06 11:25:20 +08:00
commit 42afe19d91
9 changed files with 326 additions and 77 deletions

View File

@ -29,7 +29,7 @@ class WarehouseProductLists extends BaseAdminDataLists implements ListsSearchInt
public function setSearch(): array
{
return [
'=' => ['warehouse_id', 'product_id', 'financial_pm'],
'=' => ['warehouse_id', 'financial_pm','store_id'],
];
}
@ -52,12 +52,15 @@ class WarehouseProductLists extends BaseAdminDataLists implements ListsSearchInt
->select()->each(function ($item){
if($item->financial_pm==0){
$item->financial_pm_name='出库';
if($item->store_id>0){
$item->financial_pm_name='出库=>'.SystemStore::where('id',$item->store_id)->value('name');
}
}else{
$item->financial_pm_name='入库';
}
if($item->store_id>0){
$item->system_store_name=SystemStore::where('id',$item->store_id)->value('name');
}else{
$item->system_store_name='';
}
if($item->status==0){
$item->status_name='未确认';
}elseif($item->status==1){

View File

@ -118,7 +118,7 @@ class WarehouseProductLogic extends BaseLogic
$find = WarehouseProduct::where('id', $id)->find();
$find->status = 1;
$find->batch = WarehouseProduct::where(['product_id' => $find['product_id'], 'warehouse_id' => $find['warehouse_id'], 'financial_pm' => $financial_pm])->count();
$find->batch = WarehouseProduct::where(['product_id' => $find['product_id'], 'warehouse_id' => $find['warehouse_id'], 'financial_pm' => $financial_pm,'store_id'=>$find['store_id']])->count();
$find->save();
$storege = WarehouseProductStorege::where('warehouse_id', $find['warehouse_id'])->where('product_id', $find['product_id'])->find();

View File

@ -33,7 +33,7 @@ class ProductController extends BaseApiController{
$this->request->__set('store_id',$store_id);
return $this->dataLists(new StoreProductLists());
}else{
return $this->dataLists();
return $this->data(['lists'=>[]]);
}
}

View File

@ -10,6 +10,7 @@ use app\api\service\UserTokenService;
use app\api\validate\UserValidate;
use app\common\enum\PayEnum;
use app\common\logic\PaymentLogic;
use app\common\model\store_extract\StoreExtract;
use app\common\model\user\User;
use app\common\model\user\UserAddress;
use app\common\model\user_ship\UserShip;
@ -67,7 +68,6 @@ class UserController extends BaseApiController
public function info()
{
return $this->success('success', UserLogic::info($this->userId));
}
// #[
@ -168,7 +168,6 @@ class UserController extends BaseApiController
return $this->success('发送成功');
}
return $this->fail('发送失败');
}
//报备
@ -180,7 +179,6 @@ class UserController extends BaseApiController
return $this->success('发送成功', [], 1, 1);
}
return $this->fail('发送失败');
}
@ -245,7 +243,6 @@ class UserController extends BaseApiController
'get_number' => $GetNumber
];
return $this->success('ok', $res);
}
/**
@ -260,13 +257,13 @@ class UserController extends BaseApiController
} else {
return $this->dataLists(new UserSignLogLists());
}
}
/**
* 用户信息
*/
public function other_user_info(){
public function other_user_info()
{
$mobile = $this->request->get('mobile');
if ($mobile) {
$user = User::where('mobile', $mobile)->field('id,avatar,real_name,nickname,mobile,user_ship,purchase_funds,label_id')->find();
@ -290,4 +287,64 @@ class UserController extends BaseApiController
return $this->success('ok', []);
}
/**
* 提现信息
*/
public function cash_info()
{
$info = User::where('id', $this->userId)->field('id,now_money')->find();
$info['notes'] = '提现金额需大于1元提现到微信零钱并财务审核审核通过后提现金额将自动到账';
return $this->data($info);
}
/**
* 提交提现申请
*/
public function cash_application()
{
$money = $this->request->post('money');
$find = User::where('id', $this->userId)->find();
if ($find &&$money > $find['now_money']) {
return $this->fail('提现金额不能大于余额');
}
if ($money < 1) {
return $this->fail('提现金额不能小于1元');
}
$data['uid'] = $this->userId;
$data['create_time'] = time();
$data['status'] = 0;
$data['extract_price'] =$money;
$data['balance'] =bcsub($find['now_money'],$money,2);
$data['before_balance'] =$find['now_money'];
$data['extract_type'] = 'wx';
$res = StoreExtract::create($data);
if ($res) {
User::where('id', $this->userId)->dec('now_money', $money)->update();
return $this->success('申请成功,等待审核');
} else {
return $this->success('申请失败');
}
}
/**
* 提现申请记录
*/
public function cash_record()
{
$list = StoreExtract::where('uid', $this->userId)->order('id desc')
->field('id,extract_price price,status,pay_status,create_time')
->select()->each(function ($item) {
if($item->status==-1){
$item->status_name='未通过';
}elseif($item->status==0){
$item->status_name='审核中';
}elseif($item->status==1){
$item->status_name='已通过';
}
$item->title='申请提现'.$item->price.'元';
$item->pay_status_name=$item->status==1?'已打款':'未打款';
})->toArray();
return $this->data($list);
}
}

View File

@ -129,6 +129,8 @@ class UserLogic extends BaseLogic
$share_name=SystemStore::where('id',4)->value('abbreviation');
}
$data['share_name']= $share_name.'No.'.preg_replace('/4/','*', $data['id']);
$data['system_store_id']=SystemStoreStaff::where('uid',$uid)->value('store_id');
}else{
$data = [];
}

View File

@ -62,6 +62,9 @@
"ext-event": "For better performance. "
},
"autoload": {
"psr-0": {
"": "extend/"
},
"psr-4": {
"": "./",
"app\\": "./app",

View File

@ -0,0 +1,178 @@
<?php
namespace liankenet;
class ApiException extends \Exception
{
}
class HttpException extends \Exception
{
}
class CloudPrinter
{
// 声明属性
public $api_key = getenv('CLOUD_PRINTER_API_KEY');
public $server = "https://cloud.wisiyilink.com/";
public $timeout = 10;
public $debug = false;
public $device_id = getenv('CLOUD_PRINTER_DEVICE_ID');
public $device_key = getenv('CLOUD_PRINTER_DEVICE_KEY');
public function CloudPrinter($api_key, $device_id, $device_key, $debug = false, $timeout = 10)
{
$this->api_key = $api_key;
$this->timeout = $timeout;
$this->device_id = $device_id;
$this->device_key = $device_key;
$this->debug = $debug;
}
private function requests($method, $endpoint, $fields = array(), $content_type = 'application/json')
{
if ($method == 'POST' && $content_type == 'application/json') {
$fields = json_encode($fields);
}
$curl = curl_init();
$headers = array(
"ApiKey: " . $this->api_key
);
if ($method == "POST") {
array_push($headers, 'Content-Type: ' . $content_type);
}
curl_setopt_array($curl, array(
CURLOPT_URL => $this->server . $endpoint,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 1,
CURLOPT_TIMEOUT => $this->timeout,
CURLOPT_FOLLOWLOCATION => true,
CURLINFO_HEADER_OUT => $this->debug,
CURLOPT_VERBOSE => $this->debug,
CURLOPT_CUSTOMREQUEST => $method,
CURLOPT_POSTFIELDS => $fields,
CURLOPT_HTTPHEADER => $headers,
));
$response = curl_exec($curl);
$info = curl_getinfo($curl);
if ($this->debug) {
print_r($info);
}
if (false === $response) {
die(curl_error($curl));
throw new Exception(curl_error($curl), curl_errno($curl));
} else if ($info['http_code'] != 200) {
throw new HttpException(curl_error($curl), $info['http_code']);
}
$data = json_decode($response);
if ($data->code != 200) {
throw new ApiException($data->msg, $data->code);
}
return $data;
}
public function getDeviceInfo()
/*
* 设备信息
*/
{
$data = array(
"deviceId" => $this->device_id,
"deviceKey" => $this->device_key,
);
$response = $this->requests("GET", 'api/device/device_info?' . http_build_query($data));
return $response->data;
}
public function asyncRefreshDeviceInfo()
/*
* 异步刷新设备信息,包括打印机信息
*/
{
$data = array(
"deviceId" => $this->device_id,
"deviceKey" => $this->device_key,
);
$response = $this->requests("GET", 'api/device/async_refresh_device_info?' . http_build_query($data));
return $response;
}
public function getPrinterList()
/*
* 打印机列表
*/
{
$data = array(
"deviceId" => $this->device_id,
"deviceKey" => $this->device_key,
);
$response = $this->requests("GET", 'api/external_api/printer_list?' . http_build_query($data));
return $response->data->row;
}
public function getPrinterParams($printer_model)
/**
* 打印参数
*/
{
$data = array(
"deviceId" => $this->device_id,
"deviceKey" => $this->device_key,
"printerModel" => $printer_model,
);
$response = $this->requests("GET", 'api/print/printer_params?' . http_build_query($data));
return $response->data;
}
public function addJob($device_port, $printer_model, $paper_size, $file, $optional_array = array())
/*
* 发起打印任务
*/
{
$data = array(
"deviceId" => $this->device_id,
"deviceKey" => $this->device_key,
"devicePort" => $device_port,
"printerModel" => $printer_model,
"dmPaperSize" => $paper_size,
"jobFile" => $file
);
$data = array_merge($data, $optional_array);
$response = $this->requests("POST", 'api/print/job', $data, "multipart/form-data");
return $response->data;
}
public function getJobStatus($device_port, $task_id)
/*
* 获取任务状态
*/
{
$data = array(
"deviceId" => $this->device_id,
"deviceKey" => $this->device_key,
"devicePort" => $device_port,
"task_id" => $task_id,
);
$response = $this->requests("GET", 'api/print/job?' . http_build_query($data));
return $response->data;
}
public function cancelJob($device_port, $task_id)
/*
* 取消任务
*/
{
$data = array(
"deviceId" => $this->device_id,
"deviceKey" => $this->device_key,
"devicePort" => $device_port,
"task_id" => $task_id,
);
$response = $this->requests("DELETE", 'api/print/job?' . http_build_query($data));
return $response;
}
}

View File

@ -8,4 +8,5 @@ $baseDir = dirname($vendorDir);
return array(
'Pimple' => array($vendorDir . '/pimple/pimple/src'),
'HTMLPurifier' => array($vendorDir . '/ezyang/htmlpurifier/library'),
'' => array($baseDir . '/extend'),
);

View File

@ -683,6 +683,10 @@ class ComposerStaticInitcefecbcff919f3c1c8084830bbb72adc
),
);
public static $fallbackDirsPsr0 = array (
0 => __DIR__ . '/../..' . '/extend',
);
public static $classMap = array (
'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
'CURLStringFile' => __DIR__ . '/..' . '/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php',
@ -714,6 +718,7 @@ class ComposerStaticInitcefecbcff919f3c1c8084830bbb72adc
$loader->prefixDirsPsr4 = ComposerStaticInitcefecbcff919f3c1c8084830bbb72adc::$prefixDirsPsr4;
$loader->fallbackDirsPsr4 = ComposerStaticInitcefecbcff919f3c1c8084830bbb72adc::$fallbackDirsPsr4;
$loader->prefixesPsr0 = ComposerStaticInitcefecbcff919f3c1c8084830bbb72adc::$prefixesPsr0;
$loader->fallbackDirsPsr0 = ComposerStaticInitcefecbcff919f3c1c8084830bbb72adc::$fallbackDirsPsr0;
$loader->classMap = ComposerStaticInitcefecbcff919f3c1c8084830bbb72adc::$classMap;
}, null, ClassLoader::class);