Java tutorial
/* * Copyright 2015-2020 Fengduo.co All right reserved. This software is the confidential and proprietary information of * Fengduo.co ("Confidential Information"). You shall not disclose such Confidential Information and shall use it only * in accordance with the terms of the license agreement you entered into with Fengduo.co. */ package com.fengduo.bee.web.controller.product; import java.util.List; import javax.validation.Valid; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; import com.fengduo.bee.commons.core.lang.Argument; import com.fengduo.bee.commons.persistence.Parameter; import com.fengduo.bee.commons.util.NumberParser; import com.fengduo.bee.commons.util.ObjectUtils; import com.fengduo.bee.model.cons.VerifyStatusEnum; import com.fengduo.bee.model.entity.Item; import com.fengduo.bee.model.entity.ItemFinance; import com.fengduo.bee.model.entity.ItemMember; import com.fengduo.bee.web.controller.BaseController; /** * ? * * @author zxc Jun 23, 2015 2:30:05 PM */ @Controller @RequestMapping(value = "/item") public class ItemEditController extends BaseController { /** * * * @return */ @RequestMapping(value = "/{id}/edit", method = RequestMethod.GET) public ModelAndView edit(@PathVariable("id") Long id, ModelAndView mav) { mav.setViewName("item/add"); // ?id? if (Argument.isNotPositive(id)) { mav.addObject("errMsg", "?id?,!"); return mav; } // ?id??? Item item = itemService.getItemById(id); if (item == null) { mav.addObject("errMsg", "?id?,!"); return mav; } // ??? if (!NumberParser.isEqual(getCurrentUserId(), item.getUserId())) { mav.addObject("errMsg", "?id?,!"); mav.setViewName("error/404"); return mav; } mav.addObject("itemId", id); mav.addObject("item", item); mav.addObject("postUrl", "/item/edit"); return mav; } /** * ?? * * @return */ @RequestMapping(value = "/edit", method = RequestMethod.POST) public String create(@Valid Item item, BindingResult result, Model model) { model.addAttribute("item", item); ObjectUtils.trim(item); // ? if (result.hasErrors()) { model.addAttribute("errMsg", showFirstErrors(result)); return "item/add"; } // ??? Long currentUserId = getCurrentUserId(); if (Argument.isNotPositive(currentUserId)) { model.addAttribute("errMsg", ",!"); return "account/login"; } if (Argument.isNotPositive(item.getId())) { model.addAttribute("errMsg", "?id?,!"); return "item/add"; } // ???? Parameter query = Parameter.newParameter()// .pu("userId", currentUserId)// .pu("id", item.getId()); Item findItem = itemService.findItem(query); if (findItem == null) { model.addAttribute("errMsg", "?,??!"); return "item/add"; } // ??? if (!NumberParser.isEqual(currentUserId, findItem.getUserId())) { model.addAttribute("errMsg", "?id?,!"); return "error/404"; } // ?,? item.setUserId(currentUserId); if (findItem.getVerifyStatus() != null) { item.setVerifyStatus(findItem.getVerifyStatus()); } else { item.setVerifyStatus(VerifyStatusEnum.UN_COMPLETELY.getValue()); } // ?? itemService.update(item); // ??? return "redirect:/item/finance/edit/" + item.getId(); } /** * ?? * * @return */ @RequestMapping(value = "/finance/edit/{id}", method = RequestMethod.GET) public ModelAndView finance(@PathVariable("id") Long id) { ModelAndView mav = new ModelAndView("item/finance"); mav.addObject("itemId", id); // ??ID if (Argument.isNotPositive(id)) { mav.addObject("errMsg", "??,?ID!"); mav.setViewName("error/404"); return mav; } ItemFinance itemFinance = itemService.getItemFinanceByItemId(id); if (itemFinance == null) { itemFinance = new ItemFinance(); } Item findItem = itemService.getItemById(id); // ??? if (findItem == null || !NumberParser.isEqual(getCurrentUserId(), findItem.getUserId())) { mav.addObject("errMsg", "?id?,!"); mav.setViewName("error/404"); return mav; } mav.addObject("itemFinance", itemFinance); mav.addObject("postUrl", "/item/finance/edit"); return mav; } @RequestMapping(value = "/finance/edit", method = RequestMethod.POST) public String finance(@Valid ItemFinance itemFinance, BindingResult result, Long itemId, Model model) { model.addAttribute("itemFinance", itemFinance); ObjectUtils.trim(itemFinance); // ??ID if (Argument.isNotPositive(itemId)) { model.addAttribute("errMsg", "??,?ID!"); return "item/finance"; } // ? if (result.hasErrors()) { model.addAttribute("errMsg", showFirstErrors(result)); return "item/finance"; } // ?? Long currentUserId = getCurrentUserId(); if (Argument.isNotPositive(currentUserId)) { model.addAttribute("errMsg", ",!"); return "item/finance"; } // ????,?? Parameter query = Parameter.newParameter()// .pu("userId", currentUserId)// .pu("id", itemId); Item findItem = itemService.findItem(query); if (findItem == null) { model.addAttribute("errMsg", "?!"); return "item/finance"; } // ??? if (!NumberParser.isEqual(getCurrentUserId(), findItem.getUserId())) { model.addAttribute("errMsg", "?id?,!"); return "error/404"; } // ??ID itemFinance.setItemId(itemId); if (Argument.isNotPositive(itemFinance.getId())) { // ??? itemService.add(itemFinance); } else { itemService.update(itemFinance); } // ?? return "redirect:/item/member/edit/" + itemId; } /** * ? * * @return */ @RequestMapping(value = "/member/edit/{id}", method = RequestMethod.GET) public ModelAndView member(@PathVariable("id") Long id) { ModelAndView mav = new ModelAndView("item/member"); // ??ID if (Argument.isNotPositive(id)) { mav.addObject("errMsg", "??,?ID!"); mav.setViewName("error/404"); return mav; } Item findItem = itemService.getItemById(id); if (findItem == null) { mav.addObject("errMsg", "?!"); mav.setViewName("error/404"); return mav; } // ??? if (!NumberParser.isEqual(getCurrentUserId(), findItem.getUserId())) { mav.addObject("errMsg", "?id?,!"); mav.setViewName("error/404"); return mav; } mav.addObject("itemId", id); List<ItemMember> itemMemberList = itemService.getItemMemberByItemId(id); mav.addObject("itemMemberList", itemMemberList); mav.addObject("postUrl", "/item/edit/success"); return mav; } /** * ?? * * @return */ @RequestMapping(value = "/edit/success") public ModelAndView success(Long itemId) { ModelAndView mav = new ModelAndView("item/success"); if (itemId == null) { mav.addObject("errMsg", "?id?,??!"); return mav; } Item itemById = itemService.getItemById(itemId); if (itemById == null) { mav.addObject("errMsg", "??,??!"); return mav; } // ??? if (!NumberParser.isEqual(getCurrentUserId(), itemById.getUserId())) { mav.addObject("errMsg", "?id?,!"); mav.setViewName("error/404"); return mav; } ItemFinance itemFinanceByItemId = itemService.getItemFinanceByItemId(itemId); if (itemFinanceByItemId == null) { mav.addObject("errMsg", "???,??!"); return mav; } List<ItemMember> itemMemberList = itemService.getItemMemberByItemId(itemId); if (Argument.isEmpty(itemMemberList)) { mav.addObject("errMsg", "??,??!"); return mav; } // ??,???? itemService.update(new Item(itemId, VerifyStatusEnum.UNAUDITED)); return mav; } }