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

Contents of /fenglin/bbs/user_service_transfer_score.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (show annotations)
Tue Apr 29 11:55:32 2025 UTC (10 months, 2 weeks ago) by sysadm
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +0 -1 lines
Remove redundant PHP closing tag

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
59 $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));

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