receipts.class.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. defined('IN_PHPCMS') or exit('No permission resources.');
  3. pc_base::load_app_func('global','pay');
  4. class receipts {
  5. //数据库连接
  6. protected static $db;
  7. /**
  8. * 数据库连接
  9. */
  10. protected static function connect() {
  11. self::$db = pc_base::load_model("pay_account_model");
  12. }
  13. /**
  14. * 添加金钱入账记录
  15. * 添加金钱入账记录操作放放
  16. * @param integer $value 入账金额
  17. * @param integer $userid 用户ID
  18. * @param string $username 用户名
  19. * @param integer $trand_sn 操作订单ID,默认为自动生成
  20. * @param string $pay_type 入账类型 (可选值 offline 线下充值,recharge 在线充值,selfincome 自助获取)
  21. * @param string $payment 入账方式 (如后台充值,支付宝,银行汇款/转账等此处为自定义)
  22. * @param string $status 入账状态 (可选值 succ 默认,入账成功,error 入账失败)注当且仅当为‘succ’时更改member数据
  23. * @param string $op_username 管理员信息
  24. */
  25. public static function amount($value, $userid = '' , $username = '', $trade_sn = '', $pay_type = '', $payment = '', $op_username = '', $status = 'succ', $note = '') {
  26. return self::_add(array('username'=>$username, 'userid'=>$userid,'money'=>$value, 'trade_sn'=>$trade_sn, 'pay_type'=>$pay_type, 'payment'=>$payment, 'status'=>$status, 'type'=>1, 'adminnote'=>$op_username, 'usernote'=>$note));
  27. }
  28. /**
  29. * 添加点数入账记录
  30. * 添加点数入账记录操作放放
  31. * @param integer $value 入账金额
  32. * @param integer $userid 用户ID
  33. * @param string $username 用户名
  34. * @param integer $trade_sn 操作订单ID,默认为自动生成
  35. * @param string $pay_type 入账类型 (可选值 offline 线下充值,recharge 在线充值,selfincome 自助获取)
  36. * @param string $payment 入账方式 (如后台充值,支付宝,银行汇款/转账等此处为自定义)
  37. * @param string $status 入账状态 (可选值 succ 默认,入账成功,failed 入账失败)
  38. * @param string $op_username 管理员信息
  39. */
  40. public static function point($value, $userid = '' , $username = '', $trade_sn = '', $pay_type = '', $payment = '', $op_username = '', $status = 'succ', $note = '') {
  41. return self::_add(array('username'=>$username, 'userid'=>$userid,'money'=>$value, 'trade_sn'=>$trade_sn, 'pay_type'=>$pay_type, 'payment'=>$payment, 'status'=>$status, 'type'=>2, 'adminnote'=>$op_username, 'usernote'=>$note));
  42. }
  43. /**
  44. * 添加入账记录
  45. * @param array $data 添加入账记录参数
  46. */
  47. private static function _add($data) {
  48. $data['money'] = isset($data['money']) && floatval($data['money']) ? floatval($data['money']) : 0;
  49. $data['userid'] = isset($data['userid']) && intval($data['userid']) ? intval($data['userid']) : 0;
  50. $data['username'] = isset($data['username']) ? trim($data['username']) : '';
  51. $data['trade_sn'] = (isset($data['trade_sn']) && $data['trade_sn']) ? trim($data['trade_sn']) : create_sn();
  52. $data['pay_type'] = isset($data['pay_type']) ? trim($data['pay_type']) : 'selfincome';
  53. $data['payment'] = isset($data['payment']) ? trim($data['payment']) : '';
  54. $data['adminnote'] = isset($data['op_username']) ? trim($data['op_username']) : '';
  55. $data['usernote'] = isset($data['usernote']) ? trim($data['usernote']) : '';
  56. $data['status'] = isset($data['status']) ? trim($data['status']) : 'succ';
  57. $data['type'] = isset($data['type']) && intval($data['type']) ? intval($data['type']) : 0;
  58. $data['addtime'] = SYS_TIME;
  59. $data['ip'] = ip();
  60. //检察消费类型
  61. if (!in_array($data['type'], array(1,2))) {
  62. return false;
  63. }
  64. //检查入账类型
  65. if (!in_array($data['pay_type'], array('offline','recharge','selfincome'))) {
  66. return false;
  67. }
  68. //检查入账状态
  69. if (!in_array($data['status'], array('succ','error','failed'))) {
  70. return false;
  71. }
  72. //检查消费描述
  73. if (empty($data['payment'])) {
  74. return false;
  75. }
  76. //检查消费金额
  77. if (empty($data['money'])) {
  78. return false;
  79. }
  80. //检查userid和username并偿试再次的获取
  81. if (empty($data['userid']) || empty($data['username'])) {
  82. if (defined('IN_ADMIN')) {
  83. return false;
  84. } elseif (!$data['userid'] = param::get_cookie('_userid') || !$data['username'] = param::get_cookie('_username')) {
  85. return false;
  86. } else {
  87. return false;
  88. }
  89. }
  90. //检查op_userid和op_username并偿试再次的获取
  91. if (defined('IN_ADMIN') && empty($data['adminnote'])) {
  92. $data['adminnote'] = param::get_cookie('admin_username');
  93. }
  94. //数据库连接
  95. if (empty(self::$db)) {
  96. self::connect();
  97. }
  98. $member_db = pc_base::load_model('member_model');
  99. $sql = array();
  100. if ($data['type'] == 1) {//金钱方式充值
  101. $sql = array('amount'=>"+=".$data['money']);
  102. } elseif ($data['type'] == 2) { //积分方式充值
  103. $sql = array('point'=>'+='.$data['money']);
  104. } else {
  105. return false;
  106. }
  107. //进入数据库操作
  108. $insertid = self::$db->insert($data,true);
  109. if($insertid && $data['status'] == 'succ') {
  110. return $member_db->update($sql, array('userid'=>$data['userid'], 'username'=>$data['username'])) ? true : false;
  111. } else {
  112. return false;
  113. }
  114. }
  115. }