insert($data); if ($state) { $this->sync($uid, $source_id, $sku_id); } return $state; } # 扣减使用次数 public function use($uid, $source_id, $sku_id, $amount = 1) { $this->check($uid, $source_id, $sku_id, $amoun); return $this->up($uid, $source_id, $sku_id, 2, $amount); } # 检测余额 public function check($uid, $source_id, $sku_id, $amount) { if ($amount <= 0) { Dever::error('数量不正确'); } $info = $this->get($uid, $source_id, $sku_id); if (!$info) { Dever::error('余额不足'); } $yue = $info['unum_balance']; if ($yue < $amount) { Dever::error('余额不足'); } } # 获取余额 public function get($uid, $source_id, $sku_id) { $data['uid'] = $uid; $data['source_id'] = $source_id; $data['sku_id'] = $sku_id; $info = Dever::db('user_source', 'place_order')->find($data); return $info; } # 更新余额 public function sync($uid, $source_id, $sku_id) { $where = array ( 'uid' => $uid, 'source_id' => $source_id, 'sku_id' => $sku_id, 'type' => 1, ); $data['unum_total'] = Dever::db('user_source_log', 'place_order')->sum($where, 'amount'); $where['type'] = 2; $data['unum_used'] = Dever::db('user_source_log', 'place_order')->sum($where, 'amount'); $data['unum_balance'] = $data['unum_total'] - $data['unum_used']; return Dever::db('user_source', 'place_order')->update(['uid' => $uid, 'source_id' => $source_id, 'sku_id' => $sku_id], $data); /* $data['uid'] = $uid; $data['source_id'] = $source_id; $data['sku_id'] = $sku_id; $info = Dever::db('user_source', 'place_order')->find($data); if (!$info) { $data['unum_total'] = $amount; $data['unum_balance'] = array('unum_total', '-', 'unum_used'); $state = Dever::db('user_source', 'place_order')->insert($data); } else { $data['unum_total'] = array('+', $amount); $data['unum_balance'] = array('unum_total', '-', 'unum_used'); $state = Dever::db('user_source', 'place_order')->update($info['id'], $data); }*/ } }