com.newline.view.company.controller.CompanyController.java Source code

Java tutorial

Introduction

Here is the source code for com.newline.view.company.controller.CompanyController.java

Source

package com.newline.view.company.controller;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import com.newline.core.controller.BaseController;
import com.newline.core.dict.DictList;
import com.newline.core.dict.model.DictType;
import com.newline.core.dict.model.ListModel;
import com.newline.core.language.model.LanguageType;
import com.newline.core.model.Page;
import com.newline.core.model.Result;
import com.newline.core.qiniu.QiNiuUtils;
import com.newline.view.common.entity.NlMemberEntity;
import com.newline.view.common.service.MsgServiceI;
import com.newline.view.company.entity.NlCompanyEntity;
import com.newline.view.company.entity.NlMsgEntity;
import com.newline.view.company.entity.NlPostEntity;
import com.newline.view.company.entity.NlResumecollectEntity;
import com.newline.view.company.service.CompanyServiceI;
import com.newline.view.company.service.PostServiceI;
import com.newline.view.company.service.ResumecollectServiceI;
import com.newline.view.customer.controller.CustomerController;
import com.newline.view.customer.entity.NlCustomerEntity;
import com.newline.view.customer.entity.NlDeliveryEntity;
import com.newline.view.customer.service.CustomerServiceI;
import com.newline.view.customer.service.DeliveryServiceI;

@Controller
@RequestMapping("/company")
public class CompanyController extends BaseController {
    private static Logger log = LoggerFactory.getLogger(CustomerController.class);

    @Autowired
    private CompanyServiceI companyService;

    @Autowired
    private CustomerServiceI customerService;

    @Autowired
    private DeliveryServiceI deliveryService;

    @Autowired
    private PostServiceI postService;

    @Autowired
    private ResumecollectServiceI resumecollectService;

    @Autowired
    private MsgServiceI msgService;

    /**
     * 
     * ??
     * 
     * @param session
     * @param model
     * @param type
     * @param pageNum
     * @param pageSize
     * @return
     * @see
     * @author  2015-9-14?1:33:06
     * @since 1.0
     */
    @RequestMapping("/goCompanyMainPage")
    public String goCompanyMainPage(HttpServletRequest request, HttpSession session, Model model,
            @RequestParam(value = "type", required = false, defaultValue = "baseinfo") String type, //??
            @RequestParam(value = "deliverystate", required = false, defaultValue = "0") Integer deliverystate, //?
            @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum, //?
            @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize,
            @RequestParam(value = "msgtype", required = false, defaultValue = "auditionmsg") String msgtype,
            @RequestParam(value = "postid", required = false) Integer postid) {
        NlMemberEntity member = getMember(request);
        model.addAttribute("leftbar_type", type);
        if (type.equals("baseinfo")) {
            //???
            NlCompanyEntity company = new NlCompanyEntity();
            if (member != null) {
                company = companyService.getCompanyByMemberid(member.getId());
            }
            model.addAttribute("company", company);
            return "company/core/company_main_baseinfo";
        } else if (type.equals("maininfo")) {
            //???
            NlCompanyEntity company = new NlCompanyEntity();
            if (member != null) {
                company = companyService.getCompanyByMemberid(member.getId());
            }
            List<ListModel> ornameList = DictList.queryDictList(LanguageType.CN, DictType.COMPANY_ORNAME);
            model.addAttribute("ornameList", ornameList);
            model.addAttribute("company", company);
            return "company/core/company_main_maininfo";
        } else if (type.equals("post")) {
            //?????
            NlCompanyEntity company = new NlCompanyEntity();
            if (member != null) {
                company = companyService.getCompanyByMemberid(member.getId());
            }
            if (postid == null) {
                Set<NlPostEntity> posts = company.getPosts();
                if (!posts.isEmpty()) {
                    postid = posts.iterator().next().getId();
                }
            }
            List<ListModel> highlights = DictList.queryDictList(LanguageType.CN, DictType.COMPANY_HIGHLIGHT);
            if (postid != null) {
                NlPostEntity post = postService.queryPostById(postid);
                model.addAttribute("post", post);
                model.addAttribute("postid", postid);
            }
            model.addAttribute("hts", highlights);
            model.addAttribute("cm", company);
            return "company/core/company_main_post";
        } else if (type.equals("seekdelivery")) {
            //??
            NlCompanyEntity company = new NlCompanyEntity();
            if (member != null) {
                company = companyService.getCompanyByMemberid(member.getId());
                Page<NlDeliveryEntity> deliverys = companyService.queryDeliverys(company, deliverystate, pageNum,
                        pageSize);
                model.addAttribute("deliverys", deliverys);
            }
            model.addAttribute("company", company);
            model.addAttribute("deliverystate", deliverystate);
            return "company/core/company_main_seekdelivery";
        } else if (type.equals("collectresume")) {
            NlCompanyEntity company = new NlCompanyEntity();
            if (member != null) {
                company = companyService.getCompanyByMemberid(member.getId());
                Page<NlResumecollectEntity> page = resumecollectService.queryResumecollectBy(company.getId(),
                        pageNum, pageSize);
                model.addAttribute("page", page);
            }
            model.addAttribute("company", company);
            return "company/core/company_main_collectresume";
        } else if (type.equals("msg")) {
            NlCompanyEntity company = new NlCompanyEntity();
            if (member != null) {
                company = companyService.getCompanyByMemberid(member.getId());
                Page<NlMsgEntity> msgs = new Page<NlMsgEntity>();
                if (msgtype.equals("auditionmsg")) {
                    msgs = msgService.queryCompanySendMsgList(company.getId(), pageNum, pageSize);
                } else if (msgtype.equals("onlinemsg")) {
                    msgs = msgService.queryCompanyReceiveMsgList(company.getId(), pageNum, pageSize);
                }
                model.addAttribute("msgs", msgs);
            }
            model.addAttribute("msgtype", msgtype);
            model.addAttribute("company", company);
            return "company/core/company_main_msg";
        } else {
            return "";
        }
    }

