JushuitanController.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\common\controllers;
  8. use AopClient;
  9. use \app\models\AlipayAcitvityVoucherOrder;
  10. use app\models\ActivityOrdervoucher;
  11. use app\models\AlipayActivityDelivery;
  12. use app\models\AlipayVoucherCode;
  13. use app\models\Option;
  14. use app\models\Store;
  15. use app\models\StoreAliMini;
  16. use app\models\StoreAliMiniVersion;
  17. use app\models\StoreAliShop;
  18. use app\models\StoreMiniToken;
  19. use app\models\User;
  20. use app\models\UserCoupon;
  21. use app\modules\admin\models\AlipayThirdForm;
  22. use app\modules\admin\models\alipay\Card;
  23. use app\utils\Alipay\AlipayProfit;
  24. use app\utils\Alipay\alipaySdk\aop\request\AlipayOpenAuthTokenAppRequest;
  25. use yii\web\Controller;
  26. use app\utils\Delivery\Alipay\ADelivery;
  27. use app\modules\admin\models\jushuitan\JuShuiTanForm;
  28. use app\models\Order;
  29. use app\modules\admin\models\OrderSendForm;
  30. use app\models\OrderRefund;
  31. use app\modules\admin\models\OrderRefundForm;
  32. class JushuitanController extends Controller
  33. {
  34. public function actionIndex()
  35. {
  36. $method = get_params('method');
  37. \Yii::error(['Jushuitan NOTIFY INDEX <==========> ', all_params()]);
  38. if($method){
  39. try{
  40. $func = str_replace('.', '_', $method);
  41. if(!method_exists($this, $func)){
  42. \Yii::error(['Jushuitan NOTIFY method_exists false <==========> ', all_params()]);
  43. $res = [
  44. 'code' => 1,
  45. 'msg' => 'faild',
  46. ];
  47. }else{
  48. $res = $this->$func(all_params());
  49. }
  50. } catch (\Exception $ex) {
  51. \Yii::error($ex);
  52. $res = [
  53. 'code' => 1,
  54. 'msg' => 'faild',
  55. ];
  56. }
  57. \Yii::error(['Jushuitan NOTIFY RESSS <==========> ', $res]);
  58. return $this->asJson($res);
  59. }
  60. $app_key = get_params('app_key');
  61. $code = get_params('code');
  62. $state = get_params('state');
  63. return JuShuiTanForm::oAuth($app_key, $code, $state);
  64. }
  65. public function logistics_upload($params) {
  66. /**
  67. *
  68. $params = [
  69. 'ts' => '1684375547',
  70. 'partnerid' => 'erp',
  71. 'method' => 'logistics.upload',
  72. 'sign' => '45887aa6c5a829ad518ad70060dd7e05',
  73. 'o_id' => 1,
  74. 'l_id' => 'test',
  75. 'so_id' => 'test',
  76. 'lc_id' => 'test',
  77. 'order_from' => 'test',
  78. 'wms_co_id' => 0,
  79. 'logistics_company' => 'test',
  80. 'send_date' => '2023-05-18 10:05:47.571',
  81. 'items' => [
  82. [
  83. 'oi_id' => 1,
  84. 'sku_id' => 'test',
  85. 'qty' => 1,
  86. 'name' => 'test',
  87. 'outer_oi_id' => 'test',
  88. 'so_id' => 'test',
  89. ],
  90. ],
  91. ];
  92. $params['so_id'] = 'PO202307100946321821';
  93. */
  94. $order_no = $params['so_id'];
  95. $decodeOrderNo = JuShuiTanForm::decodeOrderNo($order_no);
  96. if($decodeOrderNo == JuShuiTanForm::STORE_TYPE_STORE){
  97. $order = Order::findOne(['order_no' => $order_no]);
  98. if(!$order){
  99. return [
  100. 'code' => 1,
  101. 'msg' => '订单不存在',
  102. ];
  103. }
  104. $form = new OrderSendForm();
  105. $form->is_express = 1;
  106. $form->express = $params['logistics_company'];
  107. $form->express_no = $params['l_id'];
  108. $form->order_id = $order->id;
  109. $form->store_id = $order->store_id;
  110. return $form->save();
  111. }
  112. if($decodeOrderNo == JuShuiTanForm::STORE_TYPE_SUPPLIER){
  113. $OrderTransit = \app\models\OrderTransit::findOne(['cloud_order_no' => $order_no, 'status' => 0, 'is_delete' => 0]);
  114. if($OrderTransit){
  115. //转单
  116. if($OrderTransit){
  117. $order_id = $OrderTransit->cloud_order_id;
  118. $form = new \app\modules\admin\models\SupplierForm();
  119. $form->send_type = 1;
  120. $form->express_name = $params['logistics_company'];
  121. $form->express_no = $params['l_id'];
  122. $form->order_id = (string)$order_id;
  123. return $form->supplierPurchaseSend($OrderTransit->cloud_supplier_id);
  124. }
  125. }
  126. //批发单
  127. $PurchaseOrder = \app\models\PurchaseOrder::findOne(['cloud_order_no' => $order_no]);
  128. if($PurchaseOrder){
  129. $order_id = $PurchaseOrder->cloud_order_id;
  130. $form = new \app\modules\admin\models\SupplierForm();
  131. $form->send_type = 1;
  132. $form->express_name = $params['logistics_company'];
  133. $form->express_no = $params['l_id'];
  134. $form->order_id = (string)$order_id;
  135. return $form->supplierOrderSend($PurchaseOrder->cloud_supplier_id);
  136. }
  137. }
  138. }
  139. public function refund_goods($params) {
  140. /**
  141. *
  142. $params = [
  143. 'ts' => '1744106017',
  144. 'partnerid' => 'erp',
  145. 'method' => 'refund.goods',
  146. 'sign' => '84f5c3e03c71d5167fdb5e2a2ab6f723',
  147. 'r' => '',
  148. 'action_name' => '确认收货',
  149. 'as_id' => 11044010,
  150. 'items' => [
  151. [
  152. 'qty' => 1,
  153. 'sku_id' => 'cyy_2621_6114',
  154. ],
  155. ],
  156. 'o_id' => 5544715,
  157. 'outer_as_id' => '20250408115351737811',
  158. 'remark' => '',
  159. 'shop_id' => 10396873,
  160. 'so_id' => 'ML20250408115217575717',
  161. 'unique_id' => '73c467cf-b09e-489d-bce4-bf3e92e8662f',
  162. ];
  163. $params['outer_as_id'] = 'PO202307100946321821';
  164. */
  165. if($params['action_name'] != '确认收货'){
  166. return [
  167. 'code' => 0,
  168. 'msg' => '非 确认收货',
  169. ];
  170. }
  171. $order_no = $params['so_id'];
  172. $order_refund_no = $params['outer_as_id'];
  173. $decodeOrderNo = JuShuiTanForm::decodeOrderNo($order_no);
  174. if($decodeOrderNo == JuShuiTanForm::STORE_TYPE_STORE){
  175. $order = Order::findOne(['order_no' => $order_no]);
  176. if(!$order){
  177. return [
  178. 'code' => 1,
  179. 'msg' => '订单不存在',
  180. ];
  181. }
  182. $orderRefund = OrderRefund::findOne(['order_refund_no' => $order_refund_no]);
  183. if($orderRefund->status == OrderRefund::STATUS_REFUND_AGREE){
  184. return [
  185. 'code' => 0,
  186. 'msg' => '已处理过',
  187. ];
  188. }
  189. if(!$orderRefund){
  190. return [
  191. 'code' => 1,
  192. 'msg' => '售后订单不存在',
  193. ];
  194. }
  195. $form = new OrderRefundForm();
  196. $form->order_refund_id = $orderRefund->id;
  197. $form->type = 1;
  198. $form->action = 1;
  199. $form->refund = 1;
  200. $form->store_id = $order->store_id;
  201. return $form->save();
  202. }
  203. }
  204. }