www.lightcourse.com/app/home/controller/Memberinform.php

368 lines
11 KiB
PHP
Raw Normal View History

2022-10-24 02:38:36 +00:00
<?php
namespace app\home\controller;
use think\facade\View;
use think\facade\Lang;
/**
* ============================================================================
* 联课教育商城系统
* ============================================================================
* 版权所有 2022 刻羽互动科技有限公司,并保留所有权利。
* 网站地址: http://www.o1h.cn
* ----------------------------------------------------------------------------
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
* 不允许对程序代码以任何形式任何目的的再发布。
* ============================================================================
* 控制器
*/
class Memberinform extends BaseMember {
public function initialize() {
parent::initialize(); // TODO: Change the autogenerated stub
Lang::load(base_path() . 'home/lang/'.config('lang.default_lang').'/memberinfom.lang.php');
}
/*
* 获取当前用户的举报列表
*/
public function index() {
/*
* 得到当前用户的举报列表
*/
$inform_model = model('inform');
$condition = array();
$inform_state = intval(input('param.select_inform_state'));
if ($inform_state > 0){
$condition[] = array('inform.inform_state','=',$inform_state);
}
$condition[] = array('inform.inform_member_id','=',session('member_id'));
$inform_list = $inform_model->getInformList($condition, 10);
/* 设置买家当前菜单 */
$this->setMemberCurMenu('member_inform');
/* 设置买家当前栏目 */
$this->setMemberCurItem('inform_list');
View::assign('inform_list', $inform_list);
View::assign('show_page', $inform_model->page_info->render());
return View::fetch($this->template_dir . 'index');
}
/*
* 提交举报商品
*/
public function inform_submit() {
//检查当前用户是否允许举报
$this->check_member_allow_inform();
$goods_id = intval(input('param.goods_id'));
//获取商品详细信息
$goods_info = $this->get_goods_info_byid($goods_id);
$inform_model = model('inform');
//检查是否当前正在举报
if ($inform_model->isProcessOfInform($goods_id)) {
$this->error(lang('inform_handling'));
}
//获取举报类型
$informsubjecttype_model = model('informsubjecttype');
$inform_subject_type_list = $informsubjecttype_model->getActiveInformsubjecttypeList();
if (empty($inform_subject_type_list)) {
$this->error(lang('inform_type_null'));
}
/* 设置买家当前菜单 */
$this->setMemberCurMenu('member_inform');
/* 设置买家当前栏目 */
$this->setMemberCurItem('inform_list');
View::assign('goods_info', $goods_info);
View::assign('type_list', $inform_subject_type_list);
return View::fetch($this->template_dir . 'inform_submit');
}
/*
* 保存用户提交的商品举报
*/
public function inform_save() {
//检查当前用户是否允许举报
$this->check_member_allow_inform();
$goods_id = intval(input('post.inform_goods_id'));
//获取商品详细信息
$goods_info = $this->get_goods_info_byid($goods_id);
//实例化举报模型
$inform_model = model('inform');
//检查是否当前正在举报
if ($inform_model->isProcessOfInform($goods_id)) {
$this->error(lang('inform_handling'));
}
//处理用户输入的数据
$input = array();
$input['inform_member_id'] = session('member_id');
$input['inform_member_name'] = session('member_name');
$input['inform_goods_id'] = $goods_id;
$input['inform_goods_name'] = $goods_info['goods_name'];
$input['inform_goods_image'] = $goods_info['goods_image'];
list($input['informsubject_id'], $input['informsubject_content']) = explode(",", trim(input('post.inform_subject')));
$input['inform_content'] = trim(input('post.inform_content'));
//上传图片
$inform_pic = array();
$inform_pic[1] = 'inform_pic1';
$inform_pic[2] = 'inform_pic2';
$inform_pic[3] = 'inform_pic3';
$pic_name = $this->inform_upload_pic($inform_pic);
$input['inform_pic1'] = $pic_name[1];
$input['inform_pic2'] = $pic_name[2];
$input['inform_pic3'] = $pic_name[3];
$input['inform_datetime'] = TIMESTAMP;
$input['inform_state'] = 1;
$input['inform_handle_message'] = '';
$input['inform_handle_member_id'] = 0;
$input['inform_handle_datetime'] = 1;
//验证输入的数据
$data = [
'inform_content' => $input["inform_content"],
'informsubject_content' => $input["informsubject_content"]
];
$res=word_filter($input['inform_content']);
if(!$res['code']){
$this->error($res['msg']);
}
$input['inform_content']=$res['data']['text'];
$inform_validate = ds_validate('inform');
if (!$inform_validate->scene('inform_save')->check($data)) {
$this->error($inform_validate->getError());
}
//保存
if ($inform_model->addInform($input)) {
$this->success(lang('inform_success'), url('Memberinform/index'));
} else {
$this->error(lang('inform_fail'),url('Memberinform/index'));
}
}
/*
* 取消用户提交的商品举报
*/
public function inform_cancel() {
$inform_id = intval(input('param.inform_id'));
$inform_info = $this->get_inform_info($inform_id);
if (intval($inform_info['inform_state']) === 1) {
$pics = array();
if (!empty($inform_info['inform_pic1'])) {
$pics[] = $inform_info['inform_pic1'];
}
if (!empty($inform_info['inform_pic2'])) {
$pics[] = $inform_info['inform_pic2'];
}
if (!empty($inform_info['inform_pic3'])) {
$pics[] = $inform_info['inform_pic3'];
}
$this->drop_inform($inform_id, $pics);
ds_json_encode(10000,lang('inform_cancel_success'));
} else {
ds_json_encode(10001,lang('inform_cancel_fail'));
}
}
/**
* 商品举报详细
*/
public function inform_info() {
$inform_id = intval(input('param.inform_id'));
$inform_info = $this->get_inform_info($inform_id);
View::assign('inform_info', $inform_info);
// 商品信息
$goods_info = model('goods')->getGoodsInfoByID($inform_info['inform_goods_id']);
View::assign('goods_info', $goods_info);
// 投诉类型
$subject_info = model('informsubject')->getOneInformsubject(array('informsubject_id' => $inform_info['informsubject_id']));
/* 设置买家当前菜单 */
$this->setMemberCurMenu('member_inform');
/* 设置买家当前栏目 */
$this->setMemberCurItem('inform_list');
View::assign('subject_info', $subject_info);
return View::fetch($this->template_dir . 'inform_info');
}
/*
* 根据id获取投诉详细信息
*/
private function get_inform_info($inform_id) {
if (empty($inform_id)) {
$this->error(lang('param_error'));
}
$inform_model = model('inform');
$inform_info = $inform_model->getOneInform(array('inform_id'=>$inform_id));
if (empty($inform_info)) {
$this->error(lang('param_error'));
}
if (intval($inform_info['inform_member_id']) !== intval(session('member_id'))) {
$this->error(lang('param_error'));
}
return $inform_info;
}
/*
* 根据id获取投诉详细信息
*/
private function drop_inform($inform_id, $inform_pics) {
$inform_model = model('inform');
//删除图片
if (!empty($inform_pics)) {
foreach ($inform_pics as $pic) {
$this->inform_delete_pic($pic);
}
}
$inform_model->delInform(array('inform_id' => $inform_id));
}
/*
* 根据id获取商品详细信息
*/
private function get_goods_info_byid($goods_id) {
if (empty($goods_id)) {
$this->error(lang('param_error'));
}
$goods_model = model('goods');
$goods_info = $goods_model->getGoodsOnlineInfoByID($goods_id);
//检查该商品是否存在
if (empty($goods_info)) {
$this->error(lang('goods_null'));
}
return $goods_info;
}
/*
* 检查当前用户是否允许举报
*/
private function check_member_allow_inform() {
//检查是否允许举报
$member_model = model('member');
if (!$member_model->isMemberAllowInform(session('member_id'))) {
$this->error(lang('deny_inform'));
}
}
/*
* 上传用户提供的举报图片
*/
private function inform_upload_pic($inform_pic) {
$pic_name = array();
$count = 1;
foreach ($inform_pic as $pic) {
if (!empty($_FILES[$pic]['name'])) {
$file_name = session('member_id') . '_' . date('YmdHis') . rand(10000, 99999).'.png';
$res = ds_upload_pic('home'.DIRECTORY_SEPARATOR.'inform', $pic, $file_name);
if ($res['code']) {
$pic_name[$count] = $res['data']['file_name'];
} else {
$pic_name[$count] = '';
}
}else{
$pic_name[$count] = '';
}
$count++;
}
return $pic_name;
}
/*
* 上传用户提供的举报图片
*/
private function inform_delete_pic($pic_name) {
//上传路径
$pic = BASE_UPLOAD_PATH . DIRECTORY_SEPARATOR . ATTACH_PATH . DIRECTORY_SEPARATOR . 'inform' . DIRECTORY_SEPARATOR . $pic_name;
if (file_exists($pic)) {
@unlink($pic);
}
}
/*
* 根据举报类型id获取举报具体列表
*/
public function get_subject_by_typeid() {
$informsubject_type_id = intval(input('param.type_id'));
if (empty($informsubject_type_id)) {
echo '';
} else {
/*
* 获得举报主题列表
*/
$informsubject_model = model('informsubject');
//搜索条件
$condition = array();
$condition[] = array('informsubject_type_id','=',$informsubject_type_id);
$condition[] = array('informsubject_state','=',1);
$inform_subject_list = $informsubject_model->getInformsubjectList($condition, 10, 'informsubject_id,informsubject_content');
echo json_encode($inform_subject_list);
}
}
/**
* 用户中心右边,小导航
*
* @param string $menu_type 导航类型
* @param string $menu_key 当前导航的menu_key
* @param array $array 附加菜单
*
* @return
*/
public function getMemberItemList() {
$menu_array = array(
array(
'name' => 'inform_list',
'text' => lang('violation_report'),
'url' => url('Memberinform/index')
),
);
return $menu_array;
}
}