    /**
     * 
     * ?
     * 
     * @param request
     * @param response
     * @param deliveryid
     * @return
     * @see 
     * @author  2015-9-21?10:05:46
     * @since 1.0
     */
    @RequestMapping("/seekCustomerResume")
    public String seekCustomerResume(HttpServletRequest request, HttpServletResponse response, Model model,
            @RequestParam(value = "deliveryid") Integer deliveryid,
            @RequestParam(value = "sendtype") String sendtype) {
        NlMemberEntity member = getMember(request);
        NlDeliveryEntity delivery = null;
        String language = "";
        if (member != null && sendtype.equals("seekdelivery")) {
            NlCompanyEntity company = companyService.getCompanyByMemberid(member.getId());
            //1.??
            delivery = companyService.changeDeliveryStatue(deliveryid, 1);
            model.addAttribute("dv", delivery);
            model.addAttribute("cm", company);
        } else if (member != null && sendtype.equals("collectresume")) {
            delivery = deliveryService.queryDeliveryById(deliveryid);
            model.addAttribute("dv", delivery);
        }
        if (delivery != null) {
            //2.
            List<NlCustomerEntity> customers = customerService.queryCustomerList(delivery.getMemberid());
            NlCustomerEntity acu = customerService.getCustomerById(delivery.getCustomerid());
            language = acu.getLanguage();
            if (!customers.isEmpty()) {
                for (NlCustomerEntity customer : customers) {
                    if (customer.getLanguage().equals(language)) {
                        if (language.equals(LanguageType.EN)) {
                            try {
                                LanguageType.setLanguageType(LanguageType.EN);
                                Integer customerid = customer.getId();
                                NlCustomerEntity cu = customerService.getCustomerById(customerid);
                                setCustomerForEnglish(cu);
                                model.addAttribute("cu", cu);
                            } catch (Exception e) {
                                log.error(e.getMessage());
                                e.printStackTrace();
                            } finally {
                                LanguageType.resetLanguageType();
                            }
                        } else {
                            model.addAttribute("cu", customer);
                        }
                        model.addAttribute("cusize", customers.size());
                    }
                }
            }
        }
        model.addAttribute("sendtype", sendtype);
        model.addAttribute("language", language);
        if (language.equals(LanguageType.CN)) {
            return "common/seek_cn_resume";
        } else if (language.equals(LanguageType.EN)) {
            return "common/seek_en_resume";
        } else {
            return "redirect:/";
        }
    }

