com.fengduo.bee.web.controller.product.ItemEditController.java Source code

Java tutorial

Introduction

Here is the source code for com.fengduo.bee.web.controller.product.ItemEditController.java

Source

/*
 * 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;
    }
}