其余文件

This commit is contained in:
2026-04-14 17:46:22 +08:00
parent 294b68fe37
commit 3691f4db22
1343 changed files with 189847 additions and 0 deletions

View File

@ -0,0 +1,263 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\common\model\shop;
use app\common\basics\Models;
use app\common\enum\ShopEnum;
use app\common\model\dev\DevRegion;
use app\common\server\UrlServer;
/**
* 商家模型
* Class Shop
* @package app\common\model\shop
*/
class Shop extends Models
{
/**
* NOTE: 关联主营类目模型
* @author 张无忌
*/
public function category()
{
return $this->hasOne('ShopCategory', 'id', 'cid');
}
/**
* @Notes: 关联商家账号模型
* @Author: 张无忌
*/
public function admin()
{
return $this->hasOne('ShopAdmin', 'shop_id', 'id');
}
/**
* NOTE: 获取器-到期时间
* @author: 张无忌
* @param $value
* @return false|string
*/
public function getExpireTimeAttr($value)
{
return $value === 0 ? '无期限' : date('Y-m-d H:i:s', $value);
}
/**
* @notes is_expire 店铺是否已过期
* @param $fieldValue
* @param $data
* @return int
* @author lbzy
* @datetime 2023-09-01 15:54:55
*/
function getIsExpireAttr($fieldValue, $data)
{
$time = $this->getOrigin('expire_time');
return $time === 0 ? 0 : (time() > $time ? 1 : 0);
}
/**
* 修改器-logo转相对
* @param $value
* @return mixed|string
*/
public function setLogoAttr($value)
{
return $value ? UrlServer::setFileUrl($value) : '';
}
/**
* 获取器-背景图路径
* @param $value
* @return string
*/
public function getBackgroundAttr($value)
{
return $value ? UrlServer::getFileUrl($value) : '';
}
/**
* 获取器-背景图路径
* @param $value
* @return string
*/
public function getLogoAttr($value)
{
return $value ? UrlServer::getFileUrl($value) : '';
}
/**
* 获取器-pc店铺封面路径
* @param $value
* @return string
*/
public function getCoverAttr($value)
{
return $value ? UrlServer::getFileUrl($value) : '';
}
/**
* 获取器-pc店铺头图路径
* @param $value
* @return string
*/
public function getBannerAttr($value)
{
return $value ? UrlServer::getFileUrl($value) : '';
}
/**
* @Notes: 修改器-工作日
* @Author: 张无忌
* @param $value
* @return string
*/
public function setWeekdaysAttr($value)
{
if ($value) {
return implode(',', $value);
}
return '';
}
/**
* @Notes: 获取器-工作日
* @Author: 张无忌
* @param $value
* @return array
*/
public function getWeekdaysAttr($value)
{
if ($value) {
return explode(',', $value);
}
return [];
}
/**
* @Notes: 获取器-退货地址
* @Author: 张无忌
* @param $value
* @return array|mixed
*/
public function getRefundAddressAttr($value)
{
if ($value) {
return json_decode($value, true);
}
return [];
}
/**
* 商家类型 获取器
*/
public function getTypeDescAttr($value, $data)
{
return ShopEnum::getShopTypeDesc($data['type']);
}
/**
* 商家介绍 获取器
*/
public function getIntroAttr($value)
{
return $value ? $value : '';
}
/**
* @notes 到期状态
* @param $value
* @return false|string
* @author 段誉
* @date 2022/3/16 18:10
*/
public function getExpireDescAttr($value, $data)
{
if ($data['expire_time'] && time() > $data['expire_time']) {
return '已到期';
}
return '未到期';
}
/**
* @notes 获取器-配送方式
* @param $value
* @param $data
* @return false|string[]
* @author 段誉
* @date 2022/11/1 11:34
*/
public function getDeliveryTypeAttr($value, $data)
{
if (!empty($value)) {
return explode(',', $value);
}
return $value;
}
/**
* @notes 修改器-配送方式
* @param $value
* @param $data
* @return string
* @author 段誉
* @date 2022/11/1 11:35
*/
public function setDeliveryTypeAttr($value, $data)
{
if (!empty($value)) {
return implode(',', $value);
}
return $value;
}
function getProvinceAttr($value, $data)
{
return DevRegion::getAreaName($data['province_id']);
}
function getCityAttr($value, $data)
{
return DevRegion::getAreaName($data['city_id']);
}
function getDistrictAttr($value, $data)
{
return DevRegion::getAreaName($data['district_id']);
}
function getAddressDetailAttr($value, $data)
{
return implode("", [
$this->getAttr('province'),
$this->getAttr('city'),
$this->getAttr('district'),
$data['address'] ?? '',
]);
}
}

