13#if __DCL_HAVE_THIS_FILE__
18void EShopServlet::onViewShoppingBasket(
23 Writer& out = ctx.
writer();
25 ListedStringToStringArrayMap& params = ctx.__formMap;
27 StringArray& vQty = params[L
"qty"];
30 if (!vPID.isEmpty()) {
31 if (vPID.size() == 1 && vQty.isEmpty()) {
42 " FROM ES_SHOPPING_BASKET "
43 " WHERE SESSION_ID = :SESSION_ID "
44 " AND PRODUCT_ID = :PRODUCT_ID"
46 q.params()[0].setValue(session.
sessionID());
47 q.params()[1].setValue(nProductID);
53 "INSERT INTO ES_SHOPPING_BASKET "
54 " VALUES(:SESSION_ID, :PRODUCT_ID, 1)"
56 q.params()[0].setValue(session.
sessionID());
57 q.params()[1].setValue(nProductID);
67 "UPDATE ES_SHOPPING_BASKET "
68 " SET QUANTITY = :QUANTITY "
69 " WHERE SESSION_ID = :SESSION_ID"
70 " AND PRODUCT_ID = :PRODUCT_ID"
72 for(
size_t i = 0; i < vPID.size(); i++) {
88 q.params()[0].setValue(nQuantity);
89 q.params()[1].setValue(session.
sessionID());
90 q.params()[2].setValue(nProductID);
96 "DELETE FROM ES_SHOPPING_BASKET "
97 " WHERE SESSION_ID = \'" + session.
sessionID()
98 + L
"\' AND QUANTITY = 0 "
103 TextTemplate tpl = *__pViewShoppingBasket;
104 TextTemplate& row = tpl[L
"ROW"];
106 String strActionHREF = String::format(L
"?%ls=%d",
108 tpl.assign(L
"ACTION_HREF", strActionHREF);
112 "SELECT S.PRODUCT_ID, S.QUANTITY, P.PRODUCT_NAME, P.QUALITY, P.PRICE,"
113 " S.QUANTITY, P.PRICE * S.QUANTITY AS AMOUNT, P.IMAGE_FILE_NAME "
114 " FROM ES_SHOPPING_BASKET S \n"
115 " INNER JOIN ES_PRODUCT P "
116 " ON S.PRODUCT_ID = P.PRODUCT_ID \n"
117 " WHERE S.SESSION_ID = \'"
125 tpl.assign(L
"TOTAL", L
"0");
131 q.fields().byName(L
"AMOUNT").getValue(nAmount);
135 + q.fields().byName(L
"IMAGE_FILE_NAME").asString();
138 row.assign(q.fields(), L
" ");
139 row.assign(L
"IMAGE", strImage);
140 tpl.append(L
"ROW", row);
143 tpl.assign(L
"TOTAL", String::valueOf(nTotal));
148 TextTemplate& tplNotLogin = tpl[L
"NOT_LOGIN"];
149 tpl.assign(L
"NOT_LOGIN", tplNotLogin);
152 tpl.erase(L
"NOT_LOGIN");
153 TextTemplate& tplOrder = tpl[L
"ORDER"];
154 tplOrder.assign(L
"USER_NAME", session.
userName());
156 strActionHREF = String::format(L
"?%ls=%d",
158 tplOrder.assign(L
"ACTION_HREF", strActionHREF);
160 tpl.assign(L
"ORDER", tplOrder);
@ CM_VIEW_SHOPPING_BASKET
#define __DCL_TRACE1(fmt, arg1)
#define __DCL_ASSERT(expr)
const String & userName() const
const String & sessionID() const
SQLConnection * SQLConn() const
static String dirname(const String &_path)
static int32_t parse(const wchar_t *_number, unsigned _base=10) __DCL_THROWS1(NumericConvertException *)