初始版本

This commit is contained in:
贾祥聪
2025-08-19 14:16:51 +08:00
commit f937a1f9b9
4373 changed files with 359728 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
<?php
namespace app\adminapi\validate\coach;
use app\common\validate\BaseValidate;
/**
* 调整余额
* Class AdjustWalletValidate
* @package app\adminapi\validate\coach
*/
class AdjustWalletValidate extends BaseValidate
{
protected $rule = [
'id' => 'require',
'action' => 'require|in:1,2',
'money' => 'require|gt:0'
];
protected $message = [
'id.require' => '请选择技师',
'action.require' => '请选择调整类型',
'action.in' => '调整类型错误',
'money.require' => '请输入调整金额',
'money.gt' => '调整金额必须大于0'
];
}

View File

@@ -0,0 +1,19 @@
<?php
namespace app\adminapi\validate\coach;
use app\common\validate\BaseValidate;
class CoachAuditValidate extends BaseValidate
{
protected $rule = [
'id' => 'require',
'audit_status' => 'require|in:0,1',
'audit_remark' => 'max:255',
];
protected $message = [
'id.require' => '请选择技师',
'audit_status.require' => '请选择审核状态',
'audit_status.in' => '审核状态错误',
'audit_remark.require' => '请输入备注',
];
}

View File

@@ -0,0 +1,167 @@
<?php
namespace app\adminapi\validate\coach;
use app\adminapi\logic\coach\CoachLogic;
use app\common\model\coach\Coach;
use app\common\model\coach\CoachUser;
use app\common\model\skill\Skill;
use app\common\validate\BaseValidate;
/**
* 技师验证类
* Class CoachValidate
* @package app\adminapi\validate\coach
*/
class CoachValidate extends BaseValidate
{
protected $rule = [
'id' => 'require',
// 'coach_user_id' => 'require|checkCoachUserId',
'name' => 'require|max:64',
'gender' => 'require|in:1,2',
'age' => 'require',
'mobile' => 'require|mobile',
'id_card' => 'require|idCard',
'education' => 'require',
'nation' => 'require',
'province_id' => 'require',
'city_id' => 'require',
// 'region_id' => 'require',
'address_detail' => 'require',
'skill_id' => 'require|checkSkill',
'goods_ids' => 'require|array|checkGoods',
'id_card_back' => 'require',
'id_card_front' => 'require',
'portrait_shooting' => 'require',
'work_photo' => 'require',
// 'certification' => 'require',
// 'health_certificate'=> 'require',
// 'life_photo' => 'require|array',
'work_status' => 'require|in:0,1',
'server_status' => 'require|in:0,1',
// 'longitude' => 'require',
// 'latitude' => 'require',
];
protected $message = [
'id.require' => '请选择技师',
'coach_user_id.require' => '请选择账号',
'name.require' => '请输入名称',
'name.max' => '名称不能超过64个字符',
'gender.require' => '请输入性别',
'gender.in' => '性别错误',
'mobile.require' => '请输入联系电话',
'mobile.mobile' => '联系电话格式错误',
'id_card.require' => '请输入身份证',
'id_card.idCard' => '身份证格式错误',
'education.require' => '请输入学历',
'nation.require' => '请输入民族',
'province_id.require' => '请选择省份',
'city_id.require' => '请选择城市',
'region_id.require' => '请选择地区',
'address_detail.require' => '请输入详情地址',
'skill_id.require' => '请选择技能',
'goods_ids.require' => '请选择服务',
'goods_ids.array' => '服务数据错误',
'id_card_back.require' => '请上传身份证人像照',
'id_card_front,require' => '请上传身份证国徽照',
'portrait_shooting,require' => '请上传人像实拍照',
'work_photo.require' => '请上传工作照',
'work_status.require' => '请选择工作状态',
'work_status.in' => '工作状态错误',
'server_status.require' => '请选择服务状态',
'server_status.in' => '服务状态错误',
'longitude.require' => '请在地图上标记位置',
'latitude.require' => '请在地图上标记位置',
];
public function sceneAdd()
{
return $this->remove(['id'=>true]);
}
public function sceneId()
{
return $this->only(['id']);
}
/**
* @notes 验证账号完整
* @param $value
* @param $rule
* @param $data
* @return string|true
* @author cjhao
* @date 2024/8/20 18:55
*/
public function checkCoachUserId($value,$rule,$data)
{
// $coachUser = CoachUser::where(['id'=>$value])->findOrEmpty();
// if($coachUser->isEmpty()){
// return '账号不存在';
// }
// $where[] = ['coach_user_id','=',$value];
// if(isset($data['id'])){
// $where[] = ['id','<>',$data['id']];
// }
// $coach = Coach::where($where)->findOrEmpty();
// if(!$coach->isEmpty()){
// return '账号已关联了技师';
// }
return true;
}
/**
* @notes 验证技能
* @param $value
* @param $rule
* @param $data
* @return string|true
* @author cjhao
* @date 2024/8/20 17:44
*/
public function checkSkill($value,$rule,$data)
{
$skill = Skill::where(['id'=>$value])->findOrEmpty();
if($skill->isEmpty()){
return '服务技能不存在,请重新刷新';
}
return true;
}
/**
* @notes
* @param $value
* @param $rule
* @param $data
* @return string|true
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author cjhao
* @date 2024/8/20 18:15
*/
public function checkGoods($value,$rule,$data)
{
$shopId = 0;
$coachId = $data['id'] ?? 0;
if($coachId){
$shopId = Coach::where(['id'=>$coachId])->value('shop_id');
}
$skillLists = (new CoachLogic())->skillLists($shopId);
$skillLists = array_column($skillLists,null,'id');
$goodsLists = $skillLists[$data['skill_id']]['goods_list'] ?? [];
if(empty($goodsLists)){
return '请选择服务';
}
$goodsIds = array_column($goodsLists,'id');
foreach ($value as $id) {
if(!in_array($id,$goodsIds)){
return '服务数据错误,请刷新技能重新选择';
}
}
return true;
}
}

