package com.iamberry.rst.controllers.customer; import com.iamberry.rst.core.customer.*; import com.iamberry.rst.faces.customer.CustomerBasicInfoSaveService; import com.iamberry.wechat.tools.ResponseJson; import org.apache.commons.lang.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; @Controller @RequestMapping("/admin/CustomerBasic") public class CustomerBasicInfoSaveController { private Logger logger = LoggerFactory.getLogger(CustomerBasicInfoSaveController.class); @Autowired private CustomerBasicInfoSaveService customerBasicInfoSaveService; /** * 跳转到添加客户信息页面 * * @return */ @RequiresPermissions("customerBasic:save:customerInfo") @RequestMapping(value = "/saveCustomerInfo") public ModelAndView toAddCustomer(HttpServletRequest request) { ModelAndView mv = new ModelAndView("customer/save_customer_info"); return mv; } /** * 添加客户信息 * @param request * @param customerBasicInfo * @param dockedContactInfoList * @param channelSaleInfoList * @param billingInfo * @param ticketOpeningInfo * @return * @throws Exception */ @ResponseBody @RequiresPermissions("customerBasic:save:customerInfo") @RequestMapping("/save_customer_info") public ResponseJson saveCustomerBasicInfo(HttpServletRequest request, CustomerBasicInfo customerBasicInfo, List dockedContactInfoList, List channelSaleInfoList,BillingInfo billingInfo, TicketOpeningInfo ticketOpeningInfo) throws Exception { //注意:DockedContactInfo、ChannelSaleInfo可能为多个,需修改 ResponseJson rjx = this.isValiData(customerBasicInfo); Boolean isSaveSuccess = false;//是否保存成功标识 if(rjx.getResultCode() == 500){ return rjx; } logger.info("-----------------添加客户信息开始----------------------"); try { customerBasicInfoSaveService.saveCustomerBasicInfo(customerBasicInfo,dockedContactInfoList,channelSaleInfoList,billingInfo,ticketOpeningInfo); isSaveSuccess = true; } catch (RuntimeException e) { isSaveSuccess = false; return new ResponseJson(500, e.getMessage(), 500); } logger.info("-----------------添加客户信息结束----------------------"); if (!isSaveSuccess) { return new ResponseJson(500, "添加客户信息失败!", 500); }else{ return new ResponseJson(200, "添加客户信息成功!", 200); } } /** * 跳转到修改客户信息页面 * * @return */ @RequiresPermissions("customerBasic:save:customerInfo") @RequestMapping(value = "/update_customer_info") public ModelAndView updateCustomerInfo(HttpServletRequest request) throws Exception{ ModelAndView mv = new ModelAndView("customerInfoAdmin/update_customer_info"); String customerId = request.getParameter("customerId"); boolean isSuccess = false; if (!StringUtils.isNotEmpty(customerId)) { return mv; } int queryCustomerId = Integer.valueOf(customerId); CustomerBasicInfo customerBasicInfo = new CustomerBasicInfo(); List dockedContactInfoList = new ArrayList(); List channelSaleInfoList = new ArrayList(); BillingInfo billingInfo = new BillingInfo(); TicketOpeningInfo ticketOpeningInfo = new TicketOpeningInfo(); logger.info("-----------------修改客户信息开始----------------------"); try { customerBasicInfo = customerBasicInfoSaveService.queryCustomerBasicInfoByCustomerId(queryCustomerId); dockedContactInfoList = customerBasicInfoSaveService.queryDockedContactInfoListByCustomerId(queryCustomerId); channelSaleInfoList = customerBasicInfoSaveService.queryChannelSaleInfoListByCustomerId(queryCustomerId); billingInfo = customerBasicInfoSaveService.queryBillingInfoByCustomerId(queryCustomerId); ticketOpeningInfo = customerBasicInfoSaveService.queryTicketOpeningInfoByCustomerId(queryCustomerId); isSuccess = true; }catch (Exception e){ isSuccess = false; logger.error("跳转修改页面失败:"+e.getMessage()); } logger.info("----------------修改客户信息结束----------------------"); if(!isSuccess){ return mv; }else{ mv.addObject("customerBasicInfo", customerBasicInfo); mv.addObject("dockedContactInfoList", dockedContactInfoList); mv.addObject("channelSaleInfoList", channelSaleInfoList); mv.addObject("billingInfo", billingInfo); mv.addObject("ticketOpeningInfo", ticketOpeningInfo); } return mv; } /** * 验证方法 * * @param customerBasicInfo * @return */ public ResponseJson isValiData(CustomerBasicInfo customerBasicInfo) { ResponseJson rj = new ResponseJson(); if(customerBasicInfo == null){ return new ResponseJson(500, "未填写客户基本信息", 500); } return rj; } }