ShopController.php 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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. * 新增收货地址
  15. */
  16. public function actionAddAddress(){
  17. $user_id = Yii::app()->getRequest()->getParam("user_id");
  18. $name = trim(Yii::app()->request->getParam('name',''));
  19. $mobile = Yii::app()->request->getParam('mobile');
  20. $position = json_decode(Yii::app()->request->getParam('address_position'),true);
  21. $address_position[0] = isset($position['lng'])?floatval($position['lng']):floatval(0);
  22. $address_position[1] = isset($position['lat'])?floatval($position['lat']):floatval(0);
  23. $phoneReg = Yii::app()->params['phoneReg'];
  24. if(!preg_match($phoneReg,$mobile)){
  25. CommonFn::requestAjax(false,CommonFn::getMessage('message','phone_illegal'));
  26. }
  27. $address = json_decode(Yii::app()->request->getParam('address'),true);
  28. if(!isset($address['province']) || empty($address['province'])){
  29. CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal'));
  30. }
  31. $is_default = intval(Yii::app()->request->getParam('is_default'),0);
  32. if(!$name||!$mobile||!$address||!$user_id){
  33. CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal'));
  34. }
  35. $user = CommonFn::apigetObJ($user_id,"ZUser",CommonFn::getMessage('user','id_not_exist'),201);
  36. $new_address = array('name'=>$name,'mobile'=>$mobile,'address'=>$address,'position' => $address_position,'is_default'=>$is_default,'address_id'=>time());
  37. if($is_default==1){
  38. foreach ($user->shop_address as $key => $value) {
  39. if(isset($value['is_default']) && $value['is_default'] == 1){
  40. $value['is_default'] = 0;
  41. }
  42. $user->shop_address[$key] = $value;
  43. $user->update(array('shop_address'),true);
  44. }
  45. }
  46. $user->shop_address = $user->shop_address?array_merge($user->shop_address,array($new_address)):array($new_address);
  47. $result = $user->update(array('shop_address'),true);
  48. if($result){
  49. CommonFn::requestAjax(true,CommonFn::getMessage('message','operation_success'),$new_address);
  50. }else{
  51. CommonFn::requestAjax(false,'操作失败,请稍后再试',array());
  52. }
  53. }
  54. /**
  55. * 收货地址列表
  56. */
  57. public function actionAddressList(){
  58. $user_id = Yii::app()->getRequest()->getParam("user_id");
  59. $user = CommonFn::apigetObJ($user_id,"ZUser",CommonFn::getMessage('user','id_not_exist'),201);
  60. $data = $user->shop_address?$user->shop_address:array();
  61. $data = array_values($data);
  62. CommonFn::requestAjax(true,CommonFn::getMessage('message','operation_success'),$data);
  63. }
  64. /**
  65. * 修改收货地址
  66. */
  67. public function actionEditAddress(){
  68. $user_id = Yii::app()->getRequest()->getParam("user_id");
  69. $name = trim(Yii::app()->request->getParam('name',''));
  70. $mobile = Yii::app()->request->getParam('mobile');
  71. $position = json_decode(Yii::app()->request->getParam('address_position'),true);
  72. $address_position[0] = isset($position['lng'])?floatval($position['lng']):floatval(0);
  73. $address_position[1] = isset($position['lat'])?floatval($position['lat']):floatval(0);
  74. $phoneReg = Yii::app()->params['phoneReg'];
  75. if(!preg_match($phoneReg,$mobile)){
  76. CommonFn::requestAjax(false,CommonFn::getMessage('message','phone_illegal'));
  77. }
  78. $address = json_decode(Yii::app()->request->getParam('address'),true);
  79. if(!isset($address['province']) || empty($address['province'])){
  80. CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal'));
  81. }
  82. $address_id = Yii::app()->request->getParam('address_id');
  83. $is_default = intval(Yii::app()->request->getParam('is_default'),0);
  84. if(!$name||!$mobile||!$address||!$user_id||!$address_id){
  85. CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal'));
  86. }
  87. $user = CommonFn::apigetObJ($user_id,"ZUser",CommonFn::getMessage('user','id_not_exist'),201);
  88. if($is_default==1){
  89. $old_address_list = $user->shop_address?$user->shop_address:array();
  90. foreach ($old_address_list as $key => $value) {
  91. if(isset($value['is_default']) && $value['is_default'] == 1){
  92. $value['is_default'] = 0;
  93. }
  94. $old_address_list[$key] = $value;
  95. }
  96. $user->shop_address = $old_address_list;
  97. $user->update(array('shop_address'),true);
  98. }
  99. $address_list = $user->shop_address?$user->shop_address:array();
  100. foreach ($address_list as $key => $value) {
  101. if($value['address_id'] == $address_id){
  102. $value['name'] = $name;
  103. $value['mobile'] = $mobile;
  104. $value['address'] = $address;
  105. $value['is_default'] = $is_default;
  106. $value['position'] = $address_position;
  107. $new_address = $value;
  108. $address_list[$key] = $new_address;
  109. }
  110. }
  111. if(!isset($new_address)){
  112. CommonFn::requestAjax(false,CommonFn::getMessage('shop','address_not_exist'));
  113. }
  114. $user->shop_address = $address_list;
  115. $result = $user->update(array('shop_address'),true);
  116. if($result){
  117. CommonFn::requestAjax(true,'地址修改成功',$new_address);
  118. }else{
  119. CommonFn::requestAjax(false,'地址修改失败',array());
  120. }
  121. }
  122. /**
  123. * 删除收货地址
  124. */
  125. public function actionDelAddress(){
  126. $user_id = Yii::app()->getRequest()->getParam("user_id");
  127. $address_id = Yii::app()->request->getParam('address_id');
  128. if(!$user_id||!$address_id){
  129. CommonFn::requestAjax(false,CommonFn::getMessage('message','params_illegal'));
  130. }
  131. $user = CommonFn::apigetObJ($user_id,"ZUser",CommonFn::getMessage('user','id_not_exist'),201);
  132. $address_list = $user->shop_address?$user->shop_address:array();
  133. foreach ($address_list as $key => $value) {
  134. if($value['address_id'] == $address_id){
  135. $old_address = $value;
  136. unset($address_list[$key]);
  137. }
  138. }
  139. if(!isset($old_address)){
  140. CommonFn::requestAjax(false,CommonFn::getMessage('shop','address_not_exist'));
  141. }
  142. if(empty($address_list)){
  143. CommonFn::requestAjax(false,CommonFn::getMessage('shop','address_less_one'));
  144. }
  145. $user->shop_address = $address_list;
  146. $result = $user->update(array('shop_address'),true);
  147. if($result){
  148. CommonFn::requestAjax(true,'地址删除成功');
  149. }else{
  150. CommonFn::requestAjax(false,'地址删除失败');
  151. }
  152. }
  153. }