function userActionUpdate($user_code, $action_code, $action_value) { // 取行为规则 $action = M(TB_DET_USER_ACTION_CONFIG)->where("action_code = {$action_code}")->select(); for ($i = 0; $i < count($action); $i++) { // 可变更新值取对应的实际值 if (!$action[$i]['update_value']) { $condition = $action[$i]['code_column'] . ' = ' . $action_value; $value = M($action[$i]['table_name'])->where("{$condition}")->find(); $action[$i]['update_value'] = $value[$action[$i]['value_column']]; } // 计算需要更新的值 $data[$action[$i]['update_type']] = $action[$i]['update_value'] * $action[$i]['update_logic']; } // 更新用户账户信息表中的金币积分等级 if (userAccoutUpdate($user_code, $data)) { // 写日志必要字段赋值 $log['user_code'] = $user_code; // 用户编码 $log['action_time'] = date('Y-m-d H:i:s'); // 行为发生时间 $log['action_code'] = $action_code; // 行为编码 $log['action_value'] = $action_value; // 行为值 // 对需要写日志的行为做处理 for ($i = 0; $i < count($action); $i++) { if ($action[$i]['write_log'] == 1) { $condition = $action[$i]['code_column'] . ' = ' . $action_value; $value = M($action[$i]['table_name'])->where("{$condition}")->find(); $log['action_name'] = $value[$action[$i]['desc_column']]; // 行为名称 $log['action_type'] = $action[$i]['update_type']; // 行为类型 $log['change_value'] = $action[$i]['update_value'] * $action[$i]['update_logic']; // 数据写入日志表 if (!insertTable(TB_BAS_USER_ACTION_LOG, $log)) { return false; } } } // 判断是否需要更新用户等级 $userAccout = M(TB_BAS_USER_ACCOUT)->where("user_code = '{$user_code}'")->find(); // 取当前用户账户信息 $condition = "score_lower_value <= " . $userAccout['user_score'] . " and score_upper_value >= " . $userAccout['user_score']; $level = M(TB_DET_USER_LEVEL)->where($condition)->find(); // 取需要的积分规则 // 如果计算出的最新等级与之前等级不同,更新用户最新等级 if ($level['user_level_value'] != $userAccout['user_level']) { $accout['user_level'] = $level['user_level_value']; if (!userAccoutAlter($user_code, $accout)) { return false; } } } else { return false; } // 所有更新顺利完成返回true return true; }
public function registSubmit() { $type = $_POST['regist_type']; switch ($type) { case '10': // 基本资料注册新用户 $data_bas = json_decode($_POST['data_bas'], true); $user_code = userCreate($data_bas); echo $user_code; break; case '01': // 已注册用户完善资料 $user_code = $_POST['user_code']; $data_exp = json_decode($_POST['data_exp'], true); $user_code = userInfoAlter($user_code, $data_exp); $data_score = array('user_score' => 200); $user_code = userAccoutAlter($user_code, $data_score); echo $user_code; break; case '11': // 完整资料注册新用户 $data_bas = json_decode($_POST['data_bas'], true); $data_exp = json_decode($_POST['data_exp'], true); $user_code = userCreate($data_bas); $user_code = userInfoAlter($user_code, $data_exp); $data_score = array('user_score' => 200); $user_code = userAccoutAlter($user_code, $data_score); echo $user_code; break; } }