// +---------------------------------------------------------------------- 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); } }