Java tutorial
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"; } }