123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554 |
- <?php
- namespace app\api\controller;
- use think\facade\Lang;
- class Memberinform extends MobileMember
- {
- public function initialize()
- {
- parent::initialize();
- Lang::load(base_path() . 'home/lang/' . config('lang.default_lang') . '/memberinfom.lang.php');
- }
-
- public function index()
- {
-
- $inform_model = model('inform');
- $goods_model = model('goods');
- $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', '=', $this->member_info['member_id']);
- $inform_list = $inform_model->getInformList($condition, 10);
- foreach ($inform_list as $key => $val) {
- $condition = array();
- $condition[] = array('goods_id', '=', $val['inform_goods_id']);
- $goodsinfo = $goods_model->getGoodsInfo($condition, 'goods_price');
- $inform_list[$key]['inform_goods_image_url'] = goods_cthumb($val['inform_goods_image']);
- $inform_list[$key]['inform_goods_price'] = $goodsinfo['goods_price'];
- }
- $result = array_merge(array('inform_list' => $inform_list), mobile_page($inform_model->page_info));
- ds_json_encode(10000, '', $result);
- }
-
- 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);
- $seller_model = model('seller');
- $seller_info = $seller_model->getSellerInfo(array('member_id' => $this->member_info['member_id']));
-
- if (!$seller_info) {
- if ($goods_info['store_id'] == $seller_info['store_id']) {
- ds_json_encode(10001, lang('param_error'));
- }
- }
- $inform_model = model('inform');
-
- if ($inform_model->isProcessOfInform($goods_id)) {
- ds_json_encode(10001, lang('inform_handling'));
- }
-
- $informsubjecttype_model = model('informsubjecttype');
- $inform_subject_type_list = $informsubjecttype_model->getActiveInformsubjecttypeList();
- if (empty($inform_subject_type_list)) {
- ds_json_encode(10001, lang('inform_type_null'));
- }
- ds_json_encode(10000, '', array('goods_info' => $goods_info, 'type_list' => $inform_subject_type_list));
- }
-
- 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);
- $seller_model = model('seller');
- $seller_info = $seller_model->getSellerInfo(array('member_id' => $this->member_info['member_id']));
-
- if (!$seller_info) {
- if ($goods_info['store_id'] == $seller_info['store_id']) {
- ds_json_encode(10001, lang('param_error'));
- }
- }
-
- $inform_model = model('inform');
-
- if ($inform_model->isProcessOfInform($goods_id)) {
- ds_json_encode(10001, lang('inform_handling'));
- }
-
- $input = array();
- $input['inform_member_id'] = $this->member_info['member_id'];
- $input['inform_member_name'] = $this->member_info['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'));
- $pic_name = input('post.pic_name/a');
- $input['inform_pic1'] = isset($pic_name[0]) ? $pic_name[0] : '';
- $input['inform_pic2'] = isset($pic_name[1]) ? $pic_name[1] : '';
- $input['inform_pic3'] = isset($pic_name[2]) ? $pic_name[2] : '';
- $input['inform_datetime'] = TIMESTAMP;
- $input['inform_store_id'] = $goods_info['store_id'];
- $input['inform_store_name'] = $goods_info['store_name'];
- $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']) {
- ds_json_encode(10001, $res['msg']);
- }
- $input['inform_content'] = $res['data']['text'];
- $inform_validate = ds_validate('inform');
- if (!$inform_validate->scene('inform_save')->check($data)) {
- ds_json_encode(10001, $inform_validate->getError());
- }
-
- if ($inform_model->addInform($input)) {
- ds_json_encode(10000, lang('inform_success'));
- } else {
- ds_json_encode(10001, lang('inform_fail'));
- }
- }
-
- 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);
- switch ($inform_info['inform_handle_type']) {
- case 1:
- $inform_info['inform_handle_type_text'] = lang('inform_handle_type_unuse');
- break;
- case 2:
- $inform_info['inform_handle_type_text'] = lang('inform_handle_type_venom');
- break;
- case 3:
- $inform_info['inform_handle_type_text'] = lang('inform_handle_type_valid');
- break;
- }
-
- $goods_info = model('goods')->getGoodsInfoByID($inform_info['inform_goods_id']);
-
- $subject_info = model('informsubject')->getOneInformsubject(array('informsubject_id' => $inform_info['informsubject_id']));
- $inform_pic = array();
- for ($i = 1; $i <= 3; $i++) {
- if (!empty($inform_info['inform_pic' . $i])) {
- $inform_pic[] = ds_get_pic(ATTACH_PATH . DIRECTORY_SEPARATOR . 'inform', $inform_info['inform_pic' . $i]);
- }
- }
- ds_json_encode(10000, '', array('inform_pic' => $inform_pic, 'goods_info' => $goods_info, 'inform_info' => $inform_info, 'subject_info' => $subject_info));
- }
-
- private function get_inform_info($inform_id)
- {
- if (empty($inform_id)) {
- ds_json_encode(10001, lang('param_error'));
- }
- $inform_model = model('inform');
- $inform_info = $inform_model->getOneInform(array('inform_id' => $inform_id));
- if (empty($inform_info)) {
- ds_json_encode(10001, lang('param_error'));
- }
- if (intval($inform_info['inform_member_id']) !== intval($this->member_info['member_id'])) {
- ds_json_encode(10001, lang('param_error'));
- }
- return $inform_info;
- }
-
- 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));
- }
-
- private function get_goods_info_byid($goods_id)
- {
- if (empty($goods_id)) {
- ds_json_encode(10001, lang('param_error'));
- }
- $goods_model = model('goods');
- $goods_info = $goods_model->getGoodsOnlineInfoByID($goods_id);
-
- if (empty($goods_info)) {
- ds_json_encode(10001, lang('goods_null'));
- }
- return $goods_info;
- }
-
- private function check_member_allow_inform()
- {
-
- $member_model = model('member');
- if (!$member_model->isMemberAllowInform($this->member_info['member_id'])) {
- ds_json_encode(10001, lang('deny_inform'));
- }
- }
-
- public function upload_pic()
- {
- if (!empty($_FILES['inform_pic']['name'])) {
- $file_name = $this->member_info['member_id'] . '_' . date('YmdHis') . rand(10000, 99999) . '.png';
- $res = ds_upload_pic('home' . DIRECTORY_SEPARATOR . 'inform', 'inform_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 . 'inform', $file_name);
- ds_json_encode(10000, '', array('file_name' => $file_name, 'pic' => $pic));
- } else {
- ds_json_encode(10001, lang('file_empty'));
- }
- }
-
- 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);
- }
- }
-
- public function get_subject_by_typeid()
- {
- $informsubject_type_id = intval(input('param.type_id'));
- if (empty($informsubject_type_id)) {
- ds_json_encode(10001, lang('param_error'));
- } 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');
- ds_json_encode(10000, '', array('inform_subject_list' => $inform_subject_list));
- }
- }
- }
|