isPost()) { switch ($param['r']) { case 'base': //基础设置 if (empty($param['delivery_type'])) { return sendErrorMessage(3001, '请选择送货方式'); } $param['delivery_type'] = implode(',', $param['delivery_type']); $res = $config_model->dataUpdate($param); if ($res === false) { return sendErrorMessage(); } return sendSuccessMessage(); break; case 'carousel': //轮播图 $carousel = []; foreach ($param['carousel_image'] as $k_1 => $value) { $carousel[] = [ 'uid' => UID, 'image' => $value, 'link_url' => $param['carousel_link_url'][$k_1], 'id' => $param['carousel_id'][$k_1], ]; } $res = $config_carousel_model->dataUpdateByAll($carousel); if ($res === false) { return sendErrorMessage(); } return sendSuccessMessage(); break; case 'advert': //广告位招租 $advert = []; foreach ($param['advert_image'] as $k_2 => $value) { $advert[] = [ 'uid' => UID, 'image' => $value, 'link_url' => $param['advert_link_url'][$k_2], 'id' => $param['advert_id'][$k_2], 'type' => 1 ]; } //促销 $promotion = []; foreach ($param['promotion_image'] as $k_3 => $value) { $promotion[] = [ 'uid' => UID, 'image' => $value, 'link_url' => $param['promotion_link_url'][$k_3], 'id' => $param['promotion_id'][$k_3], 'type' => 2 ]; } $res1 = $config_advertise_model->dataUpdateByAll($advert); if ($res1 === false) { return sendErrorMessage(); } $res2 = $config_advertise_model->dataUpdateByAll($promotion); if ($res2 === false) { return sendErrorMessage(); } return sendSuccessMessage(); break; default: } } else { switch ($param['r']) { case 'base': $data = $config_model->getOneData(['uid' => UID]); if ($data['delivery_type'] != "") { $data['delivery_type'] = explode(',', $data['delivery_type']); } else { $data['delivery_type'] = []; } View::assign('data', $data); break; case 'carousel': $carousel = $config_carousel_model->getAllData(['uid' => UID], 'id,image,link_url', 'id asc')->toArray(); $count = 5 - count($carousel); if ($count > 0) { for ($i = 0; $i <= $count; $i++) { $temp = array( 'id' => "", 'image' => "", 'link_url' => "" ); array_push($carousel, $temp); } } View::assign('carousel', $carousel); break; case 'advert': //首页广告图 位置1图(一张) $advert = $config_advertise_model->getAllData(['uid' => UID, 'type' => 1], 'id,image,link_url', 'id asc')->toArray(); $advert_count = 1 - count($advert); if ($advert_count > 0) { for ($i = 0; $i <= $advert_count; $i++) { $temp = array( 'id' => "", 'image' => "", 'link_url' => "" ); array_push($advert, $temp); } } View::assign('advert', $advert); //首页广告图 位置2图(三种) $promotion = $config_advertise_model->getAllData(['uid' => UID, 'type' => 2], 'id,image,link_url', 'id asc')->toArray(); $count = 3 - count($promotion); if ($count > 0) { for ($i = 0; $i <= $count; $i++) { $temp = array( 'id' => "", 'image' => "", 'link_url' => "" ); array_push($promotion, $temp); } } View::assign('promotion', $promotion); break; default: } View::assign('r', $param['r']); return View::fetch(); } } /** * 分类 * @return array|mixed|string */ public function category() { $where = [ 'uid' => UID, ]; $integral_category_model = new IntegralCategory(); $dataList = $integral_category_model->getAllData($where, '*', 'sort desc'); View::assign('dataList', $dataList); return View::fetch(); } /** * 分类添加 * @return array|mixed|string */ public function categoryadd() { $integral_category_model = new IntegralCategory(); if (request()->isPost()) { $data = input('post.'); $data['uid'] = UID; $res = $integral_category_model->dataUpdate($data); if (!$res) { return sendErrorMessage(); } return sendSuccessMessage(); } else { $id = input('param.id', 0); $data = $integral_category_model->getOneData(['id' => $id]); View::assign('data', $data); return View::fetch('categoryadd'); } } /** * 商品分类修改 * @return array|mixed|string */ public function categoryupdate() { return $this->categoryadd(); } /** * 产品列表 2017-10-15 */ public function product() { $search = input('get.'); autoSearch(['time', 'keyword', 'type', 'category_id'], $search); $integral_product_model = new IntegralProduct(); $integral_category_model = new IntegralCategory(); $where [] = ['uid', '=', UID]; $hasWhere = []; if ($search['time']) { $time = explode('-', $search['time']); $where[] = ['create_time', 'between time', [$time[0], $time[1]]]; } if ($search['keyword'] !== null && $search['keyword'] !== '') { $where[] = ['name', 'like', '%' . $search['keyword'] . '%']; } if ($search['type'] !== null && $search['type'] !== '') { $where [] = ['type', '=', $search['type']]; } if (!empty($search['category_id'])) { $hasWhere[] = ['category_id', '=', $search['category_id']]; } $where = $integral_product_model->whereChange($where); $dataList = $integral_product_model::hasWhere('integralProductCategory', $hasWhere) ->with('integralProductCategory')->where($where)->order('id desc')->paginate([ 'list_rows' => 15, 'page' => array_key_exists("page", $search) ? (string)$search['page'] : "1", 'query' => $search ], false)->each(function ($item, $key) { $category_model = new IntegralProductCategory(); $item['category_id'] = $category_model->where(['product_id' => $item['id']])->column('category_id'); // $temp = explode(',', $item['deliver_type']); // $item['deliver_type_name'] = ""; // if (!empty($temp)) { // $temp_name = array(); // foreach ($temp as $val) { // if ($val == 1) { // $temp_name[] = "邮寄"; // } elseif ($val == 2) { // $temp_name[] = "上门自提"; // } else { // $temp_name[] = ""; // } // } // $item['deliver_type_name'] = implode('/', $temp_name); // } }); $attach = [ 'total_html' => [['商品总数', $dataList->total()]] ]; //获取分类列表信息 $category_list = $integral_category_model->getAllData(['uid' => UID], 'id,name', 'sort desc'); View::assign('attach', $attach); View::assign('search', $search); View::assign('dataList', $dataList); View::assign('category_list', $category_list); return View::fetch(); } /** * 添加产品 2017-10-15 */ public function productadd() { $product_model = new IntegralProduct(); $category_model = new IntegralCategory(); $product_category_model = new IntegralProductCategory(); if (request()->isPost()) { $data = input('post.'); $data['uid'] = UID; if (empty($data['integral'])) { return sendErrorMessage(1, '请选择消耗积分数/金额'); } if (empty($data['type'])) { return sendErrorMessage(1, '请选择商品类型'); } if ((!empty($data['video_url']) && empty($data['video_cover_img'])) || (empty($data['video_url']) && !empty($data['video_cover_img']))) { return sendErrorMessage(1, '视频和视频封面两个需要同时传'); } $min_price = $data['price']; //是否开启规格 $data['is_spec_open'] = array_key_exists('is_spec_open', $data) ? $data['is_spec_open'] : 0; //开启规格时,获取产品最低价钱 if ($data['is_spec_open'] == 1) { if (!array_key_exists('spec_id', $data)) { return sendErrorMessage(1, '请添加规格'); } foreach ($data['option_ids'] as $key => $value) { $price[] = $data['option_price_' . $value]; } $min_price = min($price); } $update = [ 'min_price' => $min_price, 'is_spec_open' => $data['is_spec_open'], 'stock' => $data['stock'], 'freight_type' => $data['freight_type'], 'freight_id' => $data['freight_type'] == 2 ? $data['freight_id'] : 0, 'freight_money' => $data['freight_type'] == 1 ? $data['freight_money'] : 0, 'weight' => $data['weight'], 'is_publish' => array_key_exists('is_publish', $data) ? $data['is_publish'] : 0, 'publish_time' => array_key_exists('is_publish', $data) ? time() : 0, ]; $data = $data + $update; Db::startTrans(); $product_id = $product_model->dataUpdate($data); if ($product_id === false) { Db::rollback(); return sendErrorMessage(); } //商品分类操作 $res = $this->productCategory($product_id, $data); if ($res == false) { Db::rollback(); return sendErrorMessage(); } //商品规格操作 $res = $this->productSpec($product_id, $data); if ($res['code'] != 0) { Db::rollback(); return sendErrorMessage($res['code'], $res['msg']); } Db::commit(); return sendSuccessMessage(); } else { $id = input('param.id', 0); $data = $product_model->getOneData(['id' => $id]); if ($id) { } //获取分类 $where = ['uid' => UID]; $categoryList = $category_model->getAllData($where); //查询商品关联分类 $category_id = $product_category_model->where('product_id', $id)->column('category_id'); if (empty($category_id)) { $category_id = []; } foreach ($categoryList as $key => &$value) { if (in_array($value['id'], $category_id)) { $value['is_select'] = 1; } else { $value['is_select'] = 0; } } if (!empty($data)) { $integral_product_spec_model = new IntegralProductSpec(); $integral_product_spec_item_model = new IntegralProductSpecItem(); //查询属性及属性项 $spec = $integral_product_spec_model->getAllData(['uid' => UID, 'product_id' => $id], '', 'id'); foreach ($spec as $key => $value) { $value['item'] = $integral_product_spec_item_model->getAllData(['uid' => UID, 'spec_id' => $value['spec_id'], 'product_id' => $id], '', 'id asc')->toArray(); } //查询SKU $product_sku_model = new IntegralProductSku(); $sku = $product_sku_model->where(['product_id' => $id])->order('id asc')->column('sku,price,stock,cover_img,integral', 'sku'); } else { $spec = []; $sku = []; } View::assign('spec', $spec); // dump($spec->toArray()); // foreach ($spec->toArray() as $k => $v){ // dump($v['item']); // } View::assign('sku', json_encode($sku)); $freight_model = new Freight(); $freight = $freight_model->select(); View::assign('freight', $freight); //查询商品关联分类 View::assign('categoryList', $categoryList); View::assign('data', $data); return View::fetch('productadd'); } } /** * 商品发布 */ public function productPublish() { $data = input('post.'); $product_model = new IntegralProduct(); $update_data = ['is_publish' => $data['value'], 'publish_time' => time()]; if ($data['value'] == 0) { $update_data['publish_time'] = 0; } $res = $product_model->where(['id' => $data['id']])->update($update_data); if ($res === false) { return sendErrorMessage(); } return sendSuccessMessage(); } /** * 商品-分类 操作 * @param $product_id * @param array $data * @return array|string * @throws \think\Exception */ public function productCategory($product_id, $data = []) { $product_category_model = new IntegralProductCategory(); $res = $product_category_model->where(['product_id' => $product_id])->delete(); if ($res === false) { return sendErrorMessage(); } $insert_array = []; if (array_key_exists('category_id', $data)) { foreach ($data['category_id'] as $key => $value) { $insert_array[] = [ 'product_id' => $product_id, 'category_id' => $value, 'create_time' => time(), 'update_time' => time(), ]; } $insert_array = array_values(array_unique($insert_array, SORT_REGULAR)); $res = $product_category_model->insertAll($insert_array); if ($res === false) { return false; } } return true; } /** * 商品规格操作 * @param $product_id * @param array $data * @return array|string * @throws \think\Exception */ public function productSpec($product_id, $data = []) { $snow_flake = new Snowflake(); $integral_product_spec_model = new IntegralProductSpec(); $integral_product_spec_item_model = new IntegralProductSpecItem(); $integral_product_sku_model = new IntegralProductSku(); $integral_product_model = new IntegralProduct(); //清空数据 $where = ['uid' => UID, 'product_id' => $product_id]; $res = $integral_product_spec_model->destroy($where); if ($res === false) { return sendErrorArray(); } $res = $integral_product_spec_item_model->destroy($where); if ($res === false) { return sendErrorArray(); } $res = $integral_product_sku_model->destroy($where); if ($res === false) { return sendErrorArray(); } if ($res === false) { return sendErrorArray(); } // 商品规格开启 if ($data['is_spec_open'] == 1) { //保存规格名 $spec_data = []; $spec_item_data = []; if (!array_key_exists('spec_id', $data)) { return sendErrorArray('请添加规格'); } foreach ($data['spec_id'] as $key => $value) { $spec_data[] = [ 'id' => $snow_flake->id(), 'uid' => UID, 'product_id' => $product_id, 'spec_id' => $value, 'spec_title' => $data['spec_title'][$value], 'create_time' => time(), ]; if (!array_key_exists('spec_item_name_' . $value, $data)) { return sendErrorArray('请添加' . $data['spec_title'][$value] . '的规格项'); } foreach ($data['spec_item_name_' . $value] as $k => $v) { $spec_item_data[] = [ 'id' => $snow_flake->id(), 'uid' => UID, 'product_id' => $product_id, 'spec_id' => $value, 'spec_item_id' => $data['spec_item_id_' . $value][$k], 'spec_item_value' => $data['spec_item_name_' . $value][$k], 'create_time' => time(), ]; } } $res = $integral_product_spec_model->insertAll($spec_data); if ($res === false) { return sendErrorArray(); } //保存规格值 $res = $integral_product_spec_item_model->insertAll($spec_item_data); if ($res === false) { return sendErrorArray(); } //保存SKU $sku_data = []; foreach ($data['option_ids'] as $key => $value) { $sku_data[] = [ 'id' => $snow_flake->id(), 'uid' => UID, 'product_id' => $product_id, 'sku' => $value, 'price' => $data['option_price_' . $value], 'integral' => $data['option_integral_' . $value], 'stock' => $data['option_stock_' . $value], 'cover_img' => $data['option_cover_img_' . $value], 'create_time' => time() ]; if (empty($data['option_integral_' . $value])) { return sendErrorArray(4001, '积分不可为0'); } } $res = $integral_product_sku_model->insertAll($sku_data); if ($res === false) { return sendErrorArray(); } // 更新库存 $all_stock = array_sum(array_column($sku_data, 'stock')); $res = $integral_product_model->update(['stock' => $all_stock], ['id' => $product_id]); if ($res === false) { return sendErrorArray(); } return sendSuccessArray(); } else { return sendSuccessArray(); } } /** * 积分商城商品编辑 * @return mixed */ public function productUpdate() { return $this->productadd(); } public function productRecommend() { $data = input('post.'); $model = new IntegralProduct(); if ($data['value'] == 1) { $res = $model->where(['id' => $data['id']])->update([$data['field'] => $data['value'], 'recommend_time' => '']); } else { $res = $model->where(['id' => $data['id']])->update([$data['field'] => $data['value'], 'recommend_time' => time()]); } if ($res === false) { return sendErrorMessage(); } return sendSuccessMessage(); } /** * 自提门店列表 * @return array|mixed|string */ public function store() { $search = input('get.'); autoSearch(['time', 'keyword', 'is_publish'], $search); $integral_store_model = new IntegralStore(); $where [] = ['uid', '=', UID]; if ($search['time']) { $time = explode('-', $search['time']); $where[] = ['create_time', 'between time', [$time[0], $time[1]]]; } if ($search['keyword'] !== null && $search['keyword'] !== '') { // $where['order_number|linkman|mobile_phone|address'] = ['like', '%' . $search['keyword'] . '%']; $where[] = ['name', 'like', '%' . $search['keyword'] . '%']; } if ($search['is_publish'] !== null && $search['is_publish'] !== '') { $where [] = ['is_publish', '=', $search['is_publish']]; } $page = array_key_exists("page", $search) ? (string)$search['page'] : "1"; $dataList = $integral_store_model ->where($where)->order('id asc') ->paginate(['list_rows' => 50, 'page' => $page], false)->each(function ($item, $key) { return $item; }); $attach = [ 'total_html' => [['门店总数', $dataList->total()]] ]; View::assign('attach', $attach); View::assign('search', $search); View::assign('dataList', $dataList); return View::fetch(); } /** * 自提门店添加 * @return array|mixed|string */ public function storeAdd() { $user_model = new UserInfo(); $integral_store_model = new IntegralStore(); if (request()->isPost()) { $data = input('post.'); $data['uid'] = UID; $data['is_publish'] = array_key_exists('is_publish', $data) ? $data['is_publish'] : 0; Db::startTrans(); $store_id = $integral_store_model->dataUpdate($data); if ($store_id === false) { Db::rollback(); return sendErrorMessage(); } if (!empty($data['id'])) { $store_id = $data['id']; } //处理自提门店与核销员 $res = $this->storeUser($store_id, $data); if ($res === false) { Db::rollback(); return sendErrorMessage(); } Db::commit(); return sendSuccessMessage(); } else { $id = input('param.id', 0); $data = $integral_store_model->getOneData(['id' => $id]); View::assign('data', $data); $userWhere [] = [['uid', '=', UID], ['nick_name', '<>', ''], ['user_id', '>', 0]]; $userList = $user_model->getAllData($userWhere); //查询已关联的核销员 $integral_store_checker_model = new IntegralStoreChecker(); $userId = $integral_store_checker_model->where(['uid' => UID, 'store_id' => $id])->column('user_id'); foreach ($userList as $key => &$value) { if (!empty($userId)) { if (in_array($value['user_id'], $userId)) { $value['is_select'] = 1; } else { $value['is_select'] = 0; } } else { $value['is_select'] = 0; } } View::assign('userList', $userList); return View::fetch('storeadd'); } } /** * 自提门店与核销员 * @param int $store_id * @param array $data * @return array|string * @throws \think\Exception */ public function storeUser($store_id = 0, $data = []) { if (!array_key_exists('user_id', $data)) { return sendErrorMessage('请选择核销员'); } $where = ['uid' => UID, 'store_id' => $store_id]; $integral_store_checker_model = new IntegralStoreChecker(); $res = $integral_store_checker_model->destroy($where, true); if ($res === false) { return sendErrorMessage(); } foreach ($data['user_id'] as $k => $v) { $update = ['uid' => UID, 'store_id' => $store_id, 'user_id' => $v]; $res = $integral_store_checker_model->dataUpdate($update); if ($res === false) { return false; } } return true; } /** * 自提门店修改 * @return array|mixed|string */ public function storeUpdate() { return $this->storeAdd(); } /** * 积分商城订单列表 */ public function order() { $search = input('get.'); autoSearch(['time', 'keyword', 'status', 'remind', 'delivery_type', 'product_type', 'product_name'], $search); $order_model = new IntegralOrder(); $where [] = ['uid', '=', UID]; $hasWhere = []; if ($search['time']) { $time = explode('-', $search['time']); $where[] = ['create_time', 'between time', [$time[0], $time[1]]]; } if ($search['keyword'] !== null && $search['keyword'] !== '') { $where[] = ['order_number', 'like', '%' . $search['keyword'] . '%']; } if ($search['product_name'] !== null && $search['product_name'] !== '') { $hasWhere[] = ['product_name', 'like', '%' . $search['product_name'] . '%']; } if ($search['status'] !== null && $search['status'] !== '') { $where [] = ['status', '=', $search['status']]; } if (!empty($search['remind'])) { if ($search['remind'] == 1) { $where [] = ['remind_time', '>', 0]; } else { $where [] = ['remind_time', 'null', '']; } } if (!empty($search['delivery_type'])) { $where [] = ['delivery_type', '=', $search['delivery_type']]; } if (!empty($search['product_type'])) { $where [] = ['product_type', '=', $search['product_type']]; } $where = $order_model->whereChange($where); session('where', $where); session('hasWhere', $hasWhere); $dataList = $order_model::hasWhere('integralOrderProduct', $hasWhere) ->with(['integralOrderProduct', 'userInfo']) ->where($where)->order('id desc')->paginate([ 'list_rows' => 20, 'page' => array_key_exists("page", $search) ? (string)$search['page'] : "1", 'query' => $search ], false) ->each(function ($item, $key) { $item['status_text'] = $item['status_text']; return $item; }); $order_total_money = $order_model::hasWhere('integralOrderProduct', $hasWhere)->where($where)->sum('IntegralOrder.pay_money'); $waitSendOrder = $order_model::hasWhere('integralOrderProduct', $hasWhere)->where([['status', '=', '2']])->count(); $attach = [ 'total_html' => [ ['订单总数', $dataList->total()], ['订单金额', $order_total_money], ['代发货订单', $waitSendOrder], ], ]; View::assign('search', $search); View::assign('attach', $attach); View::assign('dataList', $dataList); return View::fetch(); } /** * 修改订单 2017-10-15 */ public function orderdetail() { $id = input('param.id', 0); $express_model = new PlatformKdniaoCode(); $integral_order_model = new IntegralOrder(); $data = $integral_order_model->with('userInfo')->where(['id' => $id])->find(); if ($id) { $data['status_text'] = $data['status_text']; $integral_order_product_model = new IntegralOrderProduct(); $data['order_product'] = $integral_order_product_model->getAllData(['order_id' => $id]); if ($data['delivery_type'] == 2 && $data['type'] == 1) { $integral_store_model = new IntegralStore(); $data['store_data'] = $integral_store_model->getOneData(['id' => $data['store_id']]); } if ($data['type'] == 1) { if ($data['status'] == 4) { //获取核销记录 $integral_order_check_model = new IntegralOrderCheck(); $check_data = $integral_order_check_model->getOneData(['order_id' => $id]); // dump($check_data); if (!empty($check_data)) { $data['check_data'] = $check_data; } } } } $expressList = $express_model->getAllData(['is_show' => 1]); View::assign('expressList', $expressList); View::assign('data', $data); return View::fetch(); } /** * 后台核销 * @return array|string * @throws \think\Exception */ public function orderCheck() { $integral_order_model = new IntegralOrder(); if (request()->isPost()) { $data = input('post.'); $where_order = ['uid' => UID, 'id' => $data['id']]; $order = $integral_order_model->getOneData($where_order); if (empty($order)) { return sendErrorMessage(1, '订单不存在'); } if ($order['delivery_type'] != 2) { return sendErrorMessage(1, '该订单无需核销'); } if ($order['status'] != 3) { return sendErrorMessage(1, '订单未支付或已提货'); } $integral_order_check_model = new IntegralOrderCheck(); Db::startTrans(); //添加到核销历史记录 $update = [ 'uid' => UID, 'user_id' => $data['user_id'], 'order_id' => $data['id'], 'store_id' => $order['store_id'], 'type' => 2, 'system_loginer_id' => LID ]; $res = $integral_order_check_model->dataUpdate($update); if ($res === false) { Db::rollback(); return sendErrorMessage(); } $res1 = $integral_order_model->where($where_order)->update(['status' => 5]); if ($res1 === false) { Db::rollback(); return sendErrorMessage(); } Db::commit(); return sendSuccessMessage('', '核销成功'); } else { $id = input('param.id', 0); $where_order = ['uid' => UID, 'id' => $id]; $data = $integral_order_model->getOneData($where_order); //获取核销员信息 $integral_store_checker_model = new IntegralStoreChecker(); $checker = $integral_store_checker_model->with('userInfo')->where(['store_id' => $data['store_id'], 'uid' => UID])->select(); View::assign('checker', $checker); View::assign('data', $data); return View::fetch('ordercheck'); } } /* * 虚拟商品,状态变更 */ public function orderFinish() { $integral_order_model = new IntegralOrder(); if (request()->isPost()) { $data = input('post.'); $where_order = ['uid' => UID, 'id' => $data['id']]; $order = $integral_order_model->getOneData($where_order); if (empty($order)) { return sendErrorMessage('订单不存在'); } if ($order['status'] != 2) { return sendErrorMessage('订单未支付或已完成'); } $res = $integral_order_model->where($where_order)->update(['status' => 4, 'system_remark' => $data['system_remark'], 'express_time' => time(), 'confirm_time' => time()]); if ($res === false) { return sendErrorMessage(); } return sendSuccessMessage('', '确认成功'); } else { $id = input('param.id', 0); $where_order = ['uid' => UID, 'id' => $id]; $data = $integral_order_model->getOneData($where_order); //获取核销员信息 View::assign('data', $data); return View::fetch('orderstatus'); } } /** * 订单发货 * @return array|mixed|string */ public function orderSend() { $integral_order_model = new IntegralOrder(); $express_model = new PlatformKdniaoCode(); if (request()->isPost()) { $data = input('post.'); $order = $integral_order_model->getOneData(['id' => $data['id']]); if ($order['status'] == 2 && $order['product_type'] == 1) { if (!isMobilephone($data['mobile_phone'])) { return sendErrorMessage(1, '手机号格式不正确'); } } if ($order->status != 2) { return sendErrorMessage(1, '订单状态已发生变化,请重试'); } if ($order['product_type'] == 1) { $express = $express_model->getOneData(['id' => $data['express_id']]); $data['express_code'] = $express['express_code']; $data['express_name'] = $express['express_company']; $data['express_time'] = time(); } $res = $integral_order_model->dataUpdate($data); if ($res === false) { return sendErrorMessage(); } return sendSuccessMessage(); } else { $id = input('param.id'); $data = $integral_order_model->getOneData(['id' => $id]); View::assign('data', $data); $expressList = $express_model->getAllData(['is_show' => 1]); //获取快递公司 View::assign('expressList', $expressList); return View::fetch('ordersend'); } } /** * 订单列表导出 * @date 2022-12-28 */ public function orderexport() { $where = session('where'); $hasWhere = session('hasWhere'); $integral_order_model = new IntegralOrder(); $integral_order_product_model = new IntegralOrderProduct(); $dataList = $integral_order_model::hasWhere('integralOrderProduct', $hasWhere) ->with(['integralOrderProduct', 'userInfo']) ->where($where)->order('id desc')->select(); $data[] = []; foreach ($dataList as $key => $value) { $value['status_'] = ""; switch ($value['status']) { case 1: $value['status_'] = '待付款'; break; case 2: $value['status_'] = '待发货'; break; case 3: $value['status_'] = '已发货'; break; case 4: $value['status_'] = '已完成'; break; } $value['delivery_type_'] = ""; switch ($value['delivery_type']) { case 1: $value['delivery_type_'] = '邮寄'; break; case 2: $value['delivery_type_'] = '自提'; break; default: $value['delivery_type_'] = ''; } $product_list = $integral_order_product_model->getAllData(['order_id' => $value['id'], 'uid' => UID], 'product_name,number', 'create_time desc'); $temp_list = []; if (!empty($product_list)) { $temp_list = []; foreach ($product_list as $val) { $str = $val['product_name'] . "(×" . $val['number'] . ")"; $temp_list[] = $str; } $value['product_list'] = implode(' | ', $temp_list); } else { $value['product_list'] = ""; } $data[$key] = [ " " . $value['order_number'], //订单编号 $value['nick_name'], //下单人 $value['product_list'], //购买商品名(×数量) $value['product_type'] == 1 ? '实物' : '虚拟', //商品类型 $value['delivery_type'] == 1 ? '姓名:' . $value['linkman'] . ';联系电话:' . $value['mobile_phone'] . ';地址:' . $value['province'] . $value['city'] . $value['area'] . $value['address'] : '自提门店地址:' . $value['store_address'], //邮寄信息/提货信息 $value['delivery_type'] == 1 ? '邮寄' : '门店自提', //提货方式 $value['pay_integral'], //实付积分数 $value['pay_money'], //实付金额 $value['remark'], //备注信息 $value['create_time'], //下单时间 $value['status_text'], //状态 ]; }; $fileName = "积分订单表"; $headArr = ["订单编号", "下单人", "购买商品信息", "商品类型", "邮寄信息/提货信息", '提货方式', "实付积分数", "实付金额", "备注信息", "下单时间", "状态"]; $msg = ''; $excel_class = new Excel(); $res = $excel_class->excelExport($fileName, $headArr, $data, $msg); return $res; } public function text() { create_qr_code_to_oss('/', '123'); } /** * 运费设置 * @return array|mixed|string */ public function freight() { $where = [ 'uid' => UID, ]; $freight_model = new IntegralFreight(); $dataList = $freight_model->selectList($where); View::assign('dataList', $dataList); return View::fetch(); } /** * 规则添加 */ public function modeAddindie() { //获取省市数据 $mode = input('param.mode', 1); $json_string = file_get_contents('static/json/address.json'); $list = json_decode($json_string, true); View::assign('list', $list); View::assign('mode', $mode); return View::fetch('modeadd'); } /** * 运费添加 * @return array|mixed|string */ public function freightAdd() { $freight_model = new IntegralFreight(); if (request()->isPost()) { //新增和更新 $data = input('post.'); $data['uid'] = UID; if ($data['type'] == 1) { $rule = [ 'name' => 'require|max:30', 'type' => 'require', 'first_number' => 'require', 'first_number_money' => 'require', 'second_number' => 'require', 'second_number_money' => 'require', 'free_money' => 'require', ]; $msg = [ 'name.require' => '规则名称必须', 'name.max' => '规则名称最多不能超过30个字符', 'type.require' => '运费方式必须', 'first_number.require' => '首件必填', 'first_number_money.require' => '首费必填', 'second_number.require' => '续件必填', 'second_number_money.require' => '续费必填', 'free_money.require' => '免邮金额必填', ]; } else { $rule = [ 'name' => 'require|max:30', 'type' => 'require', 'first_weight' => 'require', 'first_weight_money' => 'require', 'second_weight' => 'require', 'second_weight_money' => 'require', 'free_money' => 'require', ]; $msg = [ 'name.require' => '规则名称必须', 'name.max' => '规则名称最多不能超过30个字符', 'type.require' => '运费方式必须', 'first_weight.require' => '首重必填', 'first_weight_money.require' => '首费必填', 'second_weight.require' => '续重必填', 'second_weight_money.require' => '续费必填', 'free_money.require' => '免邮金额必填', ]; } $validate = new Validate($rule, $msg); if (!$validate->check($data)) { return sendErrorMessage($validate->getError()); } //检测数据的合理性 if (!empty($data['id'])) { $where['id'] = ['neq', $data['id']]; } if (!empty($data['fee_conf'])) { $data['fee_conf'] = serialize($data['fee_conf']); } else { $data['fee_conf'] = serializeMysql([]); } $res = $freight_model->dataUpdate($data); if ($res === false) { return sendErrorMessage(); } return sendSuccessMessage(); } else { //编辑,添加 $id = input('param.id', 0); $data = $freight_model->findOne(['id' => $id]); //运费 $index = 0; if (!empty($data)) { if (!empty($data['fee_conf'])) { $data['fee_conf'] = unserialize($data['fee_conf']); if (!empty($data['fee_conf'])) { $index = max(array_keys($data['fee_conf'])); } } } View::assign('data', $data); View::assign('index', $index); //搜索最大的key值 View::assign('mode', isset($data['type']) ? $data['type'] : 1); return View::fetch('freightadd'); } } /** * 更新运费设置的默认项 * @return array|string|void */ public function updateDefault() { $data = input('post.'); $freight_model = new IntegralFreight(); if ($data['afterchange'] == 1) { $freight_model->where('id !=' . $data['id'])->update(['is_default' => 0]); } $res = $freight_model->dataUpdate(['is_default' => $data['afterchange'], 'id' => $data['id']]); if ($res === false) { return sendErrorMessage(); } return sendSuccessMessage(); } /** * 运费修改 * @return array|mixed|string */ public function freightUpdate() { return $this->freightAdd(); } public function review() { $search = input('get.'); autoSearch(['time', 'keyword', 'is_replay', 'is_add'], $search); View::assign('search', $search); $where = [ 'uid' => UID, 'type' => 1 ]; if ($search['time']) { $time = explode('-', $search['time']); $where['create_time'] = ['between time', [$time[0], $time[1]]]; } if ($search['keyword'] !== null && $search['keyword'] !== '') { $where['content'] = ['like', '%' . $search['keyword'] . '%']; } if ($search['is_replay'] !== null && $search['is_replay'] !== '') { $where['is_replay'] = $search['is_replay']; } if ($search['is_add'] !== null && $search['is_add'] !== '') { $where['is_add'] = $search['is_add']; } $review_model = new IntegralReview(); $dataList = $review_model->getMemberList($where, $search, '', 'id desc', 50); View::assign('dataList', $dataList); $attach = [ 'total_html' => [['评论总数', $dataList->total()]] ]; View::assign('attach', $attach); return View::fetch(); } public function reviewdetail() { $review_model = new IntegralReview(); if (request()->isPost()) { $data = input('post.'); $data['uid'] = UID; $data['reply_time'] = time(); $res = $review_model->dataUpdate($data); if (!$res) { return sendErrorMessage(); } return sendSuccessMessage(); } else { $id = input('param.id', 0); $data = $review_model->findOne(['id' => $id]); $add_review = $review_model->findOne(['review_id' => 1]); View::assign('data', $data); View::assign('add_review', $add_review); return View::fetch('reviewdetail'); } } public function reviewadd() { return $this->reviewdetail(); } /** * @return string * 退款原因设置 */ public function refundcause() { $search = input('get.'); autoSearch(['keyword'], $search); View::assign('search', $search); $where [] = ['uid', '=', UID]; if ($search['keyword']) { $where[] = ['content', 'like', '%' . $search['keyword'] . '%']; } $attach_model = new IntegralRefundCause(); $dataList = $attach_model->getMemberList($where, $search, "", "id desc"); View::assign('dataList', $dataList); $attach = [ 'total_html' => [['退款原因总数', $dataList->total()]] ]; View::assign('attach', $attach); return View::fetch(); } /** * @return string * 退款原因添加 */ public function refundcauseadd() { $refund_model = new IntegralRefundCause(); if (request()->isPost()) { $data = input('post.'); $data['uid'] = UID; $res = $refund_model->dataUpdate($data); if ($res === false) { return sendErrorMessage(); } return sendSuccessMessage(); } else { $id = input('param.id', 0); $data = $refund_model->findOne(['id' => $id]); View::assign('data', $data); return View::fetch('refundcauseadd'); } } /** * 标识/服务保障修改 * @return bool */ public function refundcauseupdate() { return $this->refundcauseadd(); } /* * 退款订单列表 */ public function refund() { $search = input('get.'); autoSearch(['time', 'keyword', 'status', 'refund_way', 'product_order_number', 'nickname', 'product_name'], $search); View::assign('search', $search); $where [] = ['uid', '=', UID]; if ($search['time']) { $time = explode('-', $search['time']); $where[] = ['create_time', 'between time', [$time[0], $time[1]]]; } if ($search['refund_way'] !== null && $search['refund_way'] !== '') { $where [] = ['refund_way', '=', $search['refund_way']]; } if ($search['keyword']) { $where[] = ['order_number', 'like', '%' . $search['keyword'] . '%']; } if ($search['nickname'] !== null && $search['nickname'] !== '') { $where[] = ['user_id', 'in', (new VipInfo())->selectListByColumn([['nickname', 'like', '%' . $search['nickname'] . '%']], 'user_id')]; } if ($search['status'] !== null && $search['status'] !== '') { $where [] = ['status', '=', $search['status']]; } if ($search['product_name'] !== null && $search['product_name'] !== '') { $where[] = ['order_product_id', 'in', (new IntegralOrderProduct())->selectListByColumn([['product_name', 'like', '%' . $search['product_name'] . '%']], 'id')]; } $order_number = 0; if ($search['product_order_number'] !== null && $search['product_order_number'] !== '') { $order_number = $search['product_order_number']; } session('where', $where); $refund_model = new IntegralRefund(); $dataList = $refund_model->getMemberList($where, $search, '', 'id desc', 50, $order_number); View::assign('dataList', $dataList); $refund_money = $refund_model->where($where)->sum('refund_money'); $attach = [ 'total_html' => [['订单总数', $dataList->total()], ['退款金额', $refund_money]] ]; View::assign('attach', $attach); return View::fetch(); } /** * 退款订单审核通过(同步做退款操作) * @return array|string * @throws \think\Exception */ public function refundupdate1() { $integral_refund_model = new IntegralRefund(); $integral_order_model = new IntegralOrder(); $id = input('param.id', 0); if (empty($id)) { return sendErrorMessage('参数错误,审核失败!'); } $where = [ 'uid' => UID, 'id' => $id ]; $refund = $integral_refund_model->findOne($where); if ($refund['status'] != 1) { return sendErrorMessage('审核状态发生变化,请刷新重试'); } $wx_type = ""; if ($refund['source'] == 2) { $wx_type = "applet"; } elseif ($refund['source'] == 1) { $wx_type = "wechat"; } $weixin_logic = new WeixinLogic(['wx_type' => $wx_type]); $order = $integral_refund_model->findOne(['id' => $refund['order_id']]); if ($refund['refund_way'] == 1) { //微信原路返回 Db::startTrans(); //获取退款订单信息 $result = $weixin_logic->wxRefund($order['order_number'], $order['pay_money'], $refund['refund_money'], $refund['order_number']); if ($result['return_code'] === 'SUCCESS') { //返回状态码 if ($result['result_code'] === 'SUCCESS') { //业务结果 $update_data = [ 'id' => $id, 'is_arrival' => 1, 'status' => 2, 'arrival_time' => time(), 'update_time' => time(), 'transaction_id' => $result['transaction_id'] ]; $res = $integral_refund_model->dataUpdate($update_data); if (!$res) { Db::rollback(); return sendErrorMessage(); } //修改订单状态 $res1 = $integral_order_model->where('id', $refund['order_id'])->update(['status' => ORDER_REFUND_SUCCESS, 'refund_status' => 3]); if ($res1 === false) { Db::rollback(); return sendErrorMessage(); } //发送模板消息 //$weixin_logic->sendTemplateByApplet('order_refund',$order['openid'],getDomain() . '/wechat.php/mall/orderdetail/id/' . $order['id'],['order_id' => $order['id']]) //库存退回 $this->stockchange($refund['order_product_id'], $refund['refund_number']); $res = $this->integralchange($refund['user_id'], $refund['refund_integral']); if ($res === false) { Db::rollback(); return sendErrorMessage(); } Db::commit(); return sendSuccessMessage('', '审核退款成功'); } else { Db::rollback(); return sendErrorMessage($result['err_code_des']); } } else { Db::rollback(); return sendErrorMessage($result['return_msg']); } } elseif ($refund['refund_way'] == 2) { //余额退回 //生成退款日志,并增加用户的余额信息 Db::startTrans(); $update_data = [ 'id' => $id, 'is_arrival' => 1, 'status' => 2, 'arrival_time' => time(), 'update_time' => time() ]; $res = $integral_refund_model->dataUpdate($update_data); if (!$res) { Db::rollback(); return sendErrorMessage(); } $money_service = new \app\money\service\Money(); $res1 = $money_service->change($order['user_id'], 5, $refund['refund_money'], "商城购物退款", $refund['id'], $refund['order_id']); if ($res1['code'] != 1) { Db::rollback(); return sendErrorMessage($res1['message']); } //修改订单状态 $res2 = $integral_order_model->where('id', $refund['order_id'])->update(['status' => ORDER_REFUND_SUCCESS, 'refund_status' => 3]); if ($res2 === false) { Db::rollback(); return sendErrorMessage(); } //库存退回 $this->stockchange($refund['order_product_id'], $refund['refund_number']); $res = $this->integralchange($refund['user_id'], $refund['refund_integral']); if ($res === false) { Db::rollback(); return sendErrorMessage(); } //发送模板消息 //$weixin_logic->sendTemplateByApplet('order_refund',$order['openid'],getDomain() . '/wechat.php/mall/orderdetail/id/' . $order['id'],['order_id' => $order['id']]) Db::commit(); return sendSuccessMessage('', '审核退款成功'); } elseif ($refund['refund_way'] == 3) { //支付宝退回 //生成退款日志,并增加用户的余额信息 Db::startTrans(); $update_data = [ 'id' => $id, 'is_arrival' => 1, 'status' => 2, 'arrival_time' => time(), 'update_time' => time() ]; $res = $integral_refund_model->dataUpdate($update_data); if (!$res) { Db::rollback(); return sendErrorMessage(); } $ali_logic = new Alipay(); $res1 = $ali_logic->aliRefund($order['order_number'], $refund['order_number'], $refund['refund_money']); if ($res1['code'] != 1) { Db::rollback(); return sendErrorMessage($res1['message']); } //修改订单状态 $res2 = $integral_order_model->where('id', $refund['order_id'])->update(['status' => ORDER_REFUND_SUCCESS, 'refund_status' => 3]); if ($res2 === false) { Db::rollback(); return sendErrorMessage(); } //库存退回 $this->stockchange($refund['order_product_id'], $refund['refund_number']); $res = $this->integralchange($refund['user_id'], $refund['refund_integral']); if ($res === false) { Db::rollback(); return sendErrorMessage(); } //发送模板消息 //$weixin_logic->sendTemplateByApplet('order_refund',$order['openid'],getDomain() . '/wechat.php/mall/orderdetail/id/' . $order['id'],['order_id' => $order['id']]) Db::commit(); return sendSuccessMessage('', '审核退款成功'); } } public function refundupdate() { $mall_refund_model = new IntegralRefund(); $mall_order_model = new IntegralOrder(); $order_product_model = new IntegralOrderProduct(); $id = input('param.id', 0); if (empty($id)) { return sendErrorMessage('参数错误,审核失败!'); } $where = [ 'uid' => UID, 'id' => $id ]; $refund = $mall_refund_model->findOne($where); if ($refund['status'] != 1) { return sendErrorMessage('审核状态发生变化,请刷新重试'); } $weixin_logic = invoke(Weixin::class); $order = $mall_order_model->findOne(['id' => $refund['order_id']]); $res = $this->integralchange($refund['user_id'], $refund['refund_integral']); if ($res === false) { Db::rollback(); return sendErrorMessage(); } if ($refund['refund_money'] > 0) { if ($refund['refund_way'] == 1) { //微信原路返回 Db::startTrans(); //获取退款订单信息 $result = $weixin_logic->wxRefund($order['order_number'], $order['pay_money'], $refund['refund_money'], $refund['order_number']); if ($result['return_code'] === 'SUCCESS') { //返回状态码 if ($result['result_code'] === 'SUCCESS') { //业务结果 $update_data = [ 'id' => $id, 'is_arrival' => 1, 'status' => 2, 'arrival_time' => time(), 'update_time' => time(), 'transaction_id' => $result['transaction_id'] ]; $res = $mall_refund_model->dataUpdate($update_data); if (!$res) { Db::rollback(); return sendErrorMessage(); } //修改订单状态 // $res1 = $mall_order_model->where('id', $refund['order_id'])->update(['status' => ORDER_REFUND_SUCCESS, 'refund_status' => 3]); // if ($res1 === false) { // Db::rollback(); // return sendErrorMessage(); // } //修改订单状态 //查询订单剩余商品数量 $order_now_product_number = $order_product_model->where(['order_id' => $refund['order_id']])->sum('number'); //查询订单退款单的剩余审核中数量 $now_refund_order_number = $mall_refund_model->where(['order_id' => $refund['order_id'], 'status' => 1])->count(); if ($order_now_product_number == 0 && $now_refund_order_number == 0) {//该订单没有没有未申请的商品也没有审核中的退款单 改变订单状态为退款成功 $res1 = $mall_order_model->dataUpdate(['id' => $refund['order_id'], 'status' => ORDER_REFUND_SUCCESS, 'refund_status' => 3]); if ($res1 === false) { Db::rollback(); return sendErrorMessage(); } } else { $status = $order['delivery_type'] + 1; $res1 = $mall_order_model->dataUpdate(['id' => $refund['order_id'], 'status' => $status, 'refund_status' => 1]); if ($res1 === false) { Db::rollback(); return sendErrorMessage(1); } } //发送模板消息 //$weixin_logic->sendTemplateByApplet('order_refund',$order['openid'],getDomain() . '/wechat.php/mall/orderdetail/id/' . $order['id'],['order_id' => $order['id']]) //库存退回 $this->stockchange($refund['order_product_id'], $refund['refund_number']); Db::commit(); return sendSuccessMessage('', '审核退款成功'); } else { Db::rollback(); return sendErrorMessage($result['err_code_des']); } } else { Db::rollback(); return sendErrorMessage($result['return_msg']); } } elseif ($refund['refund_way'] == 2) { //余额退回 //生成退款日志,并增加用户的余额信息 Db::startTrans(); $update_data = [ 'id' => $id, 'is_arrival' => 1, 'status' => 2, 'arrival_time' => time(), 'update_time' => time() ]; $res = $mall_refund_model->dataUpdate($update_data); if (!$res) { Db::rollback(); return sendErrorMessage(); } $money_service = new \app\money\service\Money(); $res1 = $money_service->change($order['user_id'], 5, $refund['refund_money'], "商城购物退款", $refund['id'], $refund['order_id']); if ($res1['code'] != 1) { Db::rollback(); return sendErrorMessage($res1['message']); } //修改订单状态 // $res2 = $mall_order_model->where('id', $refund['order_id'])->update(['status' => ORDER_REFUND_SUCCESS, 'refund_status' => 3]); // if ($res2 === false) { // Db::rollback(); // return sendErrorMessage(); // } //修改订单状态 //查询订单剩余商品数量 $order_now_product_number = $order_product_model->where(['order_id' => $refund['order_id']])->sum('number'); //查询订单退款单的剩余审核中数量 $now_refund_order_number = $mall_refund_model->where(['order_id' => $refund['order_id'], 'status' => 1])->count(); if ($order_now_product_number == 0 && $now_refund_order_number == 0) {//该订单没有没有未申请的商品也没有审核中的退款单 改变订单状态为退款成功 $res1 = $mall_order_model->dataUpdate(['id' => $refund['order_id'], 'status' => ORDER_REFUND_SUCCESS, 'refund_status' => 3]); if ($res1 === false) { Db::rollback(); return sendErrorMessage(1); } } else { $status = $order['delivery_type'] + 1; $res1 = $mall_order_model->dataUpdate(['id' => $refund['order_id'], 'status' => $status, 'refund_status' => 1]); if ($res1 === false) { Db::rollback(); return sendErrorMessage(1); } } //库存退回 $this->stockchange($refund['order_product_id'], $refund['refund_number']); //发送模板消息 //$weixin_logic->sendTemplateByApplet('order_refund',$order['openid'],getDomain() . '/wechat.php/mall/orderdetail/id/' . $order['id'],['order_id' => $order['id']]) Db::commit(); return sendSuccessMessage('', '审核退款成功'); } elseif ($refund['refund_way'] == 3) { //支付宝退回 //生成退款日志,并增加用户的余额信息 Db::startTrans(); $update_data = [ 'id' => $id, 'is_arrival' => 1, 'status' => 2, 'arrival_time' => time(), 'update_time' => time() ]; $res = $mall_refund_model->dataUpdate($update_data); if (!$res) { Db::rollback(); return sendErrorMessage(); } $ali_logic = new Alipay(); $res1 = $ali_logic->aliRefund($order['order_number'], $refund['order_number'], $refund['refund_money']); if ($res1['code'] != 1) { Db::rollback(); return sendErrorMessage($res1['message']); } //修改订单状态 // $res2 = $mall_order_model->where('id', $refund['order_id'])->update(['status' => ORDER_REFUND_SUCCESS, 'refund_status' => 3]); // if ($res2 === false) { // Db::rollback(); // return sendErrorMessage(); // } //修改订单状态 //查询订单剩余商品数量 $order_now_product_number = $order_product_model->where(['order_id' => $refund['order_id']])->sum('number'); //查询订单退款单的剩余审核中数量 $now_refund_order_number = $mall_refund_model->where(['order_id' => $refund['order_id'], 'status' => 1])->count(); if ($order_now_product_number == 0 && $now_refund_order_number == 0) {//该订单没有没有未申请的商品也没有审核中的退款单 改变订单状态为退款成功 $res1 = $mall_order_model->dataUpdate(['id' => $refund['order_id'], 'status' => ORDER_REFUND_SUCCESS, 'refund_status' => 3]); if ($res1 === false) { Db::rollback(); return sendErrorMessage(); } } else { $status = $order['delivery_type'] + 1; $res1 = $mall_order_model->dataUpdate(['id' => $refund['order_id'], 'status' => $status, 'refund_status' => 1]); if ($res1 === false) { Db::rollback(); return sendErrorMessage(1); } } //库存退回 $this->stockchange($refund['order_product_id'], $refund['refund_number']); //发送模板消息 //$weixin_logic->sendTemplateByApplet('order_refund',$order['openid'],getDomain() . '/wechat.php/mall/orderdetail/id/' . $order['id'],['order_id' => $order['id']]) Db::commit(); return sendSuccessMessage('', '审核退款成功'); } } else { $update_data = [ 'id' => $id, 'is_arrival' => 1, 'status' => 2, 'arrival_time' => time(), 'update_time' => time(), ]; $res = $mall_refund_model->dataUpdate($update_data); if (!$res) { Db::rollback(); return sendErrorMessage(); } //修改订单状态 // $res1 = $mall_order_model->where('id', $refund['order_id'])->update(['status' => ORDER_REFUND_SUCCESS, 'refund_status' => 3]); // if ($res1 === false) { // Db::rollback(); // return sendErrorMessage(); // } //修改订单状态 //查询订单剩余商品数量 $order_now_product_number = $order_product_model->where(['order_id' => $refund['order_id']])->sum('number'); //查询订单退款单的剩余审核中数量 $now_refund_order_number = $mall_refund_model->where(['order_id' => $refund['order_id'], 'status' => 1])->count(); if ($order_now_product_number == 0 && $now_refund_order_number == 0) {//该订单没有没有未申请的商品也没有审核中的退款单 改变订单状态为退款成功 $res1 = $mall_order_model->dataUpdate(['id' => $refund['order_id'], 'status' => ORDER_REFUND_SUCCESS, 'refund_status' => 3]); if ($res1 === false) { Db::rollback(); return sendErrorMessage(); } } else { $status = $order['delivery_type'] + 1; $res1 = $mall_order_model->dataUpdate(['id' => $refund['order_id'], 'status' => $status, 'refund_status' => 1]); if ($res1 === false) { Db::rollback(); return sendErrorMessage(1); } } //发送模板消息 //$weixin_logic->sendTemplateByApplet('order_refund',$order['openid'],getDomain() . '/wechat.php/mall/orderdetail/id/' . $order['id'],['order_id' => $order['id']]) //库存退回 $this->stockchange($refund['order_product_id'], $refund['refund_number']); Db::commit(); return sendSuccessMessage('', '审核退款成功'); } } /** * 审核订单审核不通过 * @return array|string * @throws \think\Exception */ public function refundRefuse() { $mall_refund_model = new IntegralRefund(); $mall_order_model = new IntegralOrder(); $mall_order_product_model = new IntegralOrderProduct(); $id = input('param.id', 0); $cause = input('param.cause', 0); if (empty($id)) { return sendErrorMessage('参数错误,审核状态变更失败!'); } $where = [ 'uid' => UID, 'id' => $id ]; $refund = $mall_refund_model->findOne($where); if ($refund['status'] != 1) { return sendErrorMessage('审核状态发生变化,请刷新重试'); } $order = $mall_order_model->findOne(['id' => $refund['order_id']]); Db::startTrans(); //退款订单数据变更 $res = $mall_refund_model->dataUpdate(['id' => $id, 'status' => 3, 'update_time' => time(), 'refuse_cause' => $cause]); if (!$res) { Db::rollback(); return sendErrorMessage(); } //修改订单商品数量 $res1 = $mall_order_product_model->where(['order_id' => $refund['order_id'], 'id' => $refund['order_product_id']])->inc('number', $refund['refund_number'])->update(); if ($res1 === false) { Db::rollback(); return sendErrorMessage(); } $status = $order['delivery_type'] + 1; $res1 = $mall_order_model->dataUpdate(['id' => $refund['order_id'], 'status' => $status, 'refund_status' => 1]); if ($res1 === false) { Db::rollback(); return sendErrorMessage(); } Db::commit(); return sendSuccessMessage('', '审核状态变更成功'); } public function stockchange($id, $refund_number) { //获取订单信息 $order_product_model = new IntegralOrderProduct(); $data = $order_product_model->field('id,product_id,is_product_spec_open,product_sku,number')->where(['id' => $id])->find(); $integral_product_model = new IntegralProduct(); $integral_product_sku_model = new IntegralProductSku(); if (!empty($data)) { $integral_product_model->where(['id' => $data['product_id']])->dec('sales_actual_number', $refund_number)->update(); // 没有开启规格 减少产品总库存 if ($data['is_product_spec_open'] == 0) { $integral_product_model->where(['id' => $data['product_id']])->inc('stock', $refund_number)->update(); } else { $integral_product_sku_model->where(['product_id' => $data['product_id'], 'sku' => $data['product_sku']])->inc('stock', $refund_number)->update(); } } } public function integralchange($user_id, $integral_num) { $my_integral = new IntegralMy(); return $my_integral->where(['user_id' => $user_id])->inc('integral', $integral_num)->update(); } public function test() { $res = exec('ffmpeg -i 2.mp4 -vf "drawtext=fontfile=SimHei.ttf:text=\'哈哈哈哈哈\':y=h-line_h-20:x=(w-text_w)/2:fontsize=34:fontcolor=yellow:shadowy=2" -b:v 3000k 22.mp4'); } /** * 热门标签列表 * @return array|mixed|string */ public function search() { $search_hot_model = new IntegralSearchHot(); $where = ['uid' => UID]; $dataList = $search_hot_model->getAllData($where, '', 'sort desc,id desc'); View::assign('dataList', $dataList); return View::fetch("search"); } /** * 热门搜索添加 * @return array|mixed|string */ public function searchAdd() { $search_hot_model = new IntegralSearchHot(); if (request()->isPost()) { $data = input('post.'); $data['uid'] = UID; $res = $search_hot_model->dataUpdate($data); if ($res === false) { return sendErrorMessage(); } return sendSuccessMessage(); } else { $id = input('param.id', 0); $data = $search_hot_model->getOneData(['id' => $id]); View::assign('data', $data); return View::fetch('searchadd'); } } public function searchUpdate() { return $this->searchAdd(); } }