    /**
     * 
     * ??
     * 
     * @param cu
     * @see 
     * @author  2015-10-9?8:23:14
     * @since 1.0
     */
    private void setCustomerForEnglish(NlCustomerEntity cu) {
        if (cu.getSex() != null) {
            cu.setSex(cu.getSex());
        }
        if (cu.getEducation() != null) {
            cu.setEducation(cu.getEducation());
        }
        if (StringUtils.isNotBlank(cu.getLangability())) {
            cu.setLangability(cu.getLangability());
        }
        if (StringUtils.isNotBlank(cu.getWorkyears())) {
            cu.setWorkyears(cu.getWorkyears());
        }
        if (cu.getIsmarried() != null) {
            cu.setIsmarried(cu.getIsmarried());
        }
        if (cu.getCardtype() != null) {
            cu.setCardtype(cu.getCardtype());
        }
        if (cu.getJobproperty() != null) {
            cu.setJobproperty(cu.getJobproperty());
        }
        if (cu.getOverseasexp() != null) {
            cu.setOverseasexp(cu.getOverseasexp());
        }
        if (cu.getWorkstate() != null) {
            cu.setWorkstate(cu.getWorkstate());
        }
        cu.getCertificates().size();
        cu.getEducateexps().size();
        cu.getWorkxps().size();
        cu.getTrainexperiences().size();
        cu.getLanguages().size();
        cu.getInternsipexps().size();
    }

    /**
     * 
     * ???
     * 
     * @param request
     * @param response
     * @param deliveryid
     * @param state
     * @return
     * @see 
     * @author  2015-9-23?1:34:09
     * @since 1.0
     */
    @RequestMapping(value = "/dealDeliveryState")
    public String dealDeliveryState(HttpServletRequest request, HttpServletResponse response,
            @RequestParam(value = "deliveryid") Integer deliveryid, @RequestParam(value = "state") Integer state,
            Model model) {
        NlMemberEntity member = getMember(request);
        NlDeliveryEntity delivery = companyService.changeDeliveryStatue(deliveryid, state);
        String language = "";
        model.addAttribute("dv", delivery);
        if ((delivery.getResumestate() == 2 || delivery.getResumestate() == 1) && member != null) {
            NlCompanyEntity company = companyService.getCompanyByMemberid(member.getId());
            model.addAttribute("cm", company);
        }
        if (delivery != null) {
            //2.
            List<NlCustomerEntity> customers = customerService.queryCustomerList(delivery.getMemberid());
            NlCustomerEntity acu = customerService.getCustomerById(delivery.getCustomerid());
            language = acu.getLanguage();
            if (!customers.isEmpty()) {
                for (NlCustomerEntity customer : customers) {
                    if (customer.getLanguage().equals(language)) {
                        if (language.equals(LanguageType.EN)) {
                            try {
                                LanguageType.setLanguageType(LanguageType.EN);
                                Integer customerid = customer.getId();
                                NlCustomerEntity cu = customerService.getCustomerById(customerid);
                                setCustomerForEnglish(cu);
                                model.addAttribute("cu", cu);
                            } catch (Exception e) {
                                log.error(e.getMessage());
                                e.printStackTrace();
                            } finally {
                                LanguageType.resetLanguageType();
                            }

                        } else {
                            model.addAttribute("cu", customer);
                        }
                        model.addAttribute("cusize", customers.size());
                    }
                }
            }
        }
        model.addAttribute("state", state);
        model.addAttribute("sendtype", "seekdelivery");
        model.addAttribute("language", language);
        if (language.equals(LanguageType.CN)) {
            return "common/seek_cn_resume";
        } else if (language.equals(LanguageType.EN)) {
            return "common/seek_en_resume";
        } else {
            return "redirect:/";
        }
    }