View File

@ -0,0 +1,129 @@
<?php
namespace app\common\model\shop;
use app\common\basics\Models;
use think\Exception;
use think\facade\Db;
/**
* 商户账号流水模型
* Class ShopAccountLog
* @package app\common\model\shop
*/
class ShopAccountLog extends Models
{
const settlement_add_money = 100; //商家结算入账
const withdrawal_stay_money = 101; //商家提现中
const withdrawal_dec_money = 102; //商家提现扣减
const withdrawal_fail_money = 103; //商家提现失败
/**
* @Notes: 增加资金
* @Author: 张无忌
* @param $shopId
* @param $sourceType (来源类型,参考上面定义)
* @param $changeAmount (增加的金额)
* @param int $left_amount (增加后的金额, 如果=-1,则自动去计算)
* @param array $data (其他信息)
* @throws Exception
*/
public static function incData($shopId, $sourceType, $changeAmount, $left_amount=-1, $data=[])
{
try {
if ($left_amount === -1) {
$left_amount = 0;
$wallet = (new Shop())->where(['id'=>$shopId])->value('wallet') ?? 0;
$left_amount += ($wallet + $changeAmount);
} elseif ($left_amount === 0) {
$left_amount = 0;
$wallet = (new Shop())->where(['id'=>$shopId])->value('wallet') ?? 0;
$left_amount += $wallet;
}
self::create([
'log_sn' => createSn('shop_account_log', 'log_sn'),
'shop_id' => $shopId,
'source_type' => $sourceType,
'change_amount' => $changeAmount,
'left_amount' => $left_amount,
'source_id' => $data['source_id'] ?? 0,
'source_sn' => $data['source_sn'] ?? '',
'remark' => $data['remark'] ?? '',
'extra' => $data['extra'] ?? '',
'change_type' => 1,
'create_time' => time()
]);
} catch (\Exception $e) {
throw new Exception($e->getMessage());
}
}
/**
* @Notes: 减少资金
* @Author: 张无忌
* @param $shopId
* @param $sourceType (来源类型,参考上面定义)
* @param $changeAmount (减少的金额)
* @param int $left_amount (增加后的金额, 如果=-1,则自动去计算)
* @param array $data (其他信息)
* @throws Exception
*/
public static function decData($shopId, $sourceType, $changeAmount, $left_amount=-1, $data=[])
{
try {
if ($left_amount === -1) {
$left_amount = 0;
$wallet = (new Shop())->where(['id'=>$shopId])->value('wallet') ?? 0;
$left_amount += ($wallet - $changeAmount);
} elseif ($left_amount === 0) {
$left_amount = 0;
$wallet = (new Shop())->where(['id'=>$shopId])->value('wallet') ?? 0;
$left_amount += $wallet;
}
self::create([
'log_sn' => createSn('shop_account_log', 'log_sn'),
'shop_id' => $shopId,
'source_type' => $sourceType,
'change_amount' => $changeAmount,
'left_amount' => $left_amount,
'source_id' => $data['source_id'] ?? 0,
'source_sn' => $data['source_sn'] ?? '',
'remark' => $data['remark'] ?? '',
'extra' => $data['extra'] ?? '',
'change_type' => 2,
'create_time' => time()
]);
} catch (\Exception $e) {
throw new Exception($e->getMessage());
}
}
/**
* @Notes: 来源类型
* @param bool $status
* @return array|mixed|string
*/
public static function getSourceType($status = true)
{
$desc = [
ShopAccountLog::settlement_add_money => '结算入账',
ShopAccountLog::withdrawal_dec_money => '商家提现',
ShopAccountLog::withdrawal_stay_money => '商家提现中',
ShopAccountLog::withdrawal_fail_money => '商家提现失败',
];
if ($status === true) {
return $desc;
}
return $desc[$status] ?? '未知';
}
}

