|
@@ -690,9 +690,10 @@ function httpRequest($url, $method, $postfields = null, $headers = array(), $deb
|
|
|
* param string $desc 描述
|
|
|
* param int $user_id 登录用户id
|
|
|
* $type 类型:1=充值,2=支付,3=后台
|
|
|
+ * $relation_id 充值ID/订单ID/会员ID
|
|
|
* return int
|
|
|
*/
|
|
|
-function create_log($balance = 0, $desc = '', $user_id = 0, $type = 0) {
|
|
|
+function create_log($balance = 0, $desc = '', $user_id = 0, $type = 0, $relation_id = 0) {
|
|
|
$map['id'] = $user_id;
|
|
|
$user = Db::name('user');
|
|
|
$user_info = $user->where($map)->field('id, money')->find();
|
|
@@ -751,17 +752,111 @@ function create_log($balance = 0, $desc = '', $user_id = 0, $type = 0) {
|
|
|
$log['before'] = $user_info['money'];
|
|
|
$log['after'] = $user_info['money'] + $balance;
|
|
|
$log['memo'] = $desc;
|
|
|
+ $log['relation_id'] = $relation_id;
|
|
|
$log['createtime'] = time();
|
|
|
|
|
|
$data['money'] = $log['after'];
|
|
|
- if ($data['after'] < 0) {
|
|
|
+ if ($data['money'] < 0) {
|
|
|
return -12;
|
|
|
}
|
|
|
|
|
|
if ($balance != 0) {
|
|
|
- $change_result = $user->where($map)->save($data); // 更改用户余额
|
|
|
+ $change_result = $user->where($map)->where(['money' => $user_info['money']])->setField($data); // 更改用户余额
|
|
|
if ($change_result !== false) {
|
|
|
- $rows = $user_account->add($log);
|
|
|
+ $rows = $user_account->insertGetId($log);
|
|
|
+ if ($rows > 0) {
|
|
|
+ return 1;
|
|
|
+ } else {
|
|
|
+ return -10;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return -11;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 成长值记录
|
|
|
+ * param int $balance 变动的数量,减少时传:-$balance,增加时直接传:$balance
|
|
|
+ * param string $desc 描述
|
|
|
+ * param int $user_id 登录用户id
|
|
|
+ * $type 类型:1=登录,2=充值,3=微信支付活动,4=活动取消扣除
|
|
|
+ * $relation_id 充值记录ID/订单ID
|
|
|
+ * return int
|
|
|
+ */
|
|
|
+function create_growth_log($balance = 0, $desc = '', $user_id = 0, $type = 0, $relation_id = 0) {
|
|
|
+ $map['id'] = $user_id;
|
|
|
+ $user = Db::name('user');
|
|
|
+ $user_info = $user->where($map)->field('id, growthvalue')->find();
|
|
|
+
|
|
|
+ if ($user_info['growthvalue'] < 0) {
|
|
|
+ return -3;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询log日志
|
|
|
+ $user_account = Db::name('user_growth_log');
|
|
|
+ $data = array();
|
|
|
+ $log = array();
|
|
|
+
|
|
|
+ $silver_logs = $user_account->where(['user_id' => $user_id])->order('id desc')->limit(10)->select();
|
|
|
+
|
|
|
+ $all_count = count($silver_logs); //日志记录数量
|
|
|
+
|
|
|
+ if ($all_count < 1) {
|
|
|
+ if ($user_info['growthvalue'] > 0) {
|
|
|
+ return -7;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $all_change_silver = array();
|
|
|
+ if ($all_count == 1) { // 只有一条日志 变动金额=余额
|
|
|
+ if ($silver_logs[0]['after'] != $silver_logs[0]['growthvalue']) {
|
|
|
+// add_error_user($silver_logs[0]['user_id'], 0);
|
|
|
+ return -8;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $log_count = $all_count - 1;
|
|
|
+ $last_user_silver = '';
|
|
|
+ foreach ($silver_logs as $key => $value) {
|
|
|
+ if ($key == $log_count) {
|
|
|
+ $last_user_silver = $value['after'];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ $all_change_silver[] = $value['growthvalue'];
|
|
|
+ }
|
|
|
+
|
|
|
+ //变动金额+最初余额=最新余额
|
|
|
+// $new_silver = $last_user_silver + array_sum($all_change_silver); // 最新余额+变动总金额
|
|
|
+// $silver_difference = abs($new_silver - $silver_logs[0]['user_diamond']);
|
|
|
+
|
|
|
+ $new_silver = $last_user_silver + array_sum($all_change_silver); // 最新余额+变动总金额
|
|
|
+ $silver_difference = abs(number_format($new_silver, 2, '.', '') - number_format($silver_logs[0]['after'], 2, '.', ''));
|
|
|
+// p($silver_difference);die;
|
|
|
+ if ($silver_difference > 1) {
|
|
|
+// add_error_user($silver_logs[0]['user_id'], 0);
|
|
|
+ return -9;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $log['user_id'] = $user_id;
|
|
|
+ $log['type'] = $type;
|
|
|
+ $log['growthvalue'] = $balance;
|
|
|
+ $log['before'] = $user_info['growthvalue'];
|
|
|
+ $log['after'] = $user_info['growthvalue'] + $balance;
|
|
|
+ $log['memo'] = $desc;
|
|
|
+ $log['relation_id'] = $relation_id;
|
|
|
+ $log['createtime'] = time();
|
|
|
+
|
|
|
+ $data['growthvalue'] = $log['after'];
|
|
|
+ if ($data['growthvalue'] < 0) {
|
|
|
+ return -12;
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($balance != 0) {
|
|
|
+ $change_result = $user->where($map)->where(['growthvalue' => $user_info['growthvalue']])->setField($data); // 更改用户余额
|
|
|
+ if ($change_result !== false) {
|
|
|
+ $rows = $user_account->insertGetId($log);
|
|
|
if ($rows > 0) {
|
|
|
return 1;
|
|
|
} else {
|