第一次更新,完成了初版调整
This commit is contained in:
@@ -8,10 +8,8 @@ use think\Session;
|
||||
use app\common\model\Partners as PartnersModel;
|
||||
use app\store\model\Order as OrderModel;
|
||||
use app\store\model\store\User as UserModel;
|
||||
use app\store\model\PartnersGoods as PartnersGoodsModel;
|
||||
|
||||
use app\store\model\partners\BalanceLog as BalanceLogModel;
|
||||
use app\store\model\partners\StockLog as StockLogModel;
|
||||
use app\store\service\store\User as StoreUserService;
|
||||
use app\common\enum\partners\balanceLog\Scene as SceneEnum;
|
||||
use app\common\library\helper;
|
||||
@@ -51,8 +49,6 @@ class Partners extends PartnersModel
|
||||
$this->error = '请填写商户名称';
|
||||
return false;
|
||||
}
|
||||
// 检查商品数据
|
||||
$goodsList = PartnersGoodsModel::checkGoodsData($data['goodsList']);
|
||||
$this->startTrans();
|
||||
try {
|
||||
$data['orgNo'] = $this->createNo();
|
||||
@@ -75,10 +71,6 @@ class Partners extends PartnersModel
|
||||
$userModel->save($newData);
|
||||
// 新增角色关系记录
|
||||
UserRole::increased((int)$userModel['store_user_id'], [10014]);
|
||||
// 新增商品关系记录
|
||||
PartnersGoodsModel::increased((int)$this['partners_id'], $goodsList);
|
||||
// 新增合作商商品库存变动记录
|
||||
StockLogModel::increased((int)$this['partners_id'], $goodsList);
|
||||
$this->commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
@@ -146,16 +138,10 @@ class Partners extends PartnersModel
|
||||
$this->error = '请填写商户名称';
|
||||
return false;
|
||||
}
|
||||
// 检查商品数据
|
||||
$goodsList = PartnersGoodsModel::checkGoodsData($data['goodsList']);
|
||||
$this->startTrans();
|
||||
try {
|
||||
// 更新管理员记录
|
||||
$this->save($data);
|
||||
// 更新商品关系记录
|
||||
PartnersGoodsModel::updates((int)$this['partners_id'], $goodsList);
|
||||
// 新增合作商商品库存变动记录
|
||||
StockLogModel::increased((int)$this['partners_id'], $goodsList);
|
||||
$this->commit();
|
||||
return true;
|
||||
} catch (\Exception $e) {
|
||||
|
||||
@@ -1,85 +0,0 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2017~2023 https://www.yiovo.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: 萤火科技 <admin@yiovo.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\store\model;
|
||||
|
||||
use app\common\library\helper;
|
||||
use app\common\model\PartnersGoods as PartnersGoodsModel;
|
||||
use cores\exception\BaseException;
|
||||
|
||||
/**
|
||||
* 合作商商品关系模型
|
||||
* Class PartnersGoods
|
||||
* @package app\store\model
|
||||
*/
|
||||
class PartnersGoods extends PartnersGoodsModel
|
||||
{
|
||||
/**
|
||||
* 验证商品是否合法
|
||||
* @param array $goodsList
|
||||
* @throws BaseException
|
||||
*/
|
||||
public static function checkGoodsData(array $goodsList)
|
||||
{
|
||||
$values = helper::getArrayColumn($goodsList, 'goods_id');
|
||||
if (count($goodsList) != count(array_unique($values))) {
|
||||
throwError('很抱歉,不能存在重复的商品 请检查您的选择');
|
||||
}
|
||||
foreach ($goodsList as &$item) {
|
||||
if($item['allot_num'] < 0 && abs($item['allot_num']) > $item['stock_num']){
|
||||
throwError('很抱歉,分配数量减少不能低于库存数量 请检查您的输入');
|
||||
}elseif($item['allot_num'] > 100){
|
||||
throwError('很抱歉,分配数量不能大于100 请检查您的输入');
|
||||
}
|
||||
$item['before_num'] = $item['stock_num'];
|
||||
$item['stock_num'] += $item['allot_num'];
|
||||
$item['after_num'] = $item['stock_num'];
|
||||
$item['change_type'] = $item['allot_num'] < 0 ? 2 : 1;
|
||||
}
|
||||
unset($item);
|
||||
return $goodsList;
|
||||
}
|
||||
/**
|
||||
* 批量写入合作商与商品关系记录
|
||||
* @param int $partnersId
|
||||
* @param array $goodsList
|
||||
* @return array|false
|
||||
*/
|
||||
public static function increased(int $partnersId, array $goodsList)
|
||||
{
|
||||
$dataset = [];
|
||||
foreach ($goodsList as $item) {
|
||||
$dataset[] = [
|
||||
'partners_id' => $partnersId,
|
||||
'goods_id' => $item['goods_id'],
|
||||
'stock_num' => $item['stock_num'],
|
||||
'store_id' => self::$storeId
|
||||
];
|
||||
}
|
||||
return (new static)->addAll($dataset);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量更新合作商和商品关系记录
|
||||
* @param int $partnersId
|
||||
* @param array $goodsList
|
||||
* @return array|false
|
||||
*/
|
||||
public static function updates(int $partnersId, array $goodsList)
|
||||
{
|
||||
// 删除所有的记录
|
||||
static::deleteAll(['partners_id' => $partnersId]);
|
||||
// 批量新增记录
|
||||
return static::increased($partnersId, $goodsList);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -31,13 +31,13 @@ class Order extends OrderModel
|
||||
// 设置查询条件
|
||||
$filter = $this->getFilter($param);
|
||||
// 先查询总金额
|
||||
$totalPayPrice = $this->with(['goods.images.file', 'partners'])
|
||||
$totalPayPrice = $this->with(['partners'])
|
||||
->alias('order')
|
||||
->field('order.*')
|
||||
->where($filter)
|
||||
->sum('order.total_pay_price');
|
||||
// 获取列表数据
|
||||
$list = $this->with(['goods.images.file', 'partners'])
|
||||
$list = $this->with(['partners'])
|
||||
->alias('order')
|
||||
->field('order.*')
|
||||
->where($filter)
|
||||
@@ -60,23 +60,32 @@ class Order extends OrderModel
|
||||
// 设置默认的检索数据
|
||||
$params = $this->setQueryDefaultValue($param, [
|
||||
'partners_id' => 0, // 合作商ID
|
||||
'search' => '', // 用户昵称
|
||||
'goods_no' => '', // 商品编码
|
||||
'oil_status' => -1, // 分油状态
|
||||
'use_status' => -1, // 使用状态
|
||||
'search' => '', // 司机手机号
|
||||
'driver_name' => '', // 司机姓名
|
||||
'orderNo' => '', // 单号:油卡编号/下单平台单号/批次号/运单号
|
||||
'oil_status' => -1, // 分油(发放)状态
|
||||
'oil_status_zsy' => -1, // 企油通发放态 0未提交 2成功 3失败
|
||||
'use_status' => -1, // 加油核销状态
|
||||
'betweenTime' => [] // 起止时间
|
||||
]);
|
||||
// 检索查询条件
|
||||
$filter = [];
|
||||
// 合作商ID
|
||||
$params['partners_id'] > 0 && $filter[] = ['order.partners_id', '=', $params['partners_id']];
|
||||
// 用户昵称
|
||||
// 司机手机号
|
||||
!empty($params['search']) && $filter[] = ['order.mobile', 'like', "%{$params['search']}%"];
|
||||
// 商品编码
|
||||
!empty($params['goods_no']) && $filter[] = ['order.goods_no', 'like', "%{$params['goods_no']}%"];
|
||||
// 分油状态
|
||||
// 司机姓名
|
||||
!empty($params['driver_name']) && $filter[] = ['order.driver_name', 'like', "%{$params['driver_name']}%"];
|
||||
// 单号模糊检索(油卡编号 / 下单平台销售单号 / 企油通批次号 / 运单号)
|
||||
if (!empty($params['orderNo'])) {
|
||||
$kw = $params['orderNo'];
|
||||
$filter[] = ['order.oilCardNo|order.partners_order_no|order.batch_no|order.waybill_no', 'like', "%{$kw}%"];
|
||||
}
|
||||
// 分油(发放)状态
|
||||
$params['oil_status'] > -1 && $filter[] = ['oil_status', '=', (int)$params['oil_status']];
|
||||
// 使用状态
|
||||
// 企油通发放态
|
||||
$params['oil_status_zsy'] > -1 && $filter[] = ['oil_status_zsy', '=', (int)$params['oil_status_zsy']];
|
||||
// 加油核销状态
|
||||
$params['use_status'] > -1 && $filter[] = ['use_status', '=', (int)$params['use_status']];
|
||||
// 起止时间
|
||||
if (!empty($params['betweenTime'])) {
|
||||
|
||||
@@ -1,95 +0,0 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2017~2023 https://www.yiovo.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: 萤火科技 <admin@yiovo.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types=1);
|
||||
|
||||
namespace app\store\model\partners;
|
||||
|
||||
use app\common\model\partners\StockLog as StockLogModel;
|
||||
|
||||
/**
|
||||
* 合作商商品库存变动明细模型
|
||||
* Class StockLog
|
||||
* @package app\store\model\partners
|
||||
*/
|
||||
class StockLog extends StockLogModel
|
||||
{
|
||||
/**
|
||||
* 获取合作商商品库存变动明细列表
|
||||
* @param array $param
|
||||
* @return \think\Paginator
|
||||
*/
|
||||
public function getList(array $param = [])
|
||||
{
|
||||
// 设置查询条件
|
||||
$filter = $this->getFilter($param);
|
||||
// 获取列表数据
|
||||
return $this->alias('log')
|
||||
->field('log.*,partners.name')
|
||||
->where($filter)
|
||||
->join('partners', 'partners.partners_id = log.partners_id')
|
||||
->order(['log.create_time' => 'desc'])
|
||||
->paginate(15);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置查询条件
|
||||
* @param array $param
|
||||
* @return array
|
||||
*/
|
||||
private function getFilter(array $param): array
|
||||
{
|
||||
// 设置默认的检索数据
|
||||
$params = $this->setQueryDefaultValue($param, [
|
||||
'partners_id' => 0, // 合作商ID
|
||||
'search' => '', // 用户昵称
|
||||
'betweenTime' => [] // 起止时间
|
||||
]);
|
||||
// 检索查询条件
|
||||
$filter = [];
|
||||
// 用户ID
|
||||
$params['partners_id'] > 0 && $filter[] = ['log.partners_id', '=', $params['partners_id']];
|
||||
// 用户昵称
|
||||
!empty($params['search']) && $filter[] = ['partners.name', 'like', "%{$params['search']}%"];
|
||||
// 起止时间
|
||||
if (!empty($params['betweenTime'])) {
|
||||
$times = between_time($params['betweenTime']);
|
||||
$filter[] = ['log.create_time', '>=', $times['start_time']];
|
||||
$filter[] = ['log.create_time', '<', $times['end_time'] + 86400];
|
||||
}
|
||||
return $filter;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量写入合作商与商品库存变动记录
|
||||
* @param int $partnersId
|
||||
* @param array $goodsList
|
||||
* @return array|false
|
||||
*/
|
||||
public static function increased(int $partnersId, array $goodsList)
|
||||
{
|
||||
$dataset = [];
|
||||
foreach ($goodsList as $item) {
|
||||
if(!empty($item['allot_num'])) {
|
||||
$dataset[] = [
|
||||
'partners_id' => $partnersId,
|
||||
'goods_id' => $item['goods_id'],
|
||||
'before_num' => $item['before_num'],
|
||||
'after_num' => $item['after_num'],
|
||||
'change_type' => $item['change_type'],
|
||||
'change_num' => $item['allot_num'],
|
||||
'store_id' => self::$storeId
|
||||
];
|
||||
}
|
||||
}
|
||||
return (new static)->addAll($dataset);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user