View File

@@ -0,0 +1,102 @@
<?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\adminapi\validate\coach;
use app\common\model\deposit\DepositPackage;
use app\common\model\skill\Skill;
use app\common\validate\BaseValidate;
class DepositPackageValidate extends BaseValidate
{
protected $rule = [
'id' => 'require|checkId',
'name' => 'require|max:32|checkName',
'money' => 'require|gt:0',
'order_limit' => 'require|gt:0',
// 'is_show' => 'require|in:0,1',
];
protected $message = [
'id.require' => '参数错误',
'name.require' => '请输入名称',
'name.unique' => '名称重复',
'name.max' => '名称不能超过32个字',
'is_show.require' => '请选择状态',
'is_show.in' => '状态取值范围在[0,1]',
'money.require' => '请输入金额',
'money.gt' => '金额必须大于零',
'order_limit.require' => '请输入日接单数量',
'order_limit.gt' => '日接单数量必须大于零',
];
public function sceneAdd()
{
return $this->remove(['id'=>true]);
}
public function sceneId()
{
return $this->only(['id']);
}
/**
* @notes 检验ID
* @param $value
* @param $rule
* @param $data
* @return bool|string
* @author ljj
* @date 2022/2/8 4:32 下午
*/
public function checkId($value,$rule,$data)
{
$result = DepositPackage::where('id',$value)->findOrEmpty();
if ($result->isEmpty()) {
return '数据不存在';
}
return true;
}
/**
* @notes 检测名称
* @param $value
* @param $rule
* @param $data
* @return string|true
* @author cjhao
* @date 2024/10/29 10:30
*/
public function checkName($value,$rule,$data){
$where[] = ['type','=',1];
$where[] = ['name','=',$value];
if(isset($data['id']) && $data['id']){
$where[] = ['id','<>',$data['id']];
}
$result = DepositPackage::where($where)
->findOrEmpty();
if($result->isEmpty()){
return true;
}
return '套餐名字重复';
}
}

View File

@@ -0,0 +1,79 @@
<?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\adminapi\validate\coach;
use app\common\model\skill\Skill;
use app\common\validate\BaseValidate;
class SkillValidate extends BaseValidate
{
protected $rule = [
'id' => 'require|checkId',
'name' => 'require|unique:'.Skill::class.',name|max:32',
'is_show' => 'require|in:0,1',
];
protected $message = [
'id.require' => '参数错误',
'name.require' => '请输入名称',
'name.unique' => '名称重复',
'name.max' => '名称不能超过32个字',
'is_show.require' => '请选择状态',
'is_show.in' => '状态取值范围在[0,1]',
];
public function sceneAdd()
{
return $this->remove(['id'=>true]);
}
public function sceneId()
{
return $this->only(['id']);
}
public function sceneStatus()
{
return $this->only(['id','is_show']);
}
/**
* @notes 检验ID
* @param $value
* @param $rule
* @param $data
* @return bool|string
* @author ljj
* @date 2022/2/8 4:32 下午
*/
public function checkId($value,$rule,$data)
{
$result = Skill::where('id',$value)->findOrEmpty();
if ($result->isEmpty()) {
return '技能不存在';
}
return true;
}
}