ServiceSmsApi.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: vowkin
  5. * Date: 2017/5/22
  6. * Time: 12:12
  7. */
  8. namespace app\common\service;
  9. use app\admin\service\ServiceAddressApi;
  10. use app\common\model\ArrangeModel;
  11. use app\common\model\CouponModel;
  12. use app\common\model\ProjectModel;
  13. use app\common\model\StoreModel;
  14. use app\common\model\UserCouponModel;
  15. use app\common\model\UserModel;
  16. use think\Session;
  17. class ServiceSmsApi extends BaseService
  18. {
  19. /**
  20. * 发送短信
  21. * @param array $param
  22. * @return mixed
  23. */
  24. public function sendCode($param=[]){
  25. $res = $this->Request_call('index/Sms/sendCode',$param);
  26. return $res;
  27. }
  28. /**
  29. * 发送短信接口
  30. * @param array $param
  31. * @return mixed
  32. */
  33. public function sendMessage($param=[]){
  34. $res = BaseService::Request_call('index/Sms/sendMessage',$param);
  35. return $res;
  36. }
  37. /**
  38. *获取短信验证
  39. * @param array $param
  40. * @return mixed
  41. */
  42. public function checkCode($param=[]){
  43. $res = $this->Request_call('index/Sms/checkCode',$param);
  44. return $res;
  45. }
  46. /**
  47. * 判断是否是第一次下单
  48. * @param $user_no
  49. * @param $storeId
  50. * @param array $params
  51. * @param bool $wx
  52. * @param string $arrangeNo
  53. */
  54. public function checkFirstPay($user_no,$storeId,$params=[],$wx=false,$arrangeNo=''){
  55. $arrangeModel = new ArrangeModel();
  56. $arrangeInfo = $arrangeModel->getOne(['user_no'=>$user_no,'status'=>['NEQ','4']]);
  57. $userModel = new UserModel();
  58. $userInfo = $userModel->getOne(['user_no'=>$user_no]);
  59. $SmsModel = new ServiceSmsApi();
  60. if(!$arrangeInfo){//是否是第一次消费
  61. $couponModel = new CouponModel();
  62. $userCouponModel = new UserCouponModel();
  63. $userCouponInfo = $userCouponModel->getMulti(['user_no'=>$user_no]);//得到用户已领取的优惠券
  64. $couId = array();
  65. if($userCouponInfo){
  66. foreach ($userCouponInfo as $res){
  67. $couId[] = $res['coupon_id'];
  68. }
  69. }
  70. $userCoupon = $couponModel->getMulti(['coupon_type'=>3,'status'=>1,'coupon_id'=>['not in',$couId]]);
  71. if(!empty($userCoupon)){
  72. $this->insertCoupon($userCoupon,$user_no,$params);
  73. $count = count($userCoupon);
  74. $couponMoney = '';
  75. foreach ($userCoupon as $coupon){
  76. $couponMoney += $coupon['coupon_price'];
  77. }
  78. //新收注册获得优惠券
  79. $this->newUserGetYh($userInfo,$count,$couponMoney);
  80. // $SmsModel->sendMessage(['mobile'=>"{$userInfo['mobile']}",'temp_id'=>'145034','temp_params'=>['num'=>"{$count}",'money'=>"{$couponMoney}/100"]]);
  81. }
  82. }else{
  83. $storeModel = new StoreModel();
  84. $storeInfo = $storeModel->getOne(['store_id'=>$storeId]);
  85. //预约成功
  86. $this->oneConsumption($userInfo,$storeInfo);
  87. // $SmsModel->sendMessage(['mobile'=>"{$userInfo['mobile']}",'temp_id'=>'144969','temp_params'=>['store'=>$storeInfo['store_name']]]);
  88. }
  89. if($wx){
  90. $re = $arrangeModel->getArr(['arrange_no'=>$arrangeNo]);
  91. $time=date('m-d H:i',$re['start_time']);
  92. $this->arrangeSuccess($userInfo,$arrangeInfo);
  93. // $this->sendMessage(['mobile'=>"{$userInfo['mobile']}",'temp_id'=>'144889','temp_params'=>['pay_style'=>"微信",'store_name'=>"{$re['store_name']}",'service_name'=>"{$re['project_name']}",'number'=>"{$re['number']}",'time'=>"{$time}"]]);
  94. }
  95. }
  96. /**
  97. * 优惠券插入
  98. * @param string $userCoupon
  99. * @param string $user_no
  100. * @param array $params
  101. * @return bool
  102. */
  103. public function insertCoupon($userCoupon='',$user_no='',$params=[]){
  104. // $couponModel = new CouponModel();
  105. $new = isset($params['new'])?$params['new']:2;
  106. $userCouponModel = new UserCouponModel();
  107. $userCouponInfo = $userCouponModel->getMulti(['user_no'=>$user_no]);//得到用户已领取的优惠券
  108. $couId = array();
  109. if($userCouponInfo){
  110. foreach ($userCouponInfo as $res){
  111. $couId[] = $res['coupon_id'];
  112. }
  113. }
  114. //$userCoupon = $couponModel->getMulti(array_filter(['coupon_type'=>3,'status'=>1]));
  115. if(!empty($userCoupon)){
  116. $data = array();
  117. foreach ($userCoupon as $coupon){
  118. $data[] = [
  119. 'user_no'=>$user_no,
  120. 'coupon_price'=>$coupon['coupon_price'],
  121. 'coupon_id'=>$coupon['coupon_id'],
  122. 'add_ts'=>time(),
  123. 'end_time'=>time()+$coupon['expire_ts']*86400,
  124. 'status'=>1,
  125. 'start_time'=>$coupon['add_ts'],
  126. 'from'=>1,
  127. 'coupon_no'=>$coupon['coupon_no'],
  128. 'original_user_no'=>$user_no,
  129. ];
  130. }
  131. // $userCouponModel = new UserCouponModel();
  132. $return = $userCouponModel->insertAll($data);
  133. if($return === false){
  134. die("插入优惠券失败!");
  135. }
  136. if($new ==1 ){
  137. $url = url("/index/index/user_coupon");
  138. header("location:$url");
  139. exit;
  140. }elseif ($new == 3){
  141. $url = url('/index/index/mall_order_pay',['is_project'=>$params['is_project'],'arrange_no'=>$params['arrange_no'],'arrangeTs'=>$params['arrangeTs'],'serviceId'=>$params['serviceId'],'danJia'=>$params['danJia'],'new'=>$new]);
  142. header("location:$url");
  143. exit;
  144. }
  145. return true;
  146. }
  147. return false;
  148. }
  149. /*******************************************************************************************************************/
  150. /**
  151. * 优惠券领取成功发送短信
  152. */
  153. public static function sendCouponMessage(){
  154. $SmsModel = new ServiceSmsApi();
  155. $userModel = new UserModel();
  156. $str='尊敬的用户您好,恭喜您成功领取一份特别优惠,请在个人中心查看信息。';
  157. $userInfo = $userModel->getOne(['user_no'=>Session::get('user_no')]);
  158. $mobile=$userInfo['mobile'];
  159. // echo $mobile;exit;
  160. $temp_id='145033';
  161. $array=['aa'=>'11'];
  162. $res=$SmsModel->sendMessage(['mobile'=>$mobile,'temp_id'=>$temp_id,'temp_params'=>$array]);
  163. // dump($res);exit;
  164. }
  165. /**
  166. * 赠送优惠券发送短信
  167. * @param $mobile
  168. * @param $user_name
  169. */
  170. public static function sendCouponMobile($mobile,$user_name){
  171. $SmsModel = new ServiceSmsApi();
  172. $str='亲,您的好友{{user_name}}给你一份惊喜,请在前往秘舍公众号查看。';
  173. $mobile=$mobile;
  174. $temp_id='144893';
  175. $array=['user_name'=>$user_name];
  176. $res=$SmsModel->sendMessage(['mobile'=>$mobile,'temp_id'=>$temp_id,'temp_params'=>$array]);
  177. // dump($res);exit;
  178. }
  179. /**
  180. * 增长服务兑换
  181. */
  182. public static function sendExchangeMessage(){
  183. $SmsModel = new ServiceSmsApi();
  184. $userModel = new UserModel();
  185. $userInfo = $userModel->getOne(['user_no'=>Session::get('user_no')]);
  186. $storeModel = new StoreModel();
  187. $storeId = Session::get('storeId');
  188. $storeInfo = $storeModel->getOne(['store_id'=>$storeId]);
  189. $mobile=$userInfo['mobile'];
  190. $temp_id='144971';
  191. $array=['store'=>$storeInfo['store_name'],'service_name'=>Session::get('serviceName')];
  192. $res=$SmsModel->sendMessage(['mobile'=>$mobile,'temp_id'=>$temp_id,'temp_params'=>$array]);
  193. // dump($res);exit;
  194. }
  195. /**
  196. * 增值服务发送后台
  197. * @param $VSInfo
  198. */
  199. public static function sendExchangeMessageAdmin($VSInfo){
  200. $SmsModel = new ServiceSmsApi();
  201. $storeModel = new StoreModel();
  202. $storeInfo = $storeModel->getOne(['store_id'=>$VSInfo['store_id']]);
  203. $userModel = new UserModel();
  204. $userInfo = $userModel->getOne(['user_no'=>Session::get('user_no')]);
  205. $mobile=$storeInfo['sms_phone'];
  206. $temp_id='145176';
  207. $array=['admin_name'=>$storeInfo['contact'],'user_tel'=>$userInfo['mobile'],
  208. 'service_name'=>$VSInfo['valueService_name']];
  209. $SmsModel->sendMessage(['mobile'=>$mobile,'temp_id'=>$temp_id,'temp_params'=>$array]);
  210. }
  211. /**
  212. * 新手注册获得优惠券
  213. * @param $userInfo
  214. */
  215. public static function newUserGetYh($userInfo){
  216. $SmsModel = new ServiceSmsApi();
  217. $str='尊敬的用户,恭喜您成为我们秘舍的一员,特给你一份惊喜,请在个人中心查看。';
  218. $mobile=$userInfo['mobile'];
  219. $temp_id='145034';
  220. $array=[];
  221. $SmsModel->sendMessage(['mobile'=>$mobile,'temp_id'=>$temp_id,'temp_params'=>$array]);
  222. }
  223. /**
  224. * 预约成功
  225. * @param $userInfo
  226. * @param $arrangeInfo
  227. */
  228. public static function arrangeSuccess($userInfo,$arrangeInfo){
  229. $SmsModel = new ServiceSmsApi();
  230. $projectModel=new ProjectModel();
  231. $project=$projectModel->getOne(['project_id'=>$arrangeInfo['project_id']]);
  232. $str='尊敬的用户您好,你已成功预约{{service_name}},详细信息请在秘舍中查看。';
  233. $mobile=$userInfo['mobile'];
  234. $temp_id='144889';
  235. $array=['service_name'=>$project['project_name']];
  236. $SmsModel->sendMessage(['mobile'=>$mobile,'temp_id'=>$temp_id,'temp_params'=>$array]);
  237. }
  238. /**
  239. * 第一次消费
  240. * @param $userInfo
  241. * @param $sore
  242. */
  243. public static function oneConsumption($userInfo,$sore){
  244. $SmsModel = new ServiceSmsApi();
  245. $str='尊敬的用户您好,恭喜您在{{sore}}预约成功,我们为您提供最优质服务。';
  246. $mobile=$userInfo['mobile'];
  247. $temp_id='145223';
  248. $array=['sore'=>$sore['store_name']];
  249. $res=$SmsModel->sendMessage(['mobile'=>$mobile,'temp_id'=>$temp_id,'temp_params'=>$array]);
  250. // dump($res);exit;
  251. }
  252. }