    /**
     * 
     * ??(??,?)
     * 
     * @param request
     * @param response
     * @param deliveryid
     * @param customerid
     * @param state
     * @param model
     * @return
     * @see 
     * @author  2015-9-24?10:06:57
     * @since 1.0
     */
    @RequestMapping(value = "/inviteAudition", method = RequestMethod.POST)
    public String inviteAudition(HttpServletRequest request, HttpServletResponse response,
            @RequestParam(value = "deliveryid") Integer deliveryid, @RequestParam(value = "state") Integer state,
            Model model, NlDeliveryEntity delivery) {
        String language = "";
        NlDeliveryEntity endDelivery = companyService.inviteCustomerAudition(deliveryid, delivery);
        if (delivery != null) {
            //2.
            List<NlCustomerEntity> customers = customerService.queryCustomerList(delivery.getMemberid());
            NlCustomerEntity acu = customerService.getCustomerById(delivery.getCustomerid());
            language = acu.getLanguage();
            if (!customers.isEmpty()) {
                for (NlCustomerEntity customer : customers) {
                    if (customer.getLanguage().equals(language)) {
                        if (language.equals(LanguageType.EN)) {
                            try {
                                LanguageType.setLanguageType(LanguageType.EN);
                                Integer customerid = customer.getId();
                                NlCustomerEntity cu = customerService.getCustomerById(customerid);
                                setCustomerForEnglish(cu);
                                model.addAttribute("cu", cu);
                            } catch (Exception e) {
                                log.error(e.getMessage());
                                e.printStackTrace();
                            } finally {
                                LanguageType.resetLanguageType();
                            }
                        } else {
                            model.addAttribute("cu", customer);
                        }
                        model.addAttribute("cusize", customers.size());
                    }
                }
            }
        }
        model.addAttribute("language", language);
        model.addAttribute("dv", endDelivery);
        model.addAttribute("state", state);
        model.addAttribute("sendtype", "seekdelivery");
        if (language.equals(LanguageType.CN)) {
            return "common/seek_cn_resume";
        } else if (language.equals(LanguageType.EN)) {
            return "common/seek_en_resume";
        } else {
            return "redirect:/";
        }
    }

    /**
     * 
     * ?
     * 
     * @param request
     * @param response
     * @param file
     * @see
     * @author  2015-9-14?1:29:31
     * @since 1.0
     */
    @RequestMapping(value = "/uploadImg", method = RequestMethod.POST)
    public void uploadImg(HttpServletRequest request, HttpServletResponse response,
            @RequestParam(value = "file", required = false) MultipartFile file) {
        NlMemberEntity member = getMember(request);
        try {
            if (member != null && !file.isEmpty()) {
                NlCompanyEntity company = companyService.getCompanyByMemberid(member.getId());
                String newFileName = QiNiuUtils.uploadImg(file);
                if (StringUtils.isNotBlank(newFileName)) {
                    if (StringUtils.isNotBlank(company.getAlbum())) {
                        company.setAlbum(company.getAlbum() + "," + newFileName);
                    } else {
                        company.setAlbum(newFileName);
                    }

                    companyService.updateCompany(company);
                    response.getWriter().write(newFileName);
                } else {
                    log.error("");
                }
            } else {
                log.error("");
            }
        } catch (Exception e) {
            log.error("?" + e.getMessage());
        }
    }

