LeverController.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: chenkuan
  5. * Date: 2017/11/8
  6. * Time: 上午10:14
  7. */
  8. namespace backend\controllers;
  9. use backend\helpers\DateTimeHelper;
  10. use backend\helpers\PaginationHelper;
  11. use backend\helpers\ValidatorHelper;
  12. use backend\models\Config;
  13. use backend\models\Member;
  14. use backend\models\ModifyLever;
  15. use backend\models\Mt4Users;
  16. class LeverController extends BaseController
  17. {
  18. const DEF_CONFIG_ID = 1;
  19. /**
  20. * xtrader首页数据-修改杠杆
  21. */
  22. public function actionLever()
  23. {
  24. $request = \Yii::$app->request;
  25. $member_id = $request->get('member_id');
  26. $member = Member::findOne(['id' => $member_id]);
  27. $login = $this->getMainLogin($member);
  28. $user = (new Mt4Users())->findByLogin($login);
  29. $logins = (new Member())->getLogins($member_id);
  30. $cache = \Yii::$app->cache;
  31. $config = $cache->get('config');
  32. if ($config == null) {
  33. $config = Config::findOne(['id' => self::DEF_CONFIG_ID]);
  34. $cache->set('config', $config, 86400);
  35. }
  36. $levers = explode(',', $config->lever);
  37. $result = [
  38. 'member' => $member,
  39. 'user' => $user,
  40. 'logins' => $logins,
  41. 'levers' => $levers,
  42. ];
  43. return $this->outJson(1, $result);
  44. }
  45. /**
  46. * 修改杠杆列表
  47. */
  48. public function actionIndex()
  49. {
  50. $data = \Yii::$app->getRequest()->get();
  51. $data['type'] = isset($data['type']) ? trim($data['type']) : '';
  52. $data['from'] = isset($data['from']) ? trim($data['from']) : '';
  53. $data['member_id'] = isset($data['member_id']) ? trim($data['member_id']) : '';
  54. $data['inStartTime'] = isset($data['inStartTime']) ? trim($data['inStartTime']) : '';
  55. $data['inEndTime'] = isset($data['inEndTime']) ? trim($data['inEndTime']) : '';
  56. $data['page'] = isset($data['page']) ? max(intval($data['page']), 1) : 1;
  57. $data['pageSize'] = isset($data['pageSize']) ? intval($data['pageSize']) : 20;
  58. $data['orderBy'] = isset($data['orderBy']) ? trim($data['orderBy']) : 'id desc';
  59. $data['search'] = isset($data['search']) ? trim($data['search']) : '';
  60. $data = ValidatorHelper::validateData($data, [
  61. ['type', 'integer'],
  62. ['from', 'string'],
  63. ['member_id', 'integer'],
  64. ['inStartTime', 'integer'],
  65. ['inEndTime', 'integer'],
  66. ['page', 'integer', 'min' => 1],
  67. ['pageSize', 'integer', 'min' => 1],
  68. ['orderBy', 'string'],
  69. ], $errors);
  70. if ($data == false) {
  71. return $this->outJson(0, '', $errors);
  72. }
  73. $query = ModifyLever::find()->alias('t')
  74. ->select(['t.*','u.name'])
  75. ->leftJoin('crm_member u', 't.member_id = u.id')
  76. ->orderBy($data['orderBy']);
  77. // 按type获取列表
  78. $query->andFilterWhere(['t.type' => $data['type']]);
  79. if ($data['from'] == 'admin') {
  80. $query->andFilterWhere(['t.member_id' => $data['member_id']]);
  81. } else {
  82. $query->andWhere(['t.member_id' => $data['member_id']]);
  83. }
  84. // 按开始时间和结束时间搜索
  85. $query->andFilterWhere(['>=', 't.in_time', $data['inStartTime']]);
  86. $query->andFilterWhere(['<', 't.in_time', $data['inEndTime']]);
  87. $query->andFilterWhere([
  88. 'or',
  89. ['like', 't.memo', $data['search']]
  90. ]);
  91. $result = PaginationHelper::queryPage($query, $data['page'], $data['pageSize']);
  92. return $this->outJson(1, $result);
  93. }
  94. /**
  95. * 审核修改杠杆
  96. */
  97. public function actionUpdateType()
  98. {
  99. $data = \Yii::$app->getRequest()->post();
  100. $data['id'] = isset($data['id']) ? (int)$data['id'] : 0;
  101. $data['type'] = isset($data['type']) ? (int)$data['type'] : '';
  102. $info = ModifyLever::findOne(['id' => $data['id']]);
  103. if (!$info) {
  104. return $this->outJson(0, [], '该记录不存在');
  105. }
  106. if (isset($data['type']) && $info->type == 0) {
  107. $info->type = $data['type'];
  108. } else {
  109. return $this->outJson(0, [], '只有‘未审核’状态才可操作');
  110. }
  111. $rs = $info->save();
  112. if (!$rs) {
  113. return $this->outJson(0, [], '数据操作失败');
  114. }
  115. return $this->outJson(1, ['id' => $info['id']], '操作成功');
  116. }
  117. /**
  118. * 获取某条记录的备注
  119. */
  120. public function actionMemo()
  121. {
  122. $data = \Yii::$app->getRequest()->get();
  123. $data['id'] = isset($data['id']) ? $data['id'] : 0;
  124. $transfer = ModifyLever::findOne(['id' => $data['id']]);
  125. return $this->outJson(1, $transfer);
  126. }
  127. /**
  128. * 修改某条记录的备注
  129. */
  130. public function actionMemoUpdate()
  131. {
  132. $data = \Yii::$app->getRequest()->post();
  133. $data['id'] = isset($data['id']) ? $data['id'] : 0;
  134. $data['memo'] = isset($data['memo']) ? $data['memo'] : null;
  135. $info = ModifyLever::findOne(['id' => $data['id']]);
  136. if (!$info) {
  137. return $this->outJson(0, [], '该记录不存在');
  138. }
  139. $info->memo = $data['memo'];
  140. $rs = $info->save();
  141. if (!$rs) {
  142. return $this->outJson(0, [], '数据操作失败');
  143. }
  144. return $this->outJson(1, ['id' => $info['id']], '操作成功');
  145. }
  146. /**
  147. * 申请修改杠杆
  148. */
  149. public function actionAddModifyLever()
  150. {
  151. $request = \Yii::$app->request;
  152. if ($request->isPost) {
  153. $params = $request->post();
  154. $params['member_id'] = isset($params['member_id']) ? trim($params['member_id']) : '';
  155. $params['login'] = isset($params['login']) ? trim($params['login']) : '';
  156. $params['lever'] = isset($params['lever']) ? intval($params['lever']) : '';
  157. $member = Member::find()->select('logins')->where(['id' => $params['member_id']])->asArray()->limit(1)->one();
  158. $isHave = false;
  159. if ($member['logins']) {
  160. $mt4Login = explode(',', $member['logins']);
  161. if (in_array($params['login'], $mt4Login)) {
  162. $isHave = true;
  163. }
  164. }
  165. if (!$isHave) {
  166. return $this->outJson(0, [], '参数错误');
  167. }
  168. $mt4Users = Mt4Users::find()->where(['login' => $params['login']])->asArray()->limit(1)->one();
  169. if (intval($mt4Users['LEVERAGE']) == $params['lever']) {
  170. return $this->outJson(0, [], '提交失败,与当前杠杆一致');
  171. }
  172. $result = ModifyLever::findOne([
  173. 'member_id' => $params['member_id'],
  174. 'login' => $params['login'],
  175. 'type' => 0,
  176. ]);
  177. if ($result != null) {
  178. return $this->outJson(0, [], '您还有未处理的申请记录,请等待审核');
  179. }
  180. $lever = new ModifyLever();
  181. $lever->setAttributes($params);
  182. $lever->type = 0;
  183. $lever->in_time = DateTimeHelper::microtime_float();
  184. if ($lever->save()) {
  185. return $this->outJson(1, $lever->getAttributes(), '提交成功');
  186. } else {
  187. return $this->outJson(0, [], $lever->getErrors());
  188. }
  189. } else {
  190. return $this->outJson(0, [], '参数传输格式错误');
  191. }
  192. }
  193. }