/[LeafOK_CVS]/fenglin/bbs/user_service_transfer_score.php
ViewVC logotype

Annotation of /fenglin/bbs/user_service_transfer_score.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Sun Apr 27 04:32:05 2025 UTC (10 months, 2 weeks ago) by sysadm
Branch: MAIN
Changes since 1.1: +1 -1 lines
Trim trailing whitespaces

1 sysadm 1.1 <?php
2     require_once "../lib/db_open.inc.php";
3     require_once "../lib/score_change.inc.php";
4     require_once "./session_init.inc.php";
5    
6     force_login();
7    
8     $data = json_decode(file_get_contents("php://input"), true);
9    
10     $uid = (isset($data["uid"]) ? intval($data["uid"]) : 0);
11     $amount = (isset($data["amount"]) ? intval($data["amount"]) : 0);
12    
13     $result_set = array(
14     "return" => array(
15     "code" => 0,
16     "message" => "",
17     "errorFields" => array(),
18     )
19     );
20    
21     header("Content-Type:application/json; charset=utf-8");
22    
23     // Validate input data
24     if ($amount <= 0 || $amount > 10000 || $amount % 10 != 0 || $data["amount"] != $amount)
25     {
26     $result_set["return"]["code"] = -1;
27     array_push($result_set["return"]["errorFields"], array(
28     "id" => "transfer",
29     "errMsg" => "转让额输入错误",
30     ));
31     }
32    
33     if ($_SESSION["BBS_uid"] == $uid)
34     {
35     $result_set["return"]["code"] = -1;
36     array_push($result_set["return"]["errorFields"], array(
37     "id" => "transfer",
38     "errMsg" => "不能转让积分给自己",
39     ));
40     }
41    
42     if ($result_set["return"]["code"] != 0)
43     {
44     mysqli_close($db_conn);
45     exit(json_encode($result_set));
46     }
47    
48     // Begin transaction
49     $rs = mysqli_query($db_conn, "SET autocommit=0");
50     if ($rs == false)
51     {
52     $result_set["return"]["code"] = -2;
53     $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
54    
55     mysqli_close($db_conn);
56     exit(json_encode($result_set));
57     }
58 sysadm 1.2
59 sysadm 1.1 $rs = mysqli_query($db_conn, "BEGIN");
60     if ($rs == false)
61     {
62     $result_set["return"]["code"] = -2;
63     $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
64    
65     mysqli_close($db_conn);
66     exit(json_encode($result_set));
67     }
68    
69     // Check recipient
70     $sql = "SELECT UID FROM user_list WHERE UID = $uid AND enable AND verified";
71    
72     $rs = mysqli_query($db_conn, $sql);
73     if ($rs == false)
74     {
75     $result_set["return"]["code"] = -2;
76     $result_set["return"]["message"] = "Query user info error: " . mysqli_error($db_conn);
77    
78     mysqli_close($db_conn);
79     exit(json_encode($result_set));
80     }
81    
82     if (!($row = mysqli_fetch_array($rs)))
83     {
84     $result_set["return"]["code"] = -1;
85     array_push($result_set["return"]["errorFields"], array(
86     "id" => "transfer",
87     "errMsg" => "接收方不存在",
88     ));
89    
90     mysqli_close($db_conn);
91     exit(json_encode($result_set));
92     }
93    
94     $ret = score_change($_SESSION["BBS_uid"], round($amount * (-1 - $BBS_score_transfer_fee), 0), "积分转出[$uid]", $db_conn);
95     if ($ret < 0)
96     {
97     $result_set["return"]["code"] = -2;
98     $result_set["return"]["message"] = "Update score error: " . mysqli_error($db_conn);
99    
100     mysqli_close($db_conn);
101     exit(json_encode($result_set));
102     }
103     else if ($ret > 0)
104     {
105     $result_set["return"]["code"] = -1;
106     array_push($result_set["return"]["errorFields"], array(
107     "id" => "transfer",
108     "errMsg" => "积分不足",
109     ));
110    
111     mysqli_close($db_conn);
112     exit(json_encode($result_set));
113     }
114    
115     $ret = score_change($uid, $amount, "积分转入[" . $_SESSION["BBS_uid"] . "]", $db_conn);
116     if ($ret < 0)
117     {
118     $result_set["return"]["code"] = -2;
119     $result_set["return"]["message"] = "Update score error: " . mysqli_error($db_conn);
120    
121     mysqli_close($db_conn);
122     exit(json_encode($result_set));
123     }
124     else if ($ret > 0)
125     {
126     $result_set["return"]["code"] = -2;
127     $result_set["return"]["message"] = "The balance of recipient's account is negative";
128    
129     mysqli_close($db_conn);
130     exit(json_encode($result_set));
131     }
132    
133     // Commit transaction
134     $rs = mysqli_query($db_conn, "COMMIT");
135     if ($rs == false)
136     {
137     $result_set["return"]["code"] = -2;
138     $result_set["return"]["message"] = "Mysqli error: " . mysqli_error($db_conn);
139    
140     mysqli_close($db_conn);
141     exit(json_encode($result_set));
142     }
143    
144     mysqli_close($db_conn);
145     exit(json_encode($result_set));
146     ?>

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1