    /**
     * 
     * 
     * 
     * @param request
     * @param response
     * @param bumName
     * @return
     * @see 
     * @author  2015-9-17?11:21:18
     * @since 1.0
     */
    @RequestMapping("/deleteAlbum")
    @ResponseBody
    public Result deleteAlbum(HttpServletRequest request, HttpServletResponse response, String bumName) {
        NlMemberEntity member = getMember(request);
        Result result = new Result();
        try {
            if (member != null) {
                NlCompanyEntity company = companyService.getCompanyByMemberid(member.getId());
                if (company != null) {
                    String newbums = "";
                    String albums = company.getAlbum();
                    if (StringUtils.isNotBlank(albums)) {
                        String[] albumArrays = albums.split(",");
                        List<String> newAlbumArrays = new ArrayList<String>();
                        for (int i = 0; i < albumArrays.length; i++) {
                            if (albumArrays[i].equals(bumName)) {
                                QiNiuUtils.delete(bumName);
                            } else {
                                newAlbumArrays.add(albumArrays[i]);
                            }
                        }
                        for (int i = 0; i < newAlbumArrays.size(); i++) {
                            if (i == newAlbumArrays.size() - 1) {
                                newbums += newAlbumArrays.get(i);
                            } else {
                                newbums += newAlbumArrays.get(i) + ",";
                            }
                        }
                    }
                    company.setAlbum(newbums);
                    companyService.updateCompany(company);
                }
            }
            result.setResult(true);
            result.setMsg("??");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("?" + e.getMessage());
            result.setResult(false);
            result.setMsg("?");
        }
        return result;
    }

    /**
     * 
     * ???
     * @param company
     * @param file
     * @return
     * @see 
     * @author  2015-9-15?11:17:34
     * @since 1.0
     */
    @RequestMapping(value = "/saveOrUpdateCompanyBaseInfo", method = RequestMethod.POST)
    public String saveOrUpdateCompanyBaseInfo(HttpServletRequest request,
            @RequestParam(value = "mylicense", required = false) MultipartFile file) {
        NlMemberEntity member = getMember(request);
        if (member != null) {
            NlCompanyEntity company = companyService.getCompanyByMemberid(member.getId());
            updateCompany(request, company);
            if (!file.isEmpty()) {
                String newfileName = QiNiuUtils.uploadImg(file);
                if (StringUtils.isNotBlank(company.getLicense())) {
                    QiNiuUtils.delete(company.getLicense());
                }
                company.setLicense(newfileName);
            }
            companyService.updateCompany(company);
        } else {
            log.error("???.");
        }
        return "redirect:/company/goCompanyMainPage?type=baseinfo";
    }

    /**
     * 
     * ????
     * 
     * @param request
     * @param company
     * @see 
     * @author  2015-9-15?11:31:37
     * @since 1.0
     */
    private void updateCompany(HttpServletRequest request, NlCompanyEntity company) {
        String name = request.getParameter("name");
        if (StringUtils.isNotBlank(name)) {
            company.setName(name);
        }
        String province = request.getParameter("province");
        if (StringUtils.isNotBlank(province)) {
            company.setProvince(province);
        }
        String pcity = request.getParameter("pcity");
        if (StringUtils.isNotBlank(pcity)) {
            company.setPcity(pcity);
        }
        String area = request.getParameter("area");
        if (StringUtils.isNotBlank(area)) {
            company.setArea(area);
        }
        String email = request.getParameter("email");
        if (StringUtils.isNotBlank(email)) {
            company.setEmail(email);
        }
        String address = request.getParameter("address");
        if (StringUtils.isNotBlank(address)) {
            company.setAddress(address);
        }
        String realname = request.getParameter("realname");
        if (StringUtils.isNotBlank(realname)) {
            company.setRealname(realname);
        }
        String position = request.getParameter("position");
        if (StringUtils.isNotBlank(position)) {
            company.setPosition(position);
        }
        String telephone = request.getParameter("telephone");
        if (StringUtils.isNotBlank(telephone)) {
            company.setTelephone(telephone);
        }
        String size = request.getParameter("size");
        if (StringUtils.isNotBlank(size)) {
            company.setSize(size);
        }

        String industryid = request.getParameter("industryid");
        if (StringUtils.isNotBlank(industryid)) {
            company.setIndustryid(Integer.parseInt(industryid));
        }
        company.setCity(company.getProvince() + "," + company.getPcity()
                + (StringUtils.isNotBlank(company.getArea()) ? "," + company.getArea() : ""));
    }

