ShopController.php 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?php
  2. /**
  3. * ShopController 商城相关api接口
  4. */
  5. class ShopController extends ApiBaseController{
  6. public function beforeAction($action){
  7. $weixin_use = array('addAddress','addressList','delAddress','editAddress');
  8. if(Yii::app()->getRequest()->getParam("request_from") == 'weixin' && in_array($action->id,$weixin_use)){
  9. return true;
  10. }
  11. return $this->verify();
  12. }
  13. /**
  14. * 根据搜索值获取地址 json返回
  15. */
  16. public function actionGetDetailAddressByQuery(){
  17. $query = Yii::app()->getRequest()->getParam('query');
  18. $res = CommonFn::simple_http("http://api.map.baidu.com/place/v2/suggestion?ak=B349f0b32ef6e78b2e678f45cb9fddaf&output=json&query=$query&region=%E4%B8%8A%E6%B5%B7%E5%B8%82&version=2015121601&_=1498629116496");
  19. echo $res;exit;
  20. }
  21. /**
  22. * 新增收货地址
  23. */
  24. public function actionAddAddress(){
  25. $user_id = Yii::app()->getRequest()->getParam("user_id");
  26. $name = trim(Yii::app()->request->getParam('name',''));
  27. $mobile = Yii::app()->request->getParam('mobile');
  28. $position = json_decode(Yii::app()->request->getParam('address_position'),true);
  29. $address_position[0] = isset($position['lng'])?floatval($position['lng']):floatval(0);
  30. $address_position[1] = isset($position['lat'])?floatval($position['lat']):floatval(0);
  31. $phoneReg = Yii::app()->params['phoneReg'];
  32. if(!preg_match($phoneReg,$mobile)){
  33. CommonFn::requestAjax(false,CommonFn::getMessage('message','phone_illegal'));
  34. }
  35. $address = json_decode(Yii::app()->request->getParam('address'),true);
  36. if(!isset($address['province']) || empty($address['province'])){
  37. CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal'));
  38. }
  39. $is_default = intval(Yii::app()->request->getParam('is_default'),0);
  40. if(!$name||!$mobile||!$address||!$user_id){
  41. CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal'));
  42. }
  43. $user = CommonFn::apigetObJ($user_id,"ZUser",CommonFn::getMessage('user','id_not_exist'),201);
  44. $new_address = array('name'=>$name,'mobile'=>$mobile,'address'=>$address,'position' => $address_position,'is_default'=>$is_default,'address_id'=>time());
  45. if($is_default==1){
  46. foreach ($user->shop_address as $key => $value) {
  47. if(isset($value['is_default']) && $value['is_default'] == 1){
  48. $value['is_default'] = 0;
  49. }
  50. $user->shop_address[$key] = $value;
  51. $user->update(array('shop_address'),true);
  52. }
  53. }
  54. $user->shop_address = $user->shop_address?array_merge($user->shop_address,array($new_address)):array($new_address);
  55. $result = $user->update(array('shop_address'),true);
  56. if($result){
  57. CommonFn::requestAjax(true,CommonFn::getMessage('message','operation_success'),$new_address);
  58. }else{
  59. CommonFn::requestAjax(false,'操作失败,请稍后再试',array());
  60. }
  61. }
  62. /**
  63. * 收货地址列表
  64. */
  65. public function actionAddressList(){
  66. $user_id = Yii::app()->getRequest()->getParam("user_id");
  67. $user = CommonFn::apigetObJ($user_id,"ZUser",CommonFn::getMessage('user','id_not_exist'),201);
  68. $data = $user->shop_address?$user->shop_address:array();
  69. $data = array_values($data);
  70. CommonFn::requestAjax(true,CommonFn::getMessage('message','operation_success'),$data);
  71. }
  72. /**
  73. * 修改收货地址
  74. */
  75. public function actionEditAddress(){
  76. $user_id = Yii::app()->getRequest()->getParam("user_id");
  77. $name = trim(Yii::app()->request->getParam('name',''));
  78. $mobile = Yii::app()->request->getParam('mobile');
  79. $position = json_decode(Yii::app()->request->getParam('address_position'),true);
  80. $address_position[0] = isset($position['lng'])?floatval($position['lng']):floatval(0);
  81. $address_position[1] = isset($position['lat'])?floatval($position['lat']):floatval(0);
  82. $phoneReg = Yii::app()->params['phoneReg'];
  83. if(!preg_match($phoneReg,$mobile)){
  84. CommonFn::requestAjax(false,CommonFn::getMessage('message','phone_illegal'));
  85. }
  86. $address = json_decode(Yii::app()->request->getParam('address'),true);
  87. if(!isset($address['province']) || empty($address['province'])){
  88. CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal'));
  89. }
  90. $address_id = Yii::app()->request->getParam('address_id');
  91. $is_default = intval(Yii::app()->request->getParam('is_default'),0);
  92. if(!$name||!$mobile||!$address||!$user_id||!$address_id){
  93. CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal'));
  94. }
  95. $user = CommonFn::apigetObJ($user_id,"ZUser",CommonFn::getMessage('user','id_not_exist'),201);
  96. if($is_default==1){
  97. $old_address_list = $user->shop_address?$user->shop_address:array();
  98. foreach ($old_address_list as $key => $value) {
  99. if(isset($value['is_default']) && $value['is_default'] == 1){
  100. $value['is_default'] = 0;
  101. }
  102. $old_address_list[$key] = $value;
  103. }
  104. $user->shop_address = $old_address_list;
  105. $user->update(array('shop_address'),true);
  106. }
  107. $address_list = $user->shop_address?$user->shop_address:array();
  108. foreach ($address_list as $key => $value) {
  109. if($value['address_id'] == $address_id){
  110. $value['name'] = $name;
  111. $value['mobile'] = $mobile;
  112. $value['address'] = $address;
  113. $value['is_default'] = $is_default;
  114. $value['position'] = $address_position;
  115. $new_address = $value;
  116. $address_list[$key] = $new_address;
  117. }
  118. }
  119. if(!isset($new_address)){
  120. CommonFn::requestAjax(false,CommonFn::getMessage('shop','address_not_exist'));
  121. }
  122. $user->shop_address = $address_list;
  123. $result = $user->update(array('shop_address'),true);
  124. if($result){
  125. CommonFn::requestAjax(true,'地址修改成功',$new_address);
  126. }else{
  127. CommonFn::requestAjax(false,'地址修改失败',array());
  128. }
  129. }
  130. /**
  131. * 删除收货地址
  132. */
  133. public function actionDelAddress(){
  134. $user_id = Yii::app()->getRequest()->getParam("user_id");
  135. $address_id = Yii::app()->request->getParam('address_id');
  136. if(!$user_id||!$address_id){
  137. CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal'));
  138. }
  139. $user = CommonFn::apigetObJ($user_id,"ZUser",CommonFn::getMessage('user','id_not_exist'),201);
  140. $address_list = $user->shop_address?$user->shop_address:array();
  141. foreach ($address_list as $key => $value) {
  142. if($value['address_id'] == $address_id){
  143. $old_address = $value;
  144. unset($address_list[$key]);
  145. }
  146. }
  147. if(!isset($old_address)){
  148. CommonFn::requestAjax(false,CommonFn::getMessage('shop','address_not_exist'));
  149. }
  150. if(empty($address_list)){
  151. CommonFn::requestAjax(false,CommonFn::getMessage('shop','address_less_one'));
  152. }
  153. $user->shop_address = $address_list;
  154. $result = $user->update(array('shop_address'),true);
  155. if($result){
  156. CommonFn::requestAjax(true,'地址删除成功');
  157. }else{
  158. CommonFn::requestAjax(false,'地址删除失败');
  159. }
  160. }
  161. }