/**
* =================================================================
* 版权所有 2011-2020 泰海网络支付服务有限公司,并保留所有权利
* -----------------------------------------------------------------
* 这不是一个自由软件!您不能在任何未经允许的前提下对程序代码进行修改和使用;
* 不允许对程序代码以任何形式任何目的的再发布
* =================================================================
*/
package com.sf.novatar.tpl.controller;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import javax.annotation.Resource;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import com.sf.novatar.tpl.bean.BeanBase;
import com.sf.novatar.tpl.enums.BusinessStatus;
import com.sf.novatar.tpl.p2.business.BillInvBusiness;
import com.sf.novatar.tpl.service.IService;
import com.sf.novatar.tpl.util.StringUtil;
import com.sf.novatar.tpl.util.UserUtil;
import com.sf.novatar.tpl.util.Util;
import com.sf.novatar.tpl.util.ViewExcel;
import com.sfpay.framework.base.exception.ServiceException;
import com.sfpay.framework.base.utils.StringUtils;
import com.sfpay.framework2.core.util.JsonUtil;
import com.sfpay.framework2.web.json.JsonMessage;
/**
* 类说明:<br>
*
*
* <p>
* 详细描述:<br>
*
*
* </p>
*
* @author 608279 向鹏
*
* CreateDate: May 20, 2015
*/
@Controller
@RequestMapping("/service")
public class ServiceController extends BaseController {
private final static Logger logger = LoggerFactory
.getLogger(ServiceController.class);
@Resource(name = "billInvBusiness")
private BillInvBusiness billInvBusiness;
@Resource
private IService service;
/**
* 进页面方法 方法说明:<br>
*
* @param bean
* @return
*/
@RequestMapping("/page")
public String page(BeanBase bean, Model model) {
// 1.判断是否发送CORE
// 2.无需调核心则找CONTROLL处理类
/*
* try { service.service(bean); } catch (Exception e) {
* logger.info(bean.getProcessMsg(), e); }
*/
return bean.getName();
}
@RequestMapping("/modelView")
public ModelAndView modelView(BeanBase bean) {
ModelAndView mv = new ModelAndView(bean.getName());
bean.setDatas(Util.converToBean(bean));
mv.getModel().putAll(bean.getDatas().get(0));
return mv;
}
/**
* 业务处理方法 方法说明:<br>
*
* @param bean
* @return
*/
@RequestMapping(value = "/pageReq")
@ResponseBody
public Object pageReq(BeanBase bean, HttpServletRequest request,
HttpServletResponse response) {
// 1.判断是否发送CORE
// 2.无需调核心则找CONTROLL处理类
String splitRegex = ";";
String message = "操作成功";
String result = repeatSubmitPreCheck(bean.getRepeatCheckBuz(), request,
response);
if (!StringUtil.areBlank(result)) {
bean.setStatus(BusinessStatus.FAIL);
bean.setProcessMsg("请不要重复提交");
return bean;
}
try {
String processorName = bean.getNeedcontrolprocess();
String createId = UserUtil.getCurrentUser().getCreateId();
if (StringUtils.isEmpty(processorName)) {
bean.setContent(bean.getContent() + createId);
bean = service.service(bean);
} else {
String[] contents = bean.getContent().split(splitRegex);
int length = contents.length;
for (int i = 0; i < length; i++) {
contents[i] += createId;
}
bean.setContent(org.apache.commons.lang3.StringUtils.join(
contents, splitRegex));
process(bean);
bean.setStatus(BusinessStatus.FINLISH);
if (org.apache.commons.lang3.StringUtils.isBlank(bean
.getProcessMsg())) {
bean.setProcessMsg(message);
}
}
} catch (Throwable e) {
logger.error(e.getMessage(), e);
bean.setStatus(BusinessStatus.FAIL);
String msg = e.getMessage();
if (!StringUtil.areBlank(msg) && msg.length() > 64
&& (e instanceof ServiceException == false)) {
msg = "处理失败,请联系管理员";
}
bean.setProcessMsg(msg);
} finally {
// repeatSubmitPostCheck(bean.getRepeatCheckBuz(), request);
}
return bean;
}
/**
* 业务处理方法 导出:<br>
*
* @param bean
* @return
*/
@SuppressWarnings("unchecked")
@RequestMapping("/export")
public ModelAndView export(BeanBase bean, HttpServletRequest request) {
Map<String, Object> map = null;
try {
bean.setContent(bean.getContent() + getCreateId());
String processorName = bean.getNeedcontrolprocess();
if (StringUtils.isEmpty(processorName)) {
bean = service.service(bean);
} else {
process(bean);
}
map = (Map<String, Object>) bean.getExpData().get("excelData");
} catch (Throwable e) {
logger.info(e.getMessage(), e);
bean.setStatus(BusinessStatus.FAIL);
bean.setProcessMsg(e.getMessage());
}
return new ModelAndView(new ViewExcel(), map);
}
/**
* 业务处理方法 导出:<br>
*
* @param bean
* @return
*/
@SuppressWarnings("unchecked")
@RequestMapping("/exportForInv")
public ModelAndView exportForInv(BeanBase bean, HttpServletRequest request) {
Map<String, Object> map = null;
try {
billInvBusiness.invExport(bean);
map = (Map<String, Object>) bean.getExpData().get("excelData");
} catch (Throwable e) {
logger.info(e.getMessage(), e);
bean.setStatus(BusinessStatus.FAIL);
bean.setProcessMsg(e.getMessage());
}
return new ModelAndView(new ViewExcel(), map);
}
/**
* 模板导出:<br>
*
* @param bean
* @return
*/
@RequestMapping("/template_export")
public ModelAndView template_export(BeanBase bean) {
ModelAndView modelview = null;
try {
process(bean);
modelview = (ModelAndView) bean.getExpData().get("modelview");
} catch (Throwable e) {
logger.info(e.getMessage(), e);
bean.setStatus(BusinessStatus.FAIL);
bean.setProcessMsg(e.getMessage());
}
return modelview;
}
/**
* 模板导入:<br>
*
* @param bean
* @return
*/
@RequestMapping("/template_import")
@ResponseBody
public Object template_import(BeanBase bean, HttpServletRequest request) {
try {
bean.setContent(bean.getContent() + getCreateId());
String processorName = bean.getNeedcontrolprocess();
if (StringUtils.isEmpty(processorName)) {
bean = service.service(bean);
} else {
process(bean);
}
} catch (Throwable e) {
logger.error(e.getMessage(), e);
bean.setStatus(BusinessStatus.FAIL);
bean.setProcessMsg(e.getMessage());
}
return bean;
}
/**
* 文件上传
*
* @param bean
* @param request
* @param response
*/
@RequestMapping("/file_upload")
public void ajaxfileupload(BeanBase bean, HttpServletRequest request,
HttpServletResponse response) {
response.setContentType("text/html;charset=utf-8");
String result = repeatSubmitPreCheck(bean.getRepeatCheckBuz(), request,
response);
if (!StringUtil.areBlank(result)) {
bean.setStatus(BusinessStatus.FAIL);
bean.setProcessMsg("请不要重复提交");
return;
}
JsonMessage jsonMessage = new JsonMessage();
try {
bean.setContent(bean.getContent() + getCreateId());
String processorName = bean.getNeedcontrolprocess();
if (StringUtils.isEmpty(processorName)) {
bean = service.service(bean);
} else {
process(bean);
}
jsonMessage.setCode("FINISH");
jsonMessage.setMessage("上传成功");
} catch (Throwable e) {
logger.error(e.getMessage(), e);
jsonMessage.setCode("FAIL");
if (e instanceof ServiceException) {
jsonMessage.setMessage(e.getMessage());
} else {
jsonMessage.setMessage("上传失败");
}
}
try {
response.getWriter().write(JsonUtil.toJSONString(jsonMessage));
} catch (IOException e) {
logger.error(e.getMessage(), e);
e.printStackTrace();
}
}
/**
* 文件上传
*
* @param bean
* @param request
* @param response
*/
@RequestMapping("/file_upload_bean")
@ResponseBody
public Object ajaxfileupload_bean(BeanBase bean,
HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/html;charset=utf-8");
String result = repeatSubmitPreCheck(bean.getRepeatCheckBuz(), request,
response);
if (!StringUtil.areBlank(result)) {
bean.setStatus(BusinessStatus.FAIL);
bean.setProcessMsg("请不要重复提交");
return bean;
}
try {
bean.setContent(bean.getContent() + getCreateId());
String processorName = bean.getNeedcontrolprocess();
if (StringUtils.isEmpty(processorName)) {
bean = service.service(bean);
} else {
process(bean);
}
bean.setStatus(BusinessStatus.FINLISH);
bean.setProcessMsg("上传成功");
} catch (Throwable e) {
logger.error(e.getMessage(), e);
bean.setStatus(BusinessStatus.FAIL);
if (e instanceof ServiceException) {
bean.setProcessMsg(e.getMessage());
} else {
bean.setProcessMsg("上传失败");
}
}
return bean;
}
/**
* 文件上传
*
* @param bean
* @param request
* @param response
*/
@RequestMapping("/ajax_form_submit")
public void ajaxformSubmit(BeanBase bean, HttpServletRequest request,
HttpServletResponse response) {
response.setContentType("text/html;charset=utf-8");
String splitRegex = ";";
String result = repeatSubmitPreCheck(bean.getRepeatCheckBuz(), request,
response);
if (!StringUtil.areBlank(result)) {
bean.setStatus(BusinessStatus.FAIL);
bean.setProcessMsg("请不要重复提交");
return;
}
try {
String processorName = bean.getNeedcontrolprocess();
String createId = UserUtil.getCurrentUser().getCreateId();
if (StringUtils.isEmpty(processorName)) {
bean = service.service(bean);
} else {
String[] contents = bean.getContent().split(splitRegex);
int length = contents.length;
for (int i = 0; i < length; i++) {
contents[i] += createId;
}
bean.setContent(org.apache.commons.lang3.StringUtils.join(
contents, splitRegex));
process(bean);
}
bean.setStatus(BusinessStatus.FINLISH);
if (org.apache.commons.lang3.StringUtils.isBlank(bean
.getProcessMsg())) {
bean.setProcessMsg("操作成功");
}
} catch (Throwable e) {
logger.error(e.getMessage(), e);
bean.setStatus(BusinessStatus.FAIL);
if (e instanceof ServiceException) {
bean.setProcessMsg(e.getMessage());
} else {
bean.setProcessMsg("操作失败");
}
}
try {
response.getWriter().write(JsonUtil.toJSONString(bean));
} catch (IOException e) {
logger.error(e.getMessage(), e);
e.printStackTrace();
}
}
/**
* 防重复前置检查
*
* @param buzCode
* @param request
* void
*/
@SuppressWarnings("unchecked")
private String repeatSubmitPreCheck(String buzCode,
HttpServletRequest request, HttpServletResponse response) {
if (!StringUtil.areBlank(buzCode)) {
Map<String, Integer> map = (Map<String, Integer>) request
.getSession().getAttribute("repeatSubmit");
if (map == null) {
map = new ConcurrentHashMap<String, Integer>();
request.getSession().setAttribute("repeatSubmit", map);
}
Integer submitTargetVersion = map.get(buzCode);
if (submitTargetVersion == null) {
submitTargetVersion = 0;
}
Cookie tarC = null;
Integer submitSourceVersion = 0;
for (Cookie c : request.getCookies()) {
if (c.getName().equalsIgnoreCase("repeatSubmit")) {
submitSourceVersion = Integer.parseInt(c.getValue());
tarC = c;
break;
}
}
if (submitSourceVersion < submitTargetVersion) {
return "请不要重复提交";
} else {
map.put(buzCode, submitSourceVersion + 1);
if (tarC == null) {
tarC = new Cookie("repeatSubmit",
String.valueOf(submitSourceVersion + 1));
} else {
tarC.setValue(String.valueOf(submitSourceVersion + 1));
}
response.addCookie(tarC);
}
}
return null;
}
}
分享到:
相关推荐
2. mybatisplus根据表自动生成dao,service,controler层的增删改成方法,极大提升开发效率 3. 包含功能:登录,用户管理,角色管理,菜单管理。用到插件:插件:lombok,finbugs,p3c等 4. 项目有源代码,有数据库...
memery controler,可以经过fpga验证。
该资源适合GRBL0.8以上版本,可以正常兼容最新的GRBL1.1F版本。以前的grbl controler,包括3.6.1版本都在GRBL1.1F上没法使用,典型的是设置界面无响应,虽然有数据返回,但是界面无显示,
extensible-host-controler-interface-usb-xhci.pdf
Lexium Controler运动控制器.pdf
xHCI1.1协议,解密板,有书签。eXtensible Host Controller Interface for Universal Serial Bus (xHCI) Requirements Specification November 2017 Revision 1.1
pid controler 程序比较简单,但比较实用 大家可以
font_controler_protocol2
PID DC motor controler
VC6.0 MFC 基于对话框编程,当窗口大小发生变化时,控件大小也跟着变化
面向对象的基础核心知识点之一,是日后学习JavaEE,JavaME的必备知识;注重基础的代码实例讲解, 让你轻松的学习Java基础知识,为以后学习铺平道路,打好基础;万丈高楼平地起,希望能帮助你!
PID Controler_Matlab Simulink
用电键控制步进电机朝各个方向做曲线,圆和直线运动。
这是一个非常有意思的搭载在Tomcat上面运行的小案例哈,博主为了... MVC架构,是MVC而不是三层架构,也即我的整个操作分为Model层,Controler层和view层 第三,利用jsp以及Servlet类来完成数据交互 第四,就是c标签的使用
传智播客_俄罗斯方块游戏05_编写controler类实现事件监听.rar 传智播客_俄罗斯方块游戏05_编写controler类实现事件监听.rar 传智播客_俄罗斯方块游戏05_编写controler类实现事件监听.rar
斯蒂芬妮·佩里亚(Stephanie Perea)智能房间控制器概述该项目的目的是在房间变暗时打开照明灯。 开灯使用光电二极管感应光水平允许用户使用按钮手动摇动灯细节该项目使用以下组件: 菲利普斯色相灯面包板电线...
3)最后使用tomcat服务器和Google浏览器进行web工程的部署和前端页面的调试,而后台设计思想是通过myeclipse编码调试,分别为dao层、damain层、exception层、formbean层、service层、utils工具层、controler层、ui层...
红外遥控器,带触摸屏功能,可扩展多路输出,全方位控制
内含sublime text3安装包,Package Control.sublime-package文件,channel_v3.json,以及SFTP插件文件SFTP.sublime-package文件。还有我解决安装SFTP插件时因为packagecontrol.io无法访问的相关心得,