IndexController.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. namespace addons\CloudStock\api\modules\v1\controllers;
  3. use addons\CloudStock\common\models\CloudStockAgent;
  4. use addons\CloudStock\common\models\CloudStockAgentGoods;
  5. use addons\CloudStock\common\models\CloudStockGoods;
  6. use addons\CloudStock\common\services\LossAmountService;
  7. use addons\CloudStock\common\services\PriceDifferenceProfitService;
  8. use common\enums\AddonsEnum;
  9. use common\enums\StatusEnum;
  10. use common\models\user\User;
  11. class IndexController extends BaseController
  12. {
  13. public $modelClass = '';
  14. /**
  15. * 不用进行登录验证的方法
  16. *
  17. * 例如: ['index', 'update', 'create', 'view', 'delete']
  18. * 默认全部需要验证
  19. *
  20. * @var array
  21. */
  22. protected $authOptional = [];
  23. /**
  24. * 首页
  25. *
  26. * @return string
  27. */
  28. public function actionIndex()
  29. {
  30. if (!\Yii::$app->request->isGet) {
  31. return $this->error('请求方式错误');
  32. }
  33. $mall_id = $this->mall_id;
  34. $user_id = $this->user_id;
  35. $cloudStockGoodsList = CloudStockGoods::lists(['where'=>[['mall_id'=>$this->mall_id],['status'=>StatusEnum::ENABLED]]]);
  36. $goods_ids = array_column($cloudStockGoodsList,'goods_id');
  37. $data['agent_stock_goods_amount'] = CloudStockAgentGoods::find()
  38. ->where(['mall_id' => $mall_id, 'user_id' => $user_id,'goods_id'=>$goods_ids, 'status' => StatusEnum::ENABLED])
  39. ->sum('num');
  40. $stock_agent = $this->stock_agent;
  41. if (!empty($stock_agent->user)) {
  42. $user = $stock_agent->user;
  43. } else {
  44. $user = User::findOne(["id" => $user_id, "mall_id" => $mall_id, 'status' => StatusEnum::ENABLED]);
  45. }
  46. $data['agent_price'] = $stock_agent->price;
  47. $data['agent_frozen_price'] = $stock_agent->frozen_price;
  48. $data['agent_level'] = $stock_agent->level;
  49. $data['agent_level_name'] = $stock_agent->stockLevel->name;
  50. $data['agent_nickname'] = $user->nickname ?: '默认会员';
  51. $data['agent_user_id'] = $user->id;
  52. $data['agent_avatar_url'] = $user->avatar_url;
  53. $parent_user = $user->parent;
  54. if ($parent_user) {
  55. $data['parent_user_nickname'] = $parent_user->nickname;
  56. } else {
  57. $data['parent_user_nickname'] = "平台";
  58. }
  59. $data['parent_user_id'] = $parent_user->id ?? 0;
  60. $data['is_give_quota'] = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_CLOUD_STOCK, 'basic.is_give_quota');
  61. $pay_config = json_decode(\Yii::$app->services->setting->mall->get($this->mall_id, 'pay.balance'), true);
  62. $data['pay_password_status'] = $pay_config['pay_password_status'];
  63. $data['cloud_warehouse_frozen_price'] = $stock_agent->cloud_warehouse_frozen_price;
  64. $data['cloud_warehouse_price'] = $stock_agent->cloud_warehouse_price;
  65. $data['cloud_warehouse_withdraw_price'] = $stock_agent->cloud_warehouse_withdraw_price;
  66. $configs = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_CLOUD_STOCK, 'basic');
  67. if(isset($configs['cloud_stock_index'])){
  68. $data['cloud_stock_index'] = json_decode($configs['cloud_stock_index'],true);
  69. }else{
  70. $data['cloud_stock_index'] = json_decode('[{"name":"云仓库存","title":"云仓库存","code":"agent_stock_goods_amount","is_show":"1"},{"name":"待结算货款","title":"待结算货款","code":"agent_frozen_price","is_show":"1"},{"name":"已结算收益","title":"已结算收益","code":"agent_price","is_show":"1"},{"name":"云仓待结货款","title":"云仓待结货款","code":"cloud_warehouse_frozen_price","is_show":"1"},{"name":"待结算货款","title":"云仓已结货款","code":"cloud_warehouse_price","is_show":"1"}]', true);
  71. }
  72. if(isset($configs['my_cloud_stock'])){
  73. $data['my_cloud_stock'] = json_decode($configs['my_cloud_stock'],true);
  74. }else{
  75. $data['my_cloud_stock'] = json_decode('[{"name":"库存明细","title":"库存明细","code":"inventory_details","is_show":"1"},{"name":"补货","title":"补货","code":"replenish","is_show":"1"},{"name":"云仓配货","title":"云仓配货","code":"distribution","is_show":"1"},{"name":"提货到线下","title":"提货到线下","code":"pick_up_goods","is_show":"1"}]', true);
  76. }
  77. $data['is_show_cloud_stock_partition'] = $configs['is_show_cloud_stock_partition']??0;
  78. $is_show_agreement_content = $configs['is_show_agreement_content'] ?? 0;
  79. $agreement_content = '';
  80. if (!empty($is_show_agreement_content)) {
  81. $agreement_content = $configs['agreement_content'] ?? '';
  82. }
  83. $data['agreement_content'] = $agreement_content;
  84. $data['equal_award_frozen_price'] = $stock_agent['equal_award_frozen_price'];
  85. $data['equal_award_price'] = $stock_agent['equal_award_price'];
  86. $data['total_equal_award_price'] = bcadd($stock_agent['equal_award_price'], $stock_agent['equal_award_frozen_price'], 2);
  87. $data['loss_amount'] = $stock_agent['loss_amount'];
  88. $data['difference_profit'] = $stock_agent['difference_profit'];
  89. $data['agent_stock_goods_amount'] = $data['agent_stock_goods_amount'] ?? 0;
  90. $data['is_show_setting'] = $configs['is_show_setting'] ?? 0;
  91. $data['is_show_stock_permission'] = $data['is_show_setting'] ? $configs['is_show_stock_permission'] ?? 0 : 0;
  92. $data['is_stock_deducted_by_subordinate'] = $this->stock_agent->is_stock_deducted_by_subordinate ?? 0;
  93. $data['is_enable_rand_fee'] = $configs['is_enable_rand_fee'] ?? 0;
  94. $data['condition'] = json_decode($configs['rand_condition'],true);
  95. return $this->success("成功", $data);
  96. }
  97. public function actionLossAmountList()
  98. {
  99. $params = \Yii::$app->request->get();
  100. $params['mall_id'] = $this->mall_id;
  101. $params['user_id'] = $this->user_id;
  102. $list = (new LossAmountService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->lossAmountList($params);
  103. return $this->success('操作成功', $list);
  104. }
  105. public function actionPriceDifferenceProfitList()
  106. {
  107. $params = \Yii::$app->request->get();
  108. $params['mall_id'] = $this->mall_id;
  109. $params['user_id'] = $this->user_id;
  110. $list = (new PriceDifferenceProfitService(['mall_id' => $this->mall_id, 'user_id' => $this->user_id]))->priceDifferenceProfitList($params);
  111. return $this->success('操作成功', $list);
  112. }
  113. }