Money_recharge.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <?php
  2. /**
  3. *------Create thems Model------
  4. *------SCWPHP Version 1.0.0------
  5. *------Dev Model Jions------
  6. *------Create Time 2017-06-28 15:23:54------
  7. */
  8. namespace App\Commons\Model;
  9. use Illuminate\Support\Facades\DB;
  10. use \System\Model;
  11. class Money_recharge extends Model {
  12. public $timestamps = false;
  13. protected $table = 'money_recharge';
  14. function countRimitUser($timearea) {
  15. $data = $this->select('account_identity')->whereBetween('apply_time', $timearea)->where('recharge_type', '汇款')->groupBy('account_identity')->get();
  16. if (!$data) {
  17. return 0;
  18. }
  19. $data = $data->toArray();
  20. return count($data);
  21. }
  22. //充值方法
  23. protected function AddRecharge($params=array()){
  24. /*$params = array(
  25. 'account_identity' => 'dbf53485-fb80-8d1b-a6bf-2d173fc0033e',
  26. 'account_name' => 'qwer1234',
  27. 'available_cash' => 1002200,
  28. 'money' => 100,
  29. 'name' => 'wxe',
  30. 'type' => '2',
  31. 'status' => 2,
  32. 'rate' => '',
  33. );*/
  34. if (!isset($params['account_identity']) || !isset($params['available_cash'])) {
  35. return -4008;
  36. }
  37. if (!isset($params['money']) || $params['money'] < 1 || !is_numeric($params['money'])) {
  38. return -2115;
  39. }
  40. $name = isset($params['name']) ? ($params['name']) : '';
  41. $name = strip_tags (trim ($name));
  42. $params['money'] = floor ($params['money'] * 100) / 100;
  43. //获取充值金额
  44. $order_id = OrderID ();
  45. $rtype = 6;
  46. $rtypename = $this->RtypeName($rtype);
  47. $paytypes = $rtypename;
  48. $paytype = $this->RmethodName($params['type']);
  49. _beginTransaction();
  50. $omoney = new \Biz\Money\MoneyHandle;
  51. $checkCash = $omoney->checkWater($params['account_identity'], $params['available_cash']);
  52. if($checkCash<0){
  53. return $checkCash;
  54. }
  55. $allmoney = $params['available_cash'] + $params['money'];
  56. //插入充值记录信息
  57. $remark = isset($params['remark']) ? strip_tags ($params['remark']) : '';
  58. $mrrin = $this->addMreRemark($params['name'],$order_id,$params['money'],$remark,date('Y-m-d H:i:s'));
  59. if($mrrin<0){
  60. _rollBack();
  61. return $mrrin;
  62. }
  63. $rate = isset($params['rate'])?$params['rate']:'';
  64. $status = isset($params['status'])?$params['status']:1;
  65. //插入充值信息
  66. $mrin = $this->addMoney($params,$order_id,$params['money'],$rtypename,$allmoney,$paytype,$status,$rate);
  67. if($mrin<0){
  68. _rollBack();
  69. return $mrin;
  70. }
  71. //更新用户余额、插入资金流水
  72. $remarks = sprintf(lang()->get('user charge money'), $params['account_name'], $params['money'], $order_id);
  73. $pstr = "*" . $params['account_identity'] . "*,*" . $params['money'] . "*,*1*,*" . $rtype . "*,*" . $remarks . "*,*" . $order_id . "*";
  74. $str = "select update_money_ids('".$pstr."')";
  75. //插入充值流水信息
  76. //$mdin = lm('Money_details', 'commons')->select($str);
  77. $mdin = S('DB')->select($str);
  78. $mdin = json_encode($mdin);
  79. $mdin = json_decode($mdin,1);
  80. if(!$mdin || empty($mdin)){
  81. _rollBack();
  82. return -2100;
  83. }
  84. _commit();
  85. return 1;
  86. }
  87. //插入充值记录信息
  88. protected function addMreRemark($name,$order_id,$money,$remark,$time){
  89. $rechargeRecord = lm ('money_recharge_remark', 'commons')->select ('id')->where ('name', $name)->where ('money', $money)->where ('recharge_time', $time)->first ();
  90. if ($rechargeRecord) {
  91. return -2050;
  92. }
  93. $rechareDate = array(
  94. 'name' => $name,
  95. 'order_id' => $order_id,
  96. 'money' => $money,
  97. 'remark' => $remark,
  98. 'recharge_time' => $time,
  99. );
  100. $dataRow = lm ('money_recharge_remark', 'commons')->insert ($rechareDate);
  101. if ($dataRow > 0) {
  102. return 1;
  103. } else {
  104. return -2100;
  105. }
  106. }
  107. //插入充值信息
  108. protected function addMoney($uinfo,$order_id,$money,$rtypename,$allmoney,$paytype,$status,$rate){
  109. $rechareInfo = array(
  110. 'info_identity' => UUID (),
  111. 'account_identity' => $uinfo['account_identity'],
  112. 'account_name' => $uinfo['account_name'],
  113. 'order_id' => $order_id,
  114. 'money' => $money,
  115. 'status' => $status,
  116. 'recharge_type' => $rtypename,
  117. 'money_cash' => $allmoney,
  118. 'apply_time' => date ('Y-m-d H:i:s', time ()),
  119. 'remark' => $paytype,
  120. 'rate' => $rate,
  121. );
  122. $res = lm ('money_recharge', 'commons')->insert ($rechareInfo);
  123. if ($res > 0) {
  124. return 1;
  125. } else {
  126. return -2100;
  127. }
  128. }
  129. //获取充值类型名
  130. protected function RtypeName($key){
  131. $arr = array(
  132. '6' => '在线充值',
  133. '11' => '后台加款',
  134. '12' => '活动',
  135. '13' => '充值赠送',
  136. '14' => '汇款',
  137. );
  138. return $arr[$key];
  139. }
  140. //获取充值方式名
  141. protected function RmethodName($key){
  142. $arr = [
  143. 2 => '微信',
  144. 3 => '支付宝',
  145. 4 => 'QQ',
  146. 5 => '银联',
  147. 6 => '京东',
  148. 7 => '多合一'
  149. ];
  150. return $arr[$key];
  151. }
  152. /**
  153. * 充值记录
  154. *
  155. * @access public
  156. * @param mixed $rechargeRecordSelect 查询条件字段
  157. * @param mixed $rechargeRecordWhere 查询条件
  158. * @param mixed $rechargeRecordBetween 查询条件区间
  159. * @param mixed $begin 起始查询位置
  160. * @param mixed $pageSize 分页大小
  161. * @param mixed $orderBy 排序字段
  162. * @return array JsonString
  163. */
  164. public function rechargeRecord($rechargeRecordSelect, $rechargeRecordWhere, $rechargeRecordBetween, $begin, $pageSize, $orderBy = 'apply_time') {
  165. $result = $this
  166. -> select($rechargeRecordSelect)
  167. -> where($rechargeRecordWhere)
  168. -> whereBetween('apply_time', $rechargeRecordBetween)
  169. -> offset($begin)
  170. -> limit($pageSize)
  171. -> orderBy($orderBy)
  172. -> get();
  173. return $result;
  174. }
  175. /**
  176. * 充值记录总数
  177. *
  178. * @access public
  179. * @param mixed $rechargeRecordWhere 查询条件
  180. * @param mixed $rechargeRecordBetween 查询条件区间
  181. * @return array JsonString
  182. */
  183. public function rechargeRecordTotal($rechargeRecordWhere, $rechargeRecordBetween) {
  184. $result = $this
  185. -> where($rechargeRecordWhere)
  186. -> whereBetween('apply_time', $rechargeRecordBetween)
  187. -> count();
  188. return $result;
  189. }
  190. }