DetailForm.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\client\models\v1;
  8. use app\models\AccountLog;
  9. use app\models\Goods;
  10. use app\models\Order;
  11. use app\models\OrderDetail;
  12. use app\models\OrderRefund;
  13. use app\models\ReOrder;
  14. use app\modules\client\models\ApiModel;
  15. class DetailForm extends ApiModel
  16. {
  17. public $store_id;
  18. public $order_type;
  19. public $id;
  20. public function rules()
  21. {
  22. return [
  23. [['order_type', 'id'], 'trim'],
  24. [['id'], 'integer'],
  25. [['order_type'], 'string'],
  26. [['order_type'], 'in', 'range' => ['s', 'ms', 'pt', 'yy', 's_re', 'ms_re', 'pt_re', 'yy_re', 'r', 'log', 'pond', 'scratch']],
  27. ];
  28. }
  29. public function search()
  30. {
  31. if (!$this->validate()) {
  32. return [
  33. 'code' => 1,
  34. 'msg' => $this->getErrorSummary(false)[0],
  35. ];
  36. }
  37. if ($this->order_type == 'r') {
  38. $data = $this->getRecharge();
  39. } elseif ($this->order_type == 's') {
  40. $data = $this->getOrder();
  41. } elseif ($this->order_type == 'ms') {
  42. $data = $this->getMsOrder();
  43. } elseif ($this->order_type == 'pt') {
  44. $data = $this->getPtOrder();
  45. } elseif ($this->order_type == 'yy') {
  46. $data = $this->getYyOrder();
  47. } elseif ($this->order_type == 's_re') {
  48. $data = $this->getOrderRefund();
  49. } elseif ($this->order_type == 'ms_re') {
  50. $data = $this->getOrderRefund();
  51. } elseif ($this->order_type == 'yy_re') {
  52. $data = $this->getYyOrderRefund();
  53. } elseif ($this->order_type == 'pt_re') {
  54. $data = $this->getOrderRefund();
  55. } elseif ($this->order_type == 'log') {
  56. $data = $this->getLog();
  57. } elseif ($this->order_type == 'pond') {
  58. $data = $this->getPond();
  59. } elseif ($this->order_type == 'scratch') {
  60. $data = $this->getScratch();
  61. } else {
  62. return [
  63. 'code' => 1,
  64. 'msg' => '系统异常'
  65. ];
  66. }
  67. return [
  68. 'code' => 0,
  69. 'msg' => '',
  70. 'data' => $data
  71. ];
  72. }
  73. // 充值
  74. public function getRecharge()
  75. {
  76. $list = ReOrder::find()->where(['store_id' => $this->store_id, 'id' => $this->id])->asArray()->one();
  77. $new_list = [];
  78. $new_list['time'] = date('Y-m-d H:i:s', $list['created_at']);
  79. $new_list['pay_price'] = '+' . $list['pay_price'];
  80. $new_list['send_price'] = '+' . $list['send_price'];
  81. $new_list['content'] = "充值";
  82. $new_list['order_no'] = $list['order_no'];
  83. $new_list['flag'] = 0;
  84. return $new_list;
  85. }
  86. // 商城余额支付
  87. public function getOrder()
  88. {
  89. $new_list = [];
  90. $list = Order::find()->where([
  91. 'store_id' => $this->store_id, 'id' => $this->id, 'is_pay' => 1, 'pay_type' => 3
  92. ])->asArray()->one();
  93. $goods_list = Goods::find()->alias('g')->where([
  94. 'g.store_id' => $this->store_id
  95. ])->leftJoin(['od' => OrderDetail::tableName()], 'od.goods_id=g.id')
  96. ->andWhere(['od.order_id' => $list['id']])->select(['g.name'])->asArray()->column();
  97. $goods_str = implode(',', $goods_list);
  98. $new_list['time'] = date('Y-m-d H:i:s', $list['created_at']);
  99. $new_list['pay_price'] = '-' . $list['pay_price'];
  100. $new_list['send_price'] = $list['send_price'];
  101. $new_list['content'] = "消费-商城订单-" . $goods_str;
  102. $new_list['order_no'] = $list['order_no'];
  103. $new_list['flag'] = 1;
  104. return $new_list;
  105. }
  106. //秒杀余额支付
  107. public function getMsOrder()
  108. {
  109. $new_list = [];
  110. $list = MsOrder::find()->alias('o')->where([
  111. 'o.store_id' => $this->store_id, 'o.id' => $this->id, 'o.is_pay' => 1, 'o.pay_type' => 3
  112. ])->leftJoin(['g' => MsGoods::tableName()], 'g.id=o.goods_id')
  113. ->select(['o.*', 'g.name'])->asArray()->one();
  114. $new_list['time'] = date('Y-m-d H:i:s', $list['created_at']);
  115. $new_list['pay_price'] = '-' . $list['pay_price'];
  116. $new_list['send_price'] = $list['send_price'];
  117. $new_list['content'] = "消费-秒杀订单-" . $list['name'];
  118. $new_list['order_no'] = $list['order_no'];
  119. $new_list['flag'] = 1;
  120. return $new_list;
  121. }
  122. //拼团余额支付
  123. public function getPtOrder()
  124. {
  125. $new_list = [];
  126. $list = PtOrder::find()->alias('o')->where([
  127. 'o.store_id' => $this->store_id, 'o.id' => $this->id, 'o.is_pay' => 1, 'o.pay_type' => 3
  128. ])->leftJoin(['od' => PtOrderDetail::tableName()], 'od.order_id=o.id')
  129. ->leftJoin(['g' => PtGoods::tableName()], 'g.id=od.goods_id')
  130. ->select(['o.*', 'od.goods_id', 'g.name'])->asArray()->one();
  131. $new_list['time'] = date('Y-m-d H:i:s', $list['created_at']);
  132. $new_list['pay_price'] = '-' . $list['pay_price'];
  133. $new_list['send_price'] = $list['send_price'];
  134. $new_list['content'] = "消费-拼团订单-" . $list['name'];
  135. $new_list['order_no'] = $list['order_no'];
  136. $new_list['flag'] = 1;
  137. return $new_list;
  138. }
  139. //预约余额支付
  140. public function getYyOrder()
  141. {
  142. $new_list = [];
  143. $list = YyOrder::find()->alias('o')->where([
  144. 'o.store_id' => $this->store_id, 'o.id' => $this->id, 'o.is_pay' => 1, 'o.pay_type' => 2
  145. ])->leftJoin(['g' => YyGoods::tableName()], 'g.id=o.goods_id')
  146. ->select(['o.*', 'g.name'])->asArray()->one();
  147. $new_list['time'] = date('Y-m-d H:i:s', $list['created_at']);
  148. $new_list['pay_price'] = '-' . $list['pay_price'];
  149. $new_list['send_price'] = $list['send_price'];
  150. $new_list['content'] = "消费-预约订单-" . $list['name'];
  151. $new_list['order_no'] = $list['order_no'];
  152. $new_list['flag'] = 1;
  153. return $new_list;
  154. }
  155. //商城订单退款
  156. public function getOrderRefund()
  157. {
  158. $new_list = [];
  159. $list = OrderRefund::find()->alias('ore')->where([
  160. 'ore.store_id' => $this->store_id, 'ore.type' => 1, 'ore.status' => 1
  161. ])->leftJoin(['o' => Order::tableName()], 'o.id=ore.order_id')
  162. ->andWhere(['o.pay_type' => 3, 'ore.id' => $this->id])->select(['ore.*', 'o.order_no'])->asArray()->one();
  163. $new_list['time'] = date('Y-m-d H:i:s', $list['created_at']);
  164. $new_list['pay_price'] = '+' . $list['refund_price'];
  165. $new_list['send_price'] = $list['send_price'];
  166. $new_list['content'] = "消费-商城订单退款";
  167. $new_list['order_no'] = $list['order_no'];
  168. $new_list['order_refund_no'] = $list['order_refund_no'];
  169. $new_list['flag'] = 0;
  170. return $new_list;
  171. }
  172. //秒杀退款
  173. public function getMsOrderRefund()
  174. {
  175. $new_list = [];
  176. $list = MsOrderRefund::find()->alias('ore')->where([
  177. 'ore.store_id' => $this->store_id, 'ore.type' => 1, 'ore.status' => 1
  178. ])->leftJoin(['o' => MsOrder::tableName()], 'o.id=ore.order_id')
  179. ->andWhere(['o.pay_type' => 3, 'ore.id' => $this->id])->select(['ore.*', 'o.order_no'])->asArray()->one();
  180. $new_list['time'] = date('Y-m-d H:i:s', $list['created_at']);
  181. $new_list['pay_price'] = '+' . $list['refund_price'];
  182. $new_list['send_price'] = $list['send_price'];
  183. $new_list['content'] = "消费-秒杀订单退款";
  184. $new_list['order_no'] = $list['order_no'];
  185. $new_list['order_refund_no'] = $list['order_refund_no'];
  186. $new_list['flag'] = 0;
  187. return $new_list;
  188. }
  189. // 拼团退款
  190. public function getPtOrderRefund()
  191. {
  192. $new_list = [];
  193. $list = PtOrderRefund::find()->alias('ore')->where([
  194. 'ore.store_id' => $this->store_id, 'ore.type' => 1, 'ore.status' => 1
  195. ])->leftJoin(['o' => PtOrder::tableName()], 'o.id=ore.order_id')
  196. ->andWhere(['o.pay_type' => 3, 'ore.id' => $this->id])->asArray()->one();
  197. $new_list['time'] = date('Y-m-d H:i:s', $list['created_at']);
  198. $new_list['pay_price'] = '+' . $list['refund_price'];
  199. $new_list['send_price'] = $list['send_price'];
  200. $new_list['content'] = "消费-拼团订单退款";
  201. $new_list['order_no'] = $list['order_no'];
  202. $new_list['order_refund_no'] = $list['order_refund_no'];
  203. $new_list['flag'] = 0;
  204. return $new_list;
  205. }
  206. //预约退款
  207. public function getYyOrderRefund()
  208. {
  209. $new_list = [];
  210. $list = YyOrder::find()->alias('ore')->where([
  211. 'ore.store_id' => $this->store_id, 'ore.is_pay' => 1, 'is_refund' => 1, 'ore.pay_type' => 2, 'ore.id' => $this->id
  212. ])->asArray()->one();
  213. $new_list['time'] = date('Y-m-d H:i:s', $list['refund_time']);
  214. $new_list['pay_price'] = '+' . $list['pay_price'];
  215. $new_list['send_price'] = $list['send_price'];
  216. $new_list['content'] = "消费-预约订单退款";
  217. $new_list['order_no'] = $list['order_no'];
  218. $new_list['order_refund_no'] = $list['order_refund_no'];
  219. $new_list['flag'] = 0;
  220. return $new_list;
  221. }
  222. // 后台充值
  223. public function getLog()
  224. {
  225. $list = AccountLog::find()->where(['id' => $this->id, 'type' => 2])->one();
  226. $new_list['time'] = date('Y-m-d H:i:s', $list['created_at']);
  227. if (strpos($list['desc'],'充值')) {
  228. $new_list['pay_price'] = '+' . $list['amount'];
  229. $new_list['send_price'] = 0;
  230. $new_list['content'] = "充值-后台充值";
  231. } elseif (strpos($list['desc'],'优')) {
  232. $new_list['pay_price'] = '+' . $list['amount'];
  233. $new_list['send_price'] = 0;
  234. $new_list['content'] = "优惠券释放";
  235. } else {
  236. $new_list['pay_price'] = '-' . $list['amount'];
  237. $new_list['send_price'] = 0;
  238. $new_list['content'] = "扣除-后台扣除";
  239. }
  240. $new_list['flag'] = 0;
  241. return $new_list;
  242. }
  243. // 九宫格抽奖
  244. private function getPond()
  245. {
  246. $list = PondLog::find()->where(['id' => $this->id, 'type' => 1, 'status' => 1])->one();
  247. $new_list['time'] = date('Y-m-d H:i:s', $list['create_time']);
  248. $new_list['pay_price'] = '+' . $list['price'];
  249. $new_list['send_price'] = 0;
  250. $new_list['content'] = "九宫格抽奖-获得";
  251. $new_list['flag'] = 0;
  252. return $new_list;
  253. }
  254. // 刮刮卡
  255. private function getScratch()
  256. {
  257. $list = ScratchLog::find()->where(['id' => $this->id, 'type' => 1, 'status' => 2])->one();
  258. $new_list['time'] = date('Y-m-d H:i:s', $list['create_time']);
  259. $new_list['pay_price'] = '+' . $list['price'];
  260. $new_list['send_price'] = 0;
  261. $new_list['content'] = "刮刮卡-获得";
  262. $new_list['flag'] = 0;
  263. return $new_list;
  264. }
  265. }