    /**
     * 
     * ????
     * 
     * @param request
     * @param company
     * @param file
     * @return
     * @see 
     * @author  2015-9-17?6:04:12
     * @since 1.0
     */
    @RequestMapping("/saveOrUpdaeCompanyMainInfo")
    public String saveOrUpdaeCompanyMainInfo(HttpServletRequest request, NlCompanyEntity company,
            @RequestParam(value = "mylogo", required = false) MultipartFile file) {
        NlMemberEntity member = getMember(request);
        if (member != null) {
            NlCompanyEntity sourcecompany = companyService.getCompanyByMemberid(member.getId());
            copyCompanyInfo(sourcecompany, company);
            if (!file.isEmpty()) {
                String logo = QiNiuUtils.uploadImg(file);
                if (StringUtils.isNotBlank(sourcecompany.getLogo())) {
                    QiNiuUtils.delete(sourcecompany.getLogo());
                }
                sourcecompany.setLogo(logo);
            }
            companyService.updateCompany(sourcecompany);
        }
        return "redirect:/company/goCompanyMainPage?type=maininfo";

    }

    /**
     * 
     * ??????
     * 
     * @param sc
     * @param c
     * @see 
     * @author  2015-9-17?5:29:26
     * @since 1.0
     */
    private void copyCompanyInfo(NlCompanyEntity sc, NlCompanyEntity c) {
        if (StringUtils.isNotBlank(c.getDescription())) {
            sc.setDescription(c.getDescription());
        }
        if (StringUtils.isNotBlank(c.getCompanydesc())) {
            sc.setCompanydesc(c.getCompanydesc());
        }
        if (c.getEstablishtime() != null) {
            sc.setEstablishtime(c.getEstablishtime());
        }
        if (c.getOrcount() != null) {
            sc.setOrcount(c.getOrcount());
        }
        if (StringUtils.isNotBlank(c.getWebsite())) {
            sc.setWebsite(c.getWebsite());
        }
        if (StringUtils.isNotBlank(c.getForeigndisplay())) {
            sc.setForeigndisplay(c.getForeigndisplay());
        }
        if (StringUtils.isNotBlank(c.getYyname())) {
            sc.setYyname(c.getYyname());
        }
        if (StringUtils.isNotBlank(c.getYycompany())) {
            sc.setYycompany(c.getYycompany());
        }
        if (StringUtils.isNotBlank(c.getYyaddress())) {
            sc.setYyaddress(c.getYyaddress());
        }
        if (StringUtils.isNotBlank(c.getYytelephone())) {
            sc.setYytelephone(c.getYytelephone());
        }
        if (StringUtils.isNotBlank(c.getYyemail())) {
            sc.setYyemail(c.getYyemail());
        }
        if (StringUtils.isNotBlank(c.getOrname())) {
            sc.setOrname(c.getOrname().trim().substring(0, c.getOrname().trim().length() - 1));
        }
        sc.setUpdatetime(new Date());
    }

    /**
     * 
     * ??(????)
     * 
     * @param request
     * @param response
     * @param customerid
     * @param model
     * @param delivery
     * @return
     * @see 
     * @author  2015-9-28?3:58:31
     * @since 1.0
     */
    @RequestMapping(value = "/initiativeAudition", method = RequestMethod.POST)
    public String initiativeAudition(HttpServletRequest request, HttpServletResponse response,
            @RequestParam(value = "customerid") Integer customerid, Model model, NlMsgEntity msg) {
        NlMemberEntity member = getMember(request);
        if (member != null) {
            NlCustomerEntity customer = customerService.getCustomerById(customerid);
            NlCompanyEntity company = companyService.getCompanyByMemberid(member.getId());
            List<NlPostEntity> posts = postService.queryPostsByCompanyId(company.getId(), null);
            model.addAttribute("posts", posts);
            model.addAttribute("cm", company);
            if (company != null) {
                companyService.initiativeAudition(msg, company.getId(), customer.getMemberid());
            }
        }
        NlCustomerEntity customer = customerService.getCustomerById(customerid);
        model.addAttribute("cu", customer);
        model.addAttribute("sendtype", "searchCustomer");
        return "common/seek_cn_resume";
    }
}