123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433 |
- <?php
- namespace Modules\Manager\Http\Controllers;
- use Modules\Manager\Jobs\Qy\SendQYMonthMoneyInfoJob;
- use Modules\Manager\Jobs\Qy\ReckonOrderCrownMoneyMonthJob;
- use App\Models\DHMoneyPct;
- use App\Models\QYCrownDocumet;
- use App\Models\QYMoneyDetail;
- use App\Models\QYUserAuth;
- use App\Models\QYUserMoney;
- use App\Models\User;
- use Illuminate\Http\Request;
- use Illuminate\Queue\Jobs\Job;
- use Illuminate\Support\Facades\Log;
- use TencentCloud\Common\Credential;
- use TencentCloud\Common\Exception\TencentCloudSDKException;
- use TencentCloud\Common\Profile\ClientProfile;
- use TencentCloud\Common\Profile\HttpProfile;
- use TencentCloud\Sms\V20190711\Models\SendSmsRequest;
- use TencentCloud\Sms\V20190711\SmsClient;
- class QYInfoController extends Controller
- {
- /*
- * 获取合同列表
- * ***/
- public function GetDocumentsList(Request $request){
- $month=$request->input('month',null);
- $year=$request->input('year',null);
- $search_name=$request->input('search_name');
- $document_num=$request->input('document_num');
- $page_index=$request->input('page_index');
- $page_size=$request->input('page_size');
- $is_deleted=$request->input('is_deleted')??-1;
- $num=($page_index-1)*$page_size;
- $query=QYCrownDocumet::query();
- if ($search_name){
- $id=User::where('mobile',$search_name)
- ->orwhere('nickname','like',"%$search_name%")
- ->orwhere('realname','like',"$search_name")->pluck('id')->toArray();;
- $query->whereIn('user_id',$id);
- }
- if ($month){
- $query->where('month',$month);
- }
- if ($year){
- $query->where('year',$year);
- }
- if ($document_num){
- $query->where('document_num','like',$document_num);
- }
- if ($is_deleted>=0){
- $query->where('is_deleted',$is_deleted);
- }
- $count=$query->count();
- $data=$query->with(['user'])->orderByDesc('id')->take($page_size)->skip($num)->get()->toArray();
- return $this->success_list($data,'',$count);
- }
- /*
- * 认证列表
- * ***/
- public function QYAuthList(Request $request){
- $search_name=$request->input('search_name');
- $page_index=$request->input('page_index');
- $page_size=$request->input('page_size');
- $status=$request->input('status',-1);
- $num=($page_index-1)*$page_size;
- $query=QYUserAuth::query();
- if ($search_name){
- $id=User::where('mobile',$search_name)
- ->orwhere('nickname','like',"%$search_name%")
- ->orwhere('realname','like',"$search_name")->pluck('id')->toArray();;
- $query->whereIn('user_id',$id);
- }
- if ($status>=0){
- $query->where('status',$status);
- }
- $count=$query->count();
- $data=$query->with(['user'])->orderByDesc('id')->take($page_size)->skip($num)->get()->toArray();
- return $this->success_list($data,'',$count);
- }
- /*
- * 每月订单金额
- * ***/
- public function QYMoneyList(Request $request){
- $search_name=$request->input('search_name');
- $page_index=$request->input('page_index');
- $page_size=$request->input('page_size');
- $status=$request->input('status',-1);
- $month=$request->input('month',null);
- $year=$request->input('year',null);
- $num=($page_index-1)*$page_size;
- $query=QYUserMoney::query();
- if ($search_name){
- $id=User::where('mobile',$search_name)
- ->orwhere('nickname','like',"%$search_name%")
- ->orwhere('realname','like',"$search_name")->pluck('id')->toArray();;
- $query->whereIn('user_id',$id);
- }
- if ($month){
- $query->where('month',$month);
- }
- if ($year){
- $query->where('year',$year);
- }
- if ($status>=0){
- $query->where('status',$status);
- }
- $count=$query->count();
- $data=$query->with(['user','document','Detail'])->orderByDesc('id')->take($page_size)->skip($num)->get()->toArray();
- return $this->success_list($data,'',$count);
- }
- /*
- * 导出每月金额列表
- * ***/
- public function ExportMonthMoneyList(Request $request){
- $month=$request->input('month',null);
- $year=$request->input('year',null);
- $query=QYUserMoney::query();
- if ($month){
- $query->where('month',$month);
- }
- if ($year){
- $query->where('year',$year);
- }
- $re=$query->with(['user','document','Detail'])->get();
- return $this->success($re);
- }
- public function QYUserMoney(Request $request){
- $id=$request->input('id');
- $re=QYMoneyDetail::where('qy_usermoney_id',$id)->get();
- return $this->success($re);
- }
- /*
- * 计算每月金额
- * ***/
- public function ReckonMonthMoney(Request $request){
- $month=$request->input('month',null);
- $year=$request->input('year',null);
- $count=QYUserMoney::where('year',$year)->where('month',$month)->count();
- if (empty($month)||empty($year)){
- return $this->error(50021,'请选择年份和月份');
- }
- if ($count>0){
- return $this->error(500212,'当前月份已经计算过金额');
- }
- $data=[
- 'month'=>$month,
- 'year'=>$year,
- ];
- ReckonOrderCrownMoneyMonthJob::dispatch($data);
- return $this->success([]);
- }
- /*
- * 发起某月的合同
- * ***/
- public function SendDocument(Request $request){
- $search_name=$request->input('search_name');
- $status=$request->input('status',-1);
- $month=$request->input('month',null);
- $year=$request->input('year',null);
- $query=QYUserMoney::query();
- if ($month){
- $query->where('month',$month);
- }
- if ($year){
- $query->where('year',$year);
- }
- if ($search_name){
- $id=User::where('mobile',$search_name)
- ->orwhere('nickname','like',"%$search_name%")
- ->orwhere('realname','like',"$search_name")->pluck('id')->toArray();;
- $query->whereIn('user_id',$id);
- $ids=QYUserMoney::where('year',$year)->where('month',$month)->whereIn('user_id',$id)->pluck('user_id');
- $re=QYCrownDocumet::where('month',$month)->where('year',$year)->whereIn('user_id',$ids)->pluck('user_id');
- if (count($re)>0){
- $res=User::whereIn('id',$re)->pluck('mobile');
- $str='';
- foreach ($res as $k=>$v){
- $str.=$v.',';
- }
- return $this->error(500214,'手机号为:'.$str.'这'.count($re).'位代理已经发起过合同!');
- }
- }else{
- $ids=QYUserMoney::where('year',$year)->where('month',$month)->pluck('user_id');
- $re=QYCrownDocumet::where('month',$month)->where('year',$year)->whereIn('user_id',$ids)->pluck('user_id');
- if (count($re)>0){
- $res=User::whereIn('id',$re)->pluck('mobile');
- $str='';
- foreach ($res as $k=>$v){
- $str.=$v.',';
- }
- return $this->error(500214,'手机号为:'.$str.'这'.count($re).'位代理已经发起过合同!');
- }
- }
- if ($status==2){
- return $this->error();
- }
- if ($status==3){
- return $this->error();
- }
- // if ($status==0){
- // return $this->error();
- // }
- $query=$query->with(['Detail'])->get();
- $info=[];
- foreach ($query as $k=>$v){
- $mobile=QYUserAuth::where('user_id',$v->user_id)->where('status',1)->first();
- if (!$mobile){
- return $this->error(500214,'存在没有认证的代理公司,请进行核实处理');
- }
- $data=[];
- $detail=$v->Detail;
- foreach ($detail as $ke=>$va){
- $data[$ke]['column1']=$va->good_name;
- $data[$ke]['column2']=$va->unit;
- $data[$ke]['column3']=$va->num;
- $data[$ke]['column4']=$va->price;
- $data[$ke]['column5']=$va->money;
- }
- for ($i=0;$i<7;$i++){
- if (!isset($data[$i])){
- if($i==6){
- $data[$i]['column1']='合同总金额';
- $data[$i]['column2']='';
- $data[$i]['column3']='';
- $data[$i]['column4']='';
- $data[$i]['column5']=$v->pct_money;
- }else{
- $data[$i]['column1']='';
- $data[$i]['column2']='';
- $data[$i]['column3']='';
- $data[$i]['column4']='';
- $data[$i]['column5']='';
- }
- }
- }
- $data=json_encode($data);
- $user=User::where('id',$v->user_id)->first();
- $info[$k]['mobile']=$user->mobile;
- $info[$k]['realname']=$user->realname;
- $info[$k]['cre_num']=$user->cre_num;
- $info[$k]['data']=$data;
- $info[$k]['month']=$month;
- $info[$k]['year']=$year;
- $info[$k]['user_id']=$v->user_id;
- $info[$k]['money']=$v->pct_money;
- $info[$k]['id']=$v->id;
- }
- SendQYMonthMoneyInfoJob::dispatch($info);
- return $this->success($info);
- }
- /*
- * 显示金额区间表
- * **/
- public function GetMoneyList(){
- $re=DHMoneyPct::orderByDesc('id')->get();
- return $this->success($re);
- }
- /*
- * 新增区间
- * **/
- public function AddTimeMoney(Request $request){
- $time=$request->input('time');
- $times=strtotime($time);
- $money_arr=$request->input('money_arr');
- DHMoneyPct::where('time_end','2038-01-01 00:00:00')->update(['time_end'=>date('Y-m-d H:i:s',$times-1)]);
- foreach ($money_arr as $k=>$v){
- $re=new DHMoneyPct();
- $re->time_start=date('Y-m-d H:i:s',$times);
- $re->time_end='2038-01-01 00:00:00';
- $re->money_start=$v['money_start'];
- if ($v['money_end']){
- $money_end=$v['money_end'];
- }else{
- $money_end=2147483647;
- }
- $re->money_end=$money_end;
- $re->pct=$v['money_pct'];
- $re->save();
- }
- return $this->success([]);
- }
- public function SendSms(){
- $id=5;
- $data=QYCrownDocumet::find($id);
- $mobile=QYUserAuth::where('user_id',$data->user_id)->value('mobile');
- try {
- /* 必要步骤:
- * 实例化一个认证对象,入参需要传入腾讯云账户密钥对secretId,secretKey。
- * 这里采用的是从环境变量读取的方式,需要在环境变量中先设置这两个值。
- * 你也可以直接在代码中写死密钥对,但是小心不要将代码复制、上传或者分享给他人,
- * 以免泄露密钥对危及你的财产安全。
- * CAM密匙查询: https://console.cloud.tencent.com/cam/capi*/
- $cred = new Credential('AKIDtZz93Rj3LOoyiEseU9YgZDbiZAcpoTu4','7ya0C7nDNHuHRLyLjrkPoxrVt2ZqQnul');
- //$cred = new Credential(getenv("TENCENTCLOUD_SECRET_ID"), getenv("TENCENTCLOUD_SECRET_KEY"));
- // 实例化一个http选项,可选的,没有特殊需求可以跳过
- $httpProfile = new HttpProfile();
- $httpProfile->setReqMethod("POST"); // post请求(默认为post请求)
- $httpProfile->setReqTimeout(30); // 请求超时时间,单位为秒(默认60秒)
- $httpProfile->setEndpoint("sms.tencentcloudapi.com"); // 指定接入地域域名(默认就近接入)
- // 实例化一个client选项,可选的,没有特殊需求可以跳过
- $clientProfile = new ClientProfile();
- $clientProfile->setSignMethod("TC3-HMAC-SHA256"); // 指定签名算法(默认为HmacSHA256)
- $clientProfile->setHttpProfile($httpProfile);
- // 实例化要请求产品(以sms为例)的client对象,clientProfile是可选的
- $client = new SmsClient($cred, "ap-shanghai", $clientProfile);
- // 实例化一个 sms 发送短信请求对象,每个接口都会对应一个request对象。
- $req = new SendSmsRequest();
- /* 填充请求参数,这里request对象的成员变量即对应接口的入参
- * 你可以通过官网接口文档或跳转到request对象的定义处查看请求参数的定义
- * 基本类型的设置:
- * 帮助链接:
- * 短信控制台: https://console.cloud.tencent.com/sms/smslist
- * sms helper: https://cloud.tencent.com/document/product/382/3773 */
- /* 短信应用ID: 短信SdkAppid在 [短信控制台] 添加应用后生成的实际SdkAppid,示例如1400006666 */
- $req->SmsSdkAppid = "1400258913";
- /* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,签名信息可登录 [短信控制台] 查看 */
- $req->Sign = "大卫博士";
- /* 短信码号扩展号: 默认未开通,如需开通请联系 [sms helper] */
- $req->ExtendCode = "0";
- /* 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号]
- * 示例如:+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号*/
- $req->PhoneNumberSet = ['+86'.$mobile];
- /* 国际/港澳台短信 senderid: 国内短信填空,默认未开通,如需开通请联系 [sms helper] */
- // $req->SenderId = "xxx";
- /* 用户的 session 内容: 可以携带用户侧 ID 等上下文信息,server 会原样返回 */
- $req->SessionContext = "您有一份新的订货合同需要签署,合同标题为:{1}年{2}月订货合同。请尽快点击链接进行签署。 链接地址为:https://t.qiyuesuo.cn/{3}";
- /* 模板 ID: 必须填写已审核通过的模板 ID。模板ID可登录 [短信控制台] 查看 */
- $req->TemplateID = "1329096";
- /* 模板参数: 若无模板参数,则设置为空*/
- $req->TemplateParamSet = [$data->year,$data->month,mb_substr($data->shortLink,22)];
- // 通过client对象调用DescribeInstances方法发起请求。注意请求方法名与请求对象是对应的
- // 返回的resp是一个DescribeInstancesResponse类的实例,与请求对象对应
- $resp = $client->SendSms($req);
- return $this->success($resp);
- }
- catch(TencentCloudSDKException $e) {
- return $this->success($e->getMessage());
- }
- }
- public function UpdateStatus(Request $request){
- $input=$request->all();
- Log::error('契约锁认证');
- Log::error($input);
- if ($input['status']==1){
- QYUserAuth::where('authId',$input['authId'])->update(['status'=>1]);
- }
- }
- public function Pdf(Request $request){
- $id=$request->input('id');
- $link=QYCrownDocumet::find($id);
- header('Content-Type:application/pdf');
- return file_get_contents($link->url);
- }
- /*
- * 作废合同
- * **/
- public function DestroyDocument(Request $request){
- $id=$request->input('id');
- $cause=$request->input('cause');
- $re=QYCrownDocumet::find($id);
- $re->is_deleted=1;
- $re->deleted_cause=$cause;
- $re->save();
- QYUserMoney::where('document_id',$id)->update(['status'=>0,'document_id'=>null]);
- return $this->success([]);
- }
- }
|