PickAction.java
8.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
package com.cjs.site.action.user.pick;
import java.util.List;
import javax.servlet.http.HttpSession;
import com.cjs.site.util.lang.DateUtil;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.cjs.site.biz.user.pick.PickBiz;
import com.cjs.site.biz.user.pick.WarehouseBiz;
import com.cjs.site.dao.user.account.UserAddressDao;
import com.cjs.site.dao.user.pick.PickPackageDao;
import com.cjs.site.dao.user.pick.WarehouseDao;
import com.cjs.site.model.pub.ResultInfo;
import com.cjs.site.model.user.pick.OutpropApplyInfo;
import com.cjs.site.model.user.pick.OutpropApplyPickInfo;
import com.cjs.site.model.user.pick.WarehouseInfo;
import com.cjs.site.util.lang.JsonUtil;
import com.cjs.site.util.web.ActionUtil;
/**
* 提货
*
* @author tongyufu
*
*/
@Controller
@RequestMapping("/user/pick")
public class PickAction {
Logger log = LogManager.getLogger();
@Autowired
private PickBiz pickBiz;
@Autowired
private UserAddressDao addressDao;
@Autowired
private PickPackageDao pickPackageDao;
@Autowired
private WarehouseDao warehouseDao;
@Autowired
private WarehouseBiz warehouseBiz;
/**提货方式选择*/
@SuppressWarnings("unchecked")
@RequestMapping("")
public String pickView(@RequestParam String applys, @RequestParam String pickType,
@RequestParam String pack, Integer packageId, HttpSession session) {
applys = applys.replace("\'", "\"");
session.setAttribute("applyList",
JsonUtil.fromJson(applys, List.class, OutpropApplyInfo.class));
session.setAttribute("pack", pack);
session.setAttribute("packageId", packageId);
return "redirect:/user/pick/tab?pickType=" + pickType;
}
/**提货方式选择*/
@SuppressWarnings("unchecked")
@RequestMapping("tab")
public String pickTab(@RequestParam String pickType, HttpSession session, Model model) {
String userId = ActionUtil.getUser().getUserId();
//封装提货
if (session.getAttribute("packageId") != null) {
//包装方式
Integer packageId = Integer.valueOf(session.getAttribute("packageId").toString());
model.addAttribute("pickPackage", pickPackageDao.queryById(packageId));
model.addAttribute("pickPackFeeAmount", pickBiz.pickPackFeeAmount());
}
//自提
if ("1".equals(pickType)) {
return "user/pick/self.jsp";
} else if ("2".equals(pickType)) { //顺丰到付
List<OutpropApplyInfo> applyList = (List<OutpropApplyInfo>) session
.getAttribute("applyList");
int pickTotal = 0;
for (OutpropApplyInfo apply : applyList) {
pickTotal += apply.getOccurAmount();
}
model.addAttribute("pickTotal", pickTotal);
model.addAttribute("addresses", JsonUtil.toJson(addressDao.queryByUserId(userId)));
return "user/pick/express.jsp";
}
return "user/pick/zhaoonline.jsp";
}
/**自提*/
@RequestMapping("self")
public String selfPick(OutpropApplyPickInfo pickInfo, Model model,
RedirectAttributes attributes) {
ResultInfo resultInfo = pickBiz.selfPick(pickInfo);
this.putApplys(resultInfo, pickInfo, "2", model, attributes);
if (resultInfo.getCode() == 0) {
return "user/pick/self.jsp";
}
return "redirect:/user/pick/success?pickType=self";
}
/**网点自提*/
@RequestMapping("warehouse")
public String warehousePick(OutpropApplyPickInfo pickInfo, Model model,
RedirectAttributes attributes) {
ResultInfo resultInfo = pickBiz.selfPick(pickInfo);
this.putApplys(resultInfo, pickInfo, "2", model, attributes);
if (resultInfo.getCode() == 0) {
return "user/pick/warehouseDetail.jsp";
}
attributes.addFlashAttribute("warehouse",
warehouseDao.queryByCode(pickInfo.getWarehouseCode()));
return "redirect:/user/pick/success?pickType=self";
}
/**顺丰到付*/
@RequestMapping("express")//todo 顺丰到付提货进入支付-提货详情页
public String expressPick(OutpropApplyPickInfo pickInfo, Integer addressId, Model model,
RedirectAttributes attributes) {
ResultInfo resultInfo = pickBiz.expressPick(pickInfo, addressId);
this.putApplys(resultInfo, pickInfo, "3", model, attributes);
if (resultInfo.getCode() == 0) {
model.addAttribute("addresses", addressDao.queryByUserId(ActionUtil.getUser().getClient_id()));
return "/user/pick/express.jsp";
}
attributes.addFlashAttribute("address", addressDao.queryById(addressId));
return "redirect:/user/pick/payInfo?pickType=2";
}
/**转赵涌在线拍卖*/
@RequestMapping("zhaoonline")
public String zhaoonlinePick(OutpropApplyPickInfo pickInfo, Model model,
RedirectAttributes attributes) {
ResultInfo resultInfo = pickBiz.zhaoonlinePick(pickInfo);
this.putApplys(resultInfo, pickInfo, "1", model, attributes);
if (resultInfo.getCode() == 0) {
return "user/pick/zhaoonline.jsp";
}
return "redirect:/user/pick/payInfo?pickType=1";
}
/**网点自提*/
@SuppressWarnings("unchecked")
@RequestMapping("warehouseDetail")
public String warehousePickView(@RequestParam("warehouseCode") String warehouseCode,
@RequestParam("applys") String applys, HttpSession session,
Model model) {
WarehouseInfo warehouse = warehouseDao.queryByCode(warehouseCode);
applys = applys.replace("\'", "\"");
session.setAttribute("applyList",
JsonUtil.fromJson(applys, List.class, OutpropApplyInfo.class));
warehouse = warehouseBiz.parseWarehouseTime(warehouse);
model.addAttribute("warehouse", warehouse);
return "user/pick/warehouseDetail.jsp";
}
@RequestMapping("success")
public String pickSuccess(String pickType) {
System.out.println(pickType);
return "user/pick/" + pickType + "Success.jsp";
}
@RequestMapping("payInfo")
@SuppressWarnings("unchecked")//todo 计算托管费用
public String payInfo(HttpSession session,Model model,String pickType){
String userId = ActionUtil.getUser().getUserId();
List<OutpropApplyInfo> applyList = (List<OutpropApplyInfo>) session.getAttribute("applyList");
int pickTotal = 0;
for (OutpropApplyInfo apply : applyList) {
apply.setTrusteeshipCycle(DateUtil.getTrustCycle());
apply.setWarehousingCharges(apply.getOccurAmount() * apply.getTrusteeshipCycle() * 0.01D);
pickTotal += apply.getOccurAmount();
}
Double totoalAmount = 0.01D * DateUtil.getTrustCycle() * pickTotal;
model.addAttribute("pickType",pickType);
model.addAttribute("applyList", applyList);
model.addAttribute("warehousingCharges", totoalAmount);
model.addAttribute("totalAmount", totoalAmount + 6D);
model.addAttribute("pickTotal", pickTotal);
model.addAttribute("addresses", JsonUtil.toJson(addressDao.queryByUserId(userId)));
return "user/pick/payInfo.jsp";
}
private void putApplys(ResultInfo resultInfo, OutpropApplyPickInfo pickInfo, String pickType,
Model model, RedirectAttributes attributes) {
if (resultInfo.getCode() == 0) {
model.addAttribute("pickType", pickType);
model.addAttribute("resultInfo", resultInfo);
model.addAttribute("pickInfo", pickInfo);
} else {
attributes.addFlashAttribute("pickInfo", pickInfo);
attributes.addFlashAttribute("resultInfo", resultInfo);
}
}
}