1. 程式人生 > >shop--6.店鋪註冊--店鋪註冊之Controller層(邏輯)

shop--6.店鋪註冊--店鋪註冊之Controller層(邏輯)

返回 ide put https hashmap ping red 上傳圖片 key

1.接收並轉化相應的參數,包括店鋪信息和圖片信息

2.註冊店鋪

3.返回結果

    @Controller
@RequestMapping("/shopadmin")
public class ShopManagementController{
@Autowired
private ShopService shopService;
//
註冊店鋪 @RequestMapping(value="/registershop", method= RequestMethod.POST ) @ResponseBody public Map<String, Object> registerShop(HttpServletRequest request){ Map
<String, Object> modelMap = new HashMap<String,Object>(); //1.接收並轉化相應的參數,包括店鋪信息和圖片信息 String shopStr = HttpServletRequestUtil.getString( request, "shopStr" ); ObjectMapper mapper = new ObjectMapper(); // create once, reuse Shop shop = null; try { shop
= mapper.readValue(shopStr, Shop.class); } catch (IOException e) { modelMap.put("success", false); modelMap.put("errMsg", e.getMessage()); return modelMap; }
//-----------------------------------------------------------------------------
//獲取文件流
CommonsMultipartFile shopImg
= null; //在本次會話的上下文獲取上傳的文件 CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); //如果文件上傳的有值 if(commonsMultipartResolver.isMultipart( request )){ MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest)request; shopImg = (CommonsMultipartFile)multipartHttpServletRequest.getFile("shopImg"); } else{ modelMap.put( "success", false ); modelMap.put("errMsg", "上傳圖片不能為空"); return modelMap; } //2.註冊店鋪 if(shop != null && shopImg != null){ PersonInfo user = (PersonInfo) request.getSession().getAttribute("user"); shop.setOwner( user ); ShopExecution shopExecution = shopService.addShop(shop, shopImg); if(shopExecution.getState() == ShopStateEnum.CHECK.getState()){ modelMap.put( "success", true ); }else{ modelMap.put( "success", false ); modelMap.put( "errMsg", shopExecution.getStateInfo()); } }else{ modelMap.put("success", false); modelMap.put("errMsg", "請輸入店鋪信息"); } //3.返回結果 return modelMap; }
}

解析request裏面的一些參數

HttpServletRequestUtil

 1 public class HttpServletRequestUtil {
 2     public static int getInt(HttpServletRequest request,String key) {
 3         try {
 4             return Integer.decode(request.getParameter(key));
 5         }catch (Exception e) {
 6             //如果轉化失敗
 7             return -1;
 8         }
 9     }
10     public static long getLong(HttpServletRequest request,String key) {
11         try {
12             return Long.valueOf(request.getParameter(key));
13         }catch (Exception e) {
14             //如果轉化失敗
15             return -1;
16         }
17     }
18     public static Double getDouble(HttpServletRequest request,String key) {
19         try {
20             return Double.valueOf(request.getParameter(key));
21         }catch (Exception e) {
22             //如果轉化失敗
23             return -1d;
24         }
25     }
26     public static boolean getBoolean(HttpServletRequest request,String key) {
27         try {
28             return Boolean.valueOf(request.getParameter(key));
29         }catch (Exception e) {
30             //如果轉化失敗
31             return false;
32         }
33     }
34     
35     public static String getString(HttpServletRequest request,String key) {
36         try {
37             String result = request.getParameter(key);
38             if(result!=null) {
39                 result = result.trim();
40             }
41             if("".equals(result)) {
42                 result = null;
43             }
44             return result;
45         }catch (Exception e) {
46             return null;
47         }
48     }
49 }

改造後的Controller

技術分享圖片
 1 @RequestMapping(value = "/registershop", method = RequestMethod.POST)
 2     @ResponseBody
 3     private Map<String, Object> registerShop(HttpServletRequest request) {
 4         Map<String, Object> modelMap = new HashMap<String, Object>();
 5         if (!CodeUtil.checkVerifyCode(request)) {
 6             modelMap.put("success", false);
 7             modelMap.put("error", "輸入了錯誤的驗證碼");
 8             return modelMap;
 9         }
10         // 1.接受並轉化相應的參數,包括店鋪信息以及圖片信息
11         String shopStr = HttpServletRequestUtil.getString(request, "shopStr");
12         ObjectMapper mapper = new ObjectMapper();
13         Shop shop = null;
14         try {
15             shop = mapper.readValue(shopStr, Shop.class);
16         } catch (Exception e) {
17             modelMap.put("success", false);
18             modelMap.put("errMsg", e.getMessage());
19             return modelMap;
20         }
21         CommonsMultipartFile shopImg = null;
22         CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(
23                 request.getSession().getServletContext());
24         // 如果文件上傳有值的話
25         if (commonsMultipartResolver.isMultipart(request)) {
26             MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;
27             shopImg = (CommonsMultipartFile) multipartHttpServletRequest.getFile("shopImg");
28         } else {
29             modelMap.put("success", false);
30             modelMap.put("errMsg", "上傳圖片不能為空");
31             return modelMap;
32         }
33         // 2.註冊店鋪
34         if (shop != null && shopImg != null) {
35 
36             PersonInfo owner = (PersonInfo) request.getSession().getAttribute("user");
37 
38             shop.setOwner(owner);
39             ShopExecution se;
40             try {
41                 se = shopService.addShop(shop, shopImg.getInputStream(), shopImg.getOriginalFilename());
42                 if (se.getState() == ShopStateEnum.CHECK.getState()) {
43                     modelMap.put("success", true);
44                     // 需要在session中保存一個店鋪列表 就是用戶可操作的店鋪
45                     @SuppressWarnings("unchecked")
46                     List<Shop> shopList = (List<Shop>) request.getSession().getAttribute("shopList");
47                     if (shopList == null || shopList.size() == 0) {
48                         shopList = new ArrayList<Shop>();
49 
50                     }
51                     shopList.add(se.getShop());
52                     request.getSession().setAttribute("shopList", shopList);
53 
54                 } else {
55                     modelMap.put("errMsg", se.getStateInfo());
56                 }
57             } catch (ShopOperationException e) {
58                 modelMap.put("success", false);
59                 modelMap.put("errMsg", e.getMessage());
60             } catch (IOException e) {
61                 modelMap.put("success", false);
62                 modelMap.put("errMsg", e.getMessage());
63             }
64 
65             return modelMap;
66         } else {
67             modelMap.put("success", false);
68             modelMap.put("errMsg", "請輸入店鋪信息");
69             return modelMap;
70         }
71         // 3.返回結果
72     }
View Code

shop--6.店鋪註冊--店鋪註冊之Controller層(邏輯)