View File

@ -0,0 +1,50 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\common\model\shop;
use app\common\enum\ShopAdEnum;
class ShopAd extends \app\common\basics\Models
{
function getPlaceNameAttr($fieldValue, $data)
{
return ShopAdEnum::getPlaceDesc($data['place']);
}
function getTerminalNameAttr($fieldValue, $data)
{
return ShopAdEnum::getTerminal($data['terminal']);
}
function getStatusNameAttr($fieldValue, $data)
{
return $data['status'] == 1 ? '正常' : '关闭';
}
function getLinkPathAttr($fieldValue, $data)
{
return parse_url($data['link'], PHP_URL_PATH);
}
function getLinkQueryAttr($fieldValue, $data)
{
parse_str(parse_url($data['link'], PHP_URL_QUERY), $arr);
return $arr;
}
}

View File

@ -0,0 +1,44 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\common\model\shop;
use app\common\basics\Models;
/**
* 商家管理员
* Class ShopAdmin
* @package app\shop\model
*/
class ShopAdmin extends Models
{
/**
* Notes: 登录时间
* @param $value
* @author 段誉(2021/4/13 14:27)
* @return false|string
*/
public function getLoginTimeAttr($value)
{
return empty($value) ? '' : date('Y-m-d H:i:s', $value);
}
}

View File

@ -0,0 +1,26 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\common\model\shop;
use app\common\basics\Models;
class ShopAlipay extends Models
{
}

View File

@ -0,0 +1,87 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\common\model\shop;
use app\common\basics\Models;
use app\common\server\UrlServer;
/**
* 商家申请入驻模型
* Class ShopApply
* @package app\common\model\shop
*/
class ShopApply extends Models
{
/**
* NOTE: 关联主营类目模型
* @author 张无忌
*/
public function category()
{
return $this->hasOne('ShopCategory', 'id', 'cid');
}
/**
* NOTE: 获取器-申请时间
* @param $value
* @return false|string
* @author: 张无忌
*/
public function getApplyTimeAttr($value)
{
return date('Y-m-d H:i:s', $value);
}
/**
* @Notes: 修改器-营业执照
* @Author: 张无忌
* @param $value
*/
// public function setLicenseAttr($value)
// {
// foreach ($value as &$url) {
// UrlServer::setFileUrl($url);
// }
// }
/**
* @Notes: 获取器-营业执照
* @Author: 张无忌
* @param $value
* @return array
*/
public function getLicenseAttr($value)
{
$result = $value ? explode(',', $value) : [];
foreach ($result as &$url) {
UrlServer::getFileUrl($url);
}
return $result;
}
public function getAuditStatusDescAttr($value)
{
$desc = [1=>'待审核',2=>'审核通过',3=>'审核拒绝'];
return $desc[$value];
}
}

View File

@ -0,0 +1,35 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\common\model\shop;
use app\common\basics\Models;
/**
* 商家菜单权限
* Class ShopAuth
* @package app\common\model
*/
class ShopAuth extends Models
{
protected $name = 'dev_shop_auth';
}

View File

@ -0,0 +1,12 @@
<?php
namespace app\common\model\shop;
use app\common\basics\Models;
class ShopBank extends Models
{
}

View File

@ -0,0 +1,33 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\common\model\shop;
use app\common\basics\Models;
/**
* 主营类目模型
* Class ShopCategory
* @package app\common\model\shop
*/
class ShopCategory extends Models
{
}

View File

@ -0,0 +1,27 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\common\model\shop;
use app\common\basics\Models;
class ShopFollow extends Models
{
}

View File

@ -0,0 +1,10 @@
<?php
namespace app\common\model\shop;
use app\common\basics\Models;
class ShopGoodsCategory extends Models
{
}

View File

