Finance.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: xurongyao <763569752@qq.com>
  5. * Date: 2018/6/14 下午5:25
  6. */
  7. namespace app\admin\controller\finance;
  8. use app\admin\controller\AuthController;
  9. use app\models\trade\CashTradeOrder;
  10. use app\models\user\UserMoney;
  11. use app\Request;
  12. use crmeb\basic\BaseModel;
  13. use app\admin\model\user\{User, UserBill};
  14. use app\admin\model\finance\FinanceModel;
  15. use crmeb\services\{UtilService as Util, JsonService as Json, UtilService};
  16. /**
  17. * 微信充值记录
  18. * Class UserRecharge
  19. * @package app\admin\controller\user
  20. */
  21. class Finance extends AuthController
  22. {
  23. /**
  24. * 显示资金记录
  25. */
  26. public function bill()
  27. {
  28. $list = UserBill::where('type', 'not in', ['gain', 'system_sub', 'deduction', 'sign'])
  29. ->where('category', 'not in', 'integral')
  30. ->field(['title', 'type'])
  31. ->group('type')
  32. ->distinct(true)
  33. ->select()
  34. ->toArray();
  35. $this->assign('selectList', $list);
  36. return $this->fetch();
  37. }
  38. /**
  39. * 显示资金记录ajax列表
  40. */
  41. public function billlist()
  42. {
  43. $where = Util::getMore([
  44. ['start_time', ''],
  45. ['end_time', ''],
  46. ['nickname', ''],
  47. ['limit', 20],
  48. ['page', 1],
  49. ['type', ''],
  50. ]);
  51. return Json::successlayui(FinanceModel::getBillList($where));
  52. }
  53. /**
  54. *保存资金监控的excel表格
  55. */
  56. public function save_bell_export()
  57. {
  58. $where = Util::getMore([
  59. ['start_time', ''],
  60. ['end_time', ''],
  61. ['nickname', ''],
  62. ['type', ''],
  63. ]);
  64. FinanceModel::SaveExport($where);
  65. }
  66. /**
  67. * 显示佣金记录
  68. */
  69. public function commission_list()
  70. {
  71. $this->assign('is_layui', true);
  72. return $this->fetch();
  73. }
  74. /**
  75. * 佣金记录异步获取
  76. */
  77. public function get_commission_list()
  78. {
  79. $get = Util::getMore([
  80. ['page', 1],
  81. ['limit', 20],
  82. ['nickname', ''],
  83. ['price_max', ''],
  84. ['price_min', ''],
  85. ['order', ''],
  86. ['excel', ''],
  87. ]);
  88. return Json::successlayui(User::getCommissionList($get));
  89. }
  90. /**
  91. * 显示操作记录
  92. */
  93. public function index3()
  94. {
  95. }
  96. /**
  97. * 佣金详情
  98. */
  99. public function content_info($uid = '')
  100. {
  101. if ($uid == '') return $this->failed('缺少参数');
  102. $this->assign('userinfo', User::getUserinfo($uid));
  103. $this->assign('uid', $uid);
  104. return $this->fetch();
  105. }
  106. /**
  107. * 佣金提现记录个人列表
  108. */
  109. public function get_extract_list($uid = '')
  110. {
  111. if ($uid == '') return Json::fail('缺少参数');
  112. $where = Util::getMore([
  113. ['page', 1],
  114. ['limit', 20],
  115. ['start_time', ''],
  116. ['end_time', ''],
  117. ['nickname', '']
  118. ]);
  119. return Json::successlayui(UserBill::getExtrctOneList($where, $uid));
  120. }
  121. public function cashTrade()
  122. {
  123. return $this->fetch();
  124. }
  125. public function cashTradeList()
  126. {
  127. $where = $where = UtilService::getMore([
  128. ['money_type', ''],
  129. ['trade_uid', ''],
  130. ['page', 1],
  131. ['limit', 10],
  132. ['status', ''],
  133. ['trade_type', '']
  134. ], $this->request);
  135. $data = CashTradeOrder::getList($where);
  136. $data['data'] = $data['list'];
  137. unset($data['list']);
  138. Json::successlayui($data);
  139. }
  140. public function check($id, $ok, Request $request)
  141. {
  142. $order = CashTradeOrder::where('id', $id)->where('status', 3)->find();
  143. if (!in_array($ok, ['y', 'n'])) return app('json')->fail('参数错误');
  144. $res = true;
  145. BaseModel::beginTrans();
  146. if ($ok == 'y') {
  147. switch ($order['trade_type']) {
  148. case 1:
  149. $res = $res && UserMoney::incomeMoney($order['trade_uid'], $order['money_type'], $order['money_num'], 'buy_success', '购币成功', '购币成功,出售方ID' . $order['uid']);
  150. break;
  151. case 2:
  152. $res = $res && UserMoney::incomeMoney($order['uid'], $order['money_type'], $order['money_num'], 'buy_success', '购币成功', '购币成功,出售方ID' . $order['trade_uid']);
  153. break;
  154. default:
  155. break;
  156. }
  157. $res = $res && CashTradeOrder::where('id', $id)->update(['status' => 1, 'trade_time' => time()])
  158. && CashTradeOrder::brokerage($id);
  159. BaseModel::checkTrans($res);
  160. if ($res) {
  161. Json::successful('审核成功');
  162. // return app('json')->success('审核成功');
  163. } else {
  164. return app('json')->fail('审核失败');
  165. }
  166. } else {
  167. switch ($order['trade_type']) {
  168. case 1:
  169. $res = $res && UserMoney::incomeMoney($order['uid'], $order['money_type'], $order['money_num'], 'buy_fail', '购币失败', '购币失败,出售方ID' . $order['uid']);
  170. break;
  171. case 2:
  172. $res = $res && UserMoney::incomeMoney($order['trade_uid'], $order['money_type'], $order['money_num'], 'buy_fail', '购币失败', '购币失败,出售方ID' . $order['trade_uid']);
  173. break;
  174. default:
  175. break;
  176. }
  177. $res = $res && CashTradeOrder::where('id', $id)->update(['status' => 2, 'end_time' => time()]);
  178. BaseModel::checkTrans($res);
  179. if ($res) {
  180. Json::successful('退回成功');
  181. } else {
  182. return app('json')->fail('退回失败');
  183. }
  184. }
  185. }
  186. public function cancel($id, Request $request)
  187. {
  188. $order = CashTradeOrder::get($id);
  189. if ($order['close_time'] && $order['close_time'] < time()) return app('json')->fail('订单已关闭');
  190. if ($order['status'] > 0) return app('json')->fail('订单不可撤销');
  191. BaseModel::beginTrans();
  192. $res = true;
  193. switch ($order['trade_type']) {
  194. case 1:
  195. //退回币
  196. $res = $res && UserMoney::incomeMoney($order['uid'], $order['money_type'], $order['money_num'], 'hang_sale_cancel', '挂卖取消', '挂卖取消,退回钱包');
  197. $res = $res && CashTradeOrder::where('id', $order['id'])->update(['status' => 2]);
  198. break;
  199. case 2:
  200. //
  201. if ($order['trade_uid'])
  202. $res = $res && UserMoney::incomeMoney($order['trade_uid'], $order['money_type'], $order['money_num'], 'hang_buy_cancel', '挂买取消', '挂买取消,退回钱包');
  203. $res = $res && CashTradeOrder::where('id', $order['id'])->update(['status' => 2]);
  204. break;
  205. default:
  206. break;
  207. }
  208. BaseModel::checkTrans($res);
  209. if ($res) {
  210. return app('json')->success('取消成功');
  211. } else {
  212. return app('json')->fail('取消失败');
  213. }
  214. }
  215. }