TeamBonusController.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\client\controllers\v1;
  8. use app\constants\OptionSetting;
  9. use app\models\Admin;
  10. use app\models\AgentGoodsBindGoods;
  11. use app\models\AgentGoodsInstallLog;
  12. use app\models\BrowseLog;
  13. use app\models\Favorite;
  14. use app\models\Goods;
  15. use app\models\Level;
  16. use app\models\Address;
  17. use app\models\MdStaff;
  18. use app\models\Option;
  19. use app\models\Order;
  20. use app\models\OrderDetail;
  21. use app\models\OrderRefund;
  22. use app\models\SaasUser;
  23. use app\models\ShareDetail;
  24. use app\models\ShareHolder;
  25. use app\models\Store;
  26. use app\models\StoreShareMoney;
  27. use app\models\Supplier;
  28. use app\models\User;
  29. use app\models\UserCard;
  30. use app\models\UserCoupon;
  31. use app\models\VerifyCardSale;
  32. use app\models\VideoGoodsAuthor;
  33. use app\models\WechatConfig;
  34. use app\modules\admin\models\UserCenterForm;
  35. use app\modules\client\behaviors\Auth;
  36. use app\modules\client\controllers\BaseController;
  37. use app\modules\client\models\v1\CardListForm;
  38. use app\modules\client\models\v1\LevelPayDataForm;
  39. use app\modules\client\models\v1\OrderMemberForm;
  40. use app\modules\client\models\v1\QrcodeForm;
  41. use app\modules\client\models\v1\SaasUserForm;
  42. use app\modules\client\models\v1\TeamForm;
  43. use app\modules\client\models\v1\UserForm;
  44. use app\modules\client\models\v1\AddressSaveForm;
  45. use app\modules\client\models\v1\AddressSetDefaultForm;
  46. use app\modules\client\models\v1\FavoriteAddForm;
  47. use app\modules\client\models\v1\FavoriteListForm;
  48. use app\modules\client\models\v1\TopicFavoriteForm;
  49. use app\modules\client\models\v1\TopicFavoriteListForm;
  50. use app\modules\client\models\v1\OrderListForm;
  51. use app\modules\client\models\v1\ShareForm;
  52. use app\utils\Sms;
  53. use app\utils\ShareQrcode;
  54. use app\utils\Wechat\Wechat;
  55. use EasyWeChat\Kernel\Exceptions\HttpException;
  56. use yii\base\BaseObject;
  57. use yii\data\Pagination;
  58. use yii\helpers\Json;
  59. use app\models\AccountLog;
  60. use app\models\Worker;
  61. use app\models\WorkerPic;
  62. use app\models\WorkerOrderExt;
  63. use app\models\WorkerGoods;
  64. use app\modules\client\models\v1\LoginForm;
  65. use app\modules\admin\models\worker\WorkerForm;
  66. use app\modules\client\models\v1\CashForm;
  67. use app\models\OrderComment;
  68. use app\models\WorkerSetting;
  69. use app\models\WorkerGoodsExt;
  70. use app\modules\admin\models\TeamBonusForm;
  71. class TeamBonusController extends BaseController
  72. {
  73. public function actionSetting()
  74. {
  75. $store_id = get_store_id();
  76. $form = new TeamBonusForm();
  77. $form->attributes = all_params();
  78. $form->store_id = $store_id;
  79. $result = $form->teamBonusSetting();
  80. return $this->asJson([
  81. 'code' => 0,
  82. 'msg' => 'ok',
  83. 'data' => $result,
  84. ]);
  85. }
  86. public function actionIndex()
  87. {
  88. $store_id = get_store_id();
  89. $form = new TeamBonusForm();
  90. $form->attributes = all_params();
  91. $form->store_id = $store_id;
  92. $form->user_id = get_user_id();
  93. $result = $form->teamBonusIndex(get_user());
  94. return $this->asJson($result);
  95. }
  96. public function actionTeamLeaderShareDetails()
  97. {
  98. $store_id = get_store_id();
  99. $form = new TeamBonusForm();
  100. $params = all_params();
  101. $form->store_id = $store_id;
  102. $form->user_id = get_user_id();
  103. $result = $form->teamLeaderShareDetails($params);
  104. return $this->asJson($result);
  105. }
  106. public function actionTeamChildrenList()
  107. {
  108. $store_id = get_store_id();
  109. $form = new TeamBonusForm();
  110. $params = all_params();
  111. $form->store_id = $store_id;
  112. $form->user_id = get_user_id();
  113. $result = $form->teamChildrenList($params);
  114. return $this->asJson($result);
  115. }
  116. /**
  117. * 提现
  118. */
  119. public function actionCashSubmit()
  120. {
  121. $price = input_params('cash', 0);
  122. $type = input_params('type', 0);
  123. $name = input_params('name', '');
  124. $account = input_params('account', '');
  125. $bank = input_params('bank', '');
  126. $store_id = get_store_id();
  127. $form = new TeamBonusForm();
  128. $form->store_id = $store_id;
  129. $result = $form->cashSubmit($price, $type, get_user_id(), $name, $account, $bank);
  130. return $this->asJson($result);
  131. }
  132. //佣金订单
  133. public function actionTeamBonusOrderList() {
  134. $store_id = get_store_id();
  135. $user_id = get_user_id();
  136. $child_user_id = get_params('child_user_id');
  137. $types = [
  138. ShareDetail::TYPE_TEAM_BONUS_RANGE_PROFIT,
  139. ShareDetail::TYPE_TEAM_BONUS_SAME_LEVEL,
  140. ShareDetail::TYPE_TEAM_BONUS_PARENT,
  141. ];
  142. $query = ShareDetail::find()->alias('sd')
  143. ->leftJoin(['o' => Order::tableName()], 'sd.type_id = o.id')
  144. ->where(['sd.store_id' => $store_id, 'sd.is_delete' => 0])
  145. ->andWhere(['sd.type' => $types, 'sd.user_id' => $user_id]);
  146. if (isset($status)) {
  147. switch ($status) {
  148. case 0:
  149. $query->andWhere(['o.is_pay' => Order::IS_PAY_FALSE]);
  150. break;
  151. case 1:
  152. $query->andWhere(['AND', ['o.is_pay' => Order::IS_PAY_TRUE], ['<>', 'o.trade_status', Order::ORDER_FLOW_CANCEL]]);
  153. break;
  154. case 2:
  155. $query->andWhere(['o.trade_status' => Order::ORDER_FLOW_SEND]);
  156. break;
  157. case 3:
  158. $query->andWhere(['o.trade_status' => Order::ORDER_FLOW_CONFIRM]);
  159. break;
  160. }
  161. }
  162. if ($child_user_id) {
  163. $query->andWhere(['o.user_id' => $child_user_id]);
  164. }
  165. $query->select('o.order_no, sd.is_send is_price, sd.money share_money, o.trade_status status, o.user_id,
  166. o.id order_id, sd.type')->orderBy('sd.id DESC');
  167. $list = pagination_make($query);
  168. foreach ($list['list'] as &$item) {
  169. $item['share_send_type'] = 1;
  170. $user = User::findOne($item['user_id']);
  171. $item['nickname'] = $user->nickname ?: '';
  172. $item['avatar_url'] = $user->avatar_url ?: '';
  173. $form = new TeamForm();
  174. $item['orderDetail'] = $form->getOrderDetail($item['order_id']);
  175. $item['share_status'] = ShareDetail::typeName($item['type']);
  176. $item['is_price'] = intval($item['is_price']);
  177. $item['status'] = intval($item['status']);
  178. $item['status_text'] = Order::TRADE_STATUS_TEXT[$item['status']];
  179. }
  180. return $this->asJson([
  181. 'code' => 0,
  182. 'msg' => '',
  183. 'data' => $list
  184. ]);
  185. }
  186. }