commit
c2d3a81a77
@ -17,6 +17,7 @@ namespace app\admin\controller;
|
|||||||
use app\admin\lists\statistics\StoreProductLists;
|
use app\admin\lists\statistics\StoreProductLists;
|
||||||
use app\admin\lists\store_order_cart_info\StoreOrderCartInfoGroupLists;
|
use app\admin\lists\store_order_cart_info\StoreOrderCartInfoGroupLists;
|
||||||
use app\admin\lists\store_order_cart_info\StoreOrderCartInfoGroupMonthLists;
|
use app\admin\lists\store_order_cart_info\StoreOrderCartInfoGroupMonthLists;
|
||||||
|
use app\admin\lists\warehouse_product_storege\WarehouseProductStoregeTwoLists;
|
||||||
use app\admin\logic\statistic\ProductStatisticLogic;
|
use app\admin\logic\statistic\ProductStatisticLogic;
|
||||||
use app\admin\logic\statistic\TradeStatisticLogic;
|
use app\admin\logic\statistic\TradeStatisticLogic;
|
||||||
use app\admin\logic\statistic\UserStatisticLogic;
|
use app\admin\logic\statistic\UserStatisticLogic;
|
||||||
@ -322,6 +323,9 @@ class WorkbenchController extends BaseAdminController
|
|||||||
public function negative_inventory()
|
public function negative_inventory()
|
||||||
{
|
{
|
||||||
$parmas = $this->request->get();
|
$parmas = $this->request->get();
|
||||||
|
if($parmas['type'] == 3){
|
||||||
|
return $this->dataLists(new WarehouseProductStoregeTwoLists());
|
||||||
|
}
|
||||||
$data = WarehouseLogic::negativeInventory($parmas);
|
$data = WarehouseLogic::negativeInventory($parmas);
|
||||||
return $this->data($data);
|
return $this->data($data);
|
||||||
}
|
}
|
||||||
|
@ -64,10 +64,14 @@ class StoreProductLists extends BaseAdminDataLists implements ListsSearchInterfa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$is_warehouse=$this->request->get('is_warehouse',0);
|
$is_warehouse=$this->request->get('is_warehouse',0);
|
||||||
|
$userShip = 0;
|
||||||
|
if (!empty($this->params['user_id'])) {
|
||||||
|
$userShip = User::where('id', $this->params['user_id'])->value('user_ship');
|
||||||
|
}
|
||||||
$list = StoreProduct::where($this->searchWhere)
|
$list = StoreProduct::where($this->searchWhere)
|
||||||
->limit($this->limitOffset, $this->limitLength)
|
->limit($this->limitOffset, $this->limitLength)
|
||||||
->order(['id' => 'desc'])
|
->order(['id' => 'desc'])
|
||||||
->select()->each(function ($item) use($is_warehouse) {
|
->select()->each(function ($item) use($is_warehouse, $userShip) {
|
||||||
$item['product_id'] = $item['id'];
|
$item['product_id'] = $item['id'];
|
||||||
$item['bar_code_two'] = '';
|
$item['bar_code_two'] = '';
|
||||||
if (in_array($item['unit'], [2, 21])) {
|
if (in_array($item['unit'], [2, 21])) {
|
||||||
@ -111,10 +115,12 @@ class StoreProductLists extends BaseAdminDataLists implements ListsSearchInterfa
|
|||||||
$nums = WarehouseProductStorege::where('product_id', $item['id'])->sum('nums');
|
$nums = WarehouseProductStorege::where('product_id', $item['id'])->sum('nums');
|
||||||
$item['stock'] = bcadd($nums, $stock);
|
$item['stock'] = bcadd($nums, $stock);
|
||||||
}
|
}
|
||||||
|
if ($userShip == 4) {
|
||||||
|
$item['price'] = $item['cost'];
|
||||||
|
}
|
||||||
return $item;
|
return $item;
|
||||||
})?->toArray();
|
})?->toArray();
|
||||||
if (!empty($this->params['user_id'])) {
|
if ($userShip > 0 && $userShip != 4) {
|
||||||
$userShip = User::where('id', $this->params['user_id'])->value('user_ship');
|
|
||||||
$list = StoreProductGroupPrice::resetProductsPrice($list, $userShip);
|
$list = StoreProductGroupPrice::resetProductsPrice($list, $userShip);
|
||||||
}
|
}
|
||||||
return $list;
|
return $list;
|
||||||
|
@ -0,0 +1,135 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\admin\lists\warehouse_product_storege;
|
||||||
|
|
||||||
|
|
||||||
|
use app\admin\lists\BaseAdminDataLists;
|
||||||
|
use app\common\model\warehouse_product_storege\WarehouseProductStorege;
|
||||||
|
use app\common\lists\ListsSearchInterface;
|
||||||
|
use app\common\model\store_category\StoreCategory;
|
||||||
|
use app\common\model\store_product\StoreProduct;
|
||||||
|
use app\common\model\store_product_unit\StoreProductUnit;
|
||||||
|
use app\common\model\warehouse\Warehouse;
|
||||||
|
use app\common\lists\ListsSortInterface;
|
||||||
|
use app\common\lists\ListsExcelInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 仓库商品存储列表
|
||||||
|
* Class WarehouseProductStoregeTwoLists
|
||||||
|
* @package app\admin\listswarehouse_product_storege
|
||||||
|
*/
|
||||||
|
class WarehouseProductStoregeTwoLists extends BaseAdminDataLists implements ListsSearchInterface, ListsSortInterface, ListsExcelInterface
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @notes 设置搜索条件
|
||||||
|
* @return \string[][]
|
||||||
|
* @author admin
|
||||||
|
* @date 2024/08/01 10:22
|
||||||
|
*/
|
||||||
|
public function setSearch(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'=' => ['warehouse_id', 'product_id'],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @notes 设置支持排序字段
|
||||||
|
* @return string[]
|
||||||
|
* @remark 格式: ['前端传过来的字段名' => '数据库中的字段名'];
|
||||||
|
*/
|
||||||
|
public function setSortFields(): array
|
||||||
|
{
|
||||||
|
return ['nums' => 'nums'];
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @notes 设置默认排序
|
||||||
|
* @return string[]
|
||||||
|
*/
|
||||||
|
public function setDefaultOrder(): array
|
||||||
|
{
|
||||||
|
return ['id' => 'desc', 'nums' => 'desc',];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @notes 获取仓库商品存储列表
|
||||||
|
* @return array
|
||||||
|
* @throws \think\db\exception\DataNotFoundException
|
||||||
|
* @throws \think\db\exception\DbException
|
||||||
|
* @throws \think\db\exception\ModelNotFoundException
|
||||||
|
* @author admin
|
||||||
|
* @date 2024/08/01 10:22
|
||||||
|
*/
|
||||||
|
public function lists(): array
|
||||||
|
{
|
||||||
|
if ($this->request->get('store_name')) {
|
||||||
|
$ids = StoreProduct::where('store_name', 'like', '%' . $this->request->get('store_name') . '%')->column('id');
|
||||||
|
if ($ids) {
|
||||||
|
$this->searchWhere[] = ['product_id', 'in', $ids];
|
||||||
|
} else {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->searchWhere[] = ['nums', '<=', 0];
|
||||||
|
return WarehouseProductStorege::where($this->searchWhere)
|
||||||
|
->field(['id', 'warehouse_id', 'product_id', 'nums', 'price', 'total_price', 'status'])
|
||||||
|
->limit($this->limitOffset, $this->limitLength)
|
||||||
|
->order($this->sortOrder)
|
||||||
|
->select()->each(function ($item) {
|
||||||
|
$item->warehouse_name = Warehouse::where('id', $item->warehouse_id)->value('name');
|
||||||
|
$find = StoreProduct::where('id', $item->product_id)->withTrashed()->find();
|
||||||
|
$item->store_name = $find->store_name;
|
||||||
|
$item->image = $find->image;
|
||||||
|
$item['unit_name'] = StoreProductUnit::where('id', $find['unit'])->value('name');
|
||||||
|
$item['stock'] = $item['nums'];
|
||||||
|
return $item;
|
||||||
|
})
|
||||||
|
->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @notes 获取仓库商品存储数量
|
||||||
|
* @return int
|
||||||
|
* @author admin
|
||||||
|
* @date 2024/08/01 10:22
|
||||||
|
*/
|
||||||
|
public function count(): int
|
||||||
|
{
|
||||||
|
return WarehouseProductStorege::where($this->searchWhere)->count();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @notes 导出文件名
|
||||||
|
* @return string
|
||||||
|
* @author 乔峰
|
||||||
|
* @date 2022/11/24 16:17
|
||||||
|
*/
|
||||||
|
public function setFileName(): string
|
||||||
|
{
|
||||||
|
|
||||||
|
return '仓库商品列表';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @notes 导出字段
|
||||||
|
* @return string[]
|
||||||
|
* @author 乔峰
|
||||||
|
* @date 2022/11/24 16:17
|
||||||
|
*/
|
||||||
|
public function setExcelFields(): array
|
||||||
|
{
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'warehouse_name' => '仓库名称',
|
||||||
|
'product_id' => '商品id',
|
||||||
|
'store_name' => '商品名称',
|
||||||
|
'unit_name' => '单位',
|
||||||
|
'stock' => '数量',
|
||||||
|
];
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
}
|
@ -11,9 +11,11 @@ use app\common\model\store_branch_product_exchange\StoreBranchProductExchange;
|
|||||||
use app\common\model\store_category\StoreCategory;
|
use app\common\model\store_category\StoreCategory;
|
||||||
use app\common\model\store_product_attr_value\StoreProductAttrValue;
|
use app\common\model\store_product_attr_value\StoreProductAttrValue;
|
||||||
use app\common\model\store_product_cate\StoreProductCate;
|
use app\common\model\store_product_cate\StoreProductCate;
|
||||||
|
use app\common\model\store_product_group_price\StoreProductGroupPrice;
|
||||||
use app\common\model\store_product_unit\StoreProductUnit;
|
use app\common\model\store_product_unit\StoreProductUnit;
|
||||||
use app\common\model\system_store\SystemStore;
|
use app\common\model\system_store\SystemStore;
|
||||||
use app\common\model\system_store_storage\SystemStoreStorage;
|
use app\common\model\system_store_storage\SystemStoreStorage;
|
||||||
|
use app\common\model\user\User;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use support\exception\BusinessException;
|
use support\exception\BusinessException;
|
||||||
use think\facade\Db;
|
use think\facade\Db;
|
||||||
@ -288,7 +290,11 @@ class StoreProductLogic extends BaseLogic
|
|||||||
*/
|
*/
|
||||||
public static function detail($params): array
|
public static function detail($params): array
|
||||||
{
|
{
|
||||||
$data = StoreProduct::where('id', $params['id'])->findOrEmpty()->toArray();
|
$query = StoreProduct::where('id', $params['id']);
|
||||||
|
if (isset($params['is_show'])) {
|
||||||
|
$query->where('is_show', $params['is_show']);
|
||||||
|
}
|
||||||
|
$data = $query->findOrEmpty()->toArray();
|
||||||
if(empty($data)){
|
if(empty($data)){
|
||||||
throw new BusinessException('商品不存在');
|
throw new BusinessException('商品不存在');
|
||||||
}
|
}
|
||||||
@ -300,6 +306,14 @@ class StoreProductLogic extends BaseLogic
|
|||||||
$data['cate_arr'][]=$data['cate_id'];
|
$data['cate_arr'][]=$data['cate_id'];
|
||||||
}
|
}
|
||||||
$data['unit_name']=StoreProductUnit::where('id', $data['unit'])->value('name');
|
$data['unit_name']=StoreProductUnit::where('id', $data['unit'])->value('name');
|
||||||
|
if (!empty($params['user_id'])) {
|
||||||
|
$userShip = User::where('id', $params['user_id'])->value('user_ship');
|
||||||
|
if ($userShip == 4) {
|
||||||
|
$data['price'] = $data['cost'];
|
||||||
|
} else {
|
||||||
|
$data = StoreProductGroupPrice::resetProductPrice($data, $userShip);
|
||||||
|
}
|
||||||
|
}
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,6 +76,7 @@ class CartList extends BaseAdminDataLists implements ListsSearchInterface, Lists
|
|||||||
$find = StoreProduct::where(['id' => $item['product_id']])
|
$find = StoreProduct::where(['id' => $item['product_id']])
|
||||||
->field($field)
|
->field($field)
|
||||||
->find();
|
->find();
|
||||||
|
$find = StoreProductGroupPrice::resetProductPrice($find, $user_ship);
|
||||||
if ($find) {
|
if ($find) {
|
||||||
if ($off_activity == 1) {
|
if ($off_activity == 1) {
|
||||||
$this->activity_price = bcadd(bcmul($find['cost'], $item['cart_num'], 2), $this->activity_price, 2);
|
$this->activity_price = bcadd(bcmul($find['cost'], $item['cart_num'], 2), $this->activity_price, 2);
|
||||||
@ -93,7 +94,6 @@ class CartList extends BaseAdminDataLists implements ListsSearchInterface, Lists
|
|||||||
$item['unit_name'] = StoreProductUnit::where('id', $find['unit'])->value('name');
|
$item['unit_name'] = StoreProductUnit::where('id', $find['unit'])->value('name');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$list = StoreProductGroupPrice::resetProductsPrice($list, $user_ship);
|
|
||||||
return $list;
|
return $list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
62
app/api/logic/DemoLogic.php
Normal file
62
app/api/logic/DemoLogic.php
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\api\logic;
|
||||||
|
|
||||||
|
use app\common\logic\BaseLogic;
|
||||||
|
use app\common\model\store_product\StoreProduct;
|
||||||
|
use think\facade\Db;
|
||||||
|
|
||||||
|
class DemoLogic extends BaseLogic
|
||||||
|
{
|
||||||
|
public static function test()
|
||||||
|
{
|
||||||
|
$arr = Db::name('ceshi_two')->select();
|
||||||
|
foreach ($arr as $k => $v) {
|
||||||
|
//门店供货、商户、零售
|
||||||
|
StoreProduct::where('id', $v['product_id'])->update(['purchase' => $v['price'], 'cost' => bcadd($v['price1'], 0, 2), 'vip_price' => bcadd($v['price1'], 0, 2), 'price' => bcadd($v['price6'], 0, 2)]);
|
||||||
|
//种养殖
|
||||||
|
$find = Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 5)->find();
|
||||||
|
if ($find) {
|
||||||
|
Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 5)->update(['price' => bcadd($v['price8'], 0, 2)]);
|
||||||
|
} else {
|
||||||
|
Db::name('store_product_group_price')->insert(['product_id' => $v['product_id'], 'group_id' => 5, 'price' => bcadd($v['price8'], 0, 2), 'price_type' => 3, 'base_rate' => bcadd(bcmul($v['lv8'], 100), 100, 2)]);
|
||||||
|
}
|
||||||
|
//酒店
|
||||||
|
$find2 = Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 7)->find();
|
||||||
|
if ($find2) {
|
||||||
|
Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 7)->update(['price' => bcadd($v['price3'], 0, 2)]);
|
||||||
|
} else {
|
||||||
|
Db::name('store_product_group_price')->insert(['product_id' => $v['product_id'], 'group_id' => 7, 'price' => bcadd($v['price3'], 0, 2), 'price_type' => 3, 'base_rate' => bcadd(bcmul($v['lv3'], 100), 100, 2)]);
|
||||||
|
}
|
||||||
|
//一条龙
|
||||||
|
$find3 = Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 18)->find();
|
||||||
|
if ($find3) {
|
||||||
|
Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 18)->update(['price' => bcadd($v['price5'], 0, 2)]);
|
||||||
|
} else {
|
||||||
|
Db::name('store_product_group_price')->insert(['product_id' => $v['product_id'], 'group_id' => 18, 'price' => bcadd($v['price5'], 0, 2), 'price_type' => 3, 'base_rate' => bcadd(bcmul($v['lv5'], 100), 100, 2)]);
|
||||||
|
}
|
||||||
|
//厨师
|
||||||
|
$find4 = Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 1)->find();
|
||||||
|
if ($find4) {
|
||||||
|
Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 1)->update(['price' => bcadd($v['price7'], 0, 2)]);
|
||||||
|
} else {
|
||||||
|
Db::name('store_product_group_price')->insert(['product_id' => $v['product_id'], 'group_id' => 1, 'price' => bcadd($v['price7'], 0, 2), 'price_type' => 3, 'base_rate' => bcadd(bcmul($v['lv7'], 100), 100, 2)]);
|
||||||
|
}
|
||||||
|
//商户会员
|
||||||
|
$find4 = Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 19)->find();
|
||||||
|
if ($find4) {
|
||||||
|
Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 19)->update(['price' => bcadd($v['price2'], 0, 2)]);
|
||||||
|
} else {
|
||||||
|
Db::name('store_product_group_price')->insert(['product_id' => $v['product_id'], 'group_id' => 19, 'price' => bcadd($v['price2'], 0, 2), 'price_type' => 3, 'base_rate' => bcadd(bcmul($v['lv2'], 100), 100, 2)]);
|
||||||
|
}
|
||||||
|
//食堂会员
|
||||||
|
|
||||||
|
$find4 = Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 20)->find();
|
||||||
|
if ($find4) {
|
||||||
|
Db::name('store_product_group_price')->where('product_id', $v['product_id'])->where('group_id', 20)->update(['price' => bcadd($v['price4'], 0, 2)]);
|
||||||
|
} else {
|
||||||
|
Db::name('store_product_group_price')->insert(['product_id' => $v['product_id'], 'group_id' => 20, 'price' => bcadd($v['price4'], 0, 2), 'price_type' => 3, 'base_rate' => bcadd(bcmul($v['lv4'], 100), 100, 2)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user