new files
This commit is contained in:
69
pro_v3.5.1/app/dao/store/DeliveryServiceDao.php
Normal file
69
pro_v3.5.1/app/dao/store/DeliveryServiceDao.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\dao\store;
|
||||
|
||||
use app\dao\BaseDao;
|
||||
use app\model\store\DeliveryService;
|
||||
|
||||
/**
|
||||
* 配送dao
|
||||
* Class DeliveryServiceDao
|
||||
* @package app\dao\store
|
||||
*/
|
||||
class DeliveryServiceDao extends BaseDao
|
||||
{
|
||||
/**
|
||||
* 设置模型
|
||||
* @return string
|
||||
*/
|
||||
protected function setModel(): string
|
||||
{
|
||||
return DeliveryService::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取配送员列表
|
||||
* @param array $where
|
||||
* @param int $page
|
||||
* @param int $limit
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getServiceList(array $where, int $page = 0, int $limit = 0)
|
||||
{
|
||||
$realName = $where['keyword'] ?? '';
|
||||
$fieldKey = $where['field_key'] ?? '';
|
||||
$fieldKey = $fieldKey == 'all' ? '' : $fieldKey;
|
||||
return $this->search($where)->with('user')->when($page && $limit, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->when($realName && $fieldKey && in_array($fieldKey, ['id', 'phone']), function ($query) use ($where, $realName, $fieldKey) {
|
||||
$query->whereLike($fieldKey, '%' . $where['keyword'] . '%');
|
||||
})->when($realName && !$fieldKey, function ($query) use ($where) {
|
||||
$query->whereLike('uid|id|nickname|phone', '%' . $where['keyword'] . '%');
|
||||
})->when(isset($where['noId']), function ($query) use ($where) {
|
||||
$query->where('id', '<>', $where['noId']);
|
||||
})->order('id DESC')->field('id,uid,avatar,nickname as wx_name,status,add_time,phone')->select()->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取配送员select
|
||||
* @param array $where
|
||||
* @return array
|
||||
*/
|
||||
public function getSelectList(array $where)
|
||||
{
|
||||
return $this->search($where)->field('uid,nickname')->select()->toArray();
|
||||
}
|
||||
|
||||
}
|
||||
45
pro_v3.5.1/app/dao/store/StoreConfigDao.php
Normal file
45
pro_v3.5.1/app/dao/store/StoreConfigDao.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\dao\store;
|
||||
|
||||
|
||||
use app\dao\BaseDao;
|
||||
use app\model\store\StoreConfig;
|
||||
//use crmeb\traits\SearchDaoTrait;
|
||||
|
||||
/**
|
||||
* Class StoreConfigDao
|
||||
* @package app\dao\store
|
||||
*/
|
||||
class StoreConfigDao extends BaseDao
|
||||
{
|
||||
|
||||
// use SearchDaoTrait;
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
protected function setModel(): string
|
||||
{
|
||||
return StoreConfig::class;
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 搜索
|
||||
// * @param array $where
|
||||
// * @return \crmeb\basic\BaseModel|mixed|\think\Model
|
||||
// */
|
||||
// public function search(array $where = [])
|
||||
// {
|
||||
// return $this->searchWhere($where);
|
||||
// }
|
||||
}
|
||||
98
pro_v3.5.1/app/dao/store/StoreUserDao.php
Normal file
98
pro_v3.5.1/app/dao/store/StoreUserDao.php
Normal file
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\dao\store;
|
||||
|
||||
|
||||
use app\dao\BaseDao;
|
||||
use app\model\store\StoreUser;
|
||||
|
||||
/**
|
||||
* 门店用户
|
||||
* Class StoreUserDao
|
||||
* @package app\dao\store
|
||||
*/
|
||||
class StoreUserDao extends BaseDao
|
||||
{
|
||||
/**
|
||||
* 设置模型
|
||||
* @return string
|
||||
*/
|
||||
protected function setModel(): string
|
||||
{
|
||||
return StoreUser::class;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取用户列表
|
||||
* @param array $where
|
||||
* @param string $field
|
||||
* @param array $with
|
||||
* @param int $page
|
||||
* @param int $limit
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getList(array $where, string $field = '*', array $with = [], int $page = 0, int $limit = 0): array
|
||||
{
|
||||
return $this->search($where)->field($field)->when($with, function ($query) use ($with) {
|
||||
$query->with(['label']);
|
||||
})->when($page && $limit, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->select()->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取一段时间内新增人数
|
||||
* @param array $where
|
||||
* @param array $time
|
||||
* @param string $timeType
|
||||
* @param string $countField
|
||||
* @param string $sumField
|
||||
* @param string $groupField
|
||||
* @return mixed
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function userTimeList(array $where, array $time, string $timeType = "week", string $countField = '*', string $sumField = 'pay_price', string $groupField = 'add_time')
|
||||
{
|
||||
return $this->getModel()->where($where)
|
||||
->where($groupField, 'between time', $time)
|
||||
->when($timeType, function ($query) use ($timeType, $countField, $sumField, $groupField) {
|
||||
switch ($timeType) {
|
||||
case "hour":
|
||||
$timeUnix = "%H";
|
||||
break;
|
||||
case "week" :
|
||||
$timeUnix = "%w";
|
||||
break;
|
||||
case "month" :
|
||||
$timeUnix = "%d";
|
||||
break;
|
||||
case "weekly" :
|
||||
$timeUnix = "%W";
|
||||
break;
|
||||
case "year" :
|
||||
$timeUnix = "%Y-%m";
|
||||
break;
|
||||
default:
|
||||
$timeUnix = "%m-%d";
|
||||
break;
|
||||
}
|
||||
$query->field("FROM_UNIXTIME(`" . $groupField . "`,'$timeUnix') as day,count(" . $countField . ") as count");
|
||||
$query->group('day');
|
||||
})->order('add_time asc')->select()->toArray();
|
||||
}
|
||||
}
|
||||
177
pro_v3.5.1/app/dao/store/SystemStoreDao.php
Normal file
177
pro_v3.5.1/app/dao/store/SystemStoreDao.php
Normal file
@@ -0,0 +1,177 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
namespace app\dao\store;
|
||||
|
||||
use app\dao\BaseDao;
|
||||
use app\model\store\SystemStore;
|
||||
|
||||
/**
|
||||
* 自提点dao
|
||||
* Class SystemStoreDao
|
||||
* @package app\dao\system\store
|
||||
*/
|
||||
class SystemStoreDao extends BaseDao
|
||||
{
|
||||
/**
|
||||
* 设置模型
|
||||
* @return string
|
||||
*/
|
||||
protected function setModel(): string
|
||||
{
|
||||
return SystemStore::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* 经纬度排序计算
|
||||
* @param string $latitude
|
||||
* @param string $longitude
|
||||
* @return string
|
||||
*/
|
||||
public function distance(string $latitude, string $longitude, bool $type = false)
|
||||
{
|
||||
if ($type) {
|
||||
return "(round(6367000 * 2 * asin(sqrt(pow(sin(((latitude * pi()) / 180 - ({$latitude} * pi()) / 180) / 2), 2) + cos(({$latitude} * pi()) / 180) * cos((latitude * pi()) / 180) * pow(sin(((longitude * pi()) / 180 - ({$longitude} * pi()) / 180) / 2), 2)))))";
|
||||
} else {
|
||||
return "(round(6367000 * 2 * asin(sqrt(pow(sin(((latitude * pi()) / 180 - ({$latitude} * pi()) / 180) / 2), 2) + cos(({$latitude} * pi()) / 180) * cos((latitude * pi()) / 180) * pow(sin(((longitude * pi()) / 180 - ({$longitude} * pi()) / 180) / 2), 2))))) AS distance";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取
|
||||
* @param array $where
|
||||
* @param array $field
|
||||
* @param int $page
|
||||
* @param int $limit
|
||||
* @param string $latitude
|
||||
* @param string $longitude
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getStoreList(array $where, array $field = ['*'], int $page = 0, int $limit = 0, string $latitude = '', string $longitude = '', int $order = 0)
|
||||
{
|
||||
return $this->search($where)->when(isset($where['ids']) && $where['ids'], function ($query) use ($where) {
|
||||
$query->whereIn('id', $where['ids']);
|
||||
})->when($latitude && $longitude, function ($query) use ($longitude, $latitude, $order) {
|
||||
$query->field(['*', $this->distance($latitude, $longitude)]);
|
||||
})->when($page && $limit, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->when(isset($order), function ($query) use ($order) {
|
||||
if ($order == 1) {
|
||||
$query->order('distance ASC');
|
||||
} else {
|
||||
$query->order('id desc');
|
||||
}
|
||||
})->field($field)->select()->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取有效自提点
|
||||
* @param array $where
|
||||
* @return \crmeb\basic\BaseModel|mixed|\think\Model
|
||||
*/
|
||||
public function getValidSerch(array $where = [])
|
||||
{
|
||||
$validWhere = [
|
||||
'is_show' => 1,
|
||||
'is_del' => 0,
|
||||
];
|
||||
return $this->search($where)->where($validWhere);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取最近距离距离内的一个自提点
|
||||
* @param string $latitude
|
||||
* @param string $longitude
|
||||
* @return array|\think\Model|null
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getDistanceShortStore(string $latitude = '', string $longitude = '')
|
||||
{
|
||||
return $this->getValidSerch()->when($longitude && $longitude, function ($query) use ($longitude, $latitude) {
|
||||
$query->field(['*', $this->distance($latitude, $longitude)])->order('distance ASC');
|
||||
})->order('id desc')->find();
|
||||
}
|
||||
|
||||
/**
|
||||
* 距离排序符合配送范围自提点
|
||||
* @param string $latitude
|
||||
* @param string $longitude
|
||||
* @param string $field
|
||||
* @param int $limit
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getDistanceShortStoreList(string $latitude = '', string $longitude = '', string $field = '*', int $limit = 0)
|
||||
{
|
||||
return $this->getValidSerch()->field($field)->when($longitude && $longitude, function ($query) use ($longitude, $latitude, $field) {
|
||||
$query->field([$field, $this->distance($latitude, $longitude)])->where('valid_range', 'EXP', '>' . $this->distance($latitude, $longitude, true))->order('distance ASC');
|
||||
})->when($limit, function ($query) use ($limit) {
|
||||
$query->limit($limit);
|
||||
})->order('id desc')->select()->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据地址区、街道信息获取自提点列表
|
||||
* @param string $addressInfo
|
||||
* @param array $where
|
||||
* @param string $field
|
||||
* @param int $page
|
||||
* @param int $limit
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getStoreByAddressInfo(string $addressInfo = '', array $where = [], string $field = '*', int $page = 0, int $limit = 0)
|
||||
{
|
||||
return $this->getValidSerch($where)->field($field)->when(isset($where['ids']) && $where['ids'], function ($query) use ($where) {
|
||||
$query->whereIn('id', $where['ids']);
|
||||
})->when($addressInfo, function ($query) use ($addressInfo) {
|
||||
$query->whereLike('address', '%' . $addressInfo . '%');
|
||||
})->when($page && $limit, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->when(!$page && $limit, function ($query) use ($limit) {
|
||||
$query->limit($limit);
|
||||
})->order('id desc')->select()->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取自提点不分页
|
||||
* @param array $where
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getStore(array $where)
|
||||
{
|
||||
return $this->search($where)->order('add_time DESC')->field(['id', 'name'])->select()->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取ERP店铺
|
||||
* @param array $where
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getErpStore(array $where, array $field = ['id','name','erp_shop_id'])
|
||||
{
|
||||
return $this->search(['type' => 0])->where($where)->field($field)->select()->toArray();
|
||||
}
|
||||
}
|
||||
116
pro_v3.5.1/app/dao/store/SystemStoreStaffDao.php
Normal file
116
pro_v3.5.1/app/dao/store/SystemStoreStaffDao.php
Normal file
@@ -0,0 +1,116 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2016~2026 https://www.crmeb.com All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
|
||||
namespace app\dao\store;
|
||||
|
||||
|
||||
use app\dao\BaseDao;
|
||||
use app\model\store\SystemStoreStaff;
|
||||
use crmeb\basic\BaseModel;
|
||||
|
||||
/**
|
||||
* 门店店员
|
||||
* Class SystemStoreStaffDao
|
||||
* @package app\dao\system\store
|
||||
*/
|
||||
class SystemStoreStaffDao extends BaseDao
|
||||
{
|
||||
/**
|
||||
* 设置模型
|
||||
* @return string
|
||||
*/
|
||||
protected function setModel(): string
|
||||
{
|
||||
return SystemStoreStaff::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BaseModel
|
||||
*/
|
||||
public function getWhere()
|
||||
{
|
||||
return $this->getModel();
|
||||
}
|
||||
|
||||
/**
|
||||
* 门店店员搜索器
|
||||
* @param array $where
|
||||
* @param bool $search
|
||||
* @return BaseModel
|
||||
* @throws \ReflectionException
|
||||
*/
|
||||
public function search(array $where = [], bool $search = false)
|
||||
{
|
||||
return parent::search($where, $search)->when(isset($where['keyword']) && $where['keyword'], function ($query) use ($where) {
|
||||
if (!isset($where['field_key']) || $where['field_key'] == '') {
|
||||
$query->whereLike('id|uid|staff_name|phone', '%' . $where['keyword'] . '%');
|
||||
} else {
|
||||
$query->where($where['field_key'], $where['keyword']);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取门店管理员列表
|
||||
* @param array $where
|
||||
* @param int $page
|
||||
* @param int $limit
|
||||
* @param array|string[] $with
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getStoreAdminList(array $where, int $page = 0, int $limit = 0, array $with = ['user'])
|
||||
{
|
||||
return $this->search($where)->when($with, function ($query) use ($with) {
|
||||
$query->with($with);
|
||||
})->when($page && $limit, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->order('add_time DESC')->select()->toArray();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取店员列表
|
||||
* @param array $where
|
||||
* @param string $field
|
||||
* @param int $page
|
||||
* @param int $limit
|
||||
* @param array|string[] $with
|
||||
* @return array
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function getStoreStaffList(array $where, string $field = '*', int $page = 0, int $limit = 0, array $with = ['store', 'user'])
|
||||
{
|
||||
return $this->search($where)->field($field)->when($with, function ($query) use ($with) {
|
||||
$query->with(array_merge($with, ['store', 'user']));
|
||||
})->when($page && $limit, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->when(isset($where['notId']), function ($query) use ($where) {
|
||||
$query->where('id', '<>', $where['notId']);
|
||||
})->when(isset($where['store_id']), function ($query) use ($where) {
|
||||
$query->where('store_id', $where['store_id']);
|
||||
})->order('add_time DESC')->select()->toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取店员select
|
||||
* @param array $where
|
||||
* @return array
|
||||
*/
|
||||
public function getSelectList(array $where)
|
||||
{
|
||||
return $this->search($where)->field('id,staff_name')->select()->toArray();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user