13#if __DCL_HAVE_THIS_FILE__
23 const String& strMainCommand,
25 const String& strCommand,
27) : __servlet(_servlet)
29 __strMainCommand = strMainCommand;
30 __nMainCommandID = nMainCommandID;
31 __strCommand = strCommand;
40 int nCMD = CM_VISITOR_BOOK_LIST;
41 ListedStringToStringArrayMap params = ctx.__queryMap;
43 for (ListedStringToStringArrayMap::ConstIterator it = ctx.__formMap.begin();
44 it != ctx.__formMap.end(); it++
46 const StringArray& ss = (*it).value;
47 StringArray& ds = params[(*it).key];
48 for (
size_t i = 0; i < ss.size(); i++) {
54 ListedStringToStringArrayMap::Iterator it = params.find(__strCommand);
55 if (it != params.end()) {
56 if (!((*it).value.isEmpty())) {
69 case CM_VISITOR_BOOK_LIST :
72 case CM_VISITOR_BOOK_BODY :
75 case CM_VISITOR_BOOK_DELETE :
78 case CM_VISITOR_BOOK_UPDATE_FORM :
81 case CM_VISITOR_BOOK_UPDATE :
96 TextTemplate tplList(__servlet.readTemplate(L
"visitlist.html"));
99 StringBuilder strHREF = String::format(L
"?%ls=%d&%ls=%d",
100 __strMainCommand.data(), __nMainCommandID,
101 __strCommand.data(), CM_VISITOR_BOOK_UPDATE_FORM
103 tplList.assign(L
"HREF_NEW_MSG", strHREF);
106 q.
prepare(L
"SELECT ID, SUBJECT, BODY, REGIST, VISITOR, EMAIL, RHOST"
107 " FROM ES_VISITOR_BOOK ORDER BY ID"
112 strHREF = String::format(L
"?%ls=%d&%ls=%d&%ls=%ls",
113 __strMainCommand.data(), __nMainCommandID,
114 __strCommand.data(), CM_VISITOR_BOOK_BODY,
117 row.assign(L
"HREF_MSG_BODY", strHREF);
118 row.assign(q.
fields(), L
" ");
120 tplList.append(L
"row", row);
127 ListedStringToStringArrayMap& params,
132 ListedStringToStringArrayMap::Iterator it = params.find(L
"id");
133 if (it == params.end()) {
139 if (!(*it).value.isEmpty())
140 strID = (*it).value[0];
142 TextTemplate tplBody(__servlet.readTemplate(L
"visitbody.html"));
145 L
"SELECT ID, SUBJECT, BODY, REGIST, VISITOR, EMAIL, RHOST"
146 " FROM ES_VISITOR_BOOK WHERE ID = " + strID
153 String strHREF = String::format(L
"?%ls=%d",
154 __strMainCommand.data(), __nMainCommandID
156 tplBody.assign(L
"HREF_ACTION", strHREF);
157 tplBody.assign(L
"COMMAND_STR", __strCommand);
158 tplBody.assign(L
"CM_VISITOR_BOOK_LIST", String::valueOf(CM_VISITOR_BOOK_LIST));
159 tplBody.assign(L
"CM_VISITOR_BOOK_UPDATE_FORM", String::valueOf(CM_VISITOR_BOOK_UPDATE_FORM));
160 tplBody.assign(L
"CM_VISITOR_BOOK_DELETE", String::valueOf(CM_VISITOR_BOOK_DELETE));
162 tplBody.assign(q.
fields(), L
" ");
164 tplBody.assign(L
"BODY",
177 ListedStringToStringArrayMap& params,
183 ListedStringToStringArrayMap::Iterator it = params.find(L
"id");
184 if ((it != params.end()) && (!(*it).value.isEmpty()))
185 strID = (*it).value[0];
187 StringBuilder strHREF;
188 strHREF.format(L
"?%ls=%d&%ls=%d",
189 __strMainCommand.data(), __nMainCommandID,
190 __strCommand.data(), CM_VISITOR_BOOK_UPDATE
193 TextTemplate tpl(__servlet.readTemplate(L
"visitupdate.html"));
194 if (!strID.isEmpty()) {
196 q.
execute(L
"SELECT ID, SUBJECT, BODY, REGIST, VISITOR, EMAIL, RHOST"
197 " FROM ES_VISITOR_BOOK WHERE ID = " + strID);
200 strHREF += L
"&id=" + q.
fields().
byName(L
"ID").asString();
201 tpl.assign(L
"HREF_ACTION", strHREF);
202 tpl.assign(q.
fields(), L
" ");
209 tpl.assign(L
"HREF_ACTION", strHREF);
210 tpl.assign(L
"SUBJECT", L
"");
211 tpl.assign(L
"VISITOR", L
"");
212 tpl.assign(L
"EMAIL", L
"");
213 tpl.assign(L
"BODY", L
"");
219 ListedStringToStringArrayMap& params,
227 ListedStringToStringArrayMap::Iterator it = params.find(L
"id");
228 if ((it != params.end()) && (!(*it).value.isEmpty()))
229 strID = (*it).value[0];
231 it = params.find(L
"passwd");
232 if ((it != params.end()) && (!(*it).value.isEmpty()))
233 strPasswd = (*it).value[0];
236 q.
execute(L
"SELECT PASSWD FROM ES_VISITOR_BOOK WHERE ID = " + strID);
239 bool bDoDelete =
false;
243 if (q.
fields()[0].asString() == strPasswd)
248 q.
execute(L
"DELETE FROM ES_VISITOR_BOOK WHERE ID = " + strID);
259 ListedStringToStringArrayMap& params,
272 String strRHost = ctx.remoteAddr();
274 ListedStringToStringArrayMap::Iterator it;
276 it = params.find(L
"id");
277 if ((it != params.end()) && (!(*it).value.isEmpty()))
278 strID = (*it).value[0];
280 it = params.find(L
"passwd");
281 if ((it != params.end()) && (!(*it).value.isEmpty()))
282 strPasswd = (*it).value[0];
284 it = params.find(L
"subject");
285 if ((it != params.end()) && (!(*it).value.isEmpty()))
286 strSubject = (*it).value[0];
288 it = params.find(L
"body");
289 if ((it != params.end()) && (!(*it).value.isEmpty()))
290 strBody = (*it).value[0];
292 it = params.find(L
"visitor");
293 if ((it != params.end()) && (!(*it).value.isEmpty()))
294 strVisitor = (*it).value[0];
296 it = params.find(L
"email");
297 if ((it != params.end()) && (!(*it).value.isEmpty()))
298 strEmail = (*it).value[0];
300 if (strSubject.isEmpty()
302 || strVisitor.isEmpty()
303 || strEmail.isEmpty()
305 out << L
"<br><br><p><strong>모두 입력해 주세요!!</strong></p>";
311 " ES_VISITOR_BOOK(SUBJECT, BODY, REGIST, VISITOR,"
312 " EMAIL, RHOST, PASSWD) "
313 " VALUES(:SUBJECT, :BODY, CURRENT_TIMESTAMP, :VISITOR,"
314 " :EMAIL, :RHOST, :PASSWD)"
318 if (!strID.isEmpty()) {
319 q.
execute(L
"SELECT PASSWD FROM ES_VISITOR_BOOK WHERE ID = " + strID);
322 if (q.
fields()[0].isNull()
323 || q.
fields()[0].asString() == strPasswd) {
325 "UPDATE ES_VISITOR_BOOK "
326 " SET SUBJECT = :SUBJECT, BODY = :BODY, VISITOR = :VISITOR, "
327 " EMAIL = :EMAIL, RHOST = :RHOST, PASSWD = :PASSWD "
328 " WHERE ID = " + strID;
339 sqlParams.
byName(L
"SUBJECT").setValue(strSubject);
340 sqlParams.
byName(L
"BODY").setValue(strBody);
341 sqlParams.
byName(L
"VISITOR").setValue(strVisitor);
342 sqlParams.
byName(L
"EMAIL").setValue(strEmail);
343 sqlParams.
byName(L
"RHOST").setValue(strRHost);
344 sqlParams.
byName(L
"PASSWD").setValue(strPasswd);
#define __DCL_TRACE1(fmt, arg1)
#define IMPLEMENT_CLASSINFO(class_name, base_class_name)
static String format(const String &_str, int _tab2Space, const String &_beginOfLine, const String &_endOfLine)
static int32_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)
_CONST SQLField & byName(const wchar_t *_name) _CONST __DCL_THROWS1(InvalidIndexException *)
SQLParam & byName(const wchar_t *_name) _CONST __DCL_THROWS1(InvalidIndexException *)
void prepare(const String &_sql) __DCL_THROWS1(SQLException *)
_CONST SQLParams & params() _CONST
_CONST SQLFields & fields() _CONST
void execute() __DCL_THROWS1(SQLException *)
int64_t affectedRows() const
void fetch() __DCL_THROWS1(SQLException *)
bool onVisitorBookBody(ListedStringToStringArrayMap ¶ms, SQLConnection *pSQLConn, Writer &out)
void onVisitorBookDelete(ListedStringToStringArrayMap ¶ms, SQLConnection *pSQLConn, Writer &out)
bool onVisitorBook(HttpServletContextEx &ctx, Writer &out, SQLConnection *pSQLConn)
void onVisitorBookList(SQLConnection *pSQLConn, Writer &out)
void onVisitorBookUpdateForm(ListedStringToStringArrayMap ¶ms, SQLConnection *pSQLConn, Writer &out)
void onVisitorBookUpdate(ListedStringToStringArrayMap ¶ms, HttpServletContextEx &ctx, SQLConnection *pSQLConn, Writer &out)
VisitorBook(const String &strMainCommand, int nMainCommandID, const String &strCommand, const EShopServlet &_servlet)