member_info['member_id']); switch (intval(input('param.select_complain_state'))) { case 1: $condition[] = array('complain_state', '<', 90); break; case 2: $condition[] = array('complain_state', '=', 99); break; } $complain_list = $complain_model->getComplainList($condition, $this->pagesize); $goods_list = $complain_model->getComplainGoodsList($complain_list); foreach ($goods_list as $key => $val) { $goods_list[$key]['goods_image_url'] = goods_thumb($val, 240); } $result = array_merge(array('complaint_list' => $complain_list, 'goods_list' => $goods_list), mobile_page($complain_model->page_info)); ds_json_encode(10000, '', $result); } public function common_data($order_id, $goods_id) { //获取投诉类型 $complainsubject_model = model('complainsubject'); $param = array(); $complain_subject_list = $complainsubject_model->getActiveComplainsubject($param); if (empty($complain_subject_list)) { ds_json_encode(10001, lang('complain_subject_error')); } $condition = array(); $condition[] = array('buyer_id', '=', $this->member_info['member_id']); $condition[] = array('order_id', '=', $order_id); $refundreturn_model = model('refundreturn'); $order_info = $refundreturn_model->getRightOrderList($condition, $goods_id); $order_info['extend_order_goods'] = $order_info['goods_list']; $order_list[$order_id] = $order_info; $order_list = $refundreturn_model->getGoodsRefundList($order_list); if (isset($order_list[$order_id]['extend_complain'][$goods_id]) && intval($order_list[$order_id]['extend_complain'][$goods_id]) == 1) { //退款投诉 $complainsubject_model = model('complainsubject'); $complain_subject = $complainsubject_model->getComplainsubject(array('complainsubject_id' => 1)); //投诉主题 $complain_subject_list = array_merge($complain_subject, $complain_subject_list); } return array('subject_list' => $complain_subject_list); } /** * @api {POST} api/Membercomplain/get_common_data 新增/编辑投诉公共数据 * @apiVersion 1.0.0 * @apiGroup Membercomplain * * @apiHeader {String} X-DS-KEY 用户授权token * * @apiSuccess {String} code 返回码,10000为成功 * @apiSuccess {String} message 返回消息 * @apiSuccess {Object} result 返回数据 * @apiSuccess {Object[]} result.subject_list 投诉主题列表 * @apiSuccess {String} result.subject_list.complainsubject_content 投诉主题内容 * @apiSuccess {String} result.subject_list.complainsubject_desc 投诉主题描述 * @apiSuccess {Int} result.subject_list.complainsubject_id 投诉主题ID * @apiSuccess {Int} result.subject_list.complainsubject_state 投诉主题状态 1:有效 2:失效 */ public function get_common_data() { $order_id = intval(input('param.order_id')); $goods_id = intval(input('param.goods_id')); $common_data = $this->common_data($order_id, $goods_id); ds_json_encode(10000, '', $common_data); } /** * @api {POST} api/Membercomplain/complain_show 获取投诉信息 * @apiVersion 1.0.0 * @apiGroup Membercomplain * * @apiHeader {String} X-DS-KEY 用户授权token * * @apiParam {Int} complain_id 投诉ID * * @apiSuccess {String} code 返回码,10000为成功 * @apiSuccess {String} message 返回消息 * @apiSuccess {Object} result 返回数据 * @apiSuccess {String[]} result.appeal_pic 申诉凭证图片列表 * @apiSuccess {String[]} result.complain_pic 投诉凭证图片列表 * @apiSuccess {Object} result.complain_info 投诉信息 * @apiSuccess {Int} result.complain_info.accused_id 被告ID * @apiSuccess {String} result.complain_info.accused_name 被告名称 * @apiSuccess {Int} result.complain_info.accuser_id 原告ID * @apiSuccess {String} result.complain_info.accuser_name 原告用户名 * @apiSuccess {Int} result.complain_info.appeal_datetime 申诉时间,Unix时间戳 * @apiSuccess {String} result.complain_info.appeal_message 申诉内容 * @apiSuccess {String} result.complain_info.appeal_pic1 申诉图片1 * @apiSuccess {String} result.complain_info.appeal_pic2 申诉图片2 * @apiSuccess {String} result.complain_info.appeal_pic3 申诉图片3 * @apiSuccess {Int} result.complain_info.complain_active 投诉是否通过平台审批 1:未通过 2:通过 * @apiSuccess {String} result.complain_info.complain_content 投诉内容 * @apiSuccess {Int} result.complain_info.complain_datetime 投诉时间,Unix时间戳 * @apiSuccess {Int} result.complain_info.complain_handle_datetime 投诉处理时间,Unix时间戳 * @apiSuccess {Int} result.complain_info.complain_handle_member_id 投诉处理人ID * @apiSuccess {Int} result.complain_info.complain_id 投诉ID * @apiSuccess {String} result.complain_info.complain_pic1 投诉图片1 * @apiSuccess {String} result.complain_info.complain_pic2 投诉图片2 * @apiSuccess {String} result.complain_info.complain_pic3 投诉图片3 * @apiSuccess {Int} result.complain_info.complain_state 投诉状态 10:新投诉 20:投诉通过转给被投诉人 30:被投诉人已申诉 40:提交仲裁 99:已关闭 * @apiSuccess {String} result.complain_info.complain_subject_content 投诉主题 * @apiSuccess {Int} result.complain_info.complain_subject_id 投诉主题id * @apiSuccess {Int} result.complain_info.final_handle_datetime 最终处理时间,Unix时间戳 * @apiSuccess {Int} result.complain_info.final_handle_member_id 最终处理人ID * @apiSuccess {String} result.complain_info.final_handle_message 最终处理意见 * @apiSuccess {Int} result.complain_info.order_goods_id 订单商品ID * @apiSuccess {Int} result.complain_info.order_id 订单ID * @apiSuccess {Object} result.return_info 退款信息 * @apiSuccess {Int} result.return_info.add_time 退款添加时间 * @apiSuccess {String} result.return_info.buyer_email 买家邮箱 * @apiSuccess {Int} result.return_info.buyer_id 买家ID * @apiSuccess {String} result.return_info.buyer_name 买家用户名 * @apiSuccess {Int} result.return_info.delay_time 自动收货时间 * @apiSuccess {Int} result.return_info.delete_state 订单删除状态 0:未删除 1:放入回收站 2:彻底删除 * @apiSuccess {Int} result.return_info.evaluation_state 评论状态 * @apiSuccess {Object} result.return_info.extend_order_common 订单公共信息 * @apiSuccess {Int} result.return_info.extend_order_common.daddress_id 发货地址ID * @apiSuccess {String} result.return_info.extend_order_common.deliver_explain 订单发货备注 * @apiSuccess {Int} result.return_info.extend_order_common.evalseller_state 卖家是否已评价买家 * @apiSuccess {Int} result.return_info.extend_order_common.evalseller_time 卖家评价买家的时间 * @apiSuccess {Int} result.return_info.extend_order_common.evaluation_time 评价时间 * @apiSuccess {String} result.return_info.extend_order_common.invoice_info 订单发票信息 * @apiSuccess {Int} result.return_info.extend_order_common.order_id 订单ID * @apiSuccess {String} result.return_info.extend_order_common.order_message 订单留言 * @apiSuccess {Int} result.return_info.extend_order_common.order_pointscount 订单赠送积分 * @apiSuccess {String} result.return_info.extend_order_common.promotion_info 订单促销信息备注 * @apiSuccess {Int} result.return_info.extend_order_common.reciver_city_id 收货人市级ID * @apiSuccess {String} result.return_info.extend_order_common.reciver_info 收货人其它信息 * @apiSuccess {String} result.return_info.extend_order_common.reciver_info.address 收货地址 * @apiSuccess {String} result.return_info.extend_order_common.reciver_info.area 收货地区 * @apiSuccess {String} result.return_info.extend_order_common.reciver_info.mob_phone 收货人手机号 * @apiSuccess {String} result.return_info.extend_order_common.reciver_info.phone 收货人联系号码 * @apiSuccess {String} result.return_info.extend_order_common.reciver_info.street 街道地址 * @apiSuccess {String} result.return_info.extend_order_common.reciver_info.tel_phone 座机号 * @apiSuccess {String} result.return_info.extend_order_common.reciver_name 收货人姓名 * @apiSuccess {Int} result.return_info.extend_order_common.reciver_province_id 收货地区省ID * @apiSuccess {Int} result.return_info.extend_order_common.shipping_express_id 配送公司ID * @apiSuccess {Int} result.return_info.extend_order_common.shipping_time 发货时间 * @apiSuccess {Int} result.return_info.extend_order_common.store_id 店铺ID * @apiSuccess {String} result.return_info.extend_order_common.voucher_code 代金券编码 * @apiSuccess {Int} result.return_info.extend_order_common.voucher_price 代金券面额 * @apiSuccess {Object} result.return_info.extend_store 店铺信息 * @apiSuccess {String} result.return_info.extend_store.area_info 店铺地区 * @apiSuccess {Int} result.return_info.extend_store.bind_all_gc 是否绑定所有分类 0否1是 * @apiSuccess {String} result.return_info.extend_store.deliver_region 店铺默认配送区域 * @apiSuccess {Int} result.return_info.extend_store.goods_count 商品数量 * @apiSuccess {Int} result.return_info.extend_store.grade_id 等级ID * @apiSuccess {Int} result.return_info.extend_store.is_platform_store 是否自营店 0否1是 * @apiSuccess {String} result.return_info.extend_store.mb_sliders 手机店铺轮播图序列化字符串 * @apiSuccess {String} result.return_info.extend_store.mb_title_img 手机店铺背景图 * @apiSuccess {Int} result.return_info.extend_store.member_id 店铺用户ID * @apiSuccess {String} result.return_info.extend_store.member_name 店铺用户名 * @apiSuccess {Int} result.return_info.extend_store.region_id 店铺地区ID * @apiSuccess {String} result.return_info.extend_store.seller_name 卖家用户名 * @apiSuccess {String} result.return_info.extend_store.store_address 店铺地址 * @apiSuccess {Int} result.return_info.extend_store.store_addtime 店铺添加时间 * @apiSuccess {Object[]} result.return_info.extend_store.store_aftersales 售后列表 * @apiSuccess {String} result.return_info.extend_store.store_aftersales.name 售后名称 * @apiSuccess {String} result.return_info.extend_store.store_aftersales.num 售后账号 * @apiSuccess {String} result.return_info.extend_store.store_aftersales.type 售后类型 1QQ2旺旺3站内IM * @apiSuccess {Float} result.return_info.extend_store.store_avaliable_deposit 可用保证金 * @apiSuccess {Float} result.return_info.extend_store.store_avaliable_money 可用预存款 * @apiSuccess {String} result.return_info.extend_store.store_avatar 店铺头像 * @apiSuccess {String} result.return_info.extend_store.store_banner 店铺背景图 * @apiSuccess {Int} result.return_info.extend_store.store_baozh 是否已缴保证金 0否1是 * @apiSuccess {Int} result.return_info.extend_store.store_bill_time 上次结算时间 * @apiSuccess {String} result.return_info.extend_store.store_close_info 店铺关闭原因 * @apiSuccess {Int} result.return_info.extend_store.store_collect 店铺收藏数量 * @apiSuccess {String} result.return_info.extend_store.store_company_name 店铺公司名称 * @apiSuccess {Object} result.return_info.extend_store.store_credit 店铺信用信息 * @apiSuccess {String} result.return_info.extend_store.store_credit.store_deliverycredit 发货速度信息 * @apiSuccess {Int} result.return_info.extend_store.store_credit.store_deliverycredit.credit 发货速度评分 * @apiSuccess {String} result.return_info.extend_store.store_credit.store_deliverycredit.text 发货速度描述 * @apiSuccess {Object} result.return_info.extend_store.store_credit.store_desccredit 描述相符信息 * @apiSuccess {Int} result.return_info.extend_store.store_credit.store_desccredit.credit 描述相符评分 * @apiSuccess {String} result.return_info.extend_store.store_credit.store_desccredit.text 描述相符描述 * @apiSuccess {Object} result.return_info.extend_store.store_credit.store_servicecredit 服务态度信息 * @apiSuccess {Int} result.return_info.extend_store.store_credit.store_servicecredit.credit 服务态度评分 * @apiSuccess {String} result.return_info.extend_store.store_credit.store_servicecredit.text 服务态度描述 * @apiSuccess {Int} result.return_info.extend_store.store_credit_average 平均评分 * @apiSuccess {Int} result.return_info.extend_store.store_credit_percent 好评率 * @apiSuccess {Int} result.return_info.extend_store.store_deliverycredit 发货速度评分 * @apiSuccess {Int} result.return_info.extend_store.store_desccredit 描述相符评分 * @apiSuccess {String} result.return_info.extend_store.store_description 店铺SEO描述 * @apiSuccess {Int} result.return_info.extend_store.store_endtime 店铺到期时间 * @apiSuccess {Int} result.return_info.extend_store.store_erxiaoshi 是否两小时发货 0否1是 * @apiSuccess {Int} result.return_info.extend_store.store_free_price 超出该金额免运费 0未设置 * @apiSuccess {Int} result.return_info.extend_store.store_free_time 商家配送时间 * @apiSuccess {Float} result.return_info.extend_store.store_freeze_deposit 冻结保证金 * @apiSuccess {Float} result.return_info.extend_store.store_freeze_money 冻结预存款 * @apiSuccess {Int} result.return_info.extend_store.store_huodaofk 是否支持货到付款 0否1是 * @apiSuccess {Int} result.return_info.extend_store.store_id 店铺ID * @apiSuccess {String} result.return_info.extend_store.store_keywords 店铺SEO关键字 * @apiSuccess {String} result.return_info.extend_store.store_latitude 纬度 * @apiSuccess {String} result.return_info.extend_store.store_logo 店铺logo * @apiSuccess {String} result.return_info.extend_store.store_longitude 经度 * @apiSuccess {String} result.return_info.extend_store.store_mainbusiness 主营商品 * @apiSuccess {String} result.return_info.extend_store.store_mgdiscount 序列化会员等级折扣 * @apiSuccess {Int} result.return_info.extend_store.store_mgdiscount_state 店铺是否开启序列化会员等级折扣 0否1是 * @apiSuccess {String} result.return_info.extend_store.store_name 店铺名称 * @apiSuccess {Float} result.return_info.extend_store.store_payable_deposit 应缴保证金 * @apiSuccess {String} result.return_info.extend_store.store_phone 店铺电话 * @apiSuccess {Object[]} result.return_info.extend_store.store_presales 售前列表 * @apiSuccess {String} result.return_info.extend_store.store_presales.name 售前名称 * @apiSuccess {String} result.return_info.extend_store.store_presales.num 售前账号 * @apiSuccess {String} result.return_info.extend_store.store_presales.type 售前类型 1QQ2旺旺3站内IM * @apiSuccess {String} result.return_info.extend_store.store_printexplain 打印订单页面下方说明文字 * @apiSuccess {String} result.return_info.extend_store.store_qq 店铺QQ * @apiSuccess {Int} result.return_info.extend_store.store_qtian 是否支持7天退换 0否1是 * @apiSuccess {Int} result.return_info.extend_store.store_recommend 推荐店铺 0否1是 * @apiSuccess {Int} result.return_info.extend_store.store_sales 销量 * @apiSuccess {Int} result.return_info.extend_store.store_servicecredit 服务态度评分 * @apiSuccess {Int} result.return_info.extend_store.store_shiti 实体店认证 0否1是 * @apiSuccess {Int} result.return_info.extend_store.store_shiyong 是否支持试用 0否1是 * @apiSuccess {String} result.return_info.extend_store.store_slide 店铺幻灯片 * @apiSuccess {String} result.return_info.extend_store.store_slide_url 店铺幻灯片链接 * @apiSuccess {Int} result.return_info.extend_store.store_sort 店铺排序 * @apiSuccess {Int} result.return_info.extend_store.store_state 店铺状态 0关闭,1开启,2审核中 * @apiSuccess {Int} result.return_info.extend_store.store_tuihuo 是否支持退货承诺 0否1是 * @apiSuccess {String} result.return_info.extend_store.store_vrcode_prefix 商家兑换码前缀 * @apiSuccess {String} result.return_info.extend_store.store_workingtime 工作时间 * @apiSuccess {String} result.return_info.extend_store.store_ww 店铺旺旺 * @apiSuccess {Int} result.return_info.extend_store.store_xiaoxie 是否消协保证 0否1是 * @apiSuccess {Int} result.return_info.extend_store.store_zhping 是否正品保障 0否1是 * @apiSuccess {String} result.return_info.extend_store.store_zip 邮政编码 * @apiSuccess {Int} result.return_info.extend_store.storeclass_id 店铺分类ID * @apiSuccess {Int} result.return_info.finnshed_time 订单完成时间 * @apiSuccess {Float} result.return_info.goods_amount 商品总额 * @apiSuccess {Object[]} result.return_info.goods_list 商品列表 * @apiSuccess {Int} result.return_info.goods_list.buyer_id 买家ID * @apiSuccess {Float} result.return_info.goods_list.commis_rate 佣金比例 * @apiSuccess {Int} result.return_info.goods_list.gc_id 分类ID * @apiSuccess {Int} result.return_info.goods_list.goods_id 商品ID * @apiSuccess {String} result.return_info.goods_list.goods_image 商品图片 * @apiSuccess {String} result.return_info.goods_list.goods_name 商品名称 * @apiSuccess {Int} result.return_info.goods_list.goods_num 购买数量 * @apiSuccess {Float} result.return_info.goods_list.goods_pay_price 实际支付金额 * @apiSuccess {Float} result.return_info.goods_list.goods_price 商品金额 * @apiSuccess {Int} result.return_info.goods_list.goods_type 商品类型 1默认2抢购商品3秒杀商品4组合套装5赠品6拼团7会员等级折扣 * @apiSuccess {Int} result.return_info.goods_list.order_id 订单ID * @apiSuccess {Int} result.return_info.goods_list.promotions_id 促销ID * @apiSuccess {Int} result.return_info.goods_list.rec_id 订单商品ID * @apiSuccess {Int} result.return_info.goods_list.store_id 店铺ID * @apiSuccess {Int} result.return_info.lock_state 锁定状态:0:正常,大于0:锁定 * @apiSuccess {Int} result.return_info.ob_no 结算单号 * @apiSuccess {Float} result.return_info.order_amount 订单总金额 * @apiSuccess {Int} result.return_info.order_from 订单来源,1:PC 2:手机 * @apiSuccess {Int} result.return_info.order_id 订单ID * @apiSuccess {String} result.return_info.order_sn 订单编号 * @apiSuccess {Int} result.return_info.order_state 订单状态 * @apiSuccess {Int} result.return_info.order_type 订单类型 * @apiSuccess {String} result.return_info.pay_sn 支付单号 * @apiSuccess {String} result.return_info.payment_code 支付方式代码 * @apiSuccess {String} result.return_info.payment_name 支付方式名称 * @apiSuccess {Int} result.return_info.payment_time 支付时间 * @apiSuccess {Float} result.return_info.pd_amount 使用预存款金额 * @apiSuccess {Float} result.return_info.rcb_amount 使用充值卡金额 * @apiSuccess {Float} result.return_info.refund_amount 退款金额 * @apiSuccess {Int} result.return_info.refund_state 退款状态 0:无退款 1:部分退款 2:全部退款 * @apiSuccess {String} result.return_info.shipping_code 发货运单号 * @apiSuccess {Float} result.return_info.shipping_fee 运费 * @apiSuccess {String} result.return_info.state_desc 状态描述 * @apiSuccess {Int} result.return_info.store_id 店铺ID * @apiSuccess {String} result.return_info.store_name 店铺名称 */ public function complain_show() { $complain_id = intval(input('complain_id')); //获取投诉详细信息 $complain_info = $this->get_complain_info($complain_id); $complain_pic = array(); $appeal_pic = array(); for ($i = 1; $i <= 3; $i++) { if (!empty($complain_info['complain_pic' . $i])) { $complain_pic[] = ds_get_pic(ATTACH_PATH . DIRECTORY_SEPARATOR . 'complain', $complain_info['complain_pic' . $i]); } if (!empty($complain_info['appeal_pic' . $i])) { $appeal_pic[] = ds_get_pic(ATTACH_PATH . DIRECTORY_SEPARATOR . 'complain', $complain_info['appeal_pic' . $i]); } } $condition = array(); $condition[] = array('buyer_id', '=', $this->member_info['member_id']); $condition[] = array('order_id', '=', $complain_info['order_id']); $refundreturn_model = model('refundreturn'); $return_info = $refundreturn_model->getRightOrderList($condition, $complain_info['order_goods_id']); ds_json_encode(10000, '', array('appeal_pic' => $appeal_pic, 'complain_pic' => $complain_pic, 'return_info' => $return_info, 'complain_info' => $complain_info)); } /** * @api {POST} api/Membercomplain/complain_save 保存用户提交的投诉 * @apiVersion 1.0.0 * @apiGroup Membercomplain * * @apiHeader {String} X-DS-KEY 用户授权token * * @apiParam {Int} input_order_id 订单ID * @apiParam {Int} input_goods_id 订单商品ID * @apiParam {String} pic_name 投诉凭证 用,分隔多个投诉凭证 * @apiParam {String} input_complain_subject 投诉主题 * @apiParam {String} input_complain_content 投诉内容 * * @apiSuccess {String} code 返回码,10000为成功 * @apiSuccess {String} message 返回消息 */ public function complain_save() { //获取输入的投诉信息 $input = array(); $input['order_id'] = intval(input('post.input_order_id')); $input['order_goods_id'] = intval(input('post.input_goods_id')); $pic_name = input('post.pic_name/a'); $condition = array(); $condition[] = array('buyer_id', '=', $this->member_info['member_id']); $condition[] = array('order_id', '=', $input['order_id']); $order_model = model('order'); $order_info = $order_model->getOrderInfo($condition); $if_complain = $order_model->getOrderOperateState('complain', $order_info); //检查订单是否可以投诉 if ($if_complain < 1) { ds_json_encode(10001, lang('param_error')); } //检查是不是正在进行投诉 if ($this->check_complain_exist($input['order_goods_id'])) { ds_json_encode(10001, lang('complain_repeat')); } list($input['complain_subject_id'], $input['complain_subject_content']) = explode(',', trim(input('post.input_complain_subject'))); $input_complain_content = trim(input('post.input_complain_content')); $res = word_filter($input_complain_content); if (!$res['code']) { ds_json_encode(10001, $res['msg']); } $input_complain_content = $res['data']['text']; $input['complain_content'] = $input_complain_content; $input['accuser_id'] = $order_info['buyer_id']; $input['accuser_name'] = $order_info['buyer_name']; $input['accused_id'] = $order_info['store_id']; $input['accused_name'] = $order_info['store_name']; $input['complain_datetime'] = TIMESTAMP; $input['complain_state'] = self::STATE_NEW; $input['complain_active'] = self::STATE_UNACTIVE; $input['complain_pic1'] = isset($pic_name[0]) ? $pic_name[0] : ''; $input['complain_pic2'] = isset($pic_name[1]) ? $pic_name[1] : ''; $input['complain_pic3'] = isset($pic_name[2]) ? $pic_name[2] : ''; $complain_model = model('complain'); $state = $complain_model->addComplain($input); //保存投诉信息 if ($state) { ds_json_encode(10000, lang('complain_submit_success')); } else { ds_json_encode(10001, lang('ds_common_op_fail')); } } /** * @api {POST} api/Membercomplain/complain_cancel 取消用户提交的投诉 * @apiVersion 1.0.0 * @apiGroup Membercomplain * * @apiHeader {String} X-DS-KEY 用户授权token * * @apiParam {Int} complain_id 投诉ID * * @apiSuccess {String} code 返回码,10000为成功 * @apiSuccess {String} message 返回消息 */ public function complain_cancel() { $complain_id = intval(input('param.complain_id')); $complain_info = $this->get_complain_info($complain_id); if (intval($complain_info['complain_state']) === 10) { $pics = array(); if (!empty($complain_info['complain_pic1'])) $pics[] = $complain_info['complain_pic1']; if (!empty($complain_info['complain_pic2'])) $pics[] = $complain_info['complain_pic2']; if (!empty($complain_info['complain_pic3'])) $pics[] = $complain_info['complain_pic3']; if (!empty($pics)) { //删除图片 foreach ($pics as $pic) { $pic = BASE_UPLOAD_PATH . DIRECTORY_SEPARATOR . ATTACH_PATH . DIRECTORY_SEPARATOR . 'complain' . DIRECTORY_SEPARATOR . $pic; if (file_exists($pic)) { @unlink($pic); } } } $complain_model = model('complain'); $complain_model->delComplain(array('complain_id' => $complain_id)); ds_json_encode(10000, lang('complain_cancel_success')); } else { ds_json_encode(10001, lang('complain_cancel_fail')); } } /** * @api {POST} api/Membercomplain/apply_handle 处理用户申请仲裁 * @apiVersion 1.0.0 * @apiGroup Membercomplain * * @apiHeader {String} X-DS-KEY 用户授权token * * @apiParam {Int} input_complain_id 投诉ID * * @apiSuccess {String} code 返回码,10000为成功 * @apiSuccess {String} message 返回消息 */ public function apply_handle() { $complain_id = intval(input('post.input_complain_id')); //获取投诉详细信息 $complain_info = $this->get_complain_info($complain_id); $complain_state = intval($complain_info['complain_state']); //检查当前是不是投诉状态 if ($complain_state < self::STATE_TALK || $complain_state === 99) { ds_json_encode(10001, lang('param_error')); } $update_array = array(); $update_array['complain_state'] = self::STATE_HANDLE; $condition = array(); $condition[] = array('complain_id', '=', $complain_id); //保存投诉信息 $complain_model = model('complain'); $complain_model->editComplain($update_array, $condition); ds_json_encode(10000, lang('handle_submit_success')); } /** * @api {POST} api/Membercomplain/get_complain_talk 根据投诉id获取投诉对话 * @apiVersion 1.0.0 * @apiGroup Membercomplain * * @apiHeader {String} X-DS-KEY 用户授权token * * @apiParam {Int} complain_id 投诉ID * * @apiSuccess {String} code 返回码,10000为成功 * @apiSuccess {String} message 返回消息 * @apiSuccess {Object} result 返回数据 * @apiSuccess {Object[]} result.talk_list 对话列表 * @apiSuccess {String} result.talk_list.css 对话类型 admin管理员,accused被告人,accuser原告人 * @apiSuccess {String} result.talk_list.talk 对话内容 */ public function get_complain_talk() { $complain_id = intval(input('post.complain_id')); $complain_info = $this->get_complain_info($complain_id); $complaintalk_model = model('complaintalk'); $param = array(); $param['complain_id'] = $complain_id; $complain_talk_list = $complaintalk_model->getComplaintalkList($param); $talk_list = array(); $i = 0; foreach ($complain_talk_list as $talk) { $talk_list[$i]['css'] = $talk['talk_member_type']; $talk_list[$i]['talk'] = date("Y-m-d H:i:s", $talk['talk_datetime']); switch ($talk['talk_member_type']) { case 'accuser': $talk_list[$i]['talk'] .= lang('complain_accuser'); break; case 'accused': $talk_list[$i]['talk'] .= lang('complain_accused'); break; case 'admin': $talk_list[$i]['talk'] .= lang('complain_admin'); break; default: $talk_list[$i]['talk'] .= lang('complain_unknow'); } if (intval($talk['talk_state']) === 2) { $talk['talk_content'] = lang('talk_forbit_message'); } $talk_list[$i]['talk'] .= '(' . $talk['talk_member_name'] . ')' . lang('complain_text_say') . ':' . $talk['talk_content']; $i++; } ds_json_encode(10000, '', array('talk_list' => $talk_list)); } /** * @api {POST} api/Membercomplain/publish_complain_talk 根据发布投诉对话 * @apiVersion 1.0.0 * @apiGroup Membercomplain * * @apiHeader {String} X-DS-KEY 用户授权token * * @apiParam {Int} complain_id 投诉ID * @apiParam {String} complain_talk 对话内容 * * @apiSuccess {String} code 返回码,10000为成功 * @apiSuccess {String} message 返回消息 */ public function publish_complain_talk() { $complain_id = intval(input('post.complain_id')); $complain_talk = trim(input('post.complain_talk')); $talk_len = strlen($complain_talk); if ($talk_len > 0 && $talk_len < 255) { $complain_info = $this->get_complain_info($complain_id); $complain_state = intval($complain_info['complain_state']); //检查投诉是否是可发布对话状态 if ($complain_state > self::STATE_APPEAL && $complain_state < self::STATE_FINISH) { $complaintalk_model = model('complaintalk'); $param = array(); $param['complain_id'] = $complain_id; $param['talk_member_id'] = $complain_info['accuser_id']; $param['talk_member_name'] = $complain_info['accuser_name']; $param['talk_member_type'] = $complain_info['member_status']; $param['talk_content'] = $complain_talk; $param['talk_state'] = 1; $param['talk_admin'] = 0; $param['talk_datetime'] = TIMESTAMP; if ($complaintalk_model->addComplaintalk($param)) { ds_json_encode(10000, ('talk_send_success')); } else { ds_json_encode(10001, ('talk_send_fail')); } } else { ds_json_encode(10001, lang('talk_state_error')); } } else { ds_json_encode(10001, lang('talk_null')); } } /* * 获取投诉信息 */ private function get_complain_info($complain_id) { $complain_model = model('complain'); $complain_info = $complain_model->getOneComplain($complain_id); if ($complain_info['accuser_id'] != $this->member_info['member_id']) { ds_json_encode(10001, lang('param_error')); } $complain_info['member_status'] = 'accuser'; $complain_info['complain_state_text'] = $this->get_complain_state_text($complain_info['complain_state']); return $complain_info; } /* * 检查投诉是否已经存在 */ private function check_complain_exist($goods_id) { $complain_model = model('complain'); $param = array(); $param[] = array('order_goods_id', '=', $goods_id); $param[] = array('accuser_id', '=', $this->member_info['member_id']); $param[] = array('complain_state', '<', 90); return $complain_model->isComplainExist($param); } /* * 获得投诉状态文本 */ private function get_complain_state_text($complain_state) { switch (intval($complain_state)) { case self::STATE_NEW: return lang('complain_state_new'); break; case self::STATE_APPEAL: return lang('complain_state_appeal'); break; case self::STATE_TALK: return lang('complain_state_talk'); break; case self::STATE_HANDLE: return lang('complain_state_handle'); break; case self::STATE_FINISH: return lang('complain_state_finish'); break; default: ds_json_encode(10001, lang('param_error')); } } /** * @api {POST} api/Membercomplain/upload_pic 上传凭证 * @apiVersion 1.0.0 * @apiGroup Membercomplain * * @apiHeader {String} X-DS-KEY 用户授权token * * @apiParam {File} complain_pic 投诉凭证 * * @apiSuccess {String} code 返回码,10000为成功 * @apiSuccess {String} message 返回消息 * @apiSuccess {Object} result 返回数据 * @apiSuccess {String} result.file_name 文件名称 * @apiSuccess {String} result.pic 文件完整路径 */ public function upload_pic() { if (!empty($_FILES['complain_pic']['name'])) { $file_name = $this->member_info['member_id'] . '_' . date('YmdHis') . rand(10000, 99999) . '.png'; $res = ds_upload_pic(ATTACH_PATH . DIRECTORY_SEPARATOR . 'complain', 'complain_pic', $file_name); if ($res['code']) { $file_name = $res['data']['file_name']; } else { ds_json_encode(10001, $res['msg']); } $pic = ds_get_pic(ATTACH_PATH . DIRECTORY_SEPARATOR . 'complain', $file_name); ds_json_encode(10000, '', array('file_name' => $file_name, 'pic' => $pic)); } else { ds_json_encode(10001, lang('file_empty')); } } }