Finance.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  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. ['page', 1],
  130. ['limit', 10],
  131. ['status', ''],
  132. ['trade_type', '']
  133. ], $this->request);
  134. $data = CashTradeOrder::getList($where);
  135. $data['data'] = $data['list'];
  136. unset($data['list']);
  137. Json::successlayui($data);
  138. }
  139. public function check($id, $ok, Request $request)
  140. {
  141. $order = CashTradeOrder::where('id', $id)->where('status', 3)->find();
  142. if (!in_array($ok, ['y', 'n'])) return app('json')->fail('参数错误');
  143. $res = true;
  144. BaseModel::beginTrans();
  145. if ($ok == 'y') {
  146. switch ($order['trade_type']) {
  147. case 1:
  148. $res = $res && UserMoney::incomeMoney($order['trade_uid'], $order['money_type'], $order['money_num'], 'buy_success', '购币成功', '购币成功,出售方ID' . $order['uid']);
  149. break;
  150. case 2:
  151. $res = $res && UserMoney::incomeMoney($order['uid'], $order['money_type'], $order['money_num'], 'buy_success', '购币成功', '购币成功,出售方ID' . $order['trade_uid']);
  152. break;
  153. default:
  154. break;
  155. }
  156. $res = $res && CashTradeOrder::where('id', $id)->update(['status' => 1, 'trade_time' => time()])
  157. && CashTradeOrder::brokerage($id);
  158. BaseModel::checkTrans($res);
  159. if ($res) {
  160. return app('json')->success('审核成功');
  161. } else {
  162. return app('json')->fail('审核失败');
  163. }
  164. } else {
  165. switch ($order['trade_type']) {
  166. case 1:
  167. $res = $res && UserMoney::incomeMoney($order['uid'], $order['money_type'], $order['money_num'], 'buy_fail', '购币失败', '购币失败,出售方ID' . $order['uid']);
  168. break;
  169. case 2:
  170. $res = $res && UserMoney::incomeMoney($order['trade_uid'], $order['money_type'], $order['money_num'], 'buy_fail', '购币失败', '购币失败,出售方ID' . $order['trade_uid']);
  171. break;
  172. default:
  173. break;
  174. }
  175. $res = $res && CashTradeOrder::where('id', $id)->update(['status' => 2, 'end_time' => time()]);
  176. BaseModel::checkTrans($res);
  177. if ($res) {
  178. return app('json')->success('退回成功');
  179. } else {
  180. return app('json')->fail('退回失败');
  181. }
  182. }
  183. }
  184. public function cancel($id, Request $request)
  185. {
  186. $order = CashTradeOrder::get($id);
  187. if ($order['close_time'] && $order['close_time'] < time()) return app('json')->fail('订单已关闭');
  188. if ($order['status'] > 0) return app('json')->fail('订单不可撤销');
  189. BaseModel::beginTrans();
  190. $res = true;
  191. switch ($order['trade_type']) {
  192. case 1:
  193. //退回币
  194. $res = $res && UserMoney::incomeMoney($order['uid'], $order['money_type'], $order['money_num'], 'hang_sale_cancel', '挂卖取消', '挂卖取消,退回钱包');
  195. $res = $res && CashTradeOrder::where('id', $order['id'])->update(['status' => 2]);
  196. break;
  197. case 2:
  198. //
  199. if ($order['trade_uid'])
  200. $res = $res && UserMoney::incomeMoney($order['trade_uid'], $order['money_type'], $order['money_num'], 'hang_buy_cancel', '挂买取消', '挂买取消,退回钱包');
  201. $res = $res && CashTradeOrder::where('id', $order['id'])->update(['status' => 2]);
  202. break;
  203. default:
  204. break;
  205. }
  206. BaseModel::checkTrans($res);
  207. if ($res) {
  208. return app('json')->success('取消成功');
  209. } else {
  210. return app('json')->fail('取消失败');
  211. }
  212. }
  213. }