15static const wchar_t __THIS_FILE__[] = L
"eshop/VisitorBook.cpp";
23 const String& strMainCommand,
25 const String& strCommand,
27 ) : __servlet(_servlet)
29 m_strMainCommand = strMainCommand;
30 m_nMainCommandID = nMainCommandID;
31 m_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++) {
45 const StringArray& ss = (*it).value;
46 StringArray& ds = params[(*it).key];
47 for (
size_t i = 0; i < ss.size(); i++) {
53 ListedStringToStringArrayMap::Iterator it = params.find(m_strCommand);
54 if (it != params.end()) {
55 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 m_strMainCommand.data(), m_nMainCommandID,
101 m_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");
111 strHREF = String::format(L
"?%ls=%d&%ls=%d&%ls=%ls",
112 m_strMainCommand.data(), m_nMainCommandID,
113 m_strCommand.data(), CM_VISITOR_BOOK_BODY,
116 row.assign(L
"HREF_MSG_BODY", strHREF);
117 row.assign(q.
fields(), L
" ");
119 tplList.append(L
"row", row);
126 ListedStringToStringArrayMap& params,
131 ListedStringToStringArrayMap::Iterator it = params.find(L
"id");
132 if (it == params.end()) {
138 if (!(*it).value.isEmpty())
139 strID = (*it).value[0];
141 TextTemplate tplBody(__servlet.readTemplate(L
"visitbody.html"));
143 q.
prepare(L
"SELECT ID, SUBJECT, BODY, REGIST, VISITOR, EMAIL, RHOST"
144 " FROM ES_VISITOR_BOOK WHERE ID = " + strID);
150 String strHREF = String::format(L
"?%ls=%d",
151 m_strMainCommand.data(), m_nMainCommandID
153 tplBody.assign(L
"HREF_ACTION", strHREF);
154 tplBody.assign(L
"COMMAND_STR", m_strCommand);
155 tplBody.assign(L
"CM_VISITOR_BOOK_LIST", String::valueOf(CM_VISITOR_BOOK_LIST));
156 tplBody.assign(L
"CM_VISITOR_BOOK_UPDATE_FORM", String::valueOf(CM_VISITOR_BOOK_UPDATE_FORM));
157 tplBody.assign(L
"CM_VISITOR_BOOK_DELETE", String::valueOf(CM_VISITOR_BOOK_DELETE));
159 tplBody.assign(q.
fields(), L
" ");
161 tplBody.assign(L
"BODY",
175 ListedStringToStringArrayMap& params,
181 ListedStringToStringArrayMap::Iterator it = params.find(L
"id");
182 if ((it != params.end()) && (!(*it).value.isEmpty()))
183 strID = (*it).value[0];
185 StringBuilder strHREF;
186 strHREF.format(L
"?%ls=%d&%ls=%d",
187 m_strMainCommand.data(), m_nMainCommandID,
188 m_strCommand.data(), CM_VISITOR_BOOK_UPDATE
191 TextTemplate tpl(__servlet.readTemplate(L
"visitupdate.html"));
192 if (!strID.isEmpty()) {
194 q.
execute(L
"SELECT ID, SUBJECT, BODY, REGIST, VISITOR, EMAIL, RHOST"
195 " FROM ES_VISITOR_BOOK WHERE ID = " + strID);
198 strHREF += L
"&id=" + q.
fields().
byName(L
"ID").asString();
199 tpl.assign(L
"HREF_ACTION", strHREF);
200 tpl.assign(q.
fields(), L
" ");
207 tpl.assign(L
"HREF_ACTION", strHREF);
208 tpl.assign(L
"SUBJECT", L
"");
209 tpl.assign(L
"VISITOR", L
"");
210 tpl.assign(L
"EMAIL", L
"");
211 tpl.assign(L
"BODY", L
"");
217 ListedStringToStringArrayMap& params,
225 ListedStringToStringArrayMap::Iterator it = params.find(L
"id");
226 if ((it != params.end()) && (!(*it).value.isEmpty()))
227 strID = (*it).value[0];
229 it = params.find(L
"passwd");
230 if ((it != params.end()) && (!(*it).value.isEmpty()))
231 strPasswd = (*it).value[0];
235 q.
execute(L
"SELECT PASSWD FROM ES_VISITOR_BOOK WHERE ID = " + strID);
238 bool bDoDelete =
false;
242 if (q.
fields()[0].asString() == strPasswd)
247 q.
execute(L
"DELETE FROM ES_VISITOR_BOOK WHERE ID = " + strID);
258 ListedStringToStringArrayMap& params,
271 String strRHost = ctx.remoteAddr();
273 ListedStringToStringArrayMap::Iterator it;
275 it = params.find(L
"id");
276 if ((it != params.end()) && (!(*it).value.isEmpty()))
277 strID = (*it).value[0];
279 it = params.find(L
"passwd");
280 if ((it != params.end()) && (!(*it).value.isEmpty()))
281 strPasswd = (*it).value[0];
283 it = params.find(L
"subject");
284 if ((it != params.end()) && (!(*it).value.isEmpty()))
285 strSubject = (*it).value[0];
287 it = params.find(L
"body");
288 if ((it != params.end()) && (!(*it).value.isEmpty()))
289 strBody = (*it).value[0];
291 it = params.find(L
"visitor");
292 if ((it != params.end()) && (!(*it).value.isEmpty()))
293 strVisitor = (*it).value[0];
295 it = params.find(L
"email");
296 if ((it != params.end()) && (!(*it).value.isEmpty()))
297 strEmail = (*it).value[0];
299 if (strSubject.isEmpty()
301 || strVisitor.isEmpty()
302 || strEmail.isEmpty())
304 out << L
"<br><br><p><strong>모두 입력해 주세요!!</strong></p>";
310 " ES_VISITOR_BOOK(SUBJECT, BODY, REGIST, VISITOR,"
311 " EMAIL, RHOST, PASSWD) "
312 " VALUES(:SUBJECT, :BODY, CURRENT_TIMESTAMP, :VISITOR,"
313 " :EMAIL, :RHOST, :PASSWD)";
316 if (!strID.isEmpty()) {
317 q.
execute(L
"SELECT PASSWD FROM ES_VISITOR_BOOK WHERE ID = " + strID);
320 if (q.
fields()[0].isNull()
321 || q.
fields()[0].asString() == strPasswd) {
323 "UPDATE ES_VISITOR_BOOK "
324 " SET SUBJECT = :SUBJECT, BODY = :BODY, VISITOR = :VISITOR, "
325 " EMAIL = :EMAIL, RHOST = :RHOST, PASSWD = :PASSWD "
326 " WHERE ID = " + strID;
337 sqlParams.
byName(L
"SUBJECT").setValue(strSubject);
338 sqlParams.
byName(L
"BODY").setValue(strBody);
339 sqlParams.
byName(L
"VISITOR").setValue(strVisitor);
340 sqlParams.
byName(L
"EMAIL").setValue(strEmail);
341 sqlParams.
byName(L
"RHOST").setValue(strRHost);
342 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 *)
_CONST SQLParams & params() _CONST
void prepare(const String &_sql) __DCL_THROWS2(SQLException *
_CONST SQLFields & fields() _CONST
void CharsetConvertException *void execute() __DCL_THROWS1(SQLException *)
int64_t affectedRows() const
void CharsetConvertException *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)