@ -0,0 +1,82 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\common\model\shop;
use app\common\basics\Models;
/**
* 商家角色
* Class Menu
* @package app\common\model
*/
class ShopRole extends Models
{
protected $name = 'shop_role';
/**
* Notes: 获取角色名称
* @param $role_id
* @author 段誉(2021/4/9 15:40)
* @return mixed|string
*/
public function getRoleName($role_id)
{
$role_name = $this
->where(['id' => $role_id])
->value('name');
return empty($role_name) ? '系统管理员' : $role_name;
}
/**
* Notes: 获取全部角色名称(以角色id为键,值为名称)
* @param array $contidion
* @author 段誉(2021/4/10 10:46)
* @return array
*/
public function getNameColumn($contidion = [])
{
$role_name = $this
->where($contidion)
->where('del', 0)
->column('name', 'id');
return $role_name;
}
/**
* Notes:
* @param array $where
* @param string $field
* @author 段誉(2021/4/10 11:13)
* @return \think\Collection
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getRoleLists($where = [], $field = "*")
{
return $this->where(['del' => 0])->where($where)->field($field)->select();
}
}

View File

@ -0,0 +1,34 @@
<?php
// +----------------------------------------------------------------------
// | likeshop开源商城系统
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | gitee下载https://gitee.com/likeshop_gitee
// | github下载https://github.com/likeshop-github
// | 访问官网https://www.likeshop.cn
// | 访问社区https://home.likeshop.cn
// | 访问手册http://doc.likeshop.cn
// | 微信公众号likeshop技术社区
// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用未经许可不能去除前后端官方版权标识
// | likeshop系列产品收费版本务必购买商业授权购买去版权授权后方可去除前后端官方版权标识
// | 禁止对系统程序代码以任何目的,任何形式的再发布
// | likeshop团队版权所有并拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeshop.cn.team
// +----------------------------------------------------------------------
namespace app\common\model\shop;
use app\common\basics\Models;
/**
* 商家角色权限关联 模型
* Class Menu
* @package app\common\model
*/
class ShopRoleAuthIndex extends Models
{
protected $name = 'shop_role_auth_index';
}

View File

@ -0,0 +1,24 @@
<?php
namespace app\common\model\shop;
use think\Model;
/**
* 商家结算模型
* Class ShopSettlement
* @package app\common\model\shop
*/
class ShopSettlement extends Model
{
/**
* @Notes: 关联商家模型
* @Author: 张无忌
*/
public function shop()
{
return $this->hasOne('Shop', 'id', 'shop_id');
}
}

View File

@ -0,0 +1,30 @@
<?php
namespace app\common\model\shop;
use think\Model;
/**
* 结算记录模型
* Class ShopSettlementRecord
* @package app\common\model\shop
*/
class ShopSettlementRecord extends Model
{
/**
* @Notes: 获取器-格式化订单完成时间
* @Author: 张无忌
* @param $value
* @return false|string
*/
public function getOrderCompleteTimeAttr($value)
{
if ($value) {
return date('Y-m-d H:i:s', $value);
}
return $value;
}
}

View File

@ -0,0 +1,61 @@
<?php
namespace app\common\model\shop;
use app\common\basics\Models;
use app\common\server\UrlServer;
class ShopWithdrawal extends Models
{
/**
* @Notes: 关联商家模型
* @Author: 张无忌
*/
public function shop()
{
return $this->hasOne('Shop', 'id', 'shop_id');
}
/**
* @notes 关联提现支付宝账号
* @return \think\model\relation\HasOne
* @author lbzy
* @datetime 2023-06-07 14:24:07
*/
function alipay()
{
return $this->hasOne(ShopAlipay::class, 'id', 'alipay_id');
}
/**
* @Notes: 获取器-转换图片路径
* @Author: 张无忌
* @param $value
* @return string
*/
public function getTransferVoucherAttr($value)
{
if ($value) {
return UrlServer::getFileUrl($value);
}
return '';
}
/**
* @Notes: 修改器-转换图片路径
* @Author: 张无忌
* @param $value
* @return string
*/
public function setTransferVoucherAttr($value)
{
if ($value) {
return UrlServer::setFileUrl($value);
}
return '';
}
}