PickAction.java
10.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
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
package com.cjs.site.action.user.pick;
import java.math.BigDecimal;
import java.util.List;
import javax.servlet.http.HttpSession;
import com.cjs.site.model.user.account.UserInfo;
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, HttpSession session) {
ResultInfo resultInfo = pickBiz.selfPick(pickInfo);
session.setAttribute("pickInfo",pickInfo);
this.putApplys(resultInfo, pickInfo, "2", model, attributes);
if (resultInfo.getCode() == 0) {
return "user/pick/self.jsp";
}
return "redirect:/user/pick/payInfo?pickType=1";
}
/**
* 网点自提
*/
@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/payInfo?pickType=1";
}
/**
* 顺丰到付
*/
@RequestMapping("express")
public String expressPick(OutpropApplyPickInfo pickInfo, Integer addressId, Model model,
RedirectAttributes attributes, HttpSession session) {
ResultInfo resultInfo = pickBiz.expressPick(pickInfo, addressId);
session.setAttribute("pickInfo",pickInfo);
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, HttpSession session) {
session.setAttribute("pickInfo",pickInfo);
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=3";
}
/**
* 网点自提
*/
@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")
public String payInfo(HttpSession session, Model model, String pickType,
OutpropApplyPickInfo pickInfo, Integer addressId) {
List<OutpropApplyInfo> applyList = (List<OutpropApplyInfo>) session.getAttribute("applyList");
int pickTotal = 0;
Integer trusteeshipCycle = DateUtil.getTrustCycle();
for (OutpropApplyInfo apply : applyList) {
apply.setTrusteeshipCycle(trusteeshipCycle);
apply.setWarehousingCharges(apply.getOccurAmount() * apply.getTrusteeshipCycle() * 0.01D);
pickTotal += apply.getOccurAmount();
}
BigDecimal totalAmount = new BigDecimal("0.01").multiply(new BigDecimal(trusteeshipCycle)).
multiply(new BigDecimal(pickTotal));
//80022109 钱勋 申请提货,经公司研究决定,给予该客户免除仓费的优惠,包装费正常收取,请技术协助处理一下,谢谢,以便客户尽快能完成提货相关手续。
if("80022109".equals(ActionUtil.getUser().getUserId())){
totalAmount= BigDecimal.ZERO;
}
//周弟兰 80020810 账户客户要求提货,再提货操作时发现该账户提货时需要支付4万余元的仓储费,经跟客户友好协商,双方本着解决问题的态度,初步达成意向,客户同意支付2000元仓储费
if("80020810".equals(ActionUtil.getUser().getUserId())){
totalAmount= new BigDecimal(2000);
}
UserInfo userInfo = (UserInfo)session.getAttribute("USER_INFO");
if ("01".equals(pickType)){//本人自提
model.addAttribute("pickName", userInfo.getClient_id());
pickInfo.setPickType("0");
}else if ("02".equals(pickType)){//委托他人
pickInfo.setPickType("1");
model.addAttribute("pickName", pickInfo.getDelegateName());
}else if ("2".equals(pickType)){//顺丰到付
pickInfo.setPickType(pickType);
pickInfo.setCreateDate(String.valueOf(addressId));
model.addAttribute("pickName", addressDao.queryById(addressId).getUserName());
}else if ("3".equals(pickType)){//转赵涌在线
pickInfo = (OutpropApplyPickInfo)session.getAttribute("pickInfo");
pickInfo.setPickType(pickType);
model.addAttribute("pickName", pickInfo.getZhaoonlineId());
}
session.setAttribute("pickInfo", pickInfo);
model.addAttribute("pickDate", pickInfo.getPickDate());
model.addAttribute("applyList", applyList);
model.addAttribute("warehousingCharges", totalAmount);
model.addAttribute("totalAmount", totalAmount.add(new BigDecimal("6")));
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);
}
}
}