| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487 | <?php/** * Created by PhpStorm. * User: tandunzhao * Date: 2018/3/23 * Time: 上午9:09 */namespace App\Http\Controllers\Manage\Channel;use App\Http\Controllers\Manage\BaseController;use App\Http\Controllers\Manage\Channel\Transformers\ChannelTransformer;use App\Http\Controllers\Manage\Channel\Transformers\CompanyTransformer;use App\Modules\Book\Services\BookService;use App\Modules\Channel\Services\ChannelUserService;use App\Modules\Channel\Services\CompanyService;use App\Modules\Channel\Services\CompanySpecialBookService;use Illuminate\Http\Request;class CompanyController extends BaseController{    /**     * @apiDefine channel 渠道     */    /**     * @apiVersion 1.0.0     * @apiDescription 添加公司     * @api {POST} channel/company/add 添加公司     * @apiGroup channel     * @apiName channel/company/add     * @apiParam   {String}  name 公司名称     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":{}     *     }     */    public function addCompany(Request $request) {        $name = $request->has('name') ? $request->input('name') : '';        if(empty($name)) {            return response()->error("PARAM_EMPTY");        }        $company = CompanyService::findByName($name);        if($company) {            return response()->error("COMPANY_EXIST");        }        $data = ['name' => $name, 'is_important' => 0];        $company = CompanyService::addCompany($data);        return response()->item(new CompanyTransformer(), $company);    }    /**     * @apiVersion 1.0.0     * @apiDescription 删除公司     * @api {POST} channel/company/remove 删除公司     * @apiGroup channel     * @apiName channel/company/remove     * @apiParam   {Number}  id 公司ID     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":{}     *     }     */    public function rmCompany(Request $request) {        $id = $request->has('id') ? $request->input('id') : '';        if(empty($id)) {            return response()->error("PARAM_EMPTY");        }        $company = CompanyService::getCompany($id);        if(!$company) {            return response()->error("PARAM_ERROR");        }        CompanySpecialBookService::rmCompany($id);        $company->delete();        return response()->success();    }    /**     * @apiVersion 1.0.0     * @apiDescription 更新公司     * @api {POST} channel/company/update 更新公司     * @apiGroup channel     * @apiName channel/company/update     * @apiParam   {Number}  id 公司ID     * @apiParam   {String}  [name] 公司名称     * @apiParam   {Number}  [is_important] 是否重要 0:不是重点,默认    1:重点商户     * @apiParam   {Number}  [distribution_manages_id] 商务ID     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":{}     *     }     */    public function updateCompany(Request $request) {        $id = $request->has('id') ? $request->input('id') : '';        if(empty($id)) {            return response()->error("PARAM_EMPTY");        }        $is_important = $request->input('is_important','');        if($request->has('is_important') && !in_array($is_important, [0,1])) {            return response()->error("PARAM_ERROR");        }        if(!CompanyService::getCompany($id)) {            return response()->error("PARAM_ERROR");        }        $name = $request->has('name') ? $request->input('name') : '';        $data = [];        if($name){            $data['name'] =$name;        }        if($request->has('is_important') && in_array($is_important,[0,1])) {            $data['is_important'] = $is_important;        }        //$data = ['name' => $name, 'is_important' => $is_important];        if($this->getLoginUserRole() == "business_leader" || $this->getLoginUserRole() == "admin" || $this->getLoginUserRole()=="business") {            //只有商务主管能修改 公司对应商务,            $distribution_manages_id = $request->has('distribution_manages_id') ? $request->input('distribution_manages_id') : '';            if(is_numeric($distribution_manages_id) && $distribution_manages_id > 0) {                //更新公司对应用户的所属商务                $data['distribution_manages_id']= $distribution_manages_id;                ChannelUserService::updateChannelUserManager($distribution_manages_id, $id);            }        }        $fans_type = $request->input('fans_gender','');        if($fans_type){            if(!in_array($fans_type,[1,2,3])){                return response()->error('PARAM_ERROR');            }            $data['fans_gender'] = $fans_type;        }        if($data){            //\Log::info('delete_company_books:rmCompany:$id'.$id);            $company_old = CompanyService::getCompany($id);            $company = CompanyService::updateCompany($id, $data);            if($request->has('is_important') && $is_important == 0) {                //设置为普通商户之后,对应书籍删除                \Log::info('delete_company_books:rmCompany:$id'.$id.'is_important:'.$is_important);                CompanySpecialBookService::rmCompany($id);            }            if($request->has('is_important') && $is_important == 1 && $company_old->is_important==0) {                \Log::info('delete_company_books:rmCompany:$id'.$id.'is_important:'.$is_important);                CompanySpecialBookService::rmCompany($id);                $bids = CompanySpecialBookService::getBidByFirst();                if($bids) {                    foreach ($bids as $i) {                        CompanySpecialBookService::addBook($i, $id);                    }                }            }        }        $company = CompanyService::getCompany($id);        return response()->item(new CompanyTransformer(), $company);    }    /**     * @apiVersion 1.0.0     * @apiDescription 公司列表分页     * @api {GET} channel/company/list 公司列表分页     * @apiGroup channel     * @apiName channel/company/list     * @apiParam   {String}  [search_name] 搜索名称     * @apiParam   {Number}  [is_important] 是否重要     * @apiSuccess {Number}  id 公司ID     * @apiSuccess {String}  name 公司名称     * @apiSuccess {Number}  is_important 是否重要     * @apiSuccess {String}  create_time 创建时间     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data": {     *          "list": [     *          {     *          "id": 2,     *          "name": "杭州掌维科技有限公司",     *          "is_important": 0,     *          "create_time": "2018-03-23 09:32:29"     *          },     *          ],     *          "meta": {     *          "total": 2,     *          "per_page": 15,     *          "current_page": 1,     *          "last_page": 1,     *          "next_page_url": "",     *          "prev_page_url": ""     *          }     *          }     *     }     */    public function getList(Request $request) {        $search_name = $request->has('search_name') ? $request->input('search_name') : '';        $is_important = $request->input('is_important');        $searchData = [            'search_name' => $search_name,            'is_important' => $is_important,        ];        $manager_info= json_decode(json_encode(unserialize($request->session()->get('manage_user'))),true);        $manager_id = '';        if($manager_info['role']=='business'){            $manager_id = $manager_info['id'];        }        $data = CompanyService::getList($searchData,false,$manager_id);        return response()->pagination(new CompanyTransformer(), $data);    }    /**     * @apiVersion 1.0.0     * @apiDescription 公司列表     * @api {GET} channel/company/allList 公司列表     * @apiGroup channel     * @apiName channel/company/allList     * @apiParam   {String}  [search_name] 搜索名称     * @apiParam   {Number}  [is_important] 是否重要     * @apiSuccess {Number}  id 公司ID     * @apiSuccess {String}  name 公司名称     * @apiSuccess {Number}  is_important 是否重要     * @apiSuccess {String}  create_time 创建时间     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":[     *              {     *          "id": 2,     *          "name": "杭州掌维科技有限公司",     *          "is_important": 0,     *          "create_time": "2018-03-23 09:32:29"     *          }     *          ]     *     }     */    public function getAllList(Request $request) {        $search_name = $request->has('search_name') ? $request->input('search_name') : '';        $is_important = $request->input('is_important');        $searchData = [            'search_name' => $search_name,            'is_important' => $is_important,        ];        $data = CompanyService::getList($searchData, true);        return response()->collection(new CompanyTransformer(), $data);    }    /**     * @apiVersion 1.0.0     * @apiDescription 公司列表图书ID     * @api {GET} channel/company/listByBookId 公司列表图书ID     * @apiGroup channel     * @apiName channel/company/listByBookId     * @apiParam   {Number}  bid 书籍ID     * @apiSuccess {Number}  id 公司ID     * @apiSuccess {String}  name 公司名称     * @apiSuccess {Number}  is_important 是否重要     * @apiSuccess {String}  create_time 创建时间     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":[     *              {     *          "id": 2,     *          "name": "杭州掌维科技有限公司",     *          "is_important": 0,     *          "create_time": "2018-03-23 09:32:29"     *          }     *          ]     *     }     */    public function getListByBookId(Request $request) {        $bid = $request->has('bid') ? $request->input('bid') : '';        if(empty($bid) || !is_numeric($bid)) {            return response()->error("PARAM_ERROR");        }        $data = CompanySpecialBookService::findCompanyToBid($bid);        return response()->collection(new CompanyTransformer(), $data);    }    /**     * @apiVersion 1.0.0     * @apiDescription 获取公司渠道列表     * @api {GET} channel/company/getChannelList 获取公司渠道列表     * @apiGroup channel     * @apiName channel/company/getChannelList     * @apiParam   {Number}  company_id 公司id     * @apiParam   {Number}  channel_user_id 账户id     *     * @apiSuccess {Number}  id 渠道ID.     * @apiSuccess {String}  name 渠道名称.     * @apiSuccess {String}  phone 手机号码.     * @apiSuccess {String}  pay_merchant 支付商户.     * @apiSuccess {String}  nickname 昵称.     * @apiSuccess {String}  latest_login_time  最后登陆时间.     * @apiSuccess {String}  latest_login_ip 最后登陆IP.     * @apiSuccess {String}  remark 备注.     * @apiSuccess {String}  register_ip 注册IP.     * @apiSuccess {String}  person_in_charge_name 负责人.     * @apiSuccess {String}  create_time 注册时间     * @apiSuccess {Number}  distribution_manages_id 管理员ID     * @apiSuccess {String}  distribution_manages_account 管理员     * @apiSuccess {String}  distribution_manages_number 管理员     * @apiSuccess {String}  distribution_manages_nickname 管理员昵称     * @apiSuccess {String}  price_rate 章节价格     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data": [     *             {     *                  "id": 1,     *                   "phone": "",     *                   "name": "121",     *                   "pay_merchant_id": 1,     *                   "nickname": "是说",     *                   "latest_login_time": "",     *                   "latest_login_ip": "",     *                   "is_enabled": 1,     *                   "register_ip": "",     *                   "remark": "",     *                   "person_in_charge_name": "波哥帅",     *                   "create_time": "2017-11-20 18:34:17",     *                   "distribution_manages_id": 0,     *                   "distribution_manages_account": null,     *                   "distribution_manages_number": null,     *                   "distribution_manages_nickname": null     *              }     *          ]     *     }     */    public function getChannelList(Request $request) {        $company_id = $request->has('company_id') ? $request->input('company_id') : '';        $channel_user_id = $request->has('channel_user_id') ? $request->input('channel_user_id') : '';        if($company_id && !is_numeric($company_id) && !is_numeric($channel_user_id)) {            return response()->error("PARAM_ERROR");        }        if($company_id == 0) {            $channelUser = ChannelUserService::getById($channel_user_id);            if($channelUser) {                $company_id = $channelUser->company_id;            }        }        $channelUserIds = [];        if(is_numeric($company_id) && $company_id > 0) {            $channelUserIds = ChannelUserService::getChannelUserIdListByCompany($company_id);        } else {            $channelUserIds[] = $channel_user_id;        }//        $channelUserIds = ChannelUserService::getChannelUserIdListByCompany($company_id);        $channels = ChannelUserService::getChannelListByChannelUserIds($channelUserIds);        foreach ($channels as &$v){            $price_rate = BookService::getChapterPrice($v->id);            $default_rate = (float)env('DEFAULT_CHAPTER_PRICE',0.015)*100;            $v->price_rate = $price_rate?$price_rate:$default_rate;        }        return response()->collection(new ChannelTransformer(), $channels);    }    /**     * @apiVersion 1.0.0     * @apiDescription 添加书籍     * @api {POST} channel/company/addBook 添加书籍     * @apiGroup channel     * @apiName channel/company/addBook     * @apiParam   {Number}  bid 书籍ID     * @apiParam   {Number}  company_ids 公司ids [1,2,3,4]     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":{}     *     }     */    public function addCompanyBook(Request $request) {        $bid = $request->has('bid') ? $request->input('bid') : '';        $company_ids = $request->has('company_ids') ? $request->input('company_ids') : '';        if(!is_numeric($bid)) {            return response()->error("PARAM_ERROR");        }//        if(count($ids) == 0) {//            return response()->error("PARAM_ERROR");//        }        \Log::info('delete_special_book_log:addCompanyBook:$bid:'.$bid);        CompanySpecialBookService::rmAllBook($bid);        if(!empty($company_ids)) {            $ids = explode(',', $company_ids);            foreach ($ids as $id) {                $data = CompanySpecialBookService::addBook($bid, $id);            }        }        return response()->success();    }    /**     * @apiVersion 1.0.0     * @apiDescription 删除书籍     * @api {POST} channel/company/rmBook 删除书籍     * @apiGroup channel     * @apiName channel/company/rmBook     * @apiParam   {Number}  bid 书籍ID     * @apiParam   {Number}  company_ids 公司id[1,2,3,4]     * @apiSuccessExample {json} Success-Response:     *     *     {     *         "code": 0,     *         "msg": "",     *         "data":{}     *     }     */    public function rmCompanyBook(Request $request) {        $bid = $request->has('bid') ? $request->input('bid') : '';        $company_ids = $request->has('company_ids') ? $request->input('company_ids') : '';        if(!is_numeric($bid) || empty($company_ids)) {            return response()->error("PARAM_ERROR");        }        $ids = explode(',', $company_ids);        if(count($ids) == 0) {            return response()->error("PARAM_ERROR");        }        \Log::info('delete_special_book_log:rmCompanyBook:ids:'.json_encode($ids).'bid:'.$bid);        foreach ($ids as $id) {            $data = CompanySpecialBookService::rmBook($bid, $id);        }        return response()->success();    }    /**     * 设置商务公司所在的城市     * @param Request $request     * @return mixed     */    function setChannelCityInfo(Request $request)    {        $city = $request->has('city') ? $request->input('city') : '';        $companyId = $request->has('companyId') ? trim($request->input('companyId')) : '';        if (empty($companyId) || empty($city)) {            return response()->error('PARAM_ERROR');        }        $result = CompanyService::updateCompany($companyId, ['city' => $city]);        if ($result) {            return response()->success();        }        return response()->error("HANDLE_FAILED");    }}
 |