Files
yycea/application/api/controller/wdsxh/CompanyGoods.php
2026-03-17 09:56:06 +08:00

198 lines
5.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// +----------------------------------------------------------------------
// | 麦沃德科技赋能开发者,助力中小企业发展
// +----------------------------------------------------------------------
// | Copyright (c) 20172024 www.wdadmin.cn All rights reserved.
// +----------------------------------------------------------------------
// | Wdadmin系统产品软件并不是自由软件不加密并不代表开源未经许可不可自由转售和商用
// +----------------------------------------------------------------------
// | Author: MY WORLD Team <bd@maiwd.cn> www.wdadmin.cn
// +----------------------------------------------------------------------
namespace app\api\controller\wdsxh;
use app\api\model\wdsxh\member\Member;
use app\api\model\wdsxh\UserWechat;
use app\common\controller\Api;
class CompanyGoods extends Api
{
protected $noNeedLogin = [''];
protected $noNeedRight = ['*'];
protected $model = null;
protected $member_id = null;
public function _initialize()
{
parent::_initialize();
$this->model = new \app\api\model\wdsxh\member\CompanyGoods();
$wechat_id = (new UserWechat())->where('user_id',$this->auth->id)->value('id');
if (!$wechat_id) {
$this->error('用户信息不存在');
}
$memberObj = (new Member())->where('wechat_id',$wechat_id)->find();
if (!$memberObj) {
$this->error('会员信息不存在');
}
$current_date = date('Y-m-d',time());
if ($memberObj['expire_time'] < $current_date) {
$this->error('会员已过期,需要缴纳会费');
}
if (!in_array($memberObj['type'],[2,3])) {
$this->error('仅限会员使用');
}
$this->member_id = $memberObj['id'];
}
/**
* 产品列表
*/
public function index()
{
if (!$this->request->isGet()) {
$this->error('请求方式错误');
}
$list = $this->model->where('member_id', $this->member_id)
->field('id,name,images')
->order('createtime desc')
->select();
foreach ($list as &$item) {
$item->hidden(['images']);
}
$this->success('获取成功', $list);
}
/**
* 产品详情
*/
public function detail()
{
if (!$this->request->isGet()) {
$this->error('请求方式错误');
}
$id = $this->request->get('id');
if (!$id) {
$this->error('参数错误');
}
// 检查产品是否属于当前会员
$goods = $this->model->where('id', $id)
->field('id,name,images,content')
->where('member_id', $this->member_id)
->find();
if (!$goods) {
$this->error('产品不存在或无权查看');
}
$data = $goods->toArray();
unset($data['image']);
$this->success('获取成功', $data);
}
/**
* 添加产品
*/
public function add()
{
if (!$this->request->isPost()) {
$this->error('请求方式错误');
}
$params = $this->request->post();
$params['content'] = $_POST['content'] ?? '';
// 验证数据
$validate = new \app\api\validate\wdsxh\CompanyGoods();
if (!$validate->scene('add')->check($params)) {
$this->error($validate->getError());
}
// 添加会员ID
$params['member_id'] = $this->member_id;
// 保存数据
$result = $this->model->save($params);
if ($result) {
$this->success('添加成功');
} else {
$this->error('添加失败');
}
}
/**
* 修改产品
*/
public function edit()
{
if (!$this->request->isPost()) {
$this->error('请求方式错误');
}
$params = $this->request->post();
$params['content'] = $_POST['content'] ?? '';
$id = $this->request->post('id');
if (!$id) {
$this->error('参数错误');
}
// 验证数据
$validate = new \app\api\validate\wdsxh\CompanyGoods();
if (!$validate->scene('edit')->check($params)) {
$this->error($validate->getError());
}
// 检查产品是否属于当前会员
$goods = $this->model->where('id', $id)
->where('member_id', $this->member_id)
->find();
if (!$goods) {
$this->error('产品不存在或无权操作');
}
// 更新数据
$result = $goods->save($params);
if ($result !== false) {
$this->success('修改成功');
} else {
$this->error('修改失败');
}
}
/**
* 删除产品
*/
public function del()
{
if (!$this->request->isPost()) {
$this->error('请求方式错误');
}
$id = $this->request->post('id');
if (!$id) {
$this->error('参数错误');
}
// 检查产品是否属于当前会员
$goods = $this->model->where('id', $id)
->where('member_id', $this->member_id)
->find();
if (!$goods) {
$this->error('产品不存在或无权操作');
}
// 删除数据
$result = $goods->delete();
if ($result) {
$this->success('删除成功');
} else {
$this->error('删除失